• Not Started
    • Not Started
    • Not Started
    • Not Started
    • Not Started
    • Not Started

      In order to support disconnected installs productization process requires using image digests (sha) instead of tags.

      Work has to be done in operators and templates for 3scale and apicast self-managed to support that.

      In both templates and operators changing to digests of fixed images implies that customers cannot upgrade the operands images automatically by refreshing imagestreams when there is a CVE for any of them.

      In Operators, with OLM we can provide updates to operands images by creating new OLM operator releases. This means that for every CVE on one of its operands we should productize a new OLM operator release by productizing new operator metadata changes (do not confuse with operator changes themselves) . Also, at this moment with the current implementation operator metadata changes will not trigger an upgrade mechanism. A solution for thas has to be thought.
      Additionally, the OLM update mechanism would not be possible when installing the operator manually instead of using OLM. The official way to provide installation with operators is through OLM but I explain this so we can take this into consideration too.

      In templates the option of performing OLM updates is not available so it seems there's no possible way to do that by sha images so it has to be thought what will we do with templates.

            [THREESCALE-4379] Add support for disconnected installs

            This issue is blocked by THREESCALE-5108 because QE should get environment for testing and getting the environment is tracked in THREESCALE-5108.

            Martin Kudlej added a comment - This issue is blocked by THREESCALE-5108 because QE should get environment for testing and getting the environment is tracked in THREESCALE-5108 .

            Eguzki Astiz Lezaun added a comment - cc msorianod tmaas-1

            Eguzki Astiz Lezaun added a comment - - edited

            Done the following test:

            1.- Deploy 3scale 2.7 operator using OLM (custom operator source) https://github.com/3scale/3scale-operator/blob/master/doc/development.md#deploy-custom-3scale-operator-using-olm

            2.- Deploy 3scale APIManager CR

            apiVersion: apps.3scale.net/v1alpha1
            kind: APIManager
            metadata:
              name: example-apimanager
              namespace: eguzki-test
            spec:
              resourceRequirementsEnabled: false
              wildcardDomain: eguzki.apps.ocpdev-41.3sca.net
            

            Push new bundle to the operator source repo with an update in deployment of apisonator image url:
            from

            quay.io/3scale/3scale27:apisonator-3scale-2.7.0-GA
            

            to latest master image url by digest:

            quay.io/3scale/apisonator@sha256:b18cbb9a4d6f28ad701c516c8c2f3a61fa462c2831da5ab9d467f089aa94752c
            

            Run upgrade of the operator in the operatorhub dashboard. After new operator metadata is being deployed, check from the logs of the new operator deplolyment:
            a) backend imagestream is being updated
            b) imagestream update will trigger rolling update of all backend components.

            {"level":"info","ts":1582047345.829451,"logger":"kubebuilder.controller","msg":"Starting workers","controller":"apimanager-controller","worker count":1}
            {"level":"info","ts":1582047345.8296096,"logger":"controller_apimanager","msg":"ReconcileAPIManager","namespace":"eguzki-test","name":"example-apimanager","Operator version":"0.4.0","3scale release":"2.7"}
            {"level":"info","ts":1582047345.9301105,"logger":"controller_apimanager","msg":"Updated object ImageStream/amp-backend"}
            {"level":"info","ts":1582047346.7510338,"logger":"olm","msg":"Found deployments with status ","stopped":[],"starting":[],"ready":["apicast-production","apicast-staging","backend-cron","backend-listener","backend-redis","backend-worker","system-app","system-memcache","system-mysql","system-redis","system-sidekiq","system-sphinx","zync","zync-database","zync-que"]}
            {"level":"info","ts":1582047347.4912093,"logger":"controller_apimanager","msg":"ReconcileAPIManager","namespace":"eguzki-test","name":"example-apimanager","Operator version":"0.4.0","3scale release":"2.7"}
            {"level":"info","ts":1582047347.4932077,"logger":"olm","msg":"Found deployments with status ","stopped":[],"starting":[],"ready":["apicast-production","apicast-staging","backend-cron","backend-listener","backend-redis","backend-worker","system-app","system-memcache","system-mysql","system-redis","system-sidekiq","system-sphinx","zync","zync-database","zync-que"]}
            {"level":"info","ts":1582047347.4932795,"logger":"controller_apimanager","msg":"ReconcileAPIManager","namespace":"eguzki-test","name":"example-apimanager","Operator version":"0.4.0","3scale release":"2.7"}
            {"level":"info","ts":1582047347.4950788,"logger":"olm","msg":"Found deployments with status ","stopped":[],"starting":[],"ready":["apicast-production","apicast-staging","backend-cron","backend-listener","backend-redis","backend-worker","system-app","system-memcache","system-mysql","system-redis","system-sidekiq","system-sphinx","zync","zync-database","zync-que"]}
            {"level":"info","ts":1582047347.4975436,"logger":"controller_apimanager","msg":"ReconcileAPIManager","namespace":"eguzki-test","name":"example-apimanager","Operator version":"0.4.0","3scale release":"2.7"}
            {"level":"info","ts":1582047347.4998822,"logger":"olm","msg":"Found deployments with status ","stopped":[],"starting":[],"ready":["apicast-production","apicast-staging","backend-cron","backend-listener","backend-redis","backend-worker","system-app","system-memcache","system-mysql","system-redis","system-sidekiq","system-sphinx","zync","zync-database","zync-que"]}
            {"level":"info","ts":1582047347.509866,"logger":"controller_apimanager","msg":"ReconcileAPIManager","namespace":"eguzki-test","name":"example-apimanager","Operator version":"0.4.0","3scale release":"2.7"}
            {"level":"info","ts":1582047347.5117047,"logger":"olm","msg":"Found deployments with status ","stopped":[],"starting":[],"ready":["apicast-production","apicast-staging","backend-cron","backend-listener","backend-redis","backend-worker","system-app","system-memcache","system-mysql","system-redis","system-sidekiq","system-sphinx","zync","zync-database","zync-que"]}
            {"level":"info","ts":1582047347.549219,"logger":"controller_apimanager","msg":"ReconcileAPIManager","namespace":"eguzki-test","name":"example-apimanager","Operator version":"0.4.0","3scale release":"2.7"}
            {"level":"info","ts":1582047347.556891,"logger":"olm","msg":"Found deployments with status ","stopped":[],"starting":[],"ready":["apicast-production","apicast-staging","backend-cron","backend-listener","backend-redis","backend-worker","system-app","system-memcache","system-mysql","system-redis","system-sidekiq","system-sphinx","zync","zync-database","zync-que"]}
            {"level":"info","ts":1582047347.5569646,"logger":"controller_apimanager","msg":"ReconcileAPIManager","namespace":"eguzki-test","name":"example-apimanager","Operator version":"0.4.0","3scale release":"2.7"}
            {"level":"info","ts":1582047347.5663917,"logger":"olm","msg":"Found deployments with status ","stopped":[],"starting":[],"ready":["apicast-production","apicast-staging","backend-cron","backend-listener","backend-redis","backend-worker","system-app","system-memcache","system-mysql","system-redis","system-sidekiq","system-sphinx","zync","zync-database","zync-que"]}
            {"level":"info","ts":1582047347.5824852,"logger":"controller_apimanager","msg":"ReconcileAPIManager","namespace":"eguzki-test","name":"example-apimanager","Operator version":"0.4.0","3scale release":"2.7"}
            {"level":"info","ts":1582047347.5845141,"logger":"olm","msg":"Found deployments with status ","stopped":[],"starting":[],"ready":["apicast-production","apicast-staging","backend-cron","backend-listener","backend-redis","backend-worker","system-app","system-memcache","system-mysql","system-redis","system-sidekiq","system-sphinx","zync","zync-database","zync-que"]}
            {"level":"info","ts":1582047347.6420844,"logger":"controller_apimanager","msg":"ReconcileAPIManager","namespace":"eguzki-test","name":"example-apimanager","Operator version":"0.4.0","3scale release":"2.7"}
            {"level":"info","ts":1582047347.644136,"logger":"olm","msg":"Found deployments with status ","stopped":[],"starting":[],"ready":["apicast-production","apicast-staging","backend-cron","backend-listener","backend-redis","backend-worker","system-app","system-memcache","system-mysql","system-redis","system-sidekiq","system-sphinx","zync","zync-database","zync-que"]}
            {"level":"info","ts":1582047347.6502018,"logger":"controller_apimanager","msg":"ReconcileAPIManager","namespace":"eguzki-test","name":"example-apimanager","Operator version":"0.4.0","3scale release":"2.7"}
            {"level":"info","ts":1582047347.686829,"logger":"olm","msg":"Found deployments with status ","stopped":[],"starting":[],"ready":["apicast-production","apicast-staging","backend-cron","backend-listener","backend-redis","backend-worker","system-app","system-memcache","system-mysql","system-redis","system-sidekiq","system-sphinx","zync","zync-database","zync-que"]}
            {"level":"info","ts":1582047347.686902,"logger":"controller_apimanager","msg":"ReconcileAPIManager","namespace":"eguzki-test","name":"example-apimanager","Operator version":"0.4.0","3scale release":"2.7"}
            {"level":"info","ts":1582047347.6909068,"logger":"olm","msg":"Found deployments with status ","stopped":[],"starting":[],"ready":["apicast-production","apicast-staging","backend-cron","backend-listener","backend-redis","backend-worker","system-app","system-memcache","system-mysql","system-redis","system-sidekiq","system-sphinx","zync","zync-database","zync-que"]}
            {"level":"info","ts":1582047356.7210972,"logger":"controller_apimanager","msg":"ReconcileAPIManager","namespace":"eguzki-test","name":"example-apimanager","Operator version":"0.4.0","3scale release":"2.7"}
            {"level":"info","ts":1582047356.7226849,"logger":"olm","msg":"Found deployments with status ","stopped":[],"starting":[],"ready":["apicast-production","apicast-staging","backend-cron","backend-listener","backend-redis","backend-worker","system-app","system-memcache","system-mysql","system-redis","system-sidekiq","system-sphinx","zync","zync-database","zync-que"]}
            {"level":"info","ts":1582047356.8149383,"logger":"controller_apimanager","msg":"ReconcileAPIManager","namespace":"eguzki-test","name":"example-apimanager","Operator version":"0.4.0","3scale release":"2.7"}
            {"level":"info","ts":1582047356.8170025,"logger":"olm","msg":"Found deployments with status ","stopped":[],"starting":["backend-cron"],"ready":["apicast-production","apicast-staging","backend-listener","backend-redis","backend-worker","system-app","system-memcache","system-mysql","system-redis","system-sidekiq","system-sphinx","zync","zync-database","zync-que"]}
            {"level":"info","ts":1582047356.8170345,"logger":"controller_apimanager","msg":"Deployment status will be updated"}
            {"level":"info","ts":1582047356.8274662,"logger":"controller_apimanager","msg":"ReconcileAPIManager","namespace":"eguzki-test","name":"example-apimanager","Operator version":"0.4.0","3scale release":"2.7"}
            {"level":"info","ts":1582047356.8286786,"logger":"olm","msg":"Found deployments with status ","stopped":[],"starting":["backend-cron"],"ready":["apicast-production","apicast-staging","backend-listener","backend-redis","backend-worker","system-app","system-memcache","system-mysql","system-redis","system-sidekiq","system-sphinx","zync","zync-database","zync-que"]}
            {"level":"info","ts":1582047357.3040884,"logger":"controller_apimanager","msg":"ReconcileAPIManager","namespace":"eguzki-test","name":"example-apimanager","Operator version":"0.4.0","3scale release":"2.7"}
            {"level":"info","ts":1582047357.3089967,"logger":"olm","msg":"Found deployments with status ","stopped":[],"starting":["backend-cron"],"ready":["apicast-production","apicast-staging","backend-listener","backend-redis","backend-worker","system-app","system-memcache","system-mysql","system-redis","system-sidekiq","system-sphinx","zync","zync-database","zync-que"]}
            {"level":"info","ts":1582047357.4163995,"logger":"controller_apimanager","msg":"ReconcileAPIManager","namespace":"eguzki-test","name":"example-apimanager","Operator version":"0.4.0","3scale release":"2.7"}
            {"level":"info","ts":1582047357.4185038,"logger":"olm","msg":"Found deployments with status ","stopped":[],"starting":["backend-cron","backend-worker"],"ready":["apicast-production","apicast-staging","backend-listener","backend-redis","system-app","system-memcache","system-mysql","system-redis","system-sidekiq","system-sphinx","zync","zync-database","zync-que"]}
            {"level":"info","ts":1582047357.4185312,"logger":"controller_apimanager","msg":"Deployment status will be updated"}
            {"level":"info","ts":1582047357.4298525,"logger":"controller_apimanager","msg":"ReconcileAPIManager","namespace":"eguzki-test","name":"example-apimanager","Operator version":"0.4.0","3scale release":"2.7"}
            {"level":"info","ts":1582047357.4317694,"logger":"olm","msg":"Found deployments with status ","stopped":[],"starting":["backend-cron","backend-worker"],"ready":["apicast-production","apicast-staging","backend-listener","backend-redis","system-app","system-memcache","system-mysql","system-redis","system-sidekiq","system-sphinx","zync","zync-database","zync-que"]}
            {"level":"info","ts":1582047357.9795582,"logger":"controller_apimanager","msg":"ReconcileAPIManager","namespace":"eguzki-test","name":"example-apimanager","Operator version":"0.4.0","3scale release":"2.7"}
            {"level":"info","ts":1582047357.9817069,"logger":"olm","msg":"Found deployments with status ","stopped":[],"starting":["backend-cron","backend-worker"],"ready":["apicast-production","apicast-staging","backend-listener","backend-redis","system-app","system-memcache","system-mysql","system-redis","system-sidekiq","system-sphinx","zync","zync-database","zync-que"]}
            {"level":"info","ts":1582047358.0226614,"logger":"controller_apimanager","msg":"ReconcileAPIManager","namespace":"eguzki-test","name":"example-apimanager","Operator version":"0.4.0","3scale release":"2.7"}
            {"level":"info","ts":1582047358.024779,"logger":"olm","msg":"Found deployments with status ","stopped":[],"starting":["backend-cron","backend-listener","backend-worker"],"ready":["apicast-production","apicast-staging","backend-redis","system-app","system-memcache","system-mysql","system-redis","system-sidekiq","system-sphinx","zync","zync-database","zync-que"]}
            {"level":"info","ts":1582047358.0248091,"logger":"controller_apimanager","msg":"Deployment status will be updated"}
            {"level":"info","ts":1582047358.0440934,"logger":"controller_apimanager","msg":"ReconcileAPIManager","namespace":"eguzki-test","name":"example-apimanager","Operator version":"0.4.0","3scale release":"2.7"}
            {"level":"info","ts":1582047358.0455737,"logger":"olm","msg":"Found deployments with status ","stopped":[],"starting":["backend-cron","backend-listener","backend-worker"],"ready":["apicast-production","apicast-staging","backend-redis","system-app","system-memcache","system-mysql","system-redis","system-sidekiq","system-sphinx","zync","zync-database","zync-que"]}
            {"level":"info","ts":1582047382.3518274,"logger":"controller_apimanager","msg":"ReconcileAPIManager","namespace":"eguzki-test","name":"example-apimanager","Operator version":"0.4.0","3scale release":"2.7"}
            {"level":"info","ts":1582047382.3541758,"logger":"olm","msg":"Found deployments with status ","stopped":[],"starting":["backend-cron","backend-listener"],"ready":["apicast-production","apicast-staging","backend-redis","backend-worker","system-app","system-memcache","system-mysql","system-redis","system-sidekiq","system-sphinx","zync","zync-database","zync-que"]}
            {"level":"info","ts":1582047382.3542082,"logger":"controller_apimanager","msg":"Deployment status will be updated"}
            {"level":"info","ts":1582047382.368832,"logger":"controller_apimanager","msg":"ReconcileAPIManager","namespace":"eguzki-test","name":"example-apimanager","Operator version":"0.4.0","3scale release":"2.7"}
            {"level":"info","ts":1582047382.3758366,"logger":"olm","msg":"Found deployments with status ","stopped":[],"starting":["backend-cron","backend-listener"],"ready":["apicast-production","apicast-staging","backend-redis","backend-worker","system-app","system-memcache","system-mysql","system-redis","system-sidekiq","system-sphinx","zync","zync-database","zync-que"]}
            {"level":"info","ts":1582047382.3777502,"logger":"controller_apimanager","msg":"ReconcileAPIManager","namespace":"eguzki-test","name":"example-apimanager","Operator version":"0.4.0","3scale release":"2.7"}
            {"level":"info","ts":1582047382.3797414,"logger":"olm","msg":"Found deployments with status ","stopped":[],"starting":["backend-listener"],"ready":["apicast-production","apicast-staging","backend-cron","backend-redis","backend-worker","system-app","system-memcache","system-mysql","system-redis","system-sidekiq","system-sphinx","zync","zync-database","zync-que"]}
            {"level":"info","ts":1582047382.379771,"logger":"controller_apimanager","msg":"Deployment status will be updated"}
            {"level":"info","ts":1582047382.3956828,"logger":"controller_apimanager","msg":"ReconcileAPIManager","namespace":"eguzki-test","name":"example-apimanager","Operator version":"0.4.0","3scale release":"2.7"}
            {"level":"info","ts":1582047382.3984036,"logger":"olm","msg":"Found deployments with status ","stopped":[],"starting":["backend-listener"],"ready":["apicast-production","apicast-staging","backend-cron","backend-redis","backend-worker","system-app","system-memcache","system-mysql","system-redis","system-sidekiq","system-sphinx","zync","zync-database","zync-que"]}
            {"level":"info","ts":1582047382.9790878,"logger":"controller_apimanager","msg":"ReconcileAPIManager","namespace":"eguzki-test","name":"example-apimanager","Operator version":"0.4.0","3scale release":"2.7"}
            {"level":"info","ts":1582047382.9887512,"logger":"olm","msg":"Found deployments with status ","stopped":[],"starting":["backend-listener"],"ready":["apicast-production","apicast-staging","backend-cron","backend-redis","backend-worker","system-app","system-memcache","system-mysql","system-redis","system-sidekiq","system-sphinx","zync","zync-database","zync-que"]}
            {"level":"info","ts":1582047383.209928,"logger":"controller_apimanager","msg":"ReconcileAPIManager","namespace":"eguzki-test","name":"example-apimanager","Operator version":"0.4.0","3scale release":"2.7"}
            {"level":"info","ts":1582047383.2119453,"logger":"olm","msg":"Found deployments with status ","stopped":[],"starting":["backend-listener"],"ready":["apicast-production","apicast-staging","backend-cron","backend-redis","backend-worker","system-app","system-memcache","system-mysql","system-redis","system-sidekiq","system-sphinx","zync","zync-database","zync-que"]}
            {"level":"info","ts":1582047385.7363195,"logger":"controller_apimanager","msg":"ReconcileAPIManager","namespace":"eguzki-test","name":"example-apimanager","Operator version":"0.4.0","3scale release":"2.7"}
            {"level":"info","ts":1582047385.7384694,"logger":"olm","msg":"Found deployments with status ","stopped":[],"starting":["backend-listener"],"ready":["apicast-production","apicast-staging","backend-cron","backend-redis","backend-worker","system-app","system-memcache","system-mysql","system-redis","system-sidekiq","system-sphinx","zync","zync-database","zync-que"]}
            {"level":"info","ts":1582047386.3830433,"logger":"controller_apimanager","msg":"ReconcileAPIManager","namespace":"eguzki-test","name":"example-apimanager","Operator version":"0.4.0","3scale release":"2.7"}
            {"level":"info","ts":1582047386.384962,"logger":"olm","msg":"Found deployments with status ","stopped":[],"starting":["backend-listener"],"ready":["apicast-production","apicast-staging","backend-cron","backend-redis","backend-worker","system-app","system-memcache","system-mysql","system-redis","system-sidekiq","system-sphinx","zync","zync-database","zync-que"]}
            {"level":"info","ts":1582047421.2165968,"logger":"controller_apimanager","msg":"ReconcileAPIManager","namespace":"eguzki-test","name":"example-apimanager","Operator version":"0.4.0","3scale release":"2.7"}
            {"level":"info","ts":1582047421.2237408,"logger":"olm","msg":"Found deployments with status ","stopped":[],"starting":[],"ready":["apicast-production","apicast-staging","backend-cron","backend-listener","backend-redis","backend-worker","system-app","system-memcache","system-mysql","system-redis","system-sidekiq","system-sphinx","zync","zync-database","zync-que"]}
            {"level":"info","ts":1582047421.2237725,"logger":"controller_apimanager","msg":"Deployment status will be updated"}
            {"level":"info","ts":1582047421.2317631,"logger":"controller_apimanager","msg":"ReconcileAPIManager","namespace":"eguzki-test","name":"example-apimanager","Operator version":"0.4.0","3scale release":"2.7"}
            {"level":"info","ts":1582047421.2354856,"logger":"olm","msg":"Found deployments with status ","stopped":[],"starting":[],"ready":["apicast-production","apicast-staging","backend-cron","backend-listener","backend-redis","backend-worker","system-app","system-memcache","system-mysql","system-redis","system-sidekiq","system-sphinx","zync","zync-database","zync-que"]}
            {"level":"info","ts":1582047421.9610047,"logger":"controller_apimanager","msg":"ReconcileAPIManager","namespace":"eguzki-test","name":"example-apimanager","Operator version":"0.4.0","3scale release":"2.7"}
            {"level":"info","ts":1582047421.9646926,"logger":"olm","msg":"Found deployments with status ","stopped":[],"starting":[],"ready":["apicast-production","apicast-staging","backend-cron","backend-listener","backend-redis","backend-worker","system-app","system-memcache","system-mysql","system-redis","system-sidekiq","system-sphinx","zync","zync-database","zync-que"]}
            {"level":"info","ts":1582047424.0606418,"logger":"controller_apimanager","msg":"ReconcileAPIManager","namespace":"eguzki-test","name":"example-apimanager","Operator version":"0.4.0","3scale release":"2.7"}
            {"level":"info","ts":1582047424.0622005,"logger":"olm","msg":"Found deployments with status ","stopped":[],"starting":[],"ready":["apicast-production","apicast-staging","backend-cron","backend-listener","backend-redis","backend-worker","system-app","system-memcache","system-mysql","system-redis","system-sidekiq","system-sphinx","zync","zync-database","zync-que"]}
            

            Before operator upgrade, backend imagestream object:

            apiVersion: image.openshift.io/v1
            kind: ImageStream
            metadata:
              annotations:
                openshift.io/display-name: AMP backend
                openshift.io/image.dockerRepositoryCheck: "2020-02-18T17:24:41Z"
              creationTimestamp: "2020-02-18T17:24:38Z"
              generation: 2
              labels:
                app: 3scale-api-management
                threescale_component: backend
              name: amp-backend
              namespace: eguzki-test
              ownerReferences:
              - apiVersion: apps.3scale.net/v1alpha1
                blockOwnerDeletion: true
                controller: true
                kind: APIManager
                name: example-apimanager
                uid: 8a4609fd-5273-11ea-b352-065562ed0850
              resourceVersion: "151176079"
              selfLink: /apis/image.openshift.io/v1/namespaces/eguzki-test/imagestreams/amp-backend
              uid: 8a58a1c6-5273-11ea-9135-0a580a80011a
            spec:
              lookupPolicy:
                local: false
              tags:
              - annotations:
                  openshift.io/display-name: amp-backend 2.7
                from:
                  kind: DockerImage
                  name: quay.io/3scale/3scale27:apisonator-3scale-2.7.0-GA
                generation: 2
                importPolicy: {}
                name: "2.7"
                referencePolicy:
                  type: Source
              - annotations:
                  openshift.io/display-name: amp-backend (latest)
                from:
                  kind: ImageStreamTag
                  name: "2.7"
                generation: 1
                importPolicy: {}
                name: latest
                referencePolicy:
                  type: Source
            status:
              dockerImageRepository: image-registry.openshift-image-registry.svc:5000/eguzki-test/amp-backend
              tags:
              - items:
                - created: "2020-02-18T17:24:41Z"
                  dockerImageReference: quay.io/3scale/3scale27@sha256:d0945a8b6cafa739441468ed124f41fd75783366ba675cf6b102f3b7e67ee9a4
                  generation: 2
                  image: sha256:d0945a8b6cafa739441468ed124f41fd75783366ba675cf6b102f3b7e67ee9a4
                tag: "2.7"
              - items:
                - created: "2020-02-18T17:24:41Z"
                  dockerImageReference: quay.io/3scale/3scale27@sha256:d0945a8b6cafa739441468ed124f41fd75783366ba675cf6b102f3b7e67ee9a4
                  generation: 2
                  image: sha256:d0945a8b6cafa739441468ed124f41fd75783366ba675cf6b102f3b7e67ee9a4
                tag: latest
            

            After operator upgrade, backend imagestream object:

            apiVersion: image.openshift.io/v1
            kind: ImageStream
            metadata:
              annotations:
                openshift.io/display-name: AMP backend
                openshift.io/image.dockerRepositoryCheck: "2020-02-18T17:35:46Z"
              creationTimestamp: "2020-02-18T17:24:38Z"
              generation: 4
              labels:
                app: 3scale-api-management
                threescale_component: backend
              name: amp-backend
              namespace: eguzki-test
              ownerReferences:
              - apiVersion: apps.3scale.net/v1alpha1
                blockOwnerDeletion: true
                controller: true
                kind: APIManager
                name: example-apimanager
                uid: 8a4609fd-5273-11ea-b352-065562ed0850
              resourceVersion: "151181510"
              selfLink: /apis/image.openshift.io/v1/namespaces/eguzki-test/imagestreams/amp-backend
              uid: 8a58a1c6-5273-11ea-9135-0a580a80011a
            spec:
              lookupPolicy:
                local: false
              tags:
              - annotations:
                  openshift.io/display-name: amp-backend 2.7
                from:
                  kind: DockerImage
                  name: quay.io/3scale/apisonator@sha256:b18cbb9a4d6f28ad701c516c8c2f3a61fa462c2831da5ab9d467f089aa94752c
                generation: 4
                importPolicy: {}
                name: "2.7"
                referencePolicy:
                  type: Source
              - annotations:
                  openshift.io/display-name: amp-backend (latest)
                from:
                  kind: ImageStreamTag
                  name: "2.7"
                generation: 1
                importPolicy: {}
                name: latest
                referencePolicy:
                  type: Source
            status:
              dockerImageRepository: image-registry.openshift-image-registry.svc:5000/eguzki-test/amp-backend
              tags:
              - items:
                - created: "2020-02-18T17:35:46Z"
                  dockerImageReference: quay.io/3scale/apisonator@sha256:b18cbb9a4d6f28ad701c516c8c2f3a61fa462c2831da5ab9d467f089aa94752c
                  generation: 4
                  image: sha256:b18cbb9a4d6f28ad701c516c8c2f3a61fa462c2831da5ab9d467f089aa94752c
                - created: "2020-02-18T17:24:41Z"
                  dockerImageReference: quay.io/3scale/3scale27@sha256:d0945a8b6cafa739441468ed124f41fd75783366ba675cf6b102f3b7e67ee9a4
                  generation: 2
                  image: sha256:d0945a8b6cafa739441468ed124f41fd75783366ba675cf6b102f3b7e67ee9a4
                tag: "2.7"
              - items:
                - created: "2020-02-18T17:35:46Z"
                  dockerImageReference: quay.io/3scale/apisonator@sha256:b18cbb9a4d6f28ad701c516c8c2f3a61fa462c2831da5ab9d467f089aa94752c
                  generation: 4
                  image: sha256:b18cbb9a4d6f28ad701c516c8c2f3a61fa462c2831da5ab9d467f089aa94752c
                - created: "2020-02-18T17:24:41Z"
                  dockerImageReference: quay.io/3scale/3scale27@sha256:d0945a8b6cafa739441468ed124f41fd75783366ba675cf6b102f3b7e67ee9a4
                  generation: 2
                  image: sha256:d0945a8b6cafa739441468ed124f41fd75783366ba675cf6b102f3b7e67ee9a4
                tag: latest
            

            The test shows that the new operator deployment config updates "desired" state of imagestreams and the operator runs reconciliation logic to get an stable state, thus upgrading images to the new urls.

            The test also shows that sha digest image urls are correctly managed by the operator and imagestreams objects

            Eguzki Astiz Lezaun added a comment - - edited Done the following test: 1.- Deploy 3scale 2.7 operator using OLM (custom operator source) https://github.com/3scale/3scale-operator/blob/master/doc/development.md#deploy-custom-3scale-operator-using-olm 2.- Deploy 3scale APIManager CR apiVersion: apps.3scale.net/v1alpha1 kind: APIManager metadata: name: example-apimanager namespace: eguzki-test spec: resourceRequirementsEnabled: false wildcardDomain: eguzki.apps.ocpdev-41.3sca.net Push new bundle to the operator source repo with an update in deployment of apisonator image url: from quay.io/3scale/3scale27:apisonator-3scale-2.7.0-GA to latest master image url by digest: quay.io/3scale/apisonator@sha256:b18cbb9a4d6f28ad701c516c8c2f3a61fa462c2831da5ab9d467f089aa94752c Run upgrade of the operator in the operatorhub dashboard. After new operator metadata is being deployed, check from the logs of the new operator deplolyment: a) backend imagestream is being updated b) imagestream update will trigger rolling update of all backend components. { "level" : "info" , "ts" :1582047345.829451, "logger" : "kubebuilder.controller" , "msg" : "Starting workers" , "controller" : "apimanager-controller" , "worker count" :1} { "level" : "info" , "ts" :1582047345.8296096, "logger" : "controller_apimanager" , "msg" : "ReconcileAPIManager" , "namespace" : "eguzki-test" , "name" : "example-apimanager" , "Operator version" : "0.4.0" , "3scale release" : "2.7" } { "level" : "info" , "ts" :1582047345.9301105, "logger" : "controller_apimanager" , "msg" : "Updated object ImageStream/amp-backend" } { "level" : "info" , "ts" :1582047346.7510338, "logger" : "olm" , "msg" : "Found deployments with status " , "stopped" :[], "starting" :[], "ready" :[ "apicast-production" , "apicast-staging" , "backend-cron" , "backend-listener" , "backend-redis" , "backend-worker" , "system-app" , "system-memcache" , "system-mysql" , "system-redis" , "system-sidekiq" , "system-sphinx" , "zync" , "zync-database" , "zync-que" ]} { "level" : "info" , "ts" :1582047347.4912093, "logger" : "controller_apimanager" , "msg" : "ReconcileAPIManager" , "namespace" : "eguzki-test" , "name" : "example-apimanager" , "Operator version" : "0.4.0" , "3scale release" : "2.7" } { "level" : "info" , "ts" :1582047347.4932077, "logger" : "olm" , "msg" : "Found deployments with status " , "stopped" :[], "starting" :[], "ready" :[ "apicast-production" , "apicast-staging" , "backend-cron" , "backend-listener" , "backend-redis" , "backend-worker" , "system-app" , "system-memcache" , "system-mysql" , "system-redis" , "system-sidekiq" , "system-sphinx" , "zync" , "zync-database" , "zync-que" ]} { "level" : "info" , "ts" :1582047347.4932795, "logger" : "controller_apimanager" , "msg" : "ReconcileAPIManager" , "namespace" : "eguzki-test" , "name" : "example-apimanager" , "Operator version" : "0.4.0" , "3scale release" : "2.7" } { "level" : "info" , "ts" :1582047347.4950788, "logger" : "olm" , "msg" : "Found deployments with status " , "stopped" :[], "starting" :[], "ready" :[ "apicast-production" , "apicast-staging" , "backend-cron" , "backend-listener" , "backend-redis" , "backend-worker" , "system-app" , "system-memcache" , "system-mysql" , "system-redis" , "system-sidekiq" , "system-sphinx" , "zync" , "zync-database" , "zync-que" ]} { "level" : "info" , "ts" :1582047347.4975436, "logger" : "controller_apimanager" , "msg" : "ReconcileAPIManager" , "namespace" : "eguzki-test" , "name" : "example-apimanager" , "Operator version" : "0.4.0" , "3scale release" : "2.7" } { "level" : "info" , "ts" :1582047347.4998822, "logger" : "olm" , "msg" : "Found deployments with status " , "stopped" :[], "starting" :[], "ready" :[ "apicast-production" , "apicast-staging" , "backend-cron" , "backend-listener" , "backend-redis" , "backend-worker" , "system-app" , "system-memcache" , "system-mysql" , "system-redis" , "system-sidekiq" , "system-sphinx" , "zync" , "zync-database" , "zync-que" ]} { "level" : "info" , "ts" :1582047347.509866, "logger" : "controller_apimanager" , "msg" : "ReconcileAPIManager" , "namespace" : "eguzki-test" , "name" : "example-apimanager" , "Operator version" : "0.4.0" , "3scale release" : "2.7" } { "level" : "info" , "ts" :1582047347.5117047, "logger" : "olm" , "msg" : "Found deployments with status " , "stopped" :[], "starting" :[], "ready" :[ "apicast-production" , "apicast-staging" , "backend-cron" , "backend-listener" , "backend-redis" , "backend-worker" , "system-app" , "system-memcache" , "system-mysql" , "system-redis" , "system-sidekiq" , "system-sphinx" , "zync" , "zync-database" , "zync-que" ]} { "level" : "info" , "ts" :1582047347.549219, "logger" : "controller_apimanager" , "msg" : "ReconcileAPIManager" , "namespace" : "eguzki-test" , "name" : "example-apimanager" , "Operator version" : "0.4.0" , "3scale release" : "2.7" } { "level" : "info" , "ts" :1582047347.556891, "logger" : "olm" , "msg" : "Found deployments with status " , "stopped" :[], "starting" :[], "ready" :[ "apicast-production" , "apicast-staging" , "backend-cron" , "backend-listener" , "backend-redis" , "backend-worker" , "system-app" , "system-memcache" , "system-mysql" , "system-redis" , "system-sidekiq" , "system-sphinx" , "zync" , "zync-database" , "zync-que" ]} { "level" : "info" , "ts" :1582047347.5569646, "logger" : "controller_apimanager" , "msg" : "ReconcileAPIManager" , "namespace" : "eguzki-test" , "name" : "example-apimanager" , "Operator version" : "0.4.0" , "3scale release" : "2.7" } { "level" : "info" , "ts" :1582047347.5663917, "logger" : "olm" , "msg" : "Found deployments with status " , "stopped" :[], "starting" :[], "ready" :[ "apicast-production" , "apicast-staging" , "backend-cron" , "backend-listener" , "backend-redis" , "backend-worker" , "system-app" , "system-memcache" , "system-mysql" , "system-redis" , "system-sidekiq" , "system-sphinx" , "zync" , "zync-database" , "zync-que" ]} { "level" : "info" , "ts" :1582047347.5824852, "logger" : "controller_apimanager" , "msg" : "ReconcileAPIManager" , "namespace" : "eguzki-test" , "name" : "example-apimanager" , "Operator version" : "0.4.0" , "3scale release" : "2.7" } { "level" : "info" , "ts" :1582047347.5845141, "logger" : "olm" , "msg" : "Found deployments with status " , "stopped" :[], "starting" :[], "ready" :[ "apicast-production" , "apicast-staging" , "backend-cron" , "backend-listener" , "backend-redis" , "backend-worker" , "system-app" , "system-memcache" , "system-mysql" , "system-redis" , "system-sidekiq" , "system-sphinx" , "zync" , "zync-database" , "zync-que" ]} { "level" : "info" , "ts" :1582047347.6420844, "logger" : "controller_apimanager" , "msg" : "ReconcileAPIManager" , "namespace" : "eguzki-test" , "name" : "example-apimanager" , "Operator version" : "0.4.0" , "3scale release" : "2.7" } { "level" : "info" , "ts" :1582047347.644136, "logger" : "olm" , "msg" : "Found deployments with status " , "stopped" :[], "starting" :[], "ready" :[ "apicast-production" , "apicast-staging" , "backend-cron" , "backend-listener" , "backend-redis" , "backend-worker" , "system-app" , "system-memcache" , "system-mysql" , "system-redis" , "system-sidekiq" , "system-sphinx" , "zync" , "zync-database" , "zync-que" ]} { "level" : "info" , "ts" :1582047347.6502018, "logger" : "controller_apimanager" , "msg" : "ReconcileAPIManager" , "namespace" : "eguzki-test" , "name" : "example-apimanager" , "Operator version" : "0.4.0" , "3scale release" : "2.7" } { "level" : "info" , "ts" :1582047347.686829, "logger" : "olm" , "msg" : "Found deployments with status " , "stopped" :[], "starting" :[], "ready" :[ "apicast-production" , "apicast-staging" , "backend-cron" , "backend-listener" , "backend-redis" , "backend-worker" , "system-app" , "system-memcache" , "system-mysql" , "system-redis" , "system-sidekiq" , "system-sphinx" , "zync" , "zync-database" , "zync-que" ]} { "level" : "info" , "ts" :1582047347.686902, "logger" : "controller_apimanager" , "msg" : "ReconcileAPIManager" , "namespace" : "eguzki-test" , "name" : "example-apimanager" , "Operator version" : "0.4.0" , "3scale release" : "2.7" } { "level" : "info" , "ts" :1582047347.6909068, "logger" : "olm" , "msg" : "Found deployments with status " , "stopped" :[], "starting" :[], "ready" :[ "apicast-production" , "apicast-staging" , "backend-cron" , "backend-listener" , "backend-redis" , "backend-worker" , "system-app" , "system-memcache" , "system-mysql" , "system-redis" , "system-sidekiq" , "system-sphinx" , "zync" , "zync-database" , "zync-que" ]} { "level" : "info" , "ts" :1582047356.7210972, "logger" : "controller_apimanager" , "msg" : "ReconcileAPIManager" , "namespace" : "eguzki-test" , "name" : "example-apimanager" , "Operator version" : "0.4.0" , "3scale release" : "2.7" } { "level" : "info" , "ts" :1582047356.7226849, "logger" : "olm" , "msg" : "Found deployments with status " , "stopped" :[], "starting" :[], "ready" :[ "apicast-production" , "apicast-staging" , "backend-cron" , "backend-listener" , "backend-redis" , "backend-worker" , "system-app" , "system-memcache" , "system-mysql" , "system-redis" , "system-sidekiq" , "system-sphinx" , "zync" , "zync-database" , "zync-que" ]} { "level" : "info" , "ts" :1582047356.8149383, "logger" : "controller_apimanager" , "msg" : "ReconcileAPIManager" , "namespace" : "eguzki-test" , "name" : "example-apimanager" , "Operator version" : "0.4.0" , "3scale release" : "2.7" } { "level" : "info" , "ts" :1582047356.8170025, "logger" : "olm" , "msg" : "Found deployments with status " , "stopped" :[], "starting" :[ "backend-cron" ], "ready" :[ "apicast-production" , "apicast-staging" , "backend-listener" , "backend-redis" , "backend-worker" , "system-app" , "system-memcache" , "system-mysql" , "system-redis" , "system-sidekiq" , "system-sphinx" , "zync" , "zync-database" , "zync-que" ]} { "level" : "info" , "ts" :1582047356.8170345, "logger" : "controller_apimanager" , "msg" : "Deployment status will be updated" } { "level" : "info" , "ts" :1582047356.8274662, "logger" : "controller_apimanager" , "msg" : "ReconcileAPIManager" , "namespace" : "eguzki-test" , "name" : "example-apimanager" , "Operator version" : "0.4.0" , "3scale release" : "2.7" } { "level" : "info" , "ts" :1582047356.8286786, "logger" : "olm" , "msg" : "Found deployments with status " , "stopped" :[], "starting" :[ "backend-cron" ], "ready" :[ "apicast-production" , "apicast-staging" , "backend-listener" , "backend-redis" , "backend-worker" , "system-app" , "system-memcache" , "system-mysql" , "system-redis" , "system-sidekiq" , "system-sphinx" , "zync" , "zync-database" , "zync-que" ]} { "level" : "info" , "ts" :1582047357.3040884, "logger" : "controller_apimanager" , "msg" : "ReconcileAPIManager" , "namespace" : "eguzki-test" , "name" : "example-apimanager" , "Operator version" : "0.4.0" , "3scale release" : "2.7" } { "level" : "info" , "ts" :1582047357.3089967, "logger" : "olm" , "msg" : "Found deployments with status " , "stopped" :[], "starting" :[ "backend-cron" ], "ready" :[ "apicast-production" , "apicast-staging" , "backend-listener" , "backend-redis" , "backend-worker" , "system-app" , "system-memcache" , "system-mysql" , "system-redis" , "system-sidekiq" , "system-sphinx" , "zync" , "zync-database" , "zync-que" ]} { "level" : "info" , "ts" :1582047357.4163995, "logger" : "controller_apimanager" , "msg" : "ReconcileAPIManager" , "namespace" : "eguzki-test" , "name" : "example-apimanager" , "Operator version" : "0.4.0" , "3scale release" : "2.7" } { "level" : "info" , "ts" :1582047357.4185038, "logger" : "olm" , "msg" : "Found deployments with status " , "stopped" :[], "starting" :[ "backend-cron" , "backend-worker" ], "ready" :[ "apicast-production" , "apicast-staging" , "backend-listener" , "backend-redis" , "system-app" , "system-memcache" , "system-mysql" , "system-redis" , "system-sidekiq" , "system-sphinx" , "zync" , "zync-database" , "zync-que" ]} { "level" : "info" , "ts" :1582047357.4185312, "logger" : "controller_apimanager" , "msg" : "Deployment status will be updated" } { "level" : "info" , "ts" :1582047357.4298525, "logger" : "controller_apimanager" , "msg" : "ReconcileAPIManager" , "namespace" : "eguzki-test" , "name" : "example-apimanager" , "Operator version" : "0.4.0" , "3scale release" : "2.7" } { "level" : "info" , "ts" :1582047357.4317694, "logger" : "olm" , "msg" : "Found deployments with status " , "stopped" :[], "starting" :[ "backend-cron" , "backend-worker" ], "ready" :[ "apicast-production" , "apicast-staging" , "backend-listener" , "backend-redis" , "system-app" , "system-memcache" , "system-mysql" , "system-redis" , "system-sidekiq" , "system-sphinx" , "zync" , "zync-database" , "zync-que" ]} { "level" : "info" , "ts" :1582047357.9795582, "logger" : "controller_apimanager" , "msg" : "ReconcileAPIManager" , "namespace" : "eguzki-test" , "name" : "example-apimanager" , "Operator version" : "0.4.0" , "3scale release" : "2.7" } { "level" : "info" , "ts" :1582047357.9817069, "logger" : "olm" , "msg" : "Found deployments with status " , "stopped" :[], "starting" :[ "backend-cron" , "backend-worker" ], "ready" :[ "apicast-production" , "apicast-staging" , "backend-listener" , "backend-redis" , "system-app" , "system-memcache" , "system-mysql" , "system-redis" , "system-sidekiq" , "system-sphinx" , "zync" , "zync-database" , "zync-que" ]} { "level" : "info" , "ts" :1582047358.0226614, "logger" : "controller_apimanager" , "msg" : "ReconcileAPIManager" , "namespace" : "eguzki-test" , "name" : "example-apimanager" , "Operator version" : "0.4.0" , "3scale release" : "2.7" } { "level" : "info" , "ts" :1582047358.024779, "logger" : "olm" , "msg" : "Found deployments with status " , "stopped" :[], "starting" :[ "backend-cron" , "backend-listener" , "backend-worker" ], "ready" :[ "apicast-production" , "apicast-staging" , "backend-redis" , "system-app" , "system-memcache" , "system-mysql" , "system-redis" , "system-sidekiq" , "system-sphinx" , "zync" , "zync-database" , "zync-que" ]} { "level" : "info" , "ts" :1582047358.0248091, "logger" : "controller_apimanager" , "msg" : "Deployment status will be updated" } { "level" : "info" , "ts" :1582047358.0440934, "logger" : "controller_apimanager" , "msg" : "ReconcileAPIManager" , "namespace" : "eguzki-test" , "name" : "example-apimanager" , "Operator version" : "0.4.0" , "3scale release" : "2.7" } { "level" : "info" , "ts" :1582047358.0455737, "logger" : "olm" , "msg" : "Found deployments with status " , "stopped" :[], "starting" :[ "backend-cron" , "backend-listener" , "backend-worker" ], "ready" :[ "apicast-production" , "apicast-staging" , "backend-redis" , "system-app" , "system-memcache" , "system-mysql" , "system-redis" , "system-sidekiq" , "system-sphinx" , "zync" , "zync-database" , "zync-que" ]} { "level" : "info" , "ts" :1582047382.3518274, "logger" : "controller_apimanager" , "msg" : "ReconcileAPIManager" , "namespace" : "eguzki-test" , "name" : "example-apimanager" , "Operator version" : "0.4.0" , "3scale release" : "2.7" } { "level" : "info" , "ts" :1582047382.3541758, "logger" : "olm" , "msg" : "Found deployments with status " , "stopped" :[], "starting" :[ "backend-cron" , "backend-listener" ], "ready" :[ "apicast-production" , "apicast-staging" , "backend-redis" , "backend-worker" , "system-app" , "system-memcache" , "system-mysql" , "system-redis" , "system-sidekiq" , "system-sphinx" , "zync" , "zync-database" , "zync-que" ]} { "level" : "info" , "ts" :1582047382.3542082, "logger" : "controller_apimanager" , "msg" : "Deployment status will be updated" } { "level" : "info" , "ts" :1582047382.368832, "logger" : "controller_apimanager" , "msg" : "ReconcileAPIManager" , "namespace" : "eguzki-test" , "name" : "example-apimanager" , "Operator version" : "0.4.0" , "3scale release" : "2.7" } { "level" : "info" , "ts" :1582047382.3758366, "logger" : "olm" , "msg" : "Found deployments with status " , "stopped" :[], "starting" :[ "backend-cron" , "backend-listener" ], "ready" :[ "apicast-production" , "apicast-staging" , "backend-redis" , "backend-worker" , "system-app" , "system-memcache" , "system-mysql" , "system-redis" , "system-sidekiq" , "system-sphinx" , "zync" , "zync-database" , "zync-que" ]} { "level" : "info" , "ts" :1582047382.3777502, "logger" : "controller_apimanager" , "msg" : "ReconcileAPIManager" , "namespace" : "eguzki-test" , "name" : "example-apimanager" , "Operator version" : "0.4.0" , "3scale release" : "2.7" } { "level" : "info" , "ts" :1582047382.3797414, "logger" : "olm" , "msg" : "Found deployments with status " , "stopped" :[], "starting" :[ "backend-listener" ], "ready" :[ "apicast-production" , "apicast-staging" , "backend-cron" , "backend-redis" , "backend-worker" , "system-app" , "system-memcache" , "system-mysql" , "system-redis" , "system-sidekiq" , "system-sphinx" , "zync" , "zync-database" , "zync-que" ]} { "level" : "info" , "ts" :1582047382.379771, "logger" : "controller_apimanager" , "msg" : "Deployment status will be updated" } { "level" : "info" , "ts" :1582047382.3956828, "logger" : "controller_apimanager" , "msg" : "ReconcileAPIManager" , "namespace" : "eguzki-test" , "name" : "example-apimanager" , "Operator version" : "0.4.0" , "3scale release" : "2.7" } { "level" : "info" , "ts" :1582047382.3984036, "logger" : "olm" , "msg" : "Found deployments with status " , "stopped" :[], "starting" :[ "backend-listener" ], "ready" :[ "apicast-production" , "apicast-staging" , "backend-cron" , "backend-redis" , "backend-worker" , "system-app" , "system-memcache" , "system-mysql" , "system-redis" , "system-sidekiq" , "system-sphinx" , "zync" , "zync-database" , "zync-que" ]} { "level" : "info" , "ts" :1582047382.9790878, "logger" : "controller_apimanager" , "msg" : "ReconcileAPIManager" , "namespace" : "eguzki-test" , "name" : "example-apimanager" , "Operator version" : "0.4.0" , "3scale release" : "2.7" } { "level" : "info" , "ts" :1582047382.9887512, "logger" : "olm" , "msg" : "Found deployments with status " , "stopped" :[], "starting" :[ "backend-listener" ], "ready" :[ "apicast-production" , "apicast-staging" , "backend-cron" , "backend-redis" , "backend-worker" , "system-app" , "system-memcache" , "system-mysql" , "system-redis" , "system-sidekiq" , "system-sphinx" , "zync" , "zync-database" , "zync-que" ]} { "level" : "info" , "ts" :1582047383.209928, "logger" : "controller_apimanager" , "msg" : "ReconcileAPIManager" , "namespace" : "eguzki-test" , "name" : "example-apimanager" , "Operator version" : "0.4.0" , "3scale release" : "2.7" } { "level" : "info" , "ts" :1582047383.2119453, "logger" : "olm" , "msg" : "Found deployments with status " , "stopped" :[], "starting" :[ "backend-listener" ], "ready" :[ "apicast-production" , "apicast-staging" , "backend-cron" , "backend-redis" , "backend-worker" , "system-app" , "system-memcache" , "system-mysql" , "system-redis" , "system-sidekiq" , "system-sphinx" , "zync" , "zync-database" , "zync-que" ]} { "level" : "info" , "ts" :1582047385.7363195, "logger" : "controller_apimanager" , "msg" : "ReconcileAPIManager" , "namespace" : "eguzki-test" , "name" : "example-apimanager" , "Operator version" : "0.4.0" , "3scale release" : "2.7" } { "level" : "info" , "ts" :1582047385.7384694, "logger" : "olm" , "msg" : "Found deployments with status " , "stopped" :[], "starting" :[ "backend-listener" ], "ready" :[ "apicast-production" , "apicast-staging" , "backend-cron" , "backend-redis" , "backend-worker" , "system-app" , "system-memcache" , "system-mysql" , "system-redis" , "system-sidekiq" , "system-sphinx" , "zync" , "zync-database" , "zync-que" ]} { "level" : "info" , "ts" :1582047386.3830433, "logger" : "controller_apimanager" , "msg" : "ReconcileAPIManager" , "namespace" : "eguzki-test" , "name" : "example-apimanager" , "Operator version" : "0.4.0" , "3scale release" : "2.7" } { "level" : "info" , "ts" :1582047386.384962, "logger" : "olm" , "msg" : "Found deployments with status " , "stopped" :[], "starting" :[ "backend-listener" ], "ready" :[ "apicast-production" , "apicast-staging" , "backend-cron" , "backend-redis" , "backend-worker" , "system-app" , "system-memcache" , "system-mysql" , "system-redis" , "system-sidekiq" , "system-sphinx" , "zync" , "zync-database" , "zync-que" ]} { "level" : "info" , "ts" :1582047421.2165968, "logger" : "controller_apimanager" , "msg" : "ReconcileAPIManager" , "namespace" : "eguzki-test" , "name" : "example-apimanager" , "Operator version" : "0.4.0" , "3scale release" : "2.7" } { "level" : "info" , "ts" :1582047421.2237408, "logger" : "olm" , "msg" : "Found deployments with status " , "stopped" :[], "starting" :[], "ready" :[ "apicast-production" , "apicast-staging" , "backend-cron" , "backend-listener" , "backend-redis" , "backend-worker" , "system-app" , "system-memcache" , "system-mysql" , "system-redis" , "system-sidekiq" , "system-sphinx" , "zync" , "zync-database" , "zync-que" ]} { "level" : "info" , "ts" :1582047421.2237725, "logger" : "controller_apimanager" , "msg" : "Deployment status will be updated" } { "level" : "info" , "ts" :1582047421.2317631, "logger" : "controller_apimanager" , "msg" : "ReconcileAPIManager" , "namespace" : "eguzki-test" , "name" : "example-apimanager" , "Operator version" : "0.4.0" , "3scale release" : "2.7" } { "level" : "info" , "ts" :1582047421.2354856, "logger" : "olm" , "msg" : "Found deployments with status " , "stopped" :[], "starting" :[], "ready" :[ "apicast-production" , "apicast-staging" , "backend-cron" , "backend-listener" , "backend-redis" , "backend-worker" , "system-app" , "system-memcache" , "system-mysql" , "system-redis" , "system-sidekiq" , "system-sphinx" , "zync" , "zync-database" , "zync-que" ]} { "level" : "info" , "ts" :1582047421.9610047, "logger" : "controller_apimanager" , "msg" : "ReconcileAPIManager" , "namespace" : "eguzki-test" , "name" : "example-apimanager" , "Operator version" : "0.4.0" , "3scale release" : "2.7" } { "level" : "info" , "ts" :1582047421.9646926, "logger" : "olm" , "msg" : "Found deployments with status " , "stopped" :[], "starting" :[], "ready" :[ "apicast-production" , "apicast-staging" , "backend-cron" , "backend-listener" , "backend-redis" , "backend-worker" , "system-app" , "system-memcache" , "system-mysql" , "system-redis" , "system-sidekiq" , "system-sphinx" , "zync" , "zync-database" , "zync-que" ]} { "level" : "info" , "ts" :1582047424.0606418, "logger" : "controller_apimanager" , "msg" : "ReconcileAPIManager" , "namespace" : "eguzki-test" , "name" : "example-apimanager" , "Operator version" : "0.4.0" , "3scale release" : "2.7" } { "level" : "info" , "ts" :1582047424.0622005, "logger" : "olm" , "msg" : "Found deployments with status " , "stopped" :[], "starting" :[], "ready" :[ "apicast-production" , "apicast-staging" , "backend-cron" , "backend-listener" , "backend-redis" , "backend-worker" , "system-app" , "system-memcache" , "system-mysql" , "system-redis" , "system-sidekiq" , "system-sphinx" , "zync" , "zync-database" , "zync-que" ]} Before operator upgrade, backend imagestream object: apiVersion: image.openshift.io/v1 kind: ImageStream metadata: annotations: openshift.io/display-name: AMP backend openshift.io/image.dockerRepositoryCheck: "2020-02-18T17:24:41Z" creationTimestamp: "2020-02-18T17:24:38Z" generation: 2 labels: app: 3scale-api-management threescale_component: backend name: amp-backend namespace: eguzki-test ownerReferences: - apiVersion: apps.3scale.net/v1alpha1 blockOwnerDeletion: true controller: true kind: APIManager name: example-apimanager uid: 8a4609fd-5273-11ea-b352-065562ed0850 resourceVersion: "151176079" selfLink: /apis/image.openshift.io/v1/namespaces/eguzki-test/imagestreams/amp-backend uid: 8a58a1c6-5273-11ea-9135-0a580a80011a spec: lookupPolicy: local: false tags: - annotations: openshift.io/display-name: amp-backend 2.7 from: kind: DockerImage name: quay.io/3scale/3scale27:apisonator-3scale-2.7.0-GA generation: 2 importPolicy: {} name: "2.7" referencePolicy: type: Source - annotations: openshift.io/display-name: amp-backend (latest) from: kind: ImageStreamTag name: "2.7" generation: 1 importPolicy: {} name: latest referencePolicy: type: Source status: dockerImageRepository: image-registry.openshift-image-registry.svc:5000/eguzki-test/amp-backend tags: - items: - created: "2020-02-18T17:24:41Z" dockerImageReference: quay.io/3scale/3scale27@sha256:d0945a8b6cafa739441468ed124f41fd75783366ba675cf6b102f3b7e67ee9a4 generation: 2 image: sha256:d0945a8b6cafa739441468ed124f41fd75783366ba675cf6b102f3b7e67ee9a4 tag: "2.7" - items: - created: "2020-02-18T17:24:41Z" dockerImageReference: quay.io/3scale/3scale27@sha256:d0945a8b6cafa739441468ed124f41fd75783366ba675cf6b102f3b7e67ee9a4 generation: 2 image: sha256:d0945a8b6cafa739441468ed124f41fd75783366ba675cf6b102f3b7e67ee9a4 tag: latest After operator upgrade, backend imagestream object: apiVersion: image.openshift.io/v1 kind: ImageStream metadata: annotations: openshift.io/display-name: AMP backend openshift.io/image.dockerRepositoryCheck: "2020-02-18T17:35:46Z" creationTimestamp: "2020-02-18T17:24:38Z" generation: 4 labels: app: 3scale-api-management threescale_component: backend name: amp-backend namespace: eguzki-test ownerReferences: - apiVersion: apps.3scale.net/v1alpha1 blockOwnerDeletion: true controller: true kind: APIManager name: example-apimanager uid: 8a4609fd-5273-11ea-b352-065562ed0850 resourceVersion: "151181510" selfLink: /apis/image.openshift.io/v1/namespaces/eguzki-test/imagestreams/amp-backend uid: 8a58a1c6-5273-11ea-9135-0a580a80011a spec: lookupPolicy: local: false tags: - annotations: openshift.io/display-name: amp-backend 2.7 from: kind: DockerImage name: quay.io/3scale/apisonator@sha256:b18cbb9a4d6f28ad701c516c8c2f3a61fa462c2831da5ab9d467f089aa94752c generation: 4 importPolicy: {} name: "2.7" referencePolicy: type: Source - annotations: openshift.io/display-name: amp-backend (latest) from: kind: ImageStreamTag name: "2.7" generation: 1 importPolicy: {} name: latest referencePolicy: type: Source status: dockerImageRepository: image-registry.openshift-image-registry.svc:5000/eguzki-test/amp-backend tags: - items: - created: "2020-02-18T17:35:46Z" dockerImageReference: quay.io/3scale/apisonator@sha256:b18cbb9a4d6f28ad701c516c8c2f3a61fa462c2831da5ab9d467f089aa94752c generation: 4 image: sha256:b18cbb9a4d6f28ad701c516c8c2f3a61fa462c2831da5ab9d467f089aa94752c - created: "2020-02-18T17:24:41Z" dockerImageReference: quay.io/3scale/3scale27@sha256:d0945a8b6cafa739441468ed124f41fd75783366ba675cf6b102f3b7e67ee9a4 generation: 2 image: sha256:d0945a8b6cafa739441468ed124f41fd75783366ba675cf6b102f3b7e67ee9a4 tag: "2.7" - items: - created: "2020-02-18T17:35:46Z" dockerImageReference: quay.io/3scale/apisonator@sha256:b18cbb9a4d6f28ad701c516c8c2f3a61fa462c2831da5ab9d467f089aa94752c generation: 4 image: sha256:b18cbb9a4d6f28ad701c516c8c2f3a61fa462c2831da5ab9d467f089aa94752c - created: "2020-02-18T17:24:41Z" dockerImageReference: quay.io/3scale/3scale27@sha256:d0945a8b6cafa739441468ed124f41fd75783366ba675cf6b102f3b7e67ee9a4 generation: 2 image: sha256:d0945a8b6cafa739441468ed124f41fd75783366ba675cf6b102f3b7e67ee9a4 tag: latest The test shows that the new operator deployment config updates "desired" state of imagestreams and the operator runs reconciliation logic to get an stable state, thus upgrading images to the new urls. The test also shows that sha digest image urls are correctly managed by the operator and imagestreams objects

              ficap_devel Filip Čáp (Inactive)
              msorianod Miguel Soriano
              Filip Čáp Filip Čáp (Inactive)
              Eguzki Astiz Lezaun Eguzki Astiz Lezaun
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: