openshift模板参数可以引用它在其中部署的项目名称吗?
我想通过模板将Kong API Gateway部署到我的openshift项目中。问题在于Kong似乎在做一些导致sporadic failure of DNS resolution的DNS内容。解决方法是使用FQDN(<name>.<project_name>.svc.cluster.local
)。所以,在我的模板我想这样做:openshift模板参数可以引用它在其中部署的项目名称吗?
- env:
- name: KONG_DATABASE
value: postgres
- name: KONG_PG_HOST
value: "{APP_NAME}.{PROJECT_NAME}.svc.cluster.local"
我只是不知道如何获得的,如果可能有可用参数的默认设置当前PROJECT_NAME
...
你可以阅读将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)
有趣的是,这肯定会让我访问图像/容器_中的_,但是我能够定义第二个使用该值的env值吗?我必须检查,但@Harish的评论指向openshift已经提供的价值以及... – Lucas
我认为thats openshift 2所以怀疑它是一样的。关于由第一个人填充的第二个env,我不确定 – user2983542
好的,我测试了这一点,它似乎不工作。我使用向下的api创建了一个名为'APP_NAMESPACE'的新'env',并试图在另一个'env'中引用它,但结果是容器看到env的占位符而不是env:'KONG_PG_HOST ='kong -database。$ {APP_NAMESPACE} .svc.cluster.local'' – Lucas
尝试链接的UI环境屏幕:https://开头developers.openshift.com/managing-your-applications/environment-variables.html 有一张表提及所有默认的env变量和OPENSHIFT_A PP_NAME就是其中之一。 –