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

mapi2capi credentials secret conversion failed should not block MAPI features

XMLWordPrintable

    • Quality / Stability / Reliability
    • False
    • Hide

      None

      Show
      None
    • None
    • Moderate
    • None
    • None
    • None
    • None
    • None
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      Description of problem:

          After enabling CustomNoUpgrade, creating a machine set using a custom secret, no machines were created for it. However, a standalone machine using a custom secret was created successfully. The machines using a custom secret cannot be deleted, they stuck in Deleting.
          Also, before enabling CustomNoUpgrade, the machine set using a custom secret and its machines were created successfully.

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

          4.19.0-0.ci-2025-04-21-160508

      How reproducible:

          always

      Steps to Reproduce:

          1.Install an AWS cluster, then create a custom secret in openshift-machine-api, here I copied from aws-cloud-credentials
      
      liuhuali@Lius-MacBook-Pro huali-test % oc get secret aws-cloud-credentials  -oyaml>sec.yaml
      liuhuali@Lius-MacBook-Pro huali-test % vim sec.yaml 
      liuhuali@Lius-MacBook-Pro huali-test % oc create -f sec.yaml 
      secret/aws1 created
      liuhuali@Lius-MacBook-Pro huali-test % oc get secret
      NAME                                                 TYPE                      DATA   AGE
      aws-cloud-credentials                                Opaque                    3      109m
      aws1                                                 Opaque                    3      4s
      
          2.Create a machineset using the custom secret, the machine set and its machine created successfully
      
      liuhuali@Lius-MacBook-Pro huali-test % oc get machineset
      NAME                                    DESIRED   CURRENT   READY   AVAILABLE   AGE
      huliu-aws422a-7l2xd-customsecret        1         1         1       1           4m11s
      huliu-aws422a-7l2xd-worker-us-east-2a   1         1         1       1           116m
      huliu-aws422a-7l2xd-worker-us-east-2b   1         1         1       1           116m
      huliu-aws422a-7l2xd-worker-us-east-2c   1         1         1       1           116m
      liuhuali@Lius-MacBook-Pro huali-test % oc get machine
      NAME                                          PHASE     TYPE         REGION      ZONE         AGE
      huliu-aws422a-7l2xd-customsecret-kjcq7        Running   m6i.xlarge   us-east-2   us-east-2a   4m59s
      huliu-aws422a-7l2xd-master-0                  Running   m6i.xlarge   us-east-2   us-east-2a   117m
      huliu-aws422a-7l2xd-master-1                  Running   m6i.xlarge   us-east-2   us-east-2b   117m
      huliu-aws422a-7l2xd-master-2                  Running   m6i.xlarge   us-east-2   us-east-2c   117m
      huliu-aws422a-7l2xd-worker-us-east-2a-mdmwj   Running   m6i.xlarge   us-east-2   us-east-2a   113m
      huliu-aws422a-7l2xd-worker-us-east-2b-z2djd   Running   m6i.xlarge   us-east-2   us-east-2b   113m
      huliu-aws422a-7l2xd-worker-us-east-2c-6lmlt   Running   m6i.xlarge   us-east-2   us-east-2c   113m
        
         3.Enable CustomNoUpgrade, and wait for the cluster stable
      
         4.Found the machine set using the custom secret and its machine cannot be converted to capi, this is as expected
      
      status:
        authoritativeAPI: MachineAPI
        availableReplicas: 1
        conditions:
        - lastTransitionTime: "2025-04-22T04:09:32Z"
          message: 'failed to convert MAPI machine set to CAPI machine set: spec.providerSpec.value.credentialsSecret:
            Invalid value: "aws1": credential secret does not match the default of "aws-cloud-credentials",
            manual conversion is necessary. Please see https://access.redhat.com/articles/7116313
            for more details.'
          reason: FailedToConvertMAPIMachineSetToCAPI
          severity: Error
          status: "False"
          type: Synchronized
        fullyLabeledReplicas: 1
        observedGeneration: 1
        readyReplicas: 1
        replicas: 1
        synchronizedGeneration: 0
      
        5. Create another machineset using the custom secret, there is no machine created for it but it should.
      
      liuhuali@Lius-MacBook-Pro huali-test % cat ms1.yaml 
      apiVersion: machine.openshift.io/v1beta1
      kind: MachineSet
      metadata:
        name: huliu-aws422a-7l2xd-customsecret1
        namespace: openshift-machine-api
      spec:
        replicas: 1
        selector:
          matchLabels:
            machine.openshift.io/cluster-api-cluster: huliu-aws422a-7l2xd
            machine.openshift.io/cluster-api-machineset: huliu-aws422a-7l2xd-customsecret1
        template:
          metadata:
            labels:
              machine.openshift.io/cluster-api-cluster: huliu-aws422a-7l2xd
              machine.openshift.io/cluster-api-machine-role: worker
              machine.openshift.io/cluster-api-machine-type: worker
              machine.openshift.io/cluster-api-machineset: huliu-aws422a-7l2xd-customsecret1
          spec:
            lifecycleHooks: {}
            metadata: {}
            providerSpec:
              value:
                ami:
                  id: ami-0f13d2cbfbca6203b
                apiVersion: machine.openshift.io/v1beta1
                blockDevices:
                - ebs:
                    encrypted: true
                    iops: 0
                    kmsKey:
                      arn: ""
                    volumeSize: 120
                    volumeType: gp3
                capacityReservationId: ""
                credentialsSecret:
                  name: aws1
                deviceIndex: 0
                iamInstanceProfile:
                  id: huliu-aws422a-7l2xd-worker-profile
                instanceType: m6i.xlarge
                kind: AWSMachineProviderConfig
                metadata:
                  creationTimestamp: null
                metadataServiceOptions: {}
                placement:
                  availabilityZone: us-east-2a
                  region: us-east-2
                securityGroups:
                - filters:
                  - name: tag:Name
                    values:
                    - huliu-aws422a-7l2xd-node
                - filters:
                  - name: tag:Name
                    values:
                    - huliu-aws422a-7l2xd-lb
                subnet:
                  filters:
                  - name: tag:Name
                    values:
                    - huliu-aws422a-7l2xd-subnet-private-us-east-2a
                tags:
                - name: kubernetes.io/cluster/huliu-aws422a-7l2xd
                  value: owned
                userDataSecret:
                  name: worker-user-data
      liuhuali@Lius-MacBook-Pro huali-test % 
      
      liuhuali@Lius-MacBook-Pro huali-test % oc create -f ms1.yaml 
      machineset.machine.openshift.io/huliu-aws422a-7l2xd-customsecret1 created
      liuhuali@Lius-MacBook-Pro huali-test % oc get machineset 
      NAME                                    DESIRED   CURRENT   READY   AVAILABLE   AGE
      huliu-aws422a-7l2xd-customsecret        1         1         1       1           4h8m
      huliu-aws422a-7l2xd-customsecret1       1                                       71m
      huliu-aws422a-7l2xd-worker-us-east-2a   1         1         1       1           6h1m
      huliu-aws422a-7l2xd-worker-us-east-2b   1         1         1       1           6h1m
      huliu-aws422a-7l2xd-worker-us-east-2c   1         1         1       1           6h1m
      
      status:
        authoritativeAPI: MachineAPI
        conditions:
        - lastTransitionTime: "2025-04-22T06:32:39Z"
          message: 'failed to convert MAPI machine set to CAPI machine set: spec.providerSpec.value.credentialsSecret:
            Invalid value: "aws1": credential secret does not match the default of "aws-cloud-credentials",
            manual conversion is necessary. Please see https://access.redhat.com/articles/7116313
            for more details.'
          reason: FailedToConvertMAPIMachineSetToCAPI
          severity: Error
          status: "False"
          type: Synchronized
        synchronizedGeneration: 0
      
       6. Create a standalone machine using the custom secret, the machine create successfully, convert to capi failed, this is as expected.
      
      liuhuali@Lius-MacBook-Pro huali-test % cat machine.yaml 
      apiVersion: machine.openshift.io/v1beta1
      kind: Machine
      metadata:
        name: huliu-aws422a-7l2xd-csm1
        namespace: openshift-machine-api
      spec:
        lifecycleHooks: {}
        metadata: {}
        providerSpec:
          value:
            ami:
              id: ami-0f13d2cbfbca6203b
            apiVersion: machine.openshift.io/v1beta1
            blockDevices:
            - ebs:
                encrypted: true
                iops: 0
                kmsKey:
                  arn: ""
                volumeSize: 120
                volumeType: gp3
            capacityReservationId: ""
            credentialsSecret:
              name: aws1
            deviceIndex: 0
            iamInstanceProfile:
              id: huliu-aws422a-7l2xd-worker-profile
            instanceType: m6i.xlarge
            kind: AWSMachineProviderConfig
            metadata:
              creationTimestamp: null
            metadataServiceOptions: {}
            placement:
              availabilityZone: us-east-2a
              region: us-east-2
            securityGroups:
            - filters:
              - name: tag:Name
                values:
                - huliu-aws422a-7l2xd-node
            - filters:
              - name: tag:Name
                values:
                - huliu-aws422a-7l2xd-lb
            subnet:
              filters:
              - name: tag:Name
                values:
                - huliu-aws422a-7l2xd-subnet-private-us-east-2a
            tags:
            - name: kubernetes.io/cluster/huliu-aws422a-7l2xd
              value: owned
            userDataSecret:
              name: worker-user-data
      liuhuali@Lius-MacBook-Pro huali-test % 
      liuhuali@Lius-MacBook-Pro huali-test % oc create -f machine.yaml 
      machine.machine.openshift.io/huliu-aws422a-7l2xd-csm1 created
      liuhuali@Lius-MacBook-Pro huali-test % oc get machine
      NAME                                          PHASE     TYPE         REGION      ZONE         AGE
      huliu-aws422a-7l2xd-csm1                      Running   m6i.xlarge   us-east-2   us-east-2a   70m
      huliu-aws422a-7l2xd-customsecret-kjcq7        Running   m6i.xlarge   us-east-2   us-east-2a   4h14m
      huliu-aws422a-7l2xd-master-0                  Running   m6i.xlarge   us-east-2   us-east-2a   6h6m
      huliu-aws422a-7l2xd-master-1                  Running   m6i.xlarge   us-east-2   us-east-2b   6h6m
      huliu-aws422a-7l2xd-master-2                  Running   m6i.xlarge   us-east-2   us-east-2c   6h6m
      huliu-aws422a-7l2xd-worker-us-east-2a-mdmwj   Running   m6i.xlarge   us-east-2   us-east-2a   6h3m
      huliu-aws422a-7l2xd-worker-us-east-2b-z2djd   Running   m6i.xlarge   us-east-2   us-east-2b   6h3m
      huliu-aws422a-7l2xd-worker-us-east-2c-6lmlt   Running   m6i.xlarge   us-east-2   us-east-2c   6h3m
      
        authoritativeAPI: MachineAPI
        conditions:
        - lastTransitionTime: "2025-04-22T06:39:47Z"
          status: "True"
          type: Drainable
        - lastTransitionTime: "2025-04-22T06:40:20Z"
          status: "True"
          type: InstanceExists
        - lastTransitionTime: "2025-04-22T06:39:47Z"
          message: The AuthoritativeAPI is set to MachineAPI
          reason: AuthoritativeAPIMachineAPI
          severity: Info
          status: "False"
          type: Paused
        - lastTransitionTime: "2025-04-22T06:39:47Z"
          message: 'failed to convert Machine API machine to Cluster API machine: spec.providerSpec.value.credentialsSecret:
            Invalid value: "aws1": credential secret does not match the default of "aws-cloud-credentials",
            manual conversion is necessary. Please see https://access.redhat.com/articles/7116313
            for more details.'
          reason: FailedToConvertMAPIMachineToCAPI
          severity: Error
          status: "False"
          type: Synchronized
        - lastTransitionTime: "2025-04-22T06:39:47Z"
          status: "True"
          type: Terminable
        lastUpdated: "2025-04-22T06:43:58Z"
        nodeRef:
          kind: Node
          name: ip-10-0-8-55.us-east-2.compute.internal
          uid: df6f0ba8-f098-4fc9-962a-f2e246146356
        phase: Running
        providerStatus:
          conditions:
          - lastTransitionTime: "2025-04-22T06:39:49Z"
            message: Machine successfully created
            reason: MachineCreationSucceeded
            status: "True"
            type: MachineCreation
          instanceId: i-0b62a90100702ba83
          instanceState: running
        synchronizedGeneration: 0
      
      7. Delete the machine set, the machine set is deleted, but the machine stuck in Deleting; 
         Delete the standalone machine, the machine stuck in Deleting. 
         I checked on AWS console, they are still there.
      
      liuhuali@Lius-MacBook-Pro huali-test % oc delete machineset huliu-aws422a-7l2xd-customsecret
      machineset.machine.openshift.io "huliu-aws422a-7l2xd-customsecret" deleted
      liuhuali@Lius-MacBook-Pro huali-test % oc delete machine huliu-aws422a-7l2xd-csm1
      machine.machine.openshift.io "huliu-aws422a-7l2xd-csm1" deleted
      ^C
      liuhuali@Lius-MacBook-Pro huali-test % oc get machineset
      NAME                                    DESIRED   CURRENT   READY   AVAILABLE   AGE
      huliu-aws422a-7l2xd-customsecret1       1                                       4h51m
      huliu-aws422a-7l2xd-worker-us-east-2a   1         1         1       1           9h
      huliu-aws422a-7l2xd-worker-us-east-2b   1         1         1       1           9h
      huliu-aws422a-7l2xd-worker-us-east-2c   1         1         1       1           9h
      liuhuali@Lius-MacBook-Pro huali-test % oc get machine
      NAME                                          PHASE      TYPE         REGION      ZONE         AGE
      huliu-aws422a-7l2xd-csm1                      Deleting   m6i.xlarge   us-east-2   us-east-2a   4h44m
      huliu-aws422a-7l2xd-customsecret-kjcq7        Deleting   m6i.xlarge   us-east-2   us-east-2a   7h48m
      huliu-aws422a-7l2xd-master-0                  Running    m6i.xlarge   us-east-2   us-east-2a   9h
      huliu-aws422a-7l2xd-master-1                  Running    m6i.xlarge   us-east-2   us-east-2b   9h
      huliu-aws422a-7l2xd-master-2                  Running    m6i.xlarge   us-east-2   us-east-2c   9h
      huliu-aws422a-7l2xd-worker-us-east-2a-mdmwj   Running    m6i.xlarge   us-east-2   us-east-2a   9h
      huliu-aws422a-7l2xd-worker-us-east-2b-z2djd   Running    m6i.xlarge   us-east-2   us-east-2b   9h
      huliu-aws422a-7l2xd-worker-us-east-2c-6lmlt   Running    m6i.xlarge   us-east-2   us-east-2c   9h
      liuhuali@Lius-MacBook-Pro huali-test % 
      liuhuali@Lius-MacBook-Pro huali-test % oc get node
      NAME                                        STATUS                     ROLES                  AGE     VERSION
      ip-10-0-27-160.us-east-2.compute.internal   Ready,SchedulingDisabled   worker                 7h50m   v1.32.3
      ip-10-0-29-160.us-east-2.compute.internal   Ready                      control-plane,master   9h      v1.32.3
      ip-10-0-40-61.us-east-2.compute.internal    Ready                      control-plane,master   9h      v1.32.3
      ip-10-0-43-113.us-east-2.compute.internal   Ready                      worker                 9h      v1.32.3
      ip-10-0-6-147.us-east-2.compute.internal    Ready                      worker                 9h      v1.32.3
      ip-10-0-8-55.us-east-2.compute.internal     Ready,SchedulingDisabled   worker                 4h45m   v1.32.3
      ip-10-0-91-109.us-east-2.compute.internal   Ready                      worker                 9h      v1.32.3
      ip-10-0-92-165.us-east-2.compute.internal   Ready                      control-plane,master   9h      v1.32.3
      
      liuhuali@Lius-MacBook-Pro huali-test % oc logs machine-api-controllers-7856dcf465-ftbnp -c machine-controller
      ...
      E0422 11:24:18.312151       1 controller.go:341] "msg"="Reconciler error" "error"="could not update machine status: Machine.machine.openshift.io \"huliu-aws422a-7l2xd-csm1\" is invalid: status.synchronizedGeneration: Invalid value: \"object\": synchronizedGeneration must not decrease unless authoritativeAPI is transitioning from Migrating to another value" "controller"="machine-drain-controller" "name"="huliu-aws422a-7l2xd-csm1" "namespace"="openshift-machine-api" "object"={"name":"huliu-aws422a-7l2xd-csm1","namespace":"openshift-machine-api"} "reconcileID"="54f2f45f-1db8-4415-b9fd-4fe1daf352d6"
      
      I0422 11:30:51.376449       1 drain_controller.go:190] drain successful for machine "huliu-aws422a-7l2xd-customsecret-kjcq7"
      I0422 11:30:51.376596       1 recorder.go:104] "msg"="Node \"ip-10-0-27-160.us-east-2.compute.internal\" drained" "logger"="events" "object"={"kind":"Machine","namespace":"openshift-machine-api","name":"huliu-aws422a-7l2xd-customsecret-kjcq7","uid":"4661921f-55b8-48b2-aeba-f2abf45de2f7","apiVersion":"machine.openshift.io/v1beta1","resourceVersion":"161881"} "reason"="Deleted" "type"="Normal"
      I0422 11:30:51.376632       1 recorder.go:104] "msg"="Node drain succeeded" "logger"="events" "object"={"kind":"Machine","namespace":"openshift-machine-api","name":"huliu-aws422a-7l2xd-customsecret-kjcq7","uid":"4661921f-55b8-48b2-aeba-f2abf45de2f7","apiVersion":"machine.openshift.io/v1beta1","resourceVersion":"161881"} "reason"="DrainSucceeded" "type"="Normal"
      E0422 11:30:51.385543       1 controller.go:341] "msg"="Reconciler error" "error"="could not update machine status: Machine.machine.openshift.io \"huliu-aws422a-7l2xd-customsecret-kjcq7\" is invalid: status.synchronizedGeneration: Invalid value: \"object\": synchronizedGeneration must not decrease unless authoritativeAPI is transitioning from Migrating to another value" "controller"="machine-drain-controller" "name"="huliu-aws422a-7l2xd-customsecret-kjcq7" "namespace"="openshift-machine-api" "object"={"name":"huliu-aws422a-7l2xd-customsecret-kjcq7","namespace":"openshift-machine-api"} "reconcileID"="653ec156-8bb5-4330-aae8-935badf00be1"
      
      

      Actual results:

          After enabling CustomNoUpgrade, creating a machine set using a custom secret, no machines were created for it. The machines using a custom secret cannot be deleted, they stuck in Deleting.

      Expected results:

          The machine set using a custom secret and its machine should create successfully; and the machines using a custom secret should delete successfully. Because the conversion should not block mapi features.

      Additional info:

      new feature testing for https://issues.redhat.com/browse/OCPCLOUD-2713

              rh-ee-nbrubake Nolan Brubaker
              huliu@redhat.com Huali Liu
              None
              None
              Huali Liu Huali Liu
              None
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated: