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