【发布时间】:2019-01-17 10:21:57
【问题描述】:
我目前正在尝试在两个不同的 openshift 集群上进行部署,但我只想使用一个部署配置文件。有什么好办法可以克服目前的问题
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:latest
内部注册表的 IP 在两个环境之间会有所不同
Nr.2
172.0.0.1:5000/int-myproject/my-app:latest
命名空间也不相同。在这种情况下,我希望它是 int-myproject 或 prod-myproject,具体取决于我要部署到的环境。我在想也许有一种方法可以在 yaml 中使用参数并将它们传递给 openshift,类似于此
oc create -f deploymentconfig.yaml --namespace=int-myproject
并且在我的 yaml 文件中有一个类似 ${namespace} 的参数。有什么好的方法可以实现吗?
【问题讨论】:
标签: yaml openshift environment