172 похожих чатов

Пытаюсь использовать pluck, но не работает. Смысл: если контур dv,

только один хост, если контур prod, то два,
На prod отрабалывает. На dv отрабатывает, но если ставить | default "", но тогда в ingress будет лишний хост с указанием квадратных скобок. Как сделать, чтобы если нет значения для dv, то просто один хост отрабатывался?
hosts:
- host:
dv: appdv.mysite.ru
prod: app.mysite.ru
paths:
- path: /
port: 80
- host:
prod: appprod.mysite.ru
paths:
- path: /
port: 80

в чарте:
spec:
tls:
- hosts:
{{- range .Values.ingress.hosts }}
- {{ pluck $.Values.TIER .host | first | quote }}
{{- end }}
secretName: {{ .Values.ingress.secretName }}
rules:
{{- range .Values.ingress.hosts }}
- host: {{ pluck $.Values.TIER .host | first | quote }}
http:
paths:
{{- range .paths }}
- path: {{ .path }}
backend:
serviceName: {{ $fullName }}
servicePort: {{ .port }}
{{- end }}
{{- end }}

17 ответов

17 просмотров

Учимся задавать вопросы. Во первых, коротко. Во вторых надо указывать чего ты хочешь добиться. Пока из вопроса у тебя понятно только то, что ты используешь pluck но он даёт тебе не тот результат, который ты хочешь. Какой результат ты хочешь? Какой получаешь?

Anna- Автор вопроса
Andrey Kartashov
Учимся задавать вопросы. Во первых, коротко. Во вт...

Я хочу для контура dv в ингрессе получить только 1 хост, для контура prod два хоста. Т.е. если вот тут - host: prod: appprod.mysite.ru только prod обработать, чтобы не было ошибки. Понятно, что можно указать _default: "" или в самой функции pluck добавить | default "", но надо просто отработать так, как будто элемент отсутствует совсем. Нет его - не добавлять второй (или потом третий) хост для dv. А я получаю такое, если добавляю default значение (а мне не нужны квадратные скобки и второй хост с квадратными скобками) spec: tls: - hosts: - "appdv.mysite.ru" - "[]" secretName: directus-tls rules: - host: "appdv.mysite.ru" http: paths: - path: / backend: serviceName: directus-dv servicePort: 80 - host: "[]" http: paths: - path: / backend: serviceName: directus-dv servicePort: 80

Anna
Я хочу для контура dv в ингрессе получить только 1...

Рассказываю. Есть такой инструмент, helm называется. У него есть входные параметры (values) и шаблоны (файлики в templates). Результатом применения helm к шаблонам и values являются манифесты - валидные yaml документы. Если упрощать, то Helm(templates, values) = yaml И вот ты приходишь с вопросом в котором у тебя есть values и templates есть, а результат желаемый (yaml) - отсутствует.

Anna- Автор вопроса
Andrey Kartashov
Рассказываю. Есть такой инструмент, helm называет...

Ясненько. Короче, ничего не знаете. Бла-бла.

Anna
Ясненько. Короче, ничего не знаете. Бла-бла.

@gecube меня обижают. Я в расстройстве... Я прям не ожидал такого хамства на мое желание помочь.

Anna
Я хочу для контура dv в ингрессе получить только 1...

Из этого описания я тоже ничего не понял

Andrey Kartashov
Рассказываю. Есть такой инструмент, helm называет...

Ладно, я ради интереса попытался расшифровать: хочется на один контур повесить один домен, а на другой, продовый, два. Для этого зачем-то используется шаблономагия на полную, но чуда не происходит

Anna
Я хочу для контура dv в ингрессе получить только 1...

у вас в .Values.TIER равен dv ? а какое поведение нужно, если ключа dv нету? Просто не добавлять хост в tls и rules?

Anna
Я хочу для контура dv в ингрессе получить только 1...

В таком случае надо проверки раставить {{- range .Values.ingress.hosts }} {{- if hasKey .host $.Values.TIER }} - {{ pluck $.Values.TIER .host | first | quote }} {{- end }} {{- end }} {{- range .Values.ingress.hosts }} {{- if hasKey .host $.Values.TIER }} - host: {{ pluck $.Values.TIER .host | first | quote }} http: paths: {{- range .paths }} - path: {{ .path }} backend: serviceName: {{ $fullName }} servicePort: {{ .port }} {{- end }} {{- end }} {{- end }}

Andrey
А может лучше не надо?

Серьезно, в дефолтном бойлерплейте подход нормальный. По ямлу с values на энв и все. Шаблономагия в хелме - это возможность на экстренные случаи, а это не он

Andrey
А может лучше не надо?

это не ко мне вопросы, задачу решил как вопрос поставлен. Учить кого-то - не мое

О, я понял, кого ты мне напоминаешь. https://pikabu.ru/story/sluchay_v_ofise_ili_medvedi_2592045

Похожие вопросы

Обсуждают сегодня

У меня это всегда вопрос вызывало.. Нафига писать код так, чтобы потом ошибки вылавливать?
Nik
44
всем привет. реально ли понять чем в процессе занята память? delphi/linux, процесс свой
Handatros
12
что за асемблер кста?
Shvabrikk Nya
19
Добрый день! Пробую отловить исключение EConvertError: function _TryTextToDouble(var DoubleVar: Extended; Text: String): Boolean; begin try DoubleVar := StrToFloat...
Kirill Filippenok
19
А где @Grinyaha уважаемый пропал?
Am Ambrion
14
This automated cryptocurrency trading system uses intelligent algorithms to buy low and sell high on leading crypto exchanges. Many users have already enjoyed significant prof...
Endu Wako
1
Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Сделал краткий обзор магазина из статьи и заодно там же записал инструкцию по развёртыванию. https://www.youtube.com/watch?v=8-sE1vNk95Q (чё думаете по звуку? кое-что поменял...
Andrey K
17
Привет, коллеги! Возникла задача ограничить максимальный размер вложений для определённых расширений, например, чтобы для изображений лимит был 10 МБ, а для видео — 100 МБ. Ог...
Andro
1
Привет! Вопрос про werf helm Приложение деплоится через werf helm upgrade --atomic Иногда(все условия для воспроизведения до конца непонятны, но есть версия, что это происходи...
𝓐𝓵͢͢͢𝓮𝔁 C
2
Карта сайта