Uploaded image for project: 'OpenShift Bugs'
  1. OpenShift Bugs
  2. OCPBUGS-48658

Any update on the MAPI side should trigger the sync when user create same name capi machineset

XMLWordPrintable

    • Moderate
    • None
    • False
    • Hide

      None

      Show
      None

      Description of problem:

      Create same name capi machineset/awsmachinetemplate with mapi machineset, but deletePolicy is different, setting deletePolicy: Oldest
      Then update mapi machineset authoritativeAPI: MachineAPI(deletePolicy: Random)
      Check if capi machineset deletePolicy: Oldest will be updated
      

      Version-Release number of selected component (if applicable):

          

      How reproducible:

      Always 

      Steps to Reproduce:

      1.Create awsmachinetemplate/capi machineset with name zhsun-27-zv8vh-worker-us-east-2c(same name with mapi machineset) with deletePolicy: Oldest 
      2.Update mapi machineset zhsun-27-zv8vh-worker-us-east-2c authoritativeAPI: MachineAPI. the default deletePolicy is Random
      3.Check if capi machineset deletePolicy: Oldest will be updated to deletePolicy: Random  
      
      
          

      Actual results:

      FailedToUpdateCAPIInfraMachineTemplate  
      $ oc get machineset.m -n openshift-machine-api zhsun-27-zv8vh-worker-us-east-2c -o yaml
      apiVersion: machine.openshift.io/v1beta1
      kind: MachineSet
      metadata:
        annotations:
          capacity.cluster-autoscaler.kubernetes.io/labels: kubernetes.io/arch=amd64
          machine.openshift.io/GPU: "0"
          machine.openshift.io/memoryMb: "16384"
          machine.openshift.io/vCPU: "4"
        creationTimestamp: "2025-01-07T05:05:41Z"
        generation: 1
        labels:
          machine.openshift.io/cluster-api-cluster: zhsun-27-zv8vh
        name: zhsun-27-zv8vh-worker-us-east-2c
        namespace: openshift-machine-api
        resourceVersion: "145899"
        uid: 48f799d0-2545-4b5c-abcf-b48b47930660
      spec:
        authoritativeAPI: MachineAPI
        replicas: 1
        selector:
          matchLabels:
            machine.openshift.io/cluster-api-cluster: zhsun-27-zv8vh
            machine.openshift.io/cluster-api-machineset: zhsun-27-zv8vh-worker-us-east-2c
        template:
          metadata:
            labels:
              machine.openshift.io/cluster-api-cluster: zhsun-27-zv8vh
              machine.openshift.io/cluster-api-machine-role: worker
              machine.openshift.io/cluster-api-machine-type: worker
              machine.openshift.io/cluster-api-machineset: zhsun-27-zv8vh-worker-us-east-2c
          spec:
            authoritativeAPI: MachineAPI
            lifecycleHooks: {}
            metadata: {}
            providerSpec:
              value:
                ami:
                  id: ami-0197c5c22c44c04f1
                apiVersion: machine.openshift.io/v1beta1
                blockDevices:
                - ebs:
                    encrypted: true
                    iops: 0
                    kmsKey:
                      arn: ""
                    volumeSize: 120
                    volumeType: gp3
                capacityReservationId: ""
                credentialsSecret:
                  name: aws-cloud-credentials
                deviceIndex: 0
                iamInstanceProfile:
                  id: zhsun-27-zv8vh-worker-profile
                instanceType: m6i.xlarge
                kind: AWSMachineProviderConfig
                metadata:
                  creationTimestamp: null
                metadataServiceOptions: {}
                placement:
                  availabilityZone: us-east-2c
                  region: us-east-2
                securityGroups:
                - filters:
                  - name: tag:Name
                    values:
                    - zhsun-27-zv8vh-node
                - filters:
                  - name: tag:Name
                    values:
                    - zhsun-27-zv8vh-lb
                spotMarketOptions: {}
                subnet:
                  filters:
                  - name: tag:Name
                    values:
                    - zhsun-27-zv8vh-subnet-private-us-east-2c
                tags:
                - name: kubernetes.io/cluster/zhsun-27-zv8vh
                  value: owned
                userDataSecret:
                  name: worker-user-data
      status:
        authoritativeAPI: MachineAPI
        availableReplicas: 1
        conditions:
        - lastTransitionTime: "2025-01-07T07:32:30Z"
          message: The AuthoritativeAPI is set to MachineAPI
          reason: AuthoritativeAPIMachineAPI
          severity: Info
          status: "False"
          type: Paused
        - lastTransitionTime: "2025-01-07T07:32:30Z"
          message: 'failed to update CAPI infra machine template: admission webhook "validation.awsmachinetemplate.infrastructure.cluster.x-k8s.io"
            denied the request: AWSMachineTemplate.infrastructure.cluster.x-k8s.io "zhsun-27-zv8vh-worker-us-east-2c"
            is invalid: spec.template.spec: Invalid value: v1beta2.AWSMachineTemplate{TypeMeta:v1.TypeMeta{Kind:"AWSMachineTemplate",
            APIVersion:"infrastructure.cluster.x-k8s.io/v1beta2"}, ObjectMeta:v1.ObjectMeta{Name:"zhsun-27-zv8vh-worker-us-east-2c",
            GenerateName:"", Namespace:"openshift-cluster-api", SelfLink:"", UID:"07e06fc0-05bb-42b6-98d1-34f13ecd1c18",
            ResourceVersion:"133856", Generation:2, CreationTimestamp:time.Date(2025, time.January,
            7, 7, 23, 0, 0, time.Local), DeletionTimestamp:<nil>, DeletionGracePeriodSeconds:(*int64)(nil),
            Labels:map[string]string(nil), Annotations:map[string]string(nil), OwnerReferences:[]v1.OwnerReference(nil),
            Finalizers:[]string(nil), ManagedFields:[]v1.ManagedFieldsEntry{v1.ManagedFieldsEntry{Manager:"kubectl-create",
            Operation:"Update", APIVersion:"infrastructure.cluster.x-k8s.io/v1beta2", Time:time.Date(2025,
            time.January, 7, 7, 23, 0, 0, time.Local), FieldsType:"FieldsV1", FieldsV1:(*v1.FieldsV1)(0xc002f1f260),
            Subresource:""}, v1.ManagedFieldsEntry{Manager:"machine-api-migration", Operation:"Update",
            APIVersion:"infrastructure.cluster.x-k8s.io/v1beta2", Time:time.Date(2025, time.January,
            7, 7, 36, 44, 0, time.Local), FieldsType:"FieldsV1", FieldsV1:(*v1.FieldsV1)(0xc002f1f290),
            Subresource:""}}}, Spec:v1beta2.AWSMachineTemplateSpec{Template:v1beta2.AWSMachineTemplateResource{ObjectMeta:v1beta1.ObjectMeta{Labels:map[string]string(nil),
            Annotations:map[string]string(nil)}, Spec:v1beta2.AWSMachineSpec{ProviderID:(*string)(nil),
            InstanceID:(*string)(nil), InstanceMetadataOptions:(*v1beta2.InstanceMetadataOptions)(0xc00300ee00),
            AMI:v1beta2.AMIReference{ID:(*string)(0xc002dd7ad0), EKSOptimizedLookupType:(*v1beta2.EKSAMILookupType)(nil)},
            ImageLookupFormat:"", ImageLookupOrg:"", ImageLookupBaseOS:"", InstanceType:"m6i.xlarge",
            AdditionalTags:v1beta2.Tags{"kubernetes.io/cluster/zhsun-27-zv8vh":"owned"},
            IAMInstanceProfile:"zhsun-27-zv8vh-worker-profile", PublicIP:(*bool)(nil), ElasticIPPool:(*v1beta2.ElasticIPPool)(nil),
            AdditionalSecurityGroups:[]v1beta2.AWSResourceReference{v1beta2.AWSResourceReference{ID:(*string)(nil),
            Filters:[]v1beta2.Filter{v1beta2.Filter{Name:"tag:Name", Values:[]string{"zhsun-27-zv8vh-node"}}}},
            v1beta2.AWSResourceReference{ID:(*string)(nil), Filters:[]v1beta2.Filter{v1beta2.Filter{Name:"tag:Name",
            Values:[]string{"zhsun-27-zv8vh-lb"}}}}}, Subnet:(*v1beta2.AWSResourceReference)(0xc00258e440),
            SecurityGroupOverrides:map[v1beta2.SecurityGroupRole]string(nil), SSHKeyName:(*string)(nil),
            RootVolume:(*v1beta2.Volume)(0xc0007fe190), NonRootVolumes:[]v1beta2.Volume(nil),
            NetworkInterfaces:[]string(nil), UncompressedUserData:(*bool)(nil), CloudInit:v1beta2.CloudInit{InsecureSkipSecretsManager:false,
            SecretCount:0, SecretPrefix:"", SecureSecretsBackend:""}, Ignition:(*v1beta2.Ignition)(0xc002f588a0),
            SpotMarketOptions:(*v1beta2.SpotMarketOptions)(0xc00076ec10), PlacementGroupName:"",
            PlacementGroupPartition:0, Tenancy:"", PrivateDNSName:(*v1beta2.PrivateDNSName)(nil),
            CapacityReservationID:(*string)(nil)}}}, Status:v1beta2.AWSMachineTemplateStatus{Capacity:v1.ResourceList(nil)}}:
            AWSMachineTemplate.Spec is immutable'
          reason: FailedToUpdateCAPIInfraMachineTemplate
          severity: Error
          status: "False"
          type: Synchronized
        fullyLabeledReplicas: 1
        observedGeneration: 1
        readyReplicas: 1
        replicas: 1
      
      
      E0107 07:35:21.170452       1 controller.go:316] "Reconciler error" err="unable to ensure CAPI infra machine template: failed to update CAPI infra machine template: admission webhook \"validation.awsmachinetemplate.infrastructure.cluster.x-k8s.io\" denied the request: AWSMachineTemplate.infrastructure.cluster.x-k8s.io \"zhsun-27-zv8vh-worker-us-east-2c\" is invalid: spec.template.spec: Invalid value: v1beta2.AWSMachineTemplate{TypeMeta:v1.TypeMeta{Kind:\"AWSMachineTemplate\", APIVersion:\"infrastructure.cluster.x-k8s.io/v1beta2\"}, ObjectMeta:v1.ObjectMeta{Name:\"zhsun-27-zv8vh-worker-us-east-2c\", GenerateName:\"\", Namespace:\"openshift-cluster-api\", SelfLink:\"\", UID:\"07e06fc0-05bb-42b6-98d1-34f13ecd1c18\", ResourceVersion:\"133856\", Generation:2, CreationTimestamp:time.Date(2025, time.January, 7, 7, 23, 0, 0, time.Local), DeletionTimestamp:<nil>, DeletionGracePeriodSeconds:(*int64)(nil), Labels:map[string]string(nil), Annotations:map[string]string(nil), OwnerReferences:[]v1.OwnerReference(nil), Finalizers:[]string(nil), ManagedFields:[]v1.ManagedFieldsEntry{v1.ManagedFieldsEntry{Manager:\"kubectl-create\", Operation:\"Update\", APIVersion:\"infrastructure.cluster.x-k8s.io/v1beta2\", Time:time.Date(2025, time.January, 7, 7, 23, 0, 0, time.Local), FieldsType:\"FieldsV1\", FieldsV1:(*v1.FieldsV1)(0xc002f02078), Subresource:\"\"}, v1.ManagedFieldsEntry{Manager:\"machine-api-migration\", Operation:\"Update\", APIVersion:\"infrastructure.cluster.x-k8s.io/v1beta2\", Time:time.Date(2025, time.January, 7, 7, 35, 21, 0, time.Local), FieldsType:\"FieldsV1\", FieldsV1:(*v1.FieldsV1)(0xc002f020a8), Subresource:\"\"}}}, Spec:v1beta2.AWSMachineTemplateSpec{Template:v1beta2.AWSMachineTemplateResource{ObjectMeta:v1beta1.ObjectMeta{Labels:map[string]string(nil), Annotations:map[string]string(nil)}, Spec:v1beta2.AWSMachineSpec{ProviderID:(*string)(nil), InstanceID:(*string)(nil), InstanceMetadataOptions:(*v1beta2.InstanceMetadataOptions)(0xc00292ab40), AMI:v1beta2.AMIReference{ID:(*string)(0xc0029344e0), EKSOptimizedLookupType:(*v1beta2.EKSAMILookupType)(nil)}, ImageLookupFormat:\"\", ImageLookupOrg:\"\", ImageLookupBaseOS:\"\", InstanceType:\"m6i.xlarge\", AdditionalTags:v1beta2.Tags{\"kubernetes.io/cluster/zhsun-27-zv8vh\":\"owned\"}, IAMInstanceProfile:\"zhsun-27-zv8vh-worker-profile\", PublicIP:(*bool)(nil), ElasticIPPool:(*v1beta2.ElasticIPPool)(nil), AdditionalSecurityGroups:[]v1beta2.AWSResourceReference{v1beta2.AWSResourceReference{ID:(*string)(nil), Filters:[]v1beta2.Filter{v1beta2.Filter{Name:\"tag:Name\", Values:[]string{\"zhsun-27-zv8vh-node\"}}}}, v1beta2.AWSResourceReference{ID:(*string)(nil), Filters:[]v1beta2.Filter{v1beta2.Filter{Name:\"tag:Name\", Values:[]string{\"zhsun-27-zv8vh-lb\"}}}}}, Subnet:(*v1beta2.AWSResourceReference)(0xc0026d33c0), SecurityGroupOverrides:map[v1beta2.SecurityGroupRole]string(nil), SSHKeyName:(*string)(nil), RootVolume:(*v1beta2.Volume)(0xc001394cd0), NonRootVolumes:[]v1beta2.Volume(nil), NetworkInterfaces:[]string(nil), UncompressedUserData:(*bool)(nil), CloudInit:v1beta2.CloudInit{InsecureSkipSecretsManager:false, SecretCount:0, SecretPrefix:\"\", SecureSecretsBackend:\"\"}, Ignition:(*v1beta2.Ignition)(0xc00108c750), SpotMarketOptions:(*v1beta2.SpotMarketOptions)(0xc0014b2cc0), PlacementGroupName:\"\", PlacementGroupPartition:0, Tenancy:\"\", PrivateDNSName:(*v1beta2.PrivateDNSName)(nil), CapacityReservationID:(*string)(nil)}}}, Status:v1beta2.AWSMachineTemplateStatus{Capacity:v1.ResourceList(nil)}}: AWSMachineTemplate.Spec is immutable" controller="machineset" controllerGroup="machine.openshift.io" controllerKind="MachineSet" MachineSet="openshift-machine-api/zhsun-27-zv8vh-worker-us-east-2c" namespace="openshift-machine-api" name="zhsun-27-zv8vh-worker-us-east-2c" reconcileID="098edb5e-2623-4527-870c-c020f13cb113"
      I0107 07:35:21.170976       1 machineset_sync_controller.go:468] "Updating CAPI infra machine template" controller="machineset" controllerGroup="machine.openshift.io" controllerKind="MachineSet" MachineSet="openshift-machine-api/zhsun-27-zv8vh-worker-us-east-2c" namespace="openshift-machine-api" name="zhsun-27-zv8vh-worker-us-east-2c" reconcileID="606ec0e2-1e74-4baa-871b-487eda79e171" namespace="openshift-machine-api" name="zhsun-27-zv8vh-worker-us-east-2c"

      Expected results:

      Any update on the MAPI side should trigger the sync across

      Additional info:

      https://issues.redhat.com/browse/OCPCLOUD-2644

              ddonati@redhat.com Damiano Donati
              rhn-support-zhsun Zhaohua Sun
              Zhaohua Sun Zhaohua Sun
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated: