我已经在配置文件中挂载了configmap,但是在部署过程中有条件通过oc create configmap命令创建了configmap。有什么办法可以在我的deployment.yaml中挂载路径,但是当configmap不存在时,它可以忽略该错误并以任何方式调出pods。
答案 0 :(得分:0)
为您的应用编写CRD
和CRD controller
可以解决此问题。您可以为crd
部署yaml,控制器将检查是否存在configmap
。根据结果,controller
将更改deployment
Yaml并将其部署。
答案 1 :(得分:0)
请参考ConfigMapVolumeSource和ValidatingWebhookConfiguration 可以找到可选参数:
Specify whether the ConfigMap or it's keys must be define
因此,请尝试在卷configmap的属性中添加“ optional: true
”:
volumes:
- name: config-volume
configMap:
# Provide the name of the ConfigMap containing the files you want
# to add to the container
name: special-config
optional: true
注意:
在Pod规范中引用它之前,必须先创建ConfigMap(除非将ConfigMap标记为“可选” )。如果您引用的ConfigMap不存在,则Pod不会启动。同样,对ConfigMap中不存在的键的引用也会阻止Pod启动。
请告诉我是否有帮助。