命名空间转换完成后如何让 kustomize 运行补丁?
示例,重现:
扩展配置.yaml
apiVersion: runtime.cluster.x-k8s.io/v1alpha1
kind: ExtensionConfig
metadata:
name: my-extensionconfig
kustomization.yaml
resources:
- extensionconfig.yaml
namespace: foooo
输出:
❯ kubectl kustomize .
apiVersion: runtime.cluster.x-k8s.io/v1alpha1
kind: ExtensionConfig
metadata:
name: my-extensionconfig
namespace: foooo
现在命名空间“foooo”已设置。现在我想使用相同的 kustomization.yaml 文件更新此资源,并执行额外的补丁。
要在添加命名空间后应用补丁,请使用 patchStrategicMerge。该补丁适用于已经转换的资源。
像这样创建一个补丁文件
apiVersion: runtime.cluster.x-k8s.io/v1alpha1
kind: ExtensionConfig
metadata:
name: my-extensionconfig
namespace: foooo # Match the resource's namespace after transformation
spec:
additionalField: new-value # Add or update a field in `spec`
然后在 kustomization.yaml 文件中添加 patchStrategicMerge 字段以包含补丁。
resources:
- extensionconfig.yaml
namespace: foooo
patchesStrategicMerge:
- my-patch.yaml