在创建配置映射时,“ apply -f”将返回“已创建”,“配置”或“未更改”,但是在创建空配置映射时(即data:部分为空),则它似乎总是返回“ configured” '。任何人都可以解释这些回答,因为我似乎在文档中找不到它们
(使用数据创建配置映射会产生预期的结果:“创建”为首次,根据更新对其进行“配置” /“不变”)
示例空配置图:
apiVersion: v1
kind: ConfigMap
metadata:
name: test-config
namespace: test
labels:
app: test
data:
答案 0 :(得分:0)
使用kubectl create -f
时,您会注意到:已创建,已经存在
使用kubectl apply -f
时,您会注意到:已创建,已配置,是在创建此第一项操作期间注释:kubectl.kubernetes.io/last-applied-configuration < / strong>。
请运行kubectl get cm <your ConfigMap> -n <namespace> -o yaml
并验证您的 ConfigMap
根据有关“ 声明式对象配置” here的文档:
注意:声明式对象配置保留其他编写者所做的更改,即使这些更改没有合并回到对象配置文件中。通过使用补丁API操作仅写入观察到的差异,而不是使用replace API操作来替换整个对象配置,这是可能的。
请使用:
kubectl diff -f <your configmap yaml file>
来查看您的配置和实时配置之间的差异,以及将被 patch API操作取代的内容。
这还取决于“ 如何合并不同类型的字段”,您可以找到详细信息here
希望获得帮助。