Uploaded image for project: 'Project Quay'
  1. Project Quay
  2. PROJQUAY-1345

Quay TNG Operator after migration was failed to pull image from existing image repo when source use loadbalancer as external access

XMLWordPrintable

      Description:

      This is an issue found when migration quay CR from QuayEcosystem to QuayRegistry,  In Quay V3.3. when create QuayEcosystem using loadbalancer as quay external access, after triggered migration, two new loadbalancers are created for quay and quay config editor, that means quay app endpoint was changed, delete old Quay CR, then pull image from existing image repository, it was failed, the reason is with Quay V3.4, the quay hostname is still use previous loadbalancer hostname, also try to create new image repository, then push image was failed, the reason is with Quay V3.4, the quay hostname is still use previous loadbalancer hostname.

      Note:

      • In Quay V3.3 the quay app hostname is "a9ff79ba67f62488088a5110c62ffaba-494603238.us-east-2.elb.amazonaws.com"
      • In Quay V3.4, the quay app hostname is "ac6d09b544fca460499d420dc97a4f7d-1556817724.us-east-2.elb.amazonaws.com"

      Before Operator Migration in V3.3:

      lizhang@lzha-mac Quay3.3_operator_testing % oc get pod                              
      NAME                                                   READY   STATUS    RESTARTS   AGE
      mig2-quayecosystem-clair-55bff9bc76-znrxc              1/1     Running   0          19m
      mig2-quayecosystem-clair-postgresql-5f7bcd9c55-qg2jj   1/1     Running   0          20m
      mig2-quayecosystem-quay-54b647b699-hdl7p               1/1     Running   0          20m
      mig2-quayecosystem-quay-config-6db54885d5-9rxf8        1/1     Running   0          21m
      mig2-quayecosystem-redis-7d6fd564c9-bxnhr              1/1     Running   0          23m
      quay-operator-5cb9dd9974-chsmc                         1/1     Running   0          39mlizhang@lzha-mac Quay3.3_operator_testing %oc get svc
      mig2-quayecosystem-quay               LoadBalancer   172.30.242.159   a9ff79ba67f62488088a5110c62ffaba-494603238.us-east-2.elb.amazonaws.com    443:32664/TCP,9091:30867/TCP   5m56s
      mig2-quayecosystem-quay-config        LoadBalancer   172.30.116.172   a6604b6a185bd416c8d310b246cffefc-2015600238.us-east-2.elb.amazonaws.com   443:31236/TCP                  5m55s
      

      After Migration to V3.40:

      lizhang@lzha-mac Quay3.3_operator_testing % oc get pod
      NAME                                                    READY   STATUS    RESTARTS   AGE
      mig2-quayecosystem-clair-55bff9bc76-znrxc               1/1     Running   0          32m
      mig2-quayecosystem-clair-app-f9787b4c7-x5t7z            1/1     Running   0          5m26s
      mig2-quayecosystem-clair-postgres-6c648b6c65-ph5l8      1/1     Running   1          10m
      mig2-quayecosystem-clair-postgresql-5f7bcd9c55-qg2jj    1/1     Running   0          33m
      mig2-quayecosystem-quay-54b647b699-hdl7p                1/1     Running   0          33m
      mig2-quayecosystem-quay-app-6887b88d4f-cb6fx            1/1     Running   0          5m26s
      mig2-quayecosystem-quay-config-6db54885d5-9rxf8         1/1     Running   0          34m
      mig2-quayecosystem-quay-config-editor-cf5b8d7b5-htmmg   1/1     Running   0          5m26s
      mig2-quayecosystem-quay-redis-8ffbd8d79-mjq85           1/1     Running   0          10m
      mig2-quayecosystem-redis-7d6fd564c9-bxnhr               1/1     Running   0          36mlizhang@lzha-mac Quay3.3_operator_testing % oc get service
      mig2-quayecosystem-quay                 LoadBalancer   172.30.242.159   a9ff79ba67f62488088a5110c62ffaba-494603238.us-east-2.elb.amazonaws.com    443:32664/TCP,9091:30867/TCP                39m
      mig2-quayecosystem-quay-app             LoadBalancer   172.30.168.187   ac6d09b544fca460499d420dc97a4f7d-1556817724.us-east-2.elb.amazonaws.com   443:32185/TCP,80:32599/TCP,8081:30920/TCP   14m
      mig2-quayecosystem-quay-config          LoadBalancer   172.30.116.172   a6604b6a185bd416c8d310b246cffefc-2015600238.us-east-2.elb.amazonaws.com   443:31236/TCP                               39m
      mig2-quayecosystem-quay-config-editor   LoadBalancer   172.30.94.111    a0eaf53e6a758472096ecdb7cc867b3d-1885073017.us-east-2.elb.amazonaws.com   80:31744/TCP                                14m
      

      Quay TNG Operator Image:

      lizhang@lzha-mac Quay3.3_operator_testing % oc get pod -n openshift-operators
      NAME                                           READY   STATUS    RESTARTS   AGE
      container-security-operator-766c7f8f5b-4tpkv   1/1     Running   0          27d
      quay-operator-59d4f8b9fd-z54cc                 1/1     Running   0          80m
      
      lizhang@lzha-mac Quay3.3_operator_testing % oc get pod quay-operator-59d4f8b9fd-z54cc -n openshift-operators -o json | jq '.spec.containers[0].image'
      "registry.redhat.io/quay/quay-rhel8-operator@sha256:975d9a16750449b98fe6f40077a68dcef6a902e39e90b829c9a12868c8b47280"

       Index Image:

      brew.registry.redhat.io/rh-osbs/iib:28108
      

      Quay V3.3 QuayEcosystem CR:

      apiVersion: redhatcop.redhat.io/v1alpha1
      kind: QuayEcosystem
      metadata:
        name: mig2-quayecosystem
      spec:
        quay:
          imagePullSecretName: redhat-pull-secret
          image: quay.io/quay/quay:v3.3.1-3
          externalAccess:
            type: LoadBalancer
          registryBackends:
            - name: s3
              s3:
                accessKey: ****
                bucketName: quayperf
                secretKey: ****
                host: s3.us-east-2.amazonaws.com
          database: 
            credentialsSecretName: quaydb
            server: terraform-20201130015301063700000001.cmqwuswughvh.us-east-2.rds.amazonaws.com
          envVars:
            - name: DEBUGLOG
              value: "true"
        clair:
          enabled: true
          image: quay.io/quay/clair-jwt:v3.3.1-2
          imagePullSecretName: redhat-pull-secret
          updateInterval: "60m"
      

       

      Pull image was failed after migration:

      lizhang@lzha-mac Downloads % docker pull a9ff79ba67f62488088a5110c62ffaba-494603238.us-east-2.elb.amazonaws.com/qateam/demo
      Using default tag: latest
      Error response from daemon: received unexpected HTTP status: 503 Service Unavailable
      

      Steps:

      1. Deploy OCP 4.6 on AWS
      2. Open OCP console
      3. Deploy Quay 3.3.2 Operator
      4. Create Quay CR resource under specified namespace using managed postgresql db and external AWS S3 as storage registry, set quay external access as Loadbalancer(refer to the CR file above)
      5. Login Quay and create new organization, team, image repository, and push images to above new image repository
      6. Uninstall Quay 3.3.2 Operator
      7. Deploy Quay V3.4 TNG Operator with all default settings
      8. Edit Quay CR QuayEcosystem with adding "quay-operator/migrate": "true" to the metadata.labels of the QuayEcosystem, and save modification
      9. Wait to check the status of CR QuayRegistry
      10. Get the Quay V3.4 app endpoint from new loadbalancer and login quay console
      11. Check the existing image repository
      12. Delete Quay V3.3 CR
      13. Pull image from existing image repository
      14. Create new image repository
      15. Push image to new image repository

      Expected Results:

      Step 13 and 15 should complete successfully.

      Actual Results:

      Step 13 was failed because the existing image repository is still using the old loadbalancer hostname.

      Step 15 was failed because new image repository is still using the old loadbalancer hostname.

              rhn-coreos-amerdler Alec Merdler (Inactive)
              lzha1981 luffy zhang
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated:
                Resolved: