Всем добрый день. Подскажите плз такой момент, вчера смотрел видео

по сравнению werf от helm которое не так давно Илья из Фланта объяснял, я не совсем понимаю такой момент когда при помощи werf мы собираем и пушим и запускаем в кубере деплоймент, переменные которые например объявлены в .env откуда из берет Докер при запуске, эти переменные в чарте шаблонов нужно объявлять или werf их то же увидит и передаст при запуске?

9 ответов

26 просмотров

Ты верфу можешь подложить большое количество файлов WERF_VALUES_SOLUTION: solutions/${IXORA_CICD_SOLUTION}/${IXORA_CICD_SOLUTION}.yml WERF_VALUES_STEND: solutions/${IXORA_CICD_SOLUTION}/stend-${IXORA_CICD_STEND_NAME}.yml Он из них сделает большой валюй, который использует потом для helm

Konstantin S
Ты верфу можешь подложить большое количество файло...

да этот вариант для разных стендов подойдет - это я понимаю, немного в другом вопрос увидит ли werf переменные которые в .env откуда их просто при запуске через docker если обычный мы запускаем или так же надо в deployment.yaml который положим в чарт класть?

Ruslan (Skench) Minislamov (JYG)🇷🇺
да этот вариант для разных стендов подойдет - это ...

Эммм... ты разные сущности сравниваешь. Есть общий блок переменных - некий глобальный values.yaml, который ты набиваешь своими переменными, которые тебе нужны для двух целей. 1. Развернуться - сформировать деплоймент, сервис и т.д. 2. Те переменные которые нужны приложению, их надо смаппить в helm templates Типа того spec: replicas: {{ $stendMs.replicaCount | default $defaultValues.microservises.replicaCount }} selector: matchLabels: microservice: {{ $ms.name }} solution: {{ $solution.name }} template: metadata: labels: microservice: {{ $ms.name }} solution: {{ $solution.name }} spec: containers: - name: {{ $ms.name }} image: {{ index $root.Values.werf.image $ms.name }} ports: - containerPort: {{ $stendMs.containerPort | default defaultValues.microservises.containerPort}} env: {{- if $stend.env }} {{- range $env := $stend.env}} - name: {{ $env.name }} value: {{ $env.value | quote }} {{- end }} {{- end }} {{- if $ms.env }} {{- range $env := $ms.env}} - name: {{ $env.name }} value: {{ $env.value | quote }} {{- end }} {{- end }} {{- if $stendMs.affinity }} affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/hostname operator: {{ $stendMs.affinity.operator | quote }} values: - {{ $stendMs.affinity.host | quote }} {{- end }}

Konstantin S
Эммм... ты разные сущности сравниваешь. Есть общий...

да я понимаю, просто повторюсь было бы удобно на мой пока взгляд. Спасибо огромное, Константин.

Ruslan (Skench) Minislamov (JYG)🇷🇺
да я понимаю, просто повторюсь было бы удобно на м...

Это совсем разные сущности - представь два компьютера - один управляет, другой управляется. Представь, что бы было, если бы переменные с одного на другой автоматом переносились бы... ерунда получилась бы.

Konstantin S
Это совсем разные сущности - представь два компьют...

я понимаю что разные сущности, но сравнение не корректное на мой взгляд, смотрите. .env делаем сборку и запуск обычным докером (например разраб у себя на ПК) у нас есть внутри переменные которые мы задали в .env, werf инструмент который смотрит как чарты helm и так же является элементом ci/cd который сможет запустить используя helm chart наш тестовый деплоймент, но ведь он уже делает как я понимаю сборку и запуск в k8s того или иного элемента в кубер и чтобы не объявлять переменные в двух местах как в чарте так и в .env на мой взгляд было бы удорбно если бы он и туда смотрел, так как этот файл все равно в репе чаще всего лежит, но повторюсь это мой взгляд я не особо в этом разбираюсь у каждого своя архитектура. Как по мне часто разрабы забывают указать что есть новая переменная давайте ее включим обязательно в манифесты кубера, а так есть эта переменная в .env werf ее то же увидел и взял, через f12 если будут ошибки, увидим, сделали обычный grep -R увидели что у нас такое значение там то, сделали переназначение на другое если требуется. В любом случае спс, я поняль что не использует, буду дальше ознакомливаться.

Ruslan (Skench) Minislamov (JYG)🇷🇺
я понимаю что разные сущности, но сравнение не кор...

Ты воспринимаешь кубернетес как элемент процесса мне кажется, а ты рассмотри под, как отдельный сервер. А десяток подов - как десяток разных серверов. Уверен ли ты, что разумно не иметь механизма управления переменными согласно - какому серверу они нужны... а просто не думая, единым полем выливать все явки и пароли на каждый сервер всегда. Не думаю. Ту просто механизм управления - нужны поду переменные именно такие, ну так и передай. К тому же я привел тебе выше пример, когда циклом в под забубенивается все что есть в определенном разделе, ну вот тебе решение если нужно так.

Вы про какой-то файл .env? Думали добавить их поддержку, но пока не добрались. Сейчас, как и в Helm, чтобы передать в шаблоны что-то из окружения, надо делать это через --set'ы, например: werf converge --set "mychart.myval=${MYVAL}"

Ilya Lesikov L.
Вы про какой-то файл .env? Думали добавить их подд...

Спасибо Илья как минимум за видео ликбез и продукт. Буду ждать и читать обновления.

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

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

Подскажите пожалуйста, почему на mac m1 (arm) не монтируется ssh-agent сокет в собираемый образ? В системе не запущен ssh-agent и переменная среды SSH_AUTH_SOCK не задана. tes...
Eugene Shutov
4
всем трям! Кто-нибудь работал со связкой werf + harbor + trivy ? Во время сборки образа выходит ошибка "PROJECTPOLICYVIOLATION: current image with "Pending" status of vulnerab...
Авессалом
12
при переезде на werf v2 (2.0.4) столкнулся с тем что оно теперь пытается пропатчить namespace в который деплоит релиз хотя в шаблонах kind: namespace отсутствует. ┌ Update Na...
Sergey Sokolov
1
Всем здравствуйте!) У меня такой вопрос. Есть два роута, роут1 и роут2. Они связаны с очередью some_queue. По задаче предполагается, что есть два паблиша. Паблиш1 отправляет...
Format
10
А если для werf организовать отдельный репозиторий, а сервисы из проекта подключить как симлинки? И симлинки в гитигнор добавить?
Dmitriy Andreev
13
Ребят, всем привет. Недавно начал знакомиться с werf с целью автоматизировать сборку локальных dev стендов. Прошел гайд, почитал статьи на хабре. Появилось некоторое понимание...
Dmitriy Andreev
6
Всем привет! Хочу скрестить ужа с ежом, но не могу понять как лучше реализовать. Подскажите, пожалуйста. У меня есть кастомный оператор для бандлов werf. Он худо-бедно свою з...
სერგეი ქრისტოვი
6
Коллеги, всем доброго времени суток ! Подскажите пож-ста, правильно ли я понимаю, что gitWorktree: forceShallowClone: true allowUnshallow: false отключает вытягивание и...
Абырвалг Мутагенов
1
всем привет, подскажите, может есть способ срендерить чарт с помощью werf, указав при этом реджистри, в который нет доступа? дело в том, что по политике безопасности мне нужно...
Alexandr Alexandr
4
@ilya_lesikov у меня самый важный вопрос про будущее Werf) Сейчас предполагается наличие директории с именем .helm в качестве каталога чарта. Планируется ли в будущем поддержк...
Alexander Kozharsky
1
Карта сайта