-
Bug
-
Resolution: Not a Bug
-
Major
-
None
-
4.10
-
None
Description of problem:
The DeploymentConfig trigger for automtic update/rollout, even though set to false/disabled. Even with this trigger disabled, when you manually change image in the DC it spawns new RC with reason "image change". ~~~ sh-4.2# oc get dc NAME REVISION DESIRED CURRENT TRIGGERED BY example 1 1 0 image(httpd:latest) sh-4.2# oc get rc NAME DESIRED CURRENT READY AGE example-1 0 0 0 7h58m ("disabling automatic") sh-4.2# oc edit dc deploymentconfig.apps.openshift.io/example edited sh-4.2# oc get dc NAME REVISION DESIRED CURRENT TRIGGERED BY example 1 1 0 (Changing spec.template.spec.containers.image: image-registry.openshift-image-registry.svc:5000/openshift/httpd:latest to spec.template.spec.containers.image: image-registry.openshift-image-registry.svc:5000/openshift/httpd ) sh-4.2# oc edit dc deploymentconfig.apps.openshift.io/example edited sh-4.2# oc get dc NAME REVISION DESIRED CURRENT TRIGGERED BY example 2 1 0 sh-4.2# oc get rc NAME DESIRED CURRENT READY AGE example-1 0 0 0 7h58m example-2 1 1 0 7s sh-4.2# oc describe rc example-2 (...) openshift.io/deployment.status-reason: image change
Version-Release number of selected component (if applicable):
How reproducible:
Steps to Reproduce:
1. oc new-project test-httpd 2. oc new-app --template httpd-example # remove config change trigger 3. oc patch dc httpd-example --type=json -p='[{"op": "remove", "path": "/spec/triggers/1"}]' # change the imagechange trigger 4. oc patch dc httpd-example --type=json -p='[{"op": "replace", "path": "/spec/triggers/0/imageChangeParams/automatic", "boolean":"false"}]' 2. The automatic being set to false removed the trigger from the `oc get dc` output, but the trigger is still active. So if we edit the dc and change image tag manually, it will always trigger new rollout because automatic being set to false removed the trigger from the `oc get dc`.
Actual results:
The trigger should not be active, and rollout of new rc should not trigger.
Expected results:
The trigger should stop.
Additional info:
The problem is that with imageChangeParams.automatic set to false, manual change is still triggering the rollout with reason being: Name: example-2 Namespace: (....) Selector: app=httpd,deployment=example-2,deploymentconfig=example Labels: openshift.io/deployment-config.name=example Annotations: (...) openshift.io/deployment.status-reason: image changeIf we decide to manually rollout the "example" we'll get information, that the reason behind the deployment is: Name: example-3 Namespace: (...) Selector: app=httpd,deployment=example-3,deploymentconfig=example Labels: openshift.io/deployment-config.name=example Annotations: (...) openshift.io/deployment.status-reason: manual change We can remove the whole "ImageChange" trigger altogether and set non-existent "webhook" - e.g triggers: - type: GitHub And then manual changes to the image are not triggering the rollout. The main question here, is what exactly is "imageChangeParams.automatic set to false" is disabling and if there's another way on disabling the rollout on manual changes, other than removing the "ImageChange" trigger as a whole.