Я предпочитаю использовать Шаблоны Openshift для развертываний или изменений.Этот способ помогает кодировать инфраструктуру, в основном Инфраструктура как код для управления версиями , и помогает реплицировать то же самое в разных средах.
Например, рассмотрим этот шаблон развертывания :
$ cat deployment.yaml
apiVersion: v1
items:
- apiVersion: v1
kind: DeploymentConfig
metadata:
annotations:
openshift.io/generated-by: OpenShiftNewApp
creationTimestamp: null
labels:
app: "${APPLICATION_NAME}"
name: "${APPLICATION_NAME}"
spec:
replicas: 1
selector:
app: "${APPLICATION_NAME}"
deploymentconfig: "${APPLICATION_NAME}"
strategy:
resources: {}
rollingParams:
intervalSeconds: 1
maxSurge: 25%
maxUnavailable: 25%
timeoutSeconds: 600
updatePeriodSeconds: 1
type: Rolling
template:
metadata:
annotations:
openshift.io/generated-by: OpenShiftNewApp
creationTimestamp: null
labels:
app: "${APPLICATION_NAME}"
deploymentconfig: "${APPLICATION_NAME}"
spec:
containers:
- env:
- name: param1
value: value1
- name: param2
value: value2
image: "${DOCKER_IMAGE}"
imagePullPolicy: Always
name: "${APPLICATION_NAME}"
ports:
- containerPort: PORT1
protocol: TCP
livenessProbe:
failureThreshold: 3
httpGet:
path: ${HEALTHCHECK_PATH}
port: ${LIVENESS_PORT}
scheme: HTTPS
initialDelaySeconds: 300
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 30
readinessProbe:
failureThreshold: 3
httpGet:
path: ${HEALTHCHECK_PATH}
port: ${READINESS_PORT}
scheme: HTTPS
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 30
resources:
limits:
cpu: ${CPU_MAX}
memory: ${MEMORY_MAX}
requests:
cpu: ${CPU_DEFAULT}
memory: ${MEMORY_DEFAULT}
terminationMessagePath: /dev/termination-log
dnsPolicy: ClusterFirst
restartPolicy: Always
securityContext: {}
terminationGracePeriodSeconds: 30
test: false
triggers:
- type: ConfigChange
status: {}
kind: List
metadata: {}
Над шаблоном есть 2 переменные, а конфигурация развертывания создается с помощью команды oc apply -f deployment.yaml
.
- name: param1
value: value1
- name: param2
value: value2
Так что теперь для обновления переменных среды в Openshift , я предлагаю добавить новую переменную в шаблон следующим образом:
- name: param1
value: value1
- name: param2
value: value2
- name: param3
value: value3
Использовать та же команда oc apply -f deployment.yaml
до обновить новые переменные среды или ту же команду можно использовать для обновления существующих параметров.
У Openshift есть интеллект для обновления конфигурации только в случае изменения конфигурации .Таким образом можно обновлять не только переменные окружения , но и любые другие конфигурации, такие как процессор, память, реплики, образы док-станции и т. Д.
Надеюсь, это поможет!