Skip to content

Commit d3be1f2

Browse files
authored
[system test] [doc] ClusterOperatorST, CustomResourceStatusST, Featur… (#11823)
Signed-off-by: see-quick <maros.orsak159@gmail.com>
1 parent b52ab91 commit d3be1f2

16 files changed

Lines changed: 579 additions & 14 deletions

development-docs/systemtests/io.strimzi.systemtest.log.LogSettingST.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,5 +113,5 @@
113113
**Labels:**
114114

115115
* [logging](labels/logging.md)
116-
* `mirror-maker-2` (description file doesn't exist)
116+
* [mirror-maker-2](labels/mirror-maker-2.md)
117117

development-docs/systemtests/io.strimzi.systemtest.metrics.MetricsST.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@
202202

203203
* [kafka](labels/kafka.md)
204204
* [metrics](labels/metrics.md)
205-
* `mirror-maker-2` (description file doesn't exist)
205+
* [mirror-maker-2](labels/mirror-maker-2.md)
206206

207207

208208
## testUserOperatorMetrics

development-docs/systemtests/io.strimzi.systemtest.metrics.StrimziMetricsReporterST.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,5 +97,5 @@
9797

9898
* [kafka](labels/kafka.md)
9999
* [metrics](labels/metrics.md)
100-
* `mirror-maker-2` (description file doesn't exist)
100+
* [mirror-maker-2](labels/mirror-maker-2.md)
101101

development-docs/systemtests/io.strimzi.systemtest.mirrormaker.MirrorMaker2ST.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
**Labels:**
66

7-
* `mirror-maker-2` (description file doesn't exist)
7+
* [mirror-maker-2](labels/mirror-maker-2.md)
88

99
<hr style="border:1px solid">
1010

@@ -23,7 +23,7 @@
2323

2424
**Labels:**
2525

26-
* `mirror-maker-2` (description file doesn't exist)
26+
* [mirror-maker-2](labels/mirror-maker-2.md)
2727

2828

2929
## testKafkaMirrorMaker2ConnectorsStateAndOffsetManagement
@@ -41,7 +41,7 @@
4141

4242
**Labels:**
4343

44-
* `mirror-maker-2` (description file doesn't exist)
44+
* [mirror-maker-2](labels/mirror-maker-2.md)
4545

4646

4747
## testKMM2RollAfterSecretsCertsUpdateScramSha
@@ -59,7 +59,7 @@
5959

6060
**Labels:**
6161

62-
* `mirror-maker-2` (description file doesn't exist)
62+
* [mirror-maker-2](labels/mirror-maker-2.md)
6363

6464

6565
## testKMM2RollAfterSecretsCertsUpdateTLS
@@ -77,7 +77,7 @@
7777

7878
**Labels:**
7979

80-
* `mirror-maker-2` (description file doesn't exist)
80+
* [mirror-maker-2](labels/mirror-maker-2.md)
8181

8282

8383
## testMirrorMaker2
@@ -98,7 +98,7 @@
9898

9999
**Labels:**
100100

101-
* `mirror-maker-2` (description file doesn't exist)
101+
* [mirror-maker-2](labels/mirror-maker-2.md)
102102

103103

104104
## testMirrorMaker2CorrectlyMirrorsHeaders
@@ -115,7 +115,7 @@
115115

116116
**Labels:**
117117

118-
* `mirror-maker-2` (description file doesn't exist)
118+
* [mirror-maker-2](labels/mirror-maker-2.md)
119119

120120

121121
## testMirrorMaker2TlsAndScramSha512Auth
@@ -134,7 +134,7 @@
134134

135135
**Labels:**
136136

137-
* `mirror-maker-2` (description file doesn't exist)
137+
* [mirror-maker-2](labels/mirror-maker-2.md)
138138

139139

140140
## testMirrorMaker2TlsAndTlsClientAuth
@@ -154,7 +154,7 @@
154154

155155
**Labels:**
156156

157-
* `mirror-maker-2` (description file doesn't exist)
157+
* [mirror-maker-2](labels/mirror-maker-2.md)
158158

159159

160160
## testRestoreOffsetsInConsumerGroup
@@ -172,7 +172,7 @@
172172

173173
**Labels:**
174174

175-
* `mirror-maker-2` (description file doesn't exist)
175+
* [mirror-maker-2](labels/mirror-maker-2.md)
176176

177177

178178
## testScaleMirrorMaker2UpAndDownToZero
@@ -190,5 +190,5 @@
190190

191191
**Labels:**
192192

193-
* `mirror-maker-2` (description file doesn't exist)
193+
* [mirror-maker-2](labels/mirror-maker-2.md)
194194

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# ClusterOperatorRbacST
2+
3+
**Description:** Test suite containing Cluster Operator RBAC scenarios related to ClusterRoleBinding (CRB) permissions, ensuring proper functionality when namespace-scoped RBAC is used instead of cluster-wide permissions.
4+
5+
**Labels:**
6+
7+
* [connect](labels/connect.md)
8+
9+
<hr style="border:1px solid">
10+
11+
## testCRBDeletionErrorIsIgnoredWhenRackAwarenessIsNotEnabled
12+
13+
**Description:** This test verifies that the Cluster Operator can deploy Kafka and KafkaConnect resources even when ClusterRoleBinding permissions are not available, as long as rack awareness is not enabled. The test ensures that forbidden access to CRB resources is properly ignored when not required.
14+
15+
**Steps:**
16+
17+
| Step | Action | Result |
18+
| - | - | - |
19+
| 1. | Deploy Cluster Operator with namespace-scoped RBAC configuration. | Cluster Operator is configured with namespace-scoped access. |
20+
| 2. | Create KafkaNodePools for brokers and controllers (without enabling rack awareness). | KafkaNodePools are created successfully. |
21+
| 3. | Deploy Kafka cluster without rack awareness configuration. | Kafka cluster is deployed successfully despite missing CRB permissions. |
22+
| 4. | Verify Cluster Operator logs contain information about ignoring forbidden CRB access for Kafka. | Logs show that forbidden access to ClusterRoleBindings for Kafka is ignored. |
23+
| 5. | Deploy KafkaConnect without rack awareness configuration. | KafkaConnect is deployed successfully despite missing CRB permissions. |
24+
| 6. | Verify Cluster Operator logs contain information about ignoring forbidden CRB access for KafkaConnect. | Logs show that forbidden access to ClusterRoleBindings for KafkaConnect is ignored. |
25+
26+
**Labels:**
27+
28+
* [connect](labels/connect.md)
29+
30+
31+
## testCRBDeletionErrorsWhenRackAwarenessIsEnabled
32+
33+
**Description:** This test verifies that Cluster Operator fails to deploy Kafka and KafkaConnect resources when ClusterRoleBinding permissions are not available and rack awareness is enabled. The test ensures that error conditions are reported when CRB access is required but not available.
34+
35+
**Steps:**
36+
37+
| Step | Action | Result |
38+
| - | - | - |
39+
| 1. | Deploy Cluster Operator with namespace-scoped RBAC configuration. | Cluster Operator is configured with limited ClusterRoleBinding access. |
40+
| 2. | Create KafkaNodePools for brokers and controllers. | KafkaNodePools are created successfully. |
41+
| 3. | Deploy Kafka cluster with rack awareness configuration enabled. | Kafka deployment fails because CRB permissions are missing. |
42+
| 4. | Verify Kafka status condition contains 403 forbidden error message. | Kafka status shows NotReady condition with code=403 error. |
43+
| 5. | Deploy KafkaConnect with rack awareness configuration enabled. | KafkaConnect deployment fails because CRB permissions are missing. |
44+
| 6. | Verify KafkaConnect status condition contains 403 forbidden error message. | KafkaConnect status shows NotReady condition with code=403 error. |
45+
46+
**Labels:**
47+
48+
* [connect](labels/connect.md)
49+
Lines changed: 163 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,163 @@
1+
# CustomResourceStatusST
2+
3+
**Description:** Test suite containing Custom Resource status verification scenarios, ensuring proper status reporting for Kafka, KafkaConnect, KafkaBridge, KafkaUser, and KafkaMirrorMaker2 resources.
4+
5+
**Before test execution steps:**
6+
7+
| Step | Action | Result |
8+
| - | - | - |
9+
| 1. | Deploy Cluster Operator with custom configuration. | Cluster Operator is deployed with operation timeout settings. |
10+
| 2. | Deploy shared Kafka cluster with multiple listeners. | Kafka cluster is deployed and ready with plain, TLS, and external listeners. |
11+
12+
**Labels:**
13+
14+
* [kafka](labels/kafka.md)
15+
16+
<hr style="border:1px solid">
17+
18+
## testKafkaBridgeStatus
19+
20+
**Description:** This test verifies that KafkaBridge status is correctly reported, including observed generation updates and URL information during ready and not ready states.
21+
22+
**Steps:**
23+
24+
| Step | Action | Result |
25+
| - | - | - |
26+
| 1. | Deploy KafkaBridge and verify initial status. | KafkaBridge is ready with correct status information including URL. |
27+
| 2. | Modify KafkaBridge resource requests/limits to cause NotReady state. | KafkaBridge becomes NotReady due to insufficient CPU resources. |
28+
| 3. | Restore KafkaBridge resources to recover. | KafkaBridge returns to Ready state with updated observed generation. |
29+
30+
**Labels:**
31+
32+
* [kafka](labels/kafka.md)
33+
* [bridge](labels/bridge.md)
34+
35+
36+
## testKafkaConnectAndConnectorStatus
37+
38+
**Description:** This test verifies that KafkaConnect and KafkaConnector status is correctly reported during various state transitions including Ready, NotReady, and configuration changes.
39+
40+
**Steps:**
41+
42+
| Step | Action | Result |
43+
| - | - | - |
44+
| 1. | Deploy KafkaConnect with file plugin and KafkaConnector. | KafkaConnect and KafkaConnector are ready with correct status information. |
45+
| 2. | Modify KafkaConnect bootstrap servers to invalid value. | KafkaConnect becomes NotReady due to invalid bootstrap configuration. |
46+
| 3. | Restore valid KafkaConnect bootstrap servers. | KafkaConnect returns to Ready state. |
47+
| 4. | Modify KafkaConnector cluster label to invalid value. | KafkaConnector becomes NotReady and connector status is not reported (i.e., null). |
48+
| 5. | Restore valid KafkaConnector cluster label. | KafkaConnector returns to Ready state. |
49+
| 6. | Modify KafkaConnector class name to invalid value. | KafkaConnector becomes NotReady due to invalid connector class. |
50+
| 7. | Restore valid KafkaConnector configuration. | KafkaConnector returns to Ready state. |
51+
52+
**Labels:**
53+
54+
* [kafka](labels/kafka.md)
55+
* [connect](labels/connect.md)
56+
57+
58+
## testKafkaConnectorWithoutClusterConfig
59+
60+
**Description:** This test verifies that KafkaConnector without proper cluster configuration fails gracefully without causing NullPointerException (NPE) in Cluster Operator logs.
61+
62+
**Steps:**
63+
64+
| Step | Action | Result |
65+
| - | - | - |
66+
| 1. | Create KafkaConnector without cluster configuration in labels. | KafkaConnector is created but becomes NotReady. |
67+
| 2. | Verify connector remains in NotReady state. | KafkaConnector status shows NotReady without causing NPE in Cluster Operator logs. |
68+
| 3. | Delete the invalid KafkaConnector. | KafkaConnector is successfully deleted. |
69+
70+
**Labels:**
71+
72+
* [kafka](labels/kafka.md)
73+
* [connect](labels/connect.md)
74+
75+
76+
## testKafkaMirrorMaker2Status
77+
78+
**Description:** This test verifies that KafkaMirrorMaker2 status is correctly reported, including observed generation updates, URL information, and connector status during Ready and NotReady states.
79+
80+
**Steps:**
81+
82+
| Step | Action | Result |
83+
| - | - | - |
84+
| 1. | Deploy source Kafka cluster and KafkaMirrorMaker2. | KafkaMirrorMaker2 is ready with correct status information including URL and connector states. |
85+
| 2. | Modify KafkaMirrorMaker2 resources to cause NotReady state. | KafkaMirrorMaker2 becomes NotReady due to insufficient CPU resources. |
86+
| 3. | Restore KafkaMirrorMaker2 resources to recover. | KafkaMirrorMaker2 returns to Ready state with updated observed generation. |
87+
| 4. | Verify pod stability after recovery. | KafkaMirrorMaker2 pods remain stable, with no unexpected rolling updates. |
88+
89+
**Labels:**
90+
91+
* [kafka](labels/kafka.md)
92+
* [mirror-maker-2](labels/mirror-maker-2.md)
93+
94+
95+
## testKafkaMirrorMaker2WrongBootstrap
96+
97+
**Description:** This test verifies that KafkaMirrorMaker2 with invalid bootstrap server configuration fails gracefully and can be deleted.
98+
99+
**Steps:**
100+
101+
| Step | Action | Result |
102+
| - | - | - |
103+
| 1. | Create KafkaMirrorMaker2 with non-existing bootstrap servers. | KafkaMirrorMaker2 is created but becomes NotReady. |
104+
| 2. | Verify KafkaMirrorMaker2 remains in NotReady state. | KafkaMirrorMaker2 status shows NotReady due to invalid bootstrap configuration. |
105+
| 3. | Delete the KafkaMirrorMaker2 with invalid configuration. | KafkaMirrorMaker2 and its deployment are successfully deleted. |
106+
107+
**Labels:**
108+
109+
* [kafka](labels/kafka.md)
110+
* [mirror-maker-2](labels/mirror-maker-2.md)
111+
112+
113+
## testKafkaStatus
114+
115+
**Description:** This test verifies that Kafka cluster status is correctly reported, including observed generation updates and listener status information. The test also verifies recovery from NotReady state.
116+
117+
**Steps:**
118+
119+
| Step | Action | Result |
120+
| - | - | - |
121+
| 1. | Verify Kafka cluster is ready and functioning. | Kafka cluster is ready and can produce/consume messages. |
122+
| 2. | Check initial Kafka status information. | Kafka status shows correct observed generation and listener details. |
123+
| 3. | Modify Kafka resources to cause NotReady state. | Kafka cluster becomes NotReady due to insufficient CPU resources. |
124+
| 4. | Restore Kafka resources to recover. | Kafka cluster returns to Ready state with updated observed generation. |
125+
126+
**Labels:**
127+
128+
* [kafka](labels/kafka.md)
129+
130+
131+
## testKafkaStatusCertificate
132+
133+
**Description:** This test verifies that certificates reported in Kafka status match the certificates stored in the cluster CA secret.
134+
135+
**Steps:**
136+
137+
| Step | Action | Result |
138+
| - | - | - |
139+
| 1. | Retrieve certificates from Kafka status. | Certificates are successfully retrieved from Kafka status. |
140+
| 2. | Retrieve certificates from cluster CA secret. | Certificates are successfully retrieved from the cluster CA secret. |
141+
| 3. | Compare status and secret certificates. | Certificates from status and secret are identical. |
142+
143+
**Labels:**
144+
145+
* [kafka](labels/kafka.md)
146+
147+
148+
## testKafkaUserStatus
149+
150+
**Description:** This test verifies that KafkaUser status is correctly reported during creation, authorization changes, and ready state transitions.
151+
152+
**Steps:**
153+
154+
| Step | Action | Result |
155+
| - | - | - |
156+
| 1. | Create KafkaUser with ACL authorization rules. | KafkaUser is created but not ready due to missing topic. |
157+
| 2. | Remove authorization from KafkaUser specification. | KafkaUser becomes ready after authorization removal. |
158+
| 3. | Verify KafkaUser status condition. | KafkaUser status shows Ready condition type. |
159+
160+
**Labels:**
161+
162+
* [kafka](labels/kafka.md)
163+
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# FeatureGatesST
2+
3+
**Description:** Feature Gates test suite verifying that feature gates provide additional options to control operator behavior, specifically testing Server Side Apply functionality.
4+
5+
**Before test execution steps:**
6+
7+
| Step | Action | Result |
8+
| - | - | - |
9+
| 1. | Deploy Cluster Operator with configurable feature gates. | Cluster Operator is deployed with feature gate support. |
10+
11+
**Labels:**
12+
13+
* [kafka](labels/kafka.md)
14+
15+
<hr style="border:1px solid">
16+
17+
## testServerSideApply
18+
19+
**Description:** This test verifies that Server Side Apply Phase 1 feature gate works correctly by testing annotation preservation behavior. When SSA is disabled, manual annotations are removed during reconciliation. When SSA is enabled, manual annotations are preserved.
20+
21+
**Steps:**
22+
23+
| Step | Action | Result |
24+
| - | - | - |
25+
| 1. | Deploy Cluster Operator with Server Side Apply Phase 1 disabled. | Cluster Operator is deployed without SSA feature gate. |
26+
| 2. | Create Kafka cluster with broker and controller node pools. | Kafka cluster is deployed and ready. |
27+
| 3. | Add manual annotations to Kafka resources and verify they are removed. | Manual annotations are removed during reconciliation when SSA is disabled. |
28+
| 4. | Enable Server Side Apply Phase 1 feature gate. | Cluster Operator is reconfigured with SSA enabled and redeployed. |
29+
| 5. | Add manual annotations to Kafka resources and verify they are preserved. | Manual annotations are preserved during reconciliation when SSA is enabled. |
30+
| 6. | Disable Server Side Apply Phase 1 feature gate. | Cluster Operator is reconfigured with SSA disabled and rolled. |
31+
| 7. | Add manual annotations to Kafka resources and verify they are removed again. | Manual annotations are removed during reconciliation when SSA is disabled again. |
32+
33+
**Labels:**
34+
35+
* [kafka](labels/kafka.md)
36+

0 commit comments

Comments
 (0)