Andrey
не надо тебе регулярку
Andrey
http://masterminds.github.io/sprig/strings.html hasPrefix
Andrey
`{{- if hasPrefix "production-" .Values.namespace }}`
Andrey
regexMatch там в принципе тоже есть
Stefan
http://masterminds.github.io/sprig/strings.html hasPrefix
спасибо за ресурс и помощь!
Андрей А
Такой вопрос созрел) допустим хочу udp сервис выставить наружу с постоянным портом. Можно сделать через ingress-nginx но наверняка будут проблемы с производительностью, да и как-то костыльно на мой взгляд. Что посоветуете?
Alex
Важно помнить, что "хельм" ближайший друг "биткойна"!
Alex
Андрей А
Тоже думал, но если порт ниже чем заявленный для использования? Можно конечно и переопределить
Yuri
в манифесте можно задать range от и до
Андрей А
Да я об этом тоже, но какие еще варианты посоветуете?
Yuri
nginx, прекрасно работает
Игорь
type: LoadBalancer
Alex
type: LoadBalancer
Я думаю - так можно, но как-то избыточно.
Андрей А
С type LoadBalancer есть проблема в том что у меня metallb и один IP. Знаю что есть настройка позволяющая шарить один IP но чет там ограничения всякие
Solyar
Ребят, а Prometheus может отслеживать как часто один микросервис обращается к другому?
Andrey
Ребят, а Prometheus может отслеживать как часто один микросервис обращается к другому?
Это скорее к istio или заводить общение между ними через ingress. Но это так то фейспалм
Alex
Это скорее к istio или заводить общение между ними через ingress. Но это так то фейспалм
Нецелесообразно строить service mesh, когда у тебя, к примеру, 5 микросервисов
Yuri
или zipkin
Andor
opentracing в общем
Andor
но конечно можно в прометей отдавать счётчик, если очень хочешь
Stefan
“нет ничего более постоянного чем временное” )
да не)) тут наоборот, уже остро стоит отказаться от этого говна
Alex
тебе нужен jaegar
если не трейсить запросы, а просто посчитать количество - то не нужен
Solyar
если не трейсить запросы, а просто посчитать количество - то не нужен
Сокрее это У меня задача, просто посмотреть как часто в определенный микросервис летят запросы. Если их много (а этого быть не должно) значит оптимизировать сервис
Stefan
“нет ничего более постоянного чем временное” )
- image: {{ .Values.image | default "rm.domain.com/rm/pdc:".Values.namespace }} а не в курсе, что не правильно? хочу просто подставить два .Values в одну строку, а оно ни в какую не хочет применяться, по разному уже пробовал
Andor
Andor
но вопрос скорее в церковь метрик, чем в этот чят
🎄у
как понять почему под залип в состоянии ContainerCreating?
Andor
describe
Stefan
Anton
а на интерфейсе в контейнере?
короч выяснилось, что calico ippool имел ipipMode Always, что ломало хождение трафике между нодами хотя ipip=false, выставлялся FELIX_IPINIPMTU=1400. но я хз влияет ли эта переменная на ippool, вроде как она нужна для правильной настройки tunl0 и без нее вроде не обойтись
Stefan
хм… пробел после второй кавычки пробовал ставить?
да, но тогда в выхлопе получаю image: dev, то есть отрезается то, что в скобках(
🎄у
describe
понятнее чёт не стало
🎄у
в евентах нет ошибок
🎄у
ссылки нельзя тут постить?
Stefan
ссылки нельзя тут постить?
ну пастбином как минимум бросаются
🎄у
ссылка на гист выпиливается
🎄у
хм :) и пастебин тоже выпиливается
🎄у
видать не хватает кармы
Stefan
используйте printf https://github.com/helm/helm/blob/master/docs/charts_tips_and_tricks.md#creating-image-pull-secrets
{{ .Values.image | default (printf "rm.nexus.domain.com/rm/pdc:") .Values.namespace }} сделал так, но всё равно dev выводит
Anton
а что нужно получить?
Stefan
а что нужно получить?
rm.nexus.domain.com/rm/pdc:dev
Alex
rm.nexus.domain.com/rm/pdc:dev
image: {{ .Values.image | default (printf "rm.nexus.domain.com/rm/pdc:%s" .Values.namespace) }}
Alex
вот так работает
Stefan
image: {{ .Values.image | default (printf "rm.nexus.domain.com/rm/pdc:%s" .Values.namespace) }}
капец, спасибо, из-за какого-то %s! а для чего оно, можешь объяснить, пожалуйста?
Anton
printf работает так
Anton
форматирует строку
🎄у
как для calico указать какой физический интерфейс использовать? На хосте два интерфейса, похоже он не за тот цепляется
🎄у
calico/node is not ready: BIRD is not ready: BGP not established with 172.17.40.1902019-05-17 09:16:25.759 [INFO][141] readiness.go 88: Number of node(s) with BGP peering established = 1
Stefan
printf работает так
то есть это имеется ввиду, что я поставив в конце %s, указываю явно, что всё что перед %s является строкой?
Stefan
нет. это говорит ему что нужно в шаблон на место %s вставить строку
но ведь оно и так подставляло часть строки, но при этом название реджестри игнорировало
Stefan
не совсем просто понимаю его логики
Anton
не совсем просто понимаю его логики
https://golang.org/pkg/text/template/ тут говорят printf An alias for fmt.Sprintf
Anton
https://golang.org/pkg/fmt/#Sprintf
Alex
но ведь оно и так подставляло часть строки, но при этом название реджестри игнорировало
Оно подставляет фиксированно то, что по умолчанию в кавычках, там же в скобках ты говоришь, что тебе надо подставить ещё текст (%s), а какой - ты явно сказать не можешь, потому что это - переменная (.Values.namespace)
Alex
в кавычках подставляет
🎄у
разбанил
спасибо :)
Alex
ага, то есть оно игнорировало название реджестри, из-за того что не понимало, что там что-то нужно было еще доставить после скобок?
Чувак, почитай что-нибудь про подстановку (substitution), да хотя бы в bash, типа ${PATH}. Потому что лучше чем я объяснил я объяснить уже не могу!
Andrey
ага, то есть оно игнорировало название реджестри, из-за того что не понимало, что там что-то нужно было еще доставить после скобок?
у тебя функции printf передавался один аргумент, а .Values.namespace уже после скобки. Получается, что ты default вызывал с тремя аргументами
Andrey
и вообще в этом случае можно было cat вызывать вместо printf
Andrey
{{ .Values.image | default (cat "rm.nexus.domain.com/rm/pdc:" .Values.namespace) }}