Алексей
А чего в 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
Lev
привет! помогите нубу с кубеспреем, пжл? )
хочу добавить ноду в кластер, добавляю ее в 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.
на первой ноде файлы те же самые, такие же права, но ошибка только со второй нодой.
что не так?
Error while replacing: [Errno 2] No such file or directory", "owner": "kube", "path": "/etc/calico/certs/cert.crt
Алексей
https://github.com/dhall-lang/dhall-kubernetes/tree/master/api/Deployment
а тут как раз декларации всего и вся
можно отпределить свой тип аля вебприложение
нафигачить функцию для генерации
получить связку deploy ingress configmap secrets
))
чет мне это самому все больше и больше нравится
по сути заготовка для менеджера аля helm
Denis
Привет! Подскажите, а как то можно kubectl при обновлении релиза, каждый раз пересоздавать pod ? По типу фичи Helm recreate pod
Andor
Ulyana
Vadim
>Optional Natural
какой красивый язык
Алексей
думаю по скорости разработки этот вариант будет сильно быстрее
тут просто декларация
ну и на каждый чих писать свой контроллер....
Lev
а у юзера ансибла права есть на эту директорию?
Юрий П.
Если меняется спецификация подов в деплойменте - поды так пересоздадутся.
Алексей
ну Maybe обозвали
Юрий П.
А иначе зачем деплоить?
Ulyana
Andor
lol
Ulyana
а у юзера ансибла права есть на эту директорию?
ансибл от рута запускается, права есть. причем даже при 777 на сертификатах такая же ошибка. значит не в правах дело.
причем, ca_cert.ca обновляется, а остальные, на которых ошибка - нет.
Andor
есть подозрение что эта проблема к кубернетису не имеет отношения
Lev
Andor
штангисты развлекаются
Алексей
не вижу оторванности
они определили минимум
если хочется чегото определи функцию и подключи )
bebebe
Ulyana
Andrey
оно там даже больше, чем в два раза отличается
Алексей
Прописать все стандарты кубера в один инклюд
И сразу все сильно уменьшается
Алексей
Ну и это не про писать портянку
А генерить портянку
G72K
не вижу оторванности
они определили минимум
если хочется чегото определи функцию и подключи )
У меня на стадии валидаторы например проверяется, что в контейнере не указаны повторяющиеся переменные окружения (потому что куб такие поды принимает, но потом обновить нефига не может). Конкретно этот валидатор это одна строчка на jsonnet, я покрутил этот dhall как мартышка очки, нашел тикет, что сравнения строк нет , и отложил до лучших времен в ящик "не осилил"
Алексей
Ок
А если есть такая функция
Чего ещё не хватает?
Stas
アリテミ
G72K
Jsonnet заточен под трансформацию объектов. Скажем дописать в массив элемент это просто "+ { key+: [extraValue] }", очень удобно, можно потипу башевских пайпов строить серии преобразований. Ещё киллер фича это ленивость . Скажем функция может вернуть неполный объект в котором одно поле { key: error "override key, please" } и только в конце, когда гененит джсон, если key так и не задали, то вылезет ошибка, при этом по пути это key поле может участвовать в разных вычислениях
Алексей
Дописать в массив тут есть
Алексей
Функции в prelude все
Алексей
Ленивость не уверен, нужно смотреть
Хотя Haskell де факто ленивый язык, но Габриэль мог и строго сделать
Но качество кода у него очень хорошее
Алексей
По факту можно сформировать библиотеку необходимых функций и подключать ее
Алексей
Серия преобразований это функции
Тут они спокойно соединяются
Опять же это уже есть в prelude
G72K
Ленивость ппц нужна. Скажем у лейблы добавляются постфактум, в конце, перед самой валидацией (а она перед самой генерацией финальных ямлов), так вот эти лейблы видны и используются на предыдущих стадиях, т.е. одна стадия преобразований может заглянуть в будущее, взять значения оттуда и использовать у себя. Все работает, если не создавать циклы
G72K
Вобщем dhall достойный кандидат, и уверен с ним можно сделать все, но к нему нужен подход с умом, хуяк хуяк и в продакшн не выйдет.
Алексей
Тут циклов точно нет
Тут свертки и мэры
Про ленивость я просто не уверен, нужно глянуть реализацию
Тут можно набить примитивов тиба
Мускуль
Нгинх
И тд
И из этих примитивов фигачить более сложные объекты
Присобачить сбоку проверку состояния в кластере
И получится то до чего хелму как до Китая раком
Алексей
А если к этому ещё веб интерфейс с друг анд Дроп
То это готовый платный сервис
Алексей
+ индусов компоненты писать
Типизация то строгая
Andor
Andor
та же фигня
Алексей
Время = деньги
Инженерные задачи монетизируются понятно
А с блогами вопросы
Andor
ты как будто никогда не развлекаешься
Ivan
Кто Ранчер 2 трогал подскажите про igress, я посмотрел в kubectl конфиг, и у меня вопрос. Ранчер на все ноды сразу раскатывает L7 балансировщик? Мне прописывать с DNS сразу все свои ноды ? Можно как то ограничить при создании на какие ноды раскатать?
Алексей
Кстати вопрос
Развернуть отказоустойчивый кластер
Набить туда минимальное окружение
Ингресс мониторинг логи
Прикрутить к ci + пример деплоя
На бареметал
Сколько стоит на рынке?
Алексей
Развлекаюсь, но время = деньги это не отменяет
Отдых = деньги потраченные на него + те которы ещё заработал
Etki
Алексей
- сложно оцениваемое самочувствие
Etki
как же скучно вами жить
Алексей
А это удовольствие ))
Хорошая баня дорого стоит
Но того стоит ))
Etki
- баня
- дорого стоит
Алексей
Не, не скучно
Просто написание статей удовольствия мне не доставляет
Более того, не люблю я это
Etki
его интересуют только деньги, деньги, деньги.мп4
Алексей
Ну а деньги то на что? Себя родных и близких радовать
Etki
https://www.youtube.com/watch?v=2LsuWgGMfGg
Алексей
Не только
Алексей
Но деньги это дополнительные возможности
G72K
Алексей
С вами приятно иметь дело ))
Продаю
Алексей
Согласен
Но просто нужды нет
За последние 5 лет только по знакомым
Сарафанное радио хорошо работает
Алексей
Скорее рук не хватает.
Алексей
Отсюда и время деньги
G72K
Ну это известная проблема, как из консультанта вырасти в консалтинг :)