Andor
про куки не забыла?
Nata
ммммм
Andor
кажется они в кластер могут собираться не по параметрам конфига, а в рантайме через vmq-admin cluster join discovery-node=<OtherClusterNode>
𝚔𝚟𝚊𝚙𝚜
целый контейнер для замены ip в конфиге? Не слишком сурово ли?
это initContriner он будет выполнит определенную задачу и убьется, это true way предусмотренный кубером для таких целей
Andor
это initContriner он будет выполнит определенную задачу и убьется, это true way предусмотренный кубером для таких целей
не, лучше нормально приложение сконфигурить, а не костылики подкладывать через инит
Andor
в данном конкретном кейсе
Andrey
Ну мы только сейчас узнали, что все наверное не так плохо
Nata
echo "-eval \"vmq_server_cmd:node_join('VerneMQ@${kube_pod_name}.${VERNEMQ_KUBERNETES_SUBDOMAIN}.${DOCKER_VERNEMQ_KUBERNETES_NAMESPACE}.svc.cluster.local')\""
Andor
wat
Nata
это из докерфайла, поидее оно в принципе типа джойнит по имени
Andor
если у тебя стейтфулсет, то ты заранее знаешь адреса соседних подов
Салтыдык
это initContriner он будет выполнит определенную задачу и убьется, это true way предусмотренный кубером для таких целей
да это-то понятно, просто странно использовать init-контейнеры там, где они не нужны. С другой стороны, если нет своего registry для хранения нормальных образов (допиленных), то вариант.
Andor
хотя бы некоторых
Nata
*официального
Nata
https://github.com/erlio/docker-vernemq/blob/master/bin/vernemq.sh
Nata
там и костыль с седом в образе
Andor
IP_ADDRESS=$(ip -4 addr show eth0 | grep -oP "(?<=inet).*(?=/)"| sed -e "s/^[[:space:]]*//" | tail -n 1)
Andor
https://i.ytimg.com/vi/Tnod9vtB4xA/hqdefault.jpg
Nata
Andrey
Andor
https://github.com/erlio/docker-vernemq/blob/master/bin/vernemq.sh
кажется ты можешь передать DOCKER_VERNEMQ_NODENAME в контейнер чтобы было не слишком дерьмово
Салтыдык
чем оно сурово-то?
ну я даже не знаю как ответить)
Салтыдык
может проще у k8s'а спросить IP, чем искать интерфейс и выпаршивать его?
Andor
не надо ip, у нас тут стейтфулсет
Andor
можно просто имя первого пода передать в DOCKER_VERNEMQ_DISCOVERY_NODE кажется
Andor
и дальше оно само
Andor
в rabbitmq например есть плагин autocluster, который поддерживает кубеня
Andor
https://github.com/erlio/docker-vernemq/blob/master/bin/vernemq.sh
https://github.com/nmatsui/kubernetes-vernemq/blob/master/vernemq-cluster.yaml это видела?
Grigorii
мля, кубернетис классно решает проблемы, которые сам же и создает.
Andor
да
Nata
можно просто имя первого пода передать в DOCKER_VERNEMQ_DISCOVERY_NODE кажется
можно попробовать, DOCKER_VERNEMQ_DISCOVERY_KUBERNETES я это крутила
Nata
я видела nmatsui, вообще прикольно, ни pv, конфиги как были в образ зарыты так и остались
Andor
эта хрень в кластер собирается или нет?
Andor
если собирается, то я бы просто накопипастил оттуда
Nata
да, если убрать конфигмап и оставить sed с IP_ADDRESS
Andor
ааа, вон в чём беда
Andor
костыль с седом срабатывает
Nata
да, в образе. я и хотела вынести из образа, сделать configmap и не ответвлять образ для замены других параметров.
Andor
kube_pod_names=$(curl -X GET $insecure --cacert /var/run/secrets/kubernetes.io/serviceaccount/ca.crt https://kubernetes.default.svc.cluster.local/api/v1/namespaces/$DOCKER_VERNEMQ_KUBERNETES_NAMESPACE/pods?labelSelector=app=$DOCKER_VERNEMQ_KUBERNETES_APP_LABEL -H "Authorization: Bearer $(cat /var/run/secrets/kubernetes.io/serviceaccount/token)" | jq '.items[].spec.hostname' | sed 's/"//g' | tr '\n' ' ')
Andor
чуваки ваще молодцы
Andor
на такие костыли мало кто осмеливается
Andor
ну или подмени entrypoint
Grigorii
признайтесь, с кубернетисом в продакшене вы спите спокойно?)
Nata
пересобери это дерьмо
да. Я пришла именно к этому выводу.
bebebe
или даже не про helm upgrade <release_name> <chart_name> -f /path/to/new.values?
Nata
нэт
Grigorii
нет
я вот тоже заметил, что с тех пор как начал его изучать, так сразу почти кошмары начала сниться
Andrey
мне вот интересно, у всех gce-ingress вызывает такое же отвращение, как у меня? Уже замучался с этой какашкой
bebebe
можно удалить configmap и сделать helm upgrade --reuse-values - конфигмапа пересоздастся
Nata
ну да, короче, с самой оптимальной конфигурации но без костыля с седом, они собираются примерно так: | Node |Running| +---------------------------------------------------+-------+ |VerneMQ@vernemq-0.vernemq.vernemq.svc.cluster.local| true | |VerneMQ@vernemq-1.vernemq.vernemq.svc.cluster.local| false | |VerneMQ@vernemq-2.vernemq.vernemq.svc.cluster.local| false |
Nata
а костыль с седом и сразу оп и красиво все true )
bebebe
хватит sed'ить kubernetes!
Nata
хватит sed'ить kubernetes!
седили, седим и будем седить 😐
𝚔𝚟𝚊𝚙𝚜
IP_ADDRESS=$(ip -4 addr show eth0 | grep -oP "(?<=inet).*(?=/)"| sed -e "s/^[[:space:]]*//" | tail -n 1)
чтож так сложно та, когда можно просто: ip -o -4 addr show eth0 | grep -oP -m1 '(?<=inet )[^ /]*'
Nata
ну кстати нормально получилось, сделала маунт cm в левое место, пересобрала образ с заменой конфига из левого места и всё прям огонь работает у нас в 2003
Nata
вот сейчас не понятно
Andor
ты можешь подложить конфигмапой скрипт который запускать вместо родного инита
Andor
бонус: использование родного контейнера
Nata
ты можешь подложить конфигмапой скрипт который запускать вместо родного инита
вот ты знаешь, добрый человек, я об этом не подумала. Точно.
Nata
спасибо
Andor
грязный хак :)
Rainbow
Народ, подскажите, может чем можно выдавать декларативно роли в postgres и все это оставлять в vault? Тип я где-то отдельно создаю роли с нужными правами, позже их приложение себе забирает. ansible postgresql_user_module + vault сейчас скорее всего буду пробовать. Может есть что другое?
Rainbow
волт умеет создавать роли в постгресе
он не умеет их декларативно править. Пока у меня пазл не сходится
Andor
Что ты называешь "декларативно"?
Rainbow
как deployment, apply и все.
Andor
Терраформом правь тогда
Rainbow
терраформ умееет baremetal?
Andor
Терраформ умеет волт