v2.11 to 2.12¶
Server-Side Apply Management of ApplicationSet Fields¶
Summary¶
If you are using server-side apply with multiple field managers to manage a single selector
or labelSelector
field
in an ApplicationSet, that field management must be changed to be atomic starting with 2.12.
Details¶
Argo CD 2.12 upgraded its controller-gen version from 0.4.1 to 0.14.0. As part of that change, several ApplicationSet
CRD fields now have x-kubernetes-map-type: atomic
.
Each of the affected fields is a label selector with two child keys: matchLabels
and matchExpressions
.
Prior to this change, two field managers could manage the matchLabels
and matchExpressions
fields independently.
Starting with the 2.12 CRD, a single field manager must manage both of those fields. This behavior is in line with the
upstream behavior of the label selector struct.
See the Kubernetes server-side apply merge strategy docs for more information about the fields' behavior.
The affected ApplicationSet fields are the following (jq selector syntax):
.spec.generators[].selector
.spec.generators[].cluster.selector
.spec.generators[].clusterDecisionResource.labelSelector
.spec.generators[].matrix.generators[].selector
.spec.generators[].merge.generators[].selector