openshift模板参数是否可以引用其部署的项目名称?

时间:2017-08-25 14:21:55

标签: kubernetes openshift openshift-origin

我正在尝试通过模板将Kong API Gateway部署到我的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 ...

1 个答案:

答案 0 :(得分:2)

您可以从Kubernetes向下API读取名称空间(项目名称)到环境变量中,然后在值中使用它。

例如,请参阅OpenShift文档here

基于Claytons的更新评论:

已从部署配置中测试并显示以下代码段。

- 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

在用户界面的环境屏幕中,它显示为字符串值,例如example.$(MY_POD_NAMESPACE)