Skip to content

Commit e3bc00a

Browse files
committed
chore: reproduce unnecessary statefulset restarts
1 parent bba7a4b commit e3bc00a

6 files changed

Lines changed: 106 additions & 0 deletions

File tree

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{% if test_scenario['values']['openshift'] == 'true' %}
2+
# see https://github.com/stackabletech/issues/issues/566
3+
---
4+
apiVersion: kuttl.dev/v1beta1
5+
kind: TestStep
6+
commands:
7+
- script: kubectl patch namespace $NAMESPACE -p '{"metadata":{"labels":{"pod-security.kubernetes.io/enforce":"privileged"}}}'
8+
timeout: 120
9+
{% endif %}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
---
2+
apiVersion: kuttl.dev/v1beta1
3+
kind: TestAssert
4+
timeout: 300
5+
---
6+
apiVersion: apps/v1
7+
kind: StatefulSet
8+
metadata:
9+
name: test
10+
generation: 1
11+
status:
12+
readyReplicas: 2
13+
replicas: 2
14+
observedGeneration: 1
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
---
2+
# A minimal StatefulSet opted in to the restarter, mounting a ConfigMap.
3+
4+
apiVersion: v1
5+
kind: ConfigMap
6+
metadata:
7+
name: test-config
8+
data:
9+
foo: bar
10+
---
11+
apiVersion: apps/v1
12+
kind: StatefulSet
13+
metadata:
14+
name: test
15+
labels:
16+
restarter.stackable.tech/enabled: "true"
17+
spec:
18+
selector:
19+
matchLabels:
20+
app: test
21+
serviceName: test
22+
replicas: 2
23+
template:
24+
metadata:
25+
labels:
26+
app: test
27+
spec:
28+
terminationGracePeriodSeconds: 1
29+
containers:
30+
- name: nginx
31+
image: nginxinc/nginx-unprivileged:1.27
32+
volumeMounts:
33+
- name: config
34+
mountPath: /config
35+
volumes:
36+
- name: config
37+
configMap:
38+
name: test-config
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
---
2+
apiVersion: kuttl.dev/v1beta1
3+
kind: TestAssert
4+
timeout: 30
5+
---
6+
# The ConfigMap content never changed.
7+
apiVersion: v1
8+
kind: ConfigMap
9+
metadata:
10+
name: test-config
11+
data:
12+
foo: bar
13+
---
14+
# This should stay on generation 1
15+
apiVersion: apps/v1
16+
kind: StatefulSet
17+
metadata:
18+
name: test
19+
generation: 1
20+
status:
21+
readyReplicas: 2
22+
replicas: 2
23+
observedGeneration: 1
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
---
2+
apiVersion: kuttl.dev/v1beta1
3+
kind: TestStep
4+
timeout: 120
5+
commands:
6+
# Do a change that should (tm) not have an impact on a pod mounting/needing this cm.
7+
- script: |
8+
kubectl apply --server-side --field-manager=third-party-controller --force-conflicts -f - <<EOF
9+
apiVersion: v1
10+
kind: ConfigMap
11+
metadata:
12+
name: test-config
13+
namespace: $NAMESPACE
14+
data:
15+
foo: bar
16+
EOF
17+
18+
# Bit of time before the restart-controller can react, otherwise we directly pass.
19+
- script: sleep 15

tests/test-definition.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@ tests:
1010
- name: restarter-no-unneeded-restart
1111
dimensions:
1212
- openshift
13+
- name: restarter-content-identical-write
14+
dimensions:
15+
- openshift
1316
suites:
1417
- name: nightly
1518
- name: openshift

0 commit comments

Comments
 (0)