Kubernetes Meetup Tokyo の過去の発表 + ThirdPartyResource を使った Kubernetes as a Service の実装 (#3) + KubeCon EU 2019 Recap (#20) + プロダクションレディを⽬指したアップグレード戦略 (#29) 3
-p '{"data": {"key2": "value2"}}' The ConfigMap "immutable-configmap" is invalid: data: Forbidden: field is immutable when `immutable` is set $ kubectl patch cm immutable-configmap -p '{"metadata": {"labels": {"label1": "value1"}}}}' configmap/immutable-configmap patched ▶ .data 以下は immutable field 扱いになる ▶ .metadata などは変更可能
*oldCfg.Immutable { if newCfg.Immutable == nil || !*newCfg.Immutable { allErrs = append(allErrs, field.Forbidden(field.NewPath("immutable"), "field is immutable when `immutable` is set")) } if !reflect.DeepEqual(newCfg.Data, oldCfg.Data) { allErrs = append(allErrs, field.Forbidden(field.NewPath("data"), "field is immutable when `immutable` is set")) } if !reflect.DeepEqual(newCfg.BinaryData, oldCfg.BinaryData) { allErrs = append(allErrs, field.Forbidden(field.NewPath("binaryData"), "field is immutable when `immutable` is set")) } } https://github.com/kubernetes/kubernetes/blob/v1.19.2/pkg/apis/core/validation/validation.go#L5234 ΑΓൈਮ