我如何忽略错误“ MountVolume.SetUp”,该错误对于卷“ cofigmap-volume”失败:找不到configmaps“ configmap”

时间:2019-09-30 06:10:08

标签: kubernetes openshift

我已经在配置文件中挂载了configmap,但是在部署过程中有条件通过oc create configmap命令创建了configmap。有什么办法可以在我的deployment.yaml中挂载路径,但是当configmap不存在时,它可以忽略该错误并以任何方式调出pods。

2 个答案:

答案 0 :(得分:0)

为您的应用编写CRDCRD 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

注意:

  

Restrictions

     

在Pod规范中引用它之前,必须先创建ConfigMap(除非将ConfigMap标记为“可选” )。如果您引用的ConfigMap不存在,则Pod不会启动。同样,对ConfigMap中不存在的键的引用也会阻止Pod启动。

请告诉我是否有帮助。