Обновление CI / CD Multicontainer Pod - PullRequest
0 голосов
/ 05 марта 2019

Я пытаюсь построить мультиконтейнер POD через конвейер и выпустить его через Helm Charts.

Для одного контейнера контейнера, я могу сделать это, которое работает, передать версию и местоположение контейнера в рулевую диаграмму:

    helm upgrade --install \
   --set image.repository=${CI_REGISTRY}/${ENVIRONMENT,,}/${CI_PROJECT_NAME} \
   --set image.tag=${CI_COMMIT_SHA} \
   ${CI_PROJECT_NAME} \

Как передать версию или местоположение для конкретного контейнера, если справочная таблица представляет собой многоконтейнерный модуль?

containers:
        - repo: myrepo/qa/helloworld1
          tag: e2fd70931d264490b2d25012e884897f970f5916
          pullPolicy: Always
          ports:
            container: 8090
          livenessProbe:
            initialDelaySeconds: 6
            tcpSocket:
              port: 8090
          resources:
              requests:
                memory: 128Mi
                cpu: 50m
              limits:
                memory: 128Mi
                cpu: 100m
        - repo: myrepo/qa/helloworld2
          tag: 6bb39948f2a5f926f7968480435ec39a4e07e721
          pullPolicy: Always
          ports:
            container: 8080
          livenessProbe:
            initialDelaySeconds: 6
            tcpSocket:
              port: 8080
          resources:
              requests:
                memory: 128Mi
                cpu: 50m
              limits:
                memory: 128Mi
                cpu: 100m



1 Ответ

1 голос
/ 05 марта 2019

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

containers:
  - image: {{ .Values.image.repository }}/app-name:{{ .Values.image.tag }}

Хелм шаблонов развертывания. Yaml. По умолчанию он заменяет каждое из значений в диаграмме на значения по умолчанию, указанные в файле values.yaml, который является частью этой диаграммы. Всякий раз, когда вы запускаете команду helm, такую ​​как helm install или helm upgrade --install и указываете флаг --set, вы переопределяете значения по умолчанию, указанные в values.yaml. См. документы по обновлению руля для получения дополнительной информации о переопределении значений в диаграмме .

Чтобы ответить на ваш вопрос: это зависит от того, как определяется этот график. Часто вы видите, что в values.yaml многоконтейнерного модуля вы определяете два набора изображений, например ::

# values.yaml
image1:
  tag: <sha-here>
  repository: <repo-here>

image2:
  tag: <sha-here>
  repository: <repo-here>

и затем на диаграмме вы можете обратиться к этим значениям, указав:

containers:
  - image: {{ .Values.image1.repository }}/app-name:{{ .Values.image1.tag }}

Однако это зависит от вашей конкретной диаграммы Хелма, где вы указываете эти значения. Можете ли вы обновить свою карту руля? Или это внешний график?

...