В настоящее время я пытаюсь выполнить развертывание в двух разных кластерах openshift, но я хочу использовать только один файл deployconfig. Есть ли хороший способ преодолеть текущую проблему
apiVersion: v1
kind: DeploymentConfig
metadata:
labels:
app: my-app
deploymentconfig: my-app
name: my-app
spec:
selector:
app: my-app
deploymentconfig: my-app
strategy:
type: Rolling
rollingParams:
intervalSeconds: 1
maxSurge: 25%
maxUnavailability: 25%
timeoutSeconds: 600
updatePeriodSeconds: 1
replicas: 1
template:
metadata:
labels:
app: my-app
deploymentconfig: my-app
spec:
containers:
- name: my-app-container
image: 172.0.0.1:5000/int-myproject/my-app:latest
imagePullPolicy: Always
ports:
- containerPort: 8080
protocol: TCP
env:
- name: ROUTE_PATH
value: /my-app
- name: HTTP_PORT
value: "8080"
- name: HTTPS_PORT
value: "8081"
restartPolicy: Always
dnsPolicy: ClusterFirst
Теперь, если вы посмотрите на spec.template.spec.containers [0] .image, есть две проблемы с этим
Nr.1
172.0.0.1: 5000 / int-myproject / my-app: последний
IP-адрес внутреннего реестра будет отличаться для двух сред
Nr.2
172.0.0.1: 5000 / int-myproject / my-app: последний
Пространство имен также не будет таким же. В этом сценарии я хочу, чтобы это был int-myproject или prod-myproject в зависимости от среды, в которой я хочу выполнить развертывание. Я подумал, может быть, есть способ использовать параметры в yaml и передать их openshift, как-то похоже на это
oc create -f deploymentconfig.yaml --namespace=int-myproject
и есть параметр типа $ {namespace} в моем файле yaml. Есть ли хороший способ добиться этого?