Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes 未获取许可控制器中环境条目的ConfigMapKeyRef_Kubernetes_Webhooks - Fatal编程技术网

Kubernetes 未获取许可控制器中环境条目的ConfigMapKeyRef

Kubernetes 未获取许可控制器中环境条目的ConfigMapKeyRef,kubernetes,webhooks,Kubernetes,Webhooks,我正在开发一个MutatingAdmissionWebhookmonitoringDeploymentGo中的对象。webhook正在运行并正确接收请求 我正试图通读部署->规范->容器->环境列表 我能够获得env列表,但是我已经为这些env变量定义了ConfigMapKeyRef,它将以nil的形式出现 当我从中转储值时,我得到的是 %!(EXTRA *v1.EnvVarSource=&EnvVarSource{FieldRef:nil,ResourceFieldRef:nil, C

我正在开发一个
MutatingAdmissionWebhook
monitoring
Deployment
Go中的对象。webhook正在运行并正确接收请求

我正试图通读部署->规范->容器->环境列表

我能够获得env列表,但是我已经为这些env变量定义了
ConfigMapKeyRef
,它将以nil的形式出现

当我从中转储
值时,我得到的是

%!(EXTRA *v1.EnvVarSource=&EnvVarSource{FieldRef:nil,ResourceFieldRef:nil,
ConfigMapKeyRef:nil,SecretKeyRef:&SecretKeySelector{
LocalObjectReference:LocalObjectReference{Name:myuser,},Key:username,Optional:nil,},})
我希望在
ConfigMapKeyRef
中找到
ConfigMap
的全名

我正在运行Kubernetes客户端v1.14.0

有什么办法解决这个问题吗

谢谢


-Sreeni

表示对象引用未设置为对象的实例

这里有一个类似的问题:

防止无引用异常的提示

  • 使用有效值初始化变量

  • 如果变量可以为null,则检查nill并适当地处理它

  • 用这个?如果可能,请在方法上使用运算符。stringvar?.ToUpper()
  • 使用诸如Resharper之类的工具来帮助指出潜在的nill引用异常
  • 有用文章:


    准入控制器文档:。

    这意味着对象引用未设置为对象的实例

    这里有一个类似的问题:

    防止无引用异常的提示

  • 使用有效值初始化变量

  • 如果变量可以为null,则检查nill并适当地处理它

  • 用这个?如果可能,请在方法上使用运算符。stringvar?.ToUpper()
  • 使用诸如Resharper之类的工具来帮助指出潜在的nill引用异常
  • 有用文章:


    准入控制员文档:.

    使用测试:
    -正在验证许可Webhook(节点js)
    -Kubernetes v1.15.2
    -吊舱规格:

    spec:
      containers:
      - image: nginx
        name: nginx-with-env
        env:
        - name: PASSWORD
          value: fail
        - name: PASSWORD
          value: fail
        - name: SPECIAL_LEVEL_KEY
          valueFrom:
            configMapKeyRef:
              name: special-config
              key: SPECIAL_LEVEL
        - name: SPECIAL_TYPE_KEY
          valueFrom:
            configMapKeyRef:
              name: special-config
              key: SPECIAL_TYPE
    
    我在从AdmissionReview请求对象中读取此值(“ConfigMapKeyRef中ConfigMap的全名”)时没有任何问题

    当我使用ConfigMap的数据转储其中一个环境的值时,例如:
    container.env[2].valueFrom
    ,我得到了类似JSON的对象:

    {“configMapKeyRef”:{“name”:“special config”,“key”:“special_LEVEL”}
    }

    在Go lang中,您应该使用以下语法在上下文中引用数据:

    env.ValueFrom.ConfigMapKeyRef.Name
    

    测试时使用
    -正在验证许可Webhook(节点js)
    -Kubernetes v1.15.2
    -吊舱规格:

    spec:
      containers:
      - image: nginx
        name: nginx-with-env
        env:
        - name: PASSWORD
          value: fail
        - name: PASSWORD
          value: fail
        - name: SPECIAL_LEVEL_KEY
          valueFrom:
            configMapKeyRef:
              name: special-config
              key: SPECIAL_LEVEL
        - name: SPECIAL_TYPE_KEY
          valueFrom:
            configMapKeyRef:
              name: special-config
              key: SPECIAL_TYPE
    
    我在从AdmissionReview请求对象中读取此值(“ConfigMapKeyRef中ConfigMap的全名”)时没有任何问题

    当我使用ConfigMap的数据转储其中一个环境的值时,例如:
    container.env[2].valueFrom
    ,我得到了类似JSON的对象:

    {“configMapKeyRef”:{“name”:“special config”,“key”:“special_LEVEL”}
    }

    在Go lang中,您应该使用以下语法在上下文中引用数据:

    env.ValueFrom.ConfigMapKeyRef.Name
    

    你能发布整个部署和你的代码吗?你能发布整个部署和你的代码吗?