-
Bug
-
Resolution: Done
-
Major
-
None
-
None
-
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
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
This issue is blocked by
THREESCALE-5108because QE should get environment for testing and getting the environment is tracked inTHREESCALE-5108.