Алексей
А чего в dhall не хватает?
Алексей
какого рода гибкости?
Алексей
может допилить?
Алексей
https://github.com/dhall-lang/dhall-kubernetes отсюда примеры понравились ))
Алексей
нужно потрогать
Artem
какой-то лютый бейсик
Алексей
ml семейство
Алексей
не бэйсик
Алексей
let config = ../api/Deployment/default определяем переменную { name = "nginx" , replicas = 2 , containers = [ ../api/Deployment/defaultContainer // { name = "nginx" , imageName = "nginx" , imageTag = "1.15.3" , port = [ 80 ] : Optional Natural } ] } выставляем что нам нужно помимо дефолтов из переменной in ../api/Deployment/mkDeployment config передаем это все в функцию генерации полного конфига
Ulyana
привет! помогите нубу с кубеспреем, пжл? ) хочу добавить ноду в кластер, добавляю ее в hosts.ini, запускаю плейбук scale.yml и получаю ошибку: TASK [network_plugin/calico : Calico | Link etcd certificates for calico-node] failed: [kubenode2] (item={u's': u'node-kubenode2.pem', u'd': u'cert.crt'}) => {"changed": false, "gid": 0, "group": "root", "item": {"d": "cert.crt", "s": "node-kubenode2.pem"}, "mode": "0700", "msg": "Error while replacing: [Errno 2] No such file or directory", "owner": "kube", "path": "/etc/calico/certs/cert.crt", "size": 1371, "state": "file", "uid": 999} на kubenode2 файл /etc/calico/certs/cert.crt есть, права 700, оунер kube. на первой ноде файлы те же самые, такие же права, но ошибка только со второй нодой. что не так?
Andor
какой ещё hosts.ini в кубернетисе?
Ulyana
кубеспрей
Ulyana
https://github.com/kubernetes-incubator/kubespray
Алексей
https://github.com/dhall-lang/dhall-kubernetes/tree/master/api/Deployment а тут как раз декларации всего и вся можно отпределить свой тип аля вебприложение нафигачить функцию для генерации получить связку deploy ingress configmap secrets )) чет мне это самому все больше и больше нравится по сути заготовка для менеджера аля helm
Denis
Привет! Подскажите, а как то можно kubectl при обновлении релиза, каждый раз пересоздавать pod ? По типу фичи Helm recreate pod
Vadim
>Optional Natural какой красивый язык
Алексей
думаю по скорости разработки этот вариант будет сильно быстрее тут просто декларация ну и на каждый чих писать свой контроллер....
Lev
а у юзера ансибла права есть на эту директорию?
Юрий П.
Если меняется спецификация подов в деплойменте - поды так пересоздадутся.
Алексей
ну Maybe обозвали
Юрий П.
А иначе зачем деплоить?
Ulyana
а у юзера ансибла права есть на эту директорию?
дала сейчас 777 на все файлы, запустила жду
Andor
lol
Ulyana
а у юзера ансибла права есть на эту директорию?
ансибл от рута запускается, права есть. причем даже при 777 на сертификатах такая же ошибка. значит не в правах дело. причем, ca_cert.ca обновляется, а остальные, на которых ошибка - нет.
Andor
есть подозрение что эта проблема к кубернетису не имеет отношения
G72K
А чего в dhall не хватает?
Там все оторвано от реальности слегка ) https://github.com/dhall-lang/dhall-lang/issues/164
Andor
штангисты развлекаются
Алексей
не вижу оторванности они определили минимум если хочется чегото определи функцию и подключи )
bebebe
@pro_ansible
Ulyana
@pro_ansible
о, спасибо!
Andrey
думаю по скорости разработки этот вариант будет сильно быстрее тут просто декларация ну и на каждый чих писать свой контроллер....
одни недостатки да ещё и с подменой дефолтов. "Нам неудобно писать портянку на yaml в 50 строк, давайте писать портянку на никому не известном языке в 100 строк" - этот вывод я сделал из примера с генерацией ingress
Andrey
оно там даже больше, чем в два раза отличается
Алексей
Прописать все стандарты кубера в один инклюд И сразу все сильно уменьшается
Алексей
Ну и это не про писать портянку А генерить портянку
Михаил
Ну и это не про писать портянку А генерить портянку
А потом опять. Мы устали генерировать - оно не читаемо, давайте писать
G72K
не вижу оторванности они определили минимум если хочется чегото определи функцию и подключи )
У меня на стадии валидаторы например проверяется, что в контейнере не указаны повторяющиеся переменные окружения (потому что куб такие поды принимает, но потом обновить нефига не может). Конкретно этот валидатор это одна строчка на jsonnet, я покрутил этот dhall как мартышка очки, нашел тикет, что сравнения строк нет , и отложил до лучших времен в ящик "не осилил"
Алексей
Ок А если есть такая функция Чего ещё не хватает?
アリテミ
G72K
Jsonnet заточен под трансформацию объектов. Скажем дописать в массив элемент это просто "+ { key+: [extraValue] }", очень удобно, можно потипу башевских пайпов строить серии преобразований. Ещё киллер фича это ленивость . Скажем функция может вернуть неполный объект в котором одно поле { key: error "override key, please" } и только в конце, когда гененит джсон, если key так и не задали, то вылезет ошибка, при этом по пути это key поле может участвовать в разных вычислениях
Алексей
Дописать в массив тут есть
Алексей
Функции в prelude все
Алексей
Ленивость не уверен, нужно смотреть Хотя Haskell де факто ленивый язык, но Габриэль мог и строго сделать Но качество кода у него очень хорошее
Алексей
По факту можно сформировать библиотеку необходимых функций и подключать ее
Алексей
Серия преобразований это функции Тут они спокойно соединяются Опять же это уже есть в prelude
G72K
Ленивость ппц нужна. Скажем у лейблы добавляются постфактум, в конце, перед самой валидацией (а она перед самой генерацией финальных ямлов), так вот эти лейблы видны и используются на предыдущих стадиях, т.е. одна стадия преобразований может заглянуть в будущее, взять значения оттуда и использовать у себя. Все работает, если не создавать циклы
G72K
Вобщем dhall достойный кандидат, и уверен с ним можно сделать все, но к нему нужен подход с умом, хуяк хуяк и в продакшн не выйдет.
Алексей
Тут циклов точно нет Тут свертки и мэры Про ленивость я просто не уверен, нужно глянуть реализацию Тут можно набить примитивов тиба Мускуль Нгинх И тд И из этих примитивов фигачить более сложные объекты Присобачить сбоку проверку состояния в кластере И получится то до чего хелму как до Китая раком
Алексей
А если к этому ещё веб интерфейс с друг анд Дроп То это готовый платный сервис
Алексей
+ индусов компоненты писать Типизация то строгая
G72K
статей лучше напиши
Да я все блог завести не могу даже, куда там :))
Andor
та же фигня
Алексей
Время = деньги Инженерные задачи монетизируются понятно А с блогами вопросы
Andor
ты как будто никогда не развлекаешься
Ivan
Кто Ранчер 2 трогал подскажите про igress, я посмотрел в kubectl конфиг, и у меня вопрос. Ранчер на все ноды сразу раскатывает L7 балансировщик? Мне прописывать с DNS сразу все свои ноды ? Можно как то ограничить при создании на какие ноды раскатать?
Алексей
Кстати вопрос Развернуть отказоустойчивый кластер Набить туда минимальное окружение Ингресс мониторинг логи Прикрутить к ci + пример деплоя На бареметал Сколько стоит на рынке?
Алексей
Развлекаюсь, но время = деньги это не отменяет Отдых = деньги потраченные на него + те которы ещё заработал
Алексей
- сложно оцениваемое самочувствие
Etki
как же скучно вами жить
Алексей
А это удовольствие )) Хорошая баня дорого стоит Но того стоит ))
Etki
- баня - дорого стоит
Алексей
Не, не скучно Просто написание статей удовольствия мне не доставляет Более того, не люблю я это
Etki
его интересуют только деньги, деньги, деньги.мп4
Алексей
Ну а деньги то на что? Себя родных и близких радовать
Etki
https://www.youtube.com/watch?v=2LsuWgGMfGg
Алексей
Не только
Алексей
Но деньги это дополнительные возможности
Алексей
С вами приятно иметь дело )) Продаю
G72K
Но деньги это дополнительные возможности
Статьи это почему-то имя, любые. Удивительный эффект - люди доверяют блогам больше чем коллегам при прочих равных
Алексей
Согласен Но просто нужды нет За последние 5 лет только по знакомым Сарафанное радио хорошо работает
Алексей
Скорее рук не хватает.
Алексей
Отсюда и время деньги
G72K
Ну это известная проблема, как из консультанта вырасти в консалтинг :)