Передайте параметр динамически при исправлении конфигурации развертывания - PullRequest
0 голосов
/ 14 мая 2019

Я хочу передать параметр динамически при исправлении любой конфигурации развертывания

oc patch dc / action-msa -p "$ (cat msa-patch.yml)" --param service_account = msa-service-account

  spec:
     template:
       spec:
       serviceAccountName: ${service_account}
       restartPolicy: "Always"

       initContainers:
         - name: vault-init
           image: ${init_container_image}
           imagePullPolicy: Always
       containers:
        - name: ${SERVICE_NAME}-java-service
          image: ${main_container_image}

Есть ли возможность или способ динамически передавать service_account, init_container_image и service_name при исправлении с использованием openshift oc?

1 Ответ

0 голосов
/ 14 мая 2019

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

Ваш deploy.yaml выглядит следующим образом:

  spec:
     template:
       spec:
       serviceAccountName: {{service_account}}
       restartPolicy: "Always"

       initContainers:
         - name: vault-init
           image: {{init_container_image}}
           imagePullPolicy: Always
       containers:
        - name: {{SERVICE_NAME}}
          image: {{main_container_image}}

ваш env.file выглядит так:

service_account="some_account"
init_container_image="some_image"
SERVICE_NAME="service_name"

Затем запустите

oc patch dc/action-msa -p \
"$(source env.file && cat deployment.yml  | \
sed "s/{{service_account}}/service_account/g"| \
sed "s/{{init_container_image}}/init_container_image/g"| \
sed "s/{{SERVICE_NAME}}/SERVICE_NAME/g")" --param service_account=msa-service-account

Надеюсь, это поможет

...