openshift 模板参数可以引用它正在部署的项目名称吗?
Can an openshift template parameter refer to the project name in which it is getting deployed?
我正在尝试通过模板将 Kong API 网关部署到我的 openshift 项目。问题是 Kong 似乎在做一些导致 sporadic failure of DNS resolution 的 DNS 事情。解决方法是使用 FQDN (<name>.<project_name>.svc.cluster.local
)。所以,在我的模板中,我想做的是:
- env:
- name: KONG_DATABASE
value: postgres
- name: KONG_PG_HOST
value: "{APP_NAME}.{PROJECT_NAME}.svc.cluster.local"
我只是不确定如何获取当前 PROJECT_NAME
如果可能有一组默认的可用参数...
您可以从 Kubernetes 向下读取命名空间(项目名称)API 到环境变量中,然后在值中使用它。
例如,请参阅 OpenShift 文档 here。
根据克莱顿评论更新:
经过测试,部署配置中的以下代码段有效。
- env:
- name: MY_POD_NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
- name: EXAMPLE
value: example.$(MY_POD_NAMESPACE)
在 运行 容器内:
sh-4.2$ echo $MY_POD_NAMESPACE
testing
sh-4.2$ echo $EXAMPLE
example.testing
在 UI 的环境屏幕中,它显示为字符串值,例如 example.$(MY_POD_NAMESPACE)
我正在尝试通过模板将 Kong API 网关部署到我的 openshift 项目。问题是 Kong 似乎在做一些导致 sporadic failure of DNS resolution 的 DNS 事情。解决方法是使用 FQDN (<name>.<project_name>.svc.cluster.local
)。所以,在我的模板中,我想做的是:
- env:
- name: KONG_DATABASE
value: postgres
- name: KONG_PG_HOST
value: "{APP_NAME}.{PROJECT_NAME}.svc.cluster.local"
我只是不确定如何获取当前 PROJECT_NAME
如果可能有一组默认的可用参数...
您可以从 Kubernetes 向下读取命名空间(项目名称)API 到环境变量中,然后在值中使用它。
例如,请参阅 OpenShift 文档 here。
根据克莱顿评论更新:
经过测试,部署配置中的以下代码段有效。
- env:
- name: MY_POD_NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
- name: EXAMPLE
value: example.$(MY_POD_NAMESPACE)
在 运行 容器内:
sh-4.2$ echo $MY_POD_NAMESPACE
testing
sh-4.2$ echo $EXAMPLE
example.testing
在 UI 的环境屏幕中,它显示为字符串值,例如 example.$(MY_POD_NAMESPACE)