Bug 1831243
| Summary: | Image triggers do not work on v1 StatefulSets | |||
|---|---|---|---|---|
| Product: | OpenShift Container Platform | Reporter: | Clayton Coleman <ccoleman> | |
| Component: | openshift-controller-manager | Assignee: | Clayton Coleman <ccoleman> | |
| Status: | CLOSED ERRATA | QA Contact: | wewang <wewang> | |
| Severity: | high | Docs Contact: | ||
| Priority: | unspecified | |||
| Version: | 4.5 | CC: | adam.kaplan, aos-bugs, mfojtik, sdodson | |
| Target Milestone: | --- | |||
| Target Release: | 4.5.0 | |||
| Hardware: | Unspecified | |||
| OS: | Unspecified | |||
| Whiteboard: | ||||
| Fixed In Version: | Doc Type: | Bug Fix | ||
| Doc Text: |
Cause: trigger controller was not aware of the GA version of StatefulSet
Consequence: triggers could not work on v1.StatefulSet objects
Fix: trigger controller now understands v1.StatefulSet
Result: triggers work on v1.StatefulSet objects
|
Story Points: | --- | |
| Clone Of: | ||||
| : | 1831245 (view as bug list) | Environment: | ||
| Last Closed: | 2020-07-13 17:34:48 UTC | Type: | Bug | |
| Regression: | --- | Mount Type: | --- | |
| Documentation: | --- | CRM: | ||
| Verified Versions: | Category: | --- | ||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | ||
| Cloudforms Team: | --- | Target Upstream Version: | ||
| Embargoed: | ||||
| Bug Depends On: | ||||
| Bug Blocks: | 1831245 | |||
|
Description
Clayton Coleman
2020-05-04 18:15:55 UTC
@adam I am not sure my steps are correct to verify the bug, could you help to check, thanks.
Steps:
1. Create pod with the following file:
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: testapp
spec:
selector:
matchLabels:
app: testapp
replicas: 1
template:
metadata:
labels:
app: testapp
spec:
containers:
- name: testapp
image: centos/ruby-25-centos7:latest
command:
- /bin/sleep
args:
- infinity
2. Check the pod is running
3. Change containers image like "centos/ruby-26-centos7:latest" , then statefulset rollout and pods is running again.
Recreator is a stateful set with a trigger:
kind: ImageStream
apiVersion: image.openshift.io/v1
metadata:
name: ci-search
namespace: ci-search
spec:
lookupPolicy:
local: true
tags:
- name: latest
importPolicy:
scheduled: true
from:
kind: DockerImage
name: registry.svc.ci.openshift.org/ci/ci-search:latest
When the ci-search tag is updated (manually or scheduled) then the following stateful set should roll out
kind: StatefulSet
apiVersion: apps/v1
metadata:
name: search
namespace: ci-search
annotations:
image.openshift.io/triggers: '[{"from":{"kind":"ImageStreamTag","name":"ci-search:latest"},"fieldPath":"spec.template.spec.containers[?(@.name==\"web\")].image"}]'
spec:
selector:
matchLabels:
app: search
template:
metadata:
labels:
app: search
spec:
automountServiceAccountToken: false
volumes:
- name: bugzilla-token
secret:
secretName: bugzilla-credentials-bugzilla.redhat.com
containers:
- name: web
image: ci-search:latest
resources:
requests:
cpu: 100m
memory: 1Gi
volumeMounts:
- name: bugzilla-token
mountPath: /etc/bugzilla/
- mountPath: /var/lib/ci-search/
name: search
command:
- /usr/bin/search
Thanks so much @Clayton Coleman, According your ci-search example, be convenient for QE to auto cases, so I verified the bug with follow steps
Version:
4.5.0-0.nightly-2020-05-08-200452
Steps:
1. $oc create -f statefulset-trigger.yaml
2. $oc get statefulset/testtrigger -o jsonpath={.metadata.generation}
2
3. $ oc tag centos/ruby-25-centos7 rubytest:latest
[wewang@wangwen ~]$ oc get pods -w
NAME READY STATUS RESTARTS AGE
testtrigger-0 1/1 Terminating 0 2m35s
testtrigger-0 0/1 Terminating 0 3m4s
testtrigger-0 0/1 Terminating 0 3m5s
testtrigger-0 0/1 Terminating 0 3m5s
testtrigger-0 0/1 Pending 0 0s
testtrigger-0 0/1 Pending 0 0s
testtrigger-0 0/1 ContainerCreating 0 0s
testtrigger-0 0/1 ContainerCreating 0 2s
testtrigger-0 0/1 ContainerCreating 0 11s
testtrigger-0 1/1 Running 0 22s
4. oc get statefulset/testtrigger -o jsonpath={.metadata.generation}
3
```
[wewang@wangwen ~]$ cat statefulset-trigger.yaml
apiVersion: v1
kind: List
items:
- apiVersion: image.openshift.io/v1
kind: ImageStream
metadata:
name: rubytest
spec:
lookupPolicy:
local: true
tags:
- name: latest
importPolicy:
scheduled: true
from:
kind: DockerImage
name: quay.io/openshifttest/ruby-25-centos7
- apiVersion: apps/v1
kind: StatefulSet
metadata:
name: testtrigger
annotations:
image.openshift.io/triggers: '[{"from":{"kind":"ImageStreamTag","name":"rubytest:latest"},"fieldPath":"spec.template.spec.containers[?(@.name==\"testtrigger\")].image"}]'
spec:
selector:
matchLabels:
app: testtrigger
replicas: 1
template:
metadata:
labels:
app: testtrigger
spec:
containers:
- name: testtrigger
image: rubytest:latest
command:
- /bin/sleep
args:
- infinity
```
Thanks so much @Clayton Coleman, According your ci-search example, be convenient for QE to auto cases, so I verified the bug with follow steps
Version:
4.5.0-0.nightly-2020-05-08-200452
Steps:
1. $oc create -f statefulset-trigger.yaml
2. $oc get statefulset/testtrigger -o jsonpath={.metadata.generation}
2
3. $ oc tag centos/ruby-25-centos7 rubytest:latest
[wewang@wangwen ~]$ oc get pods -w
NAME READY STATUS RESTARTS AGE
testtrigger-0 1/1 Terminating 0 2m35s
testtrigger-0 0/1 Pending 0 0s
testtrigger-0 0/1 ContainerCreating 0 0s
testtrigger-0 1/1 Running 0 22s
4. oc get statefulset/testtrigger -o jsonpath={.metadata.generation}
3
```
[wewang@wangwen ~]$ cat statefulset-trigger.yaml
apiVersion: v1
kind: List
items:
- apiVersion: image.openshift.io/v1
kind: ImageStream
metadata:
name: rubytest
spec:
lookupPolicy:
local: true
tags:
- name: latest
importPolicy:
scheduled: true
from:
kind: DockerImage
name: quay.io/openshifttest/ruby-25-centos7
- apiVersion: apps/v1
kind: StatefulSet
metadata:
name: testtrigger
annotations:
image.openshift.io/triggers: '[{"from":{"kind":"ImageStreamTag","name":"rubytest:latest"},"fieldPath":"spec.template.spec.containers[?(@.name==\"testtrigger\")].image"}]'
spec:
selector:
matchLabels:
app: testtrigger
replicas: 1
template:
metadata:
labels:
app: testtrigger
spec:
containers:
- name: testtrigger
image: rubytest:latest
command:
- /bin/sleep
args:
- infinity
```
Oh, because of network, I clicked submit twice. Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2020:2409 |