-
Bug
-
Resolution: Unresolved
-
Undefined
-
None
-
4.19
-
None
-
Quality / Stability / Reliability
-
False
-
-
None
-
Moderate
-
None
-
None
-
None
-
None
-
None
-
None
-
None
-
None
-
None
-
None
-
None
-
None
Description of problem:
The changes to machine set labels and annotations in MAPI are not synchronized to existing machines and nodes, they only affect new machines created after the update. But for CAPI they are synchronized to existing machines and nodes. There appear to be some gaps between MAPI and CAPI that may cause inconsistencies when migrating. awsmachine will not be consistent with others (machineset, machine, node) on removing labels or annotations, but for adding and updating labels or annotations, it will be consistent with others.
Version-Release number of selected component (if applicable):
4.19.0-0.nightly-2025-03-26-070608
How reproducible:
always
Steps to Reproduce:
1.Create a awsmachinetemplate, then a capi machineset. liuhuali@Lius-MacBook-Pro huali-test % cat capimachineset926.yaml apiVersion: cluster.x-k8s.io/v1beta1 kind: MachineSet metadata: labels: cluster.x-k8s.io/cluster-name: huliu-aws327a-gt8j4 name: capi-machineset namespace: openshift-cluster-api spec: clusterName: huliu-aws327a-gt8j4 deletePolicy: Newest replicas: 1 selector: matchLabels: cluster.x-k8s.io/cluster-name: huliu-aws327a-gt8j4 machine.openshift.io/cluster-api-cluster: huliu-aws327a-gt8j4 template: metadata: annotations: anno1: "" anno3: "" anno5: anno5 anno7: anno7 labels: lable1: "" lable3: "" label5: label5 label7: label7 cluster.x-k8s.io/cluster-name: huliu-aws327a-gt8j4 machine.openshift.io/cluster-api-cluster: huliu-aws327a-gt8j4 spec: bootstrap: dataSecretName: worker-user-data clusterName: huliu-aws327a-gt8j4 infrastructureRef: apiVersion: infrastructure.cluster.x-k8s.io/v1beta2 kind: AWSMachineTemplate name: aws-machinetemplate liuhuali@Lius-MacBook-Pro huali-test % oc create -f capimachineset926.yaml machineset.cluster.x-k8s.io/capi-machineset created 2. Check there are the labels and annotations on machine, awsmachine and node. liuhuali@Lius-MacBook-Pro huali-test % oc get machine.c capi-machineset-8jkzm -oyaml apiVersion: cluster.x-k8s.io/v1beta1 kind: Machine metadata: annotations: anno1: "" anno3: "" anno5: anno5 anno7: anno7 creationTimestamp: "2025-03-27T11:33:34Z" finalizers: - machine.cluster.x-k8s.io generation: 2 labels: cluster.x-k8s.io/cluster-name: huliu-aws327a-gt8j4 cluster.x-k8s.io/set-name: capi-machineset label5: label5 label7: label7 lable1: "" lable3: "" machine.openshift.io/cluster-api-cluster: huliu-aws327a-gt8j4 name: capi-machineset-8jkzm namespace: openshift-cluster-api ... liuhuali@Lius-MacBook-Pro huali-test % oc get awsmachine capi-machineset-8jkzm -oyaml apiVersion: infrastructure.cluster.x-k8s.io/v1beta2 kind: AWSMachine metadata: annotations: anno1: "" anno3: "" anno5: anno5 anno7: anno7 cluster.x-k8s.io/cloned-from-groupkind: AWSMachineTemplate.infrastructure.cluster.x-k8s.io cluster.x-k8s.io/cloned-from-name: aws-machinetemplate sigs.k8s.io/cluster-api-provider-aws-last-applied-security-groups: '{"sg-0017fbfe45a8d1c43":{},"sg-05fe540dfac0dec53":{}}' sigs.k8s.io/cluster-api-provider-last-applied-tags-on-volumes: '{"vol-01238cbd748334f68":{}}' creationTimestamp: "2025-03-27T11:33:34Z" finalizers: - awsmachine.infrastructure.cluster.x-k8s.io generation: 2 labels: cluster.x-k8s.io/cluster-name: huliu-aws327a-gt8j4 cluster.x-k8s.io/set-name: capi-machineset label5: label5 label7: label7 lable1: "" lable3: "" machine.openshift.io/cluster-api-cluster: huliu-aws327a-gt8j4 name: capi-machineset-8jkzm namespace: openshift-cluster-api ... liuhuali@Lius-MacBook-Pro huali-test % oc get node ip-10-0-8-9.us-east-2.compute.internal -oyaml apiVersion: v1 kind: Node metadata: annotations: anno1: "" anno3: "" anno5: anno5 anno7: anno7 ... labels: ... label5: label5 label7: label7 lable1: "" lable3: "" ... 3. Update the machineset, change the labels and annotations to below template: metadata: annotations: anno1: newanno1 anno6: anno6 labels: cluster.x-k8s.io/cluster-name: huliu-aws327a-gt8j4 label6: label6 lable3: newlabel3 machine.openshift.io/cluster-api-cluster: huliu-aws327a-gt8j4 4. Check on the machine, awsmachine, node. Found the updates are synchronized to the existing machine and node, but the deleted labels and annotations still shows on awsmachine. liuhuali@Lius-MacBook-Pro huali-test % oc get machine.c capi-machineset-8jkzm -oyaml apiVersion: cluster.x-k8s.io/v1beta1 kind: Machine metadata: annotations: anno1: newanno1 anno6: anno6 creationTimestamp: "2025-03-27T11:33:34Z" finalizers: - machine.cluster.x-k8s.io generation: 2 labels: cluster.x-k8s.io/cluster-name: huliu-aws327a-gt8j4 cluster.x-k8s.io/set-name: capi-machineset label6: label6 lable3: newlabel3 machine.openshift.io/cluster-api-cluster: huliu-aws327a-gt8j4 name: capi-machineset-8jkzm namespace: openshift-cluster-api ... liuhuali@Lius-MacBook-Pro huali-test % oc get awsmachine capi-machineset-8jkzm -oyaml apiVersion: infrastructure.cluster.x-k8s.io/v1beta2 kind: AWSMachine metadata: annotations: anno1: newanno1 anno3: "" anno5: anno5 anno6: anno6 anno7: anno7 cluster.x-k8s.io/cloned-from-groupkind: AWSMachineTemplate.infrastructure.cluster.x-k8s.io cluster.x-k8s.io/cloned-from-name: aws-machinetemplate sigs.k8s.io/cluster-api-provider-aws-last-applied-security-groups: '{"sg-0017fbfe45a8d1c43":{},"sg-05fe540dfac0dec53":{}}' sigs.k8s.io/cluster-api-provider-last-applied-tags-on-volumes: '{"vol-01238cbd748334f68":{}}' creationTimestamp: "2025-03-27T11:33:34Z" finalizers: - awsmachine.infrastructure.cluster.x-k8s.io generation: 2 labels: cluster.x-k8s.io/cluster-name: huliu-aws327a-gt8j4 cluster.x-k8s.io/set-name: capi-machineset label5: label5 label6: label6 label7: label7 lable1: "" lable3: newlabel3 machine.openshift.io/cluster-api-cluster: huliu-aws327a-gt8j4 name: capi-machineset-8jkzm namespace: openshift-cluster-api ... liuhuali@Lius-MacBook-Pro huali-test % oc get node ip-10-0-8-9.us-east-2.compute.internal -oyaml apiVersion: v1 kind: Node metadata: annotations: anno1: newanno1 anno6: anno6 ... labels: ... label6: label6 lable3: newlabel3 ...
Actual results:
Update labels and annotations in CAPI are synchronized to existing machines and nodes, but in MAPI they are not synchronized to existing machines and nodes, they only affect new machines created after the update. awsmachine will not be consistent with others (machineset, machine, node) on removing labels or annotations, but for adding and updating labels or annotations, it will be consistent with others.
Expected results:
CAPI and MAPI should be feature parity and behave the same. Labels and annotations changes should be consistent across all resources (machineset, machine, awsmachine, node).
Additional info:
must-gather: https://drive.google.com/file/d/1ybB2jmNCDprwbO_YLCVXHPnZyUM-XXUF/view?usp=sharing This is for testing https://issues.redhat.com/browse/OCPCLOUD-2680 and https://issues.redhat.com/browse/OCPCLOUD-2860