Skip to content

Commit b0c2d3e

Browse files
(ci) - fix cleanup to allow tests broken for 1.33 work
1 parent 012e741 commit b0c2d3e

File tree

22 files changed

+88
-27
lines changed

22 files changed

+88
-27
lines changed

docs/book/src/cronjob-tutorial/testdata/project/config/manager/manager.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ spec:
6767
name: manager
6868
ports: []
6969
securityContext:
70+
readOnlyRootFilesystem: true
7071
allowPrivilegeEscalation: false
7172
capabilities:
7273
drop:

docs/book/src/cronjob-tutorial/testdata/project/dist/install.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4197,6 +4197,7 @@ spec:
41974197
capabilities:
41984198
drop:
41994199
- ALL
4200+
readOnlyRootFilesystem: true
42004201
volumeMounts:
42014202
- mountPath: /tmp/k8s-metrics-server/metrics-certs
42024203
name: metrics-certs

docs/book/src/cronjob-tutorial/testdata/project/test/e2e/e2e_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -232,12 +232,13 @@ var _ = Describe("Manager", Ordered, func() {
232232
},
233233
"runAsNonRoot": true,
234234
"runAsUser": 1000,
235+
"readOnlyRootFilesystem": true,
235236
"seccompProfile": {
236237
"type": "RuntimeDefault"
237238
}
238239
}
239240
}],
240-
"serviceAccount": "%s"
241+
"serviceAccountName": "%s"
241242
}
242243
}`, token, metricsServiceName, namespace, serviceAccountName))
243244
_, err = utils.Run(cmd)

docs/book/src/getting-started/testdata/project/config/manager/manager.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ spec:
6767
name: manager
6868
ports: []
6969
securityContext:
70+
readOnlyRootFilesystem: true
7071
allowPrivilegeEscalation: false
7172
capabilities:
7273
drop:

docs/book/src/getting-started/testdata/project/dist/install.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -453,6 +453,7 @@ spec:
453453
capabilities:
454454
drop:
455455
- ALL
456+
readOnlyRootFilesystem: true
456457
volumeMounts: []
457458
securityContext:
458459
runAsNonRoot: true

docs/book/src/getting-started/testdata/project/test/e2e/e2e_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -227,12 +227,13 @@ var _ = Describe("Manager", Ordered, func() {
227227
},
228228
"runAsNonRoot": true,
229229
"runAsUser": 1000,
230+
"readOnlyRootFilesystem": true,
230231
"seccompProfile": {
231232
"type": "RuntimeDefault"
232233
}
233234
}
234235
}],
235-
"serviceAccount": "%s"
236+
"serviceAccountName": "%s"
236237
}
237238
}`, token, metricsServiceName, namespace, serviceAccountName))
238239
_, err = utils.Run(cmd)

docs/book/src/multiversion-tutorial/testdata/project/config/manager/manager.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ spec:
6767
name: manager
6868
ports: []
6969
securityContext:
70+
readOnlyRootFilesystem: true
7071
allowPrivilegeEscalation: false
7172
capabilities:
7273
drop:

docs/book/src/multiversion-tutorial/testdata/project/dist/install.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8049,6 +8049,7 @@ spec:
80498049
capabilities:
80508050
drop:
80518051
- ALL
8052+
readOnlyRootFilesystem: true
80528053
volumeMounts:
80538054
- mountPath: /tmp/k8s-metrics-server/metrics-certs
80548055
name: metrics-certs

docs/book/src/multiversion-tutorial/testdata/project/test/e2e/e2e_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -232,12 +232,13 @@ var _ = Describe("Manager", Ordered, func() {
232232
},
233233
"runAsNonRoot": true,
234234
"runAsUser": 1000,
235+
"readOnlyRootFilesystem": true,
235236
"seccompProfile": {
236237
"type": "RuntimeDefault"
237238
}
238239
}
239240
}],
240-
"serviceAccount": "%s"
241+
"serviceAccountName": "%s"
241242
}
242243
}`, token, metricsServiceName, namespace, serviceAccountName))
243244
_, err = utils.Run(cmd)

pkg/plugins/common/kustomize/v2/scaffolds/internal/templates/config/manager/config.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ spec:
113113
name: manager
114114
ports: []
115115
securityContext:
116+
readOnlyRootFilesystem: true
116117
allowPrivilegeEscalation: false
117118
capabilities:
118119
drop:

pkg/plugins/golang/v4/scaffolds/internal/templates/test/e2e/test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -390,12 +390,13 @@ var _ = Describe("Manager", Ordered, func() {
390390
},
391391
"runAsNonRoot": true,
392392
"runAsUser": 1000,
393+
"readOnlyRootFilesystem": true,
393394
"seccompProfile": {
394395
"type": "RuntimeDefault"
395396
}
396397
}
397398
}],
398-
"serviceAccount": "%s"
399+
"serviceAccountName": "%s"
399400
}
400401
}` + "`" + `, token, metricsServiceName, namespace, serviceAccountName))
401402
_, err = utils.Run(cmd)

test/e2e/utils/test_context.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -368,6 +368,9 @@ func (t *TestContext) UninstallHelmRelease() error {
368368

369369
if _, err := t.Kubectl.Wait(false, "namespace", ns, "--for=delete", "--timeout=2m"); err != nil {
370370
log.Printf("failed to wait for namespace deletion: %s", err)
371+
if _, forceErr := t.Kubectl.Wait(false, "namespace", ns, "--grace-period=0", "--force"); forceErr != nil {
372+
log.Printf("forced deletion also failed: %s", forceErr)
373+
}
371374
}
372375

373376
return nil

test/e2e/v4/plugin_cluster_test.go

Lines changed: 58 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,9 @@ var _ = Describe("kubebuilder", func() {
6363
By("clean up API objects created during the test")
6464
_ = kbc.Make("undeploy")
6565

66+
By("clean up API objects created during the test")
67+
_ = kbc.Make("uninstall")
68+
6669
By("removing controller image and working dir")
6770
kbc.Destroy()
6871
})
@@ -88,25 +91,19 @@ var _ = Describe("kubebuilder", func() {
8891
GenerateV4WithoutMetrics(kbc)
8992
Run(kbc, true, false, false, false, false)
9093
})
91-
// FIXME: This test is currently disabled because it requires to be fixed:
92-
// https://github.com/kubernetes-sigs/kubebuilder/issues/4853
93-
// It is not working for k8s 1.33
94-
// It("should generate a runnable project with metrics protected by network policies", func() {
95-
// GenerateV4WithNetworkPoliciesWithoutWebhooks(kbc)
96-
// Run(kbc, false, false, false, true, true)
97-
// })
94+
It("should generate a runnable project with metrics protected by network policies", func() {
95+
GenerateV4WithNetworkPoliciesWithoutWebhooks(kbc)
96+
Run(kbc, false, false, false, true, true)
97+
})
9898
It("should generate a runnable project with webhooks and metrics protected by network policies", func() {
9999
GenerateV4WithNetworkPolicies(kbc)
100100
Run(kbc, true, false, false, true, true)
101101
})
102-
// FIXME: This test is currently disabled because it requires to be fixed:
103-
// https://github.com/kubernetes-sigs/kubebuilder/issues/4853
104-
// It is not working for k8s 1.33
105-
// It("should generate a runnable project with the manager running "+
106-
// "as restricted and without webhooks", func() {
107-
// GenerateV4WithoutWebhooks(kbc)
108-
// Run(kbc, false, false, false, true, false)
109-
// })
102+
It("should generate a runnable project with the manager running "+
103+
"as restricted and without webhooks", func() {
104+
GenerateV4WithoutWebhooks(kbc)
105+
Run(kbc, false, false, false, true, false)
106+
})
110107
})
111108
})
112109

@@ -501,6 +498,13 @@ func getMetricsOutput(kbc *utils.TestContext) string {
501498
)
502499
Expect(err).NotTo(HaveOccurred(), "Controller-manager service should exist")
503500

501+
By("checking controller-manager logs to verify metrics server is up")
502+
controllerPodName := getControllerName(kbc)
503+
logs, err := kbc.Kubectl.Logs(controllerPodName)
504+
Expect(err).NotTo(HaveOccurred(), "failed to get controller-manager logs")
505+
Expect(logs).To(ContainSubstring("Serving metrics server"),
506+
"controller logs should show that metrics server is up")
507+
504508
By("ensuring the service endpoint is ready")
505509
checkServiceEndpoint := func(g Gomega) {
506510
var output string
@@ -521,14 +525,30 @@ func getMetricsOutput(kbc *utils.TestContext) string {
521525
Expect(err).NotTo(HaveOccurred())
522526

523527
By("validating that the curl pod is running as expected")
528+
var curlCheckFailed bool
524529
verifyCurlUp := func(g Gomega) {
525530
var status string
526531
status, err = kbc.Kubectl.Get(
527532
true,
528-
"pods", "curl", "-o", "jsonpath={.status.phase}")
533+
"pods", "curl", "-o", "jsonpath={.status.phase}",
534+
)
535+
if err != nil || status != "Succeeded" {
536+
curlCheckFailed = true
537+
}
529538
g.Expect(err).NotTo(HaveOccurred())
530539
g.Expect(status).To(Equal("Succeeded"), fmt.Sprintf("curl pod in %s status", status))
531540
}
541+
542+
defer func() {
543+
if curlCheckFailed {
544+
By("dumping logs from failed curl pod for diagnostics")
545+
logs, err := kbc.Kubectl.Logs("curl")
546+
if err != nil {
547+
logs = fmt.Sprintf("unable to fetch logs: %v", err)
548+
}
549+
_, _ = fmt.Fprintf(GinkgoWriter, "\n[DEBUG] curl pod failure logs:\n%s\n", logs)
550+
}
551+
}()
532552
Eventually(verifyCurlUp, 240*time.Second, time.Second).Should(Succeed())
533553

534554
By("validating that the metrics endpoint is serving as expected")
@@ -583,7 +603,7 @@ func cmdOptsToCreateCurlPod(kbc *utils.TestContext, token string) []string {
583603
//nolint:lll
584604
cmdOpts := []string{
585605
"run", "curl",
586-
"--restart=Never",
606+
"--restart=OnFailure",
587607
"--namespace", kbc.Kubectl.Namespace,
588608
"--image=curlimages/curl:latest",
589609
"--overrides",
@@ -601,12 +621,13 @@ func cmdOptsToCreateCurlPod(kbc *utils.TestContext, token string) []string {
601621
},
602622
"runAsNonRoot": true,
603623
"runAsUser": 1000,
624+
"readOnlyRootFilesystem": true,
604625
"seccompProfile": {
605626
"type": "RuntimeDefault"
606627
}
607628
}
608629
}],
609-
"serviceAccount": "%s"
630+
"serviceAccountName": "%s"
610631
}
611632
}`, token, kbc.TestSuffix, kbc.Kubectl.Namespace, kbc.Kubectl.ServiceAccount),
612633
}
@@ -615,8 +636,25 @@ func cmdOptsToCreateCurlPod(kbc *utils.TestContext, token string) []string {
615636

616637
func removeCurlPod(kbc *utils.TestContext) {
617638
By("cleaning up the curl pod")
618-
_, err := kbc.Kubectl.Delete(true, "pods/curl")
619-
Expect(err).NotTo(HaveOccurred())
639+
_, err := kbc.Kubectl.Delete(true, "pod", "curl")
640+
Expect(err).NotTo(HaveOccurred(), "Failed to delete curl pod")
641+
642+
var deleted bool
643+
Eventually(func() bool {
644+
_, err := kbc.Kubectl.Get(true, "pod", "curl")
645+
deleted = err != nil
646+
return deleted
647+
}, time.Minute, time.Second).Should(BeTrue(), "curl pod should be deleted within 1 minute")
648+
649+
if !deleted {
650+
By("forcing deletion of the curl pod")
651+
_, err := kbc.Kubectl.Command("delete", "pod", "curl", "--grace-period=0", "--force")
652+
Expect(err).NotTo(HaveOccurred(), "Force delete of curl pod failed")
653+
Eventually(func(g Gomega) {
654+
_, err := kbc.Kubectl.Get(true, "pod", "curl")
655+
g.Expect(err).To(HaveOccurred())
656+
}, time.Minute, time.Second).Should(Succeed(), "curl pod should be deleted after force")
657+
}
620658
}
621659

622660
// serviceAccountToken provides a helper function that can provide you with a service account

testdata/project-v4-multigroup/config/manager/manager.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ spec:
7272
value: memcached:1.6.26-alpine3.19
7373
ports: []
7474
securityContext:
75+
readOnlyRootFilesystem: true
7576
allowPrivilegeEscalation: false
7677
capabilities:
7778
drop:

testdata/project-v4-multigroup/dist/install.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2157,6 +2157,7 @@ spec:
21572157
capabilities:
21582158
drop:
21592159
- ALL
2160+
readOnlyRootFilesystem: true
21602161
volumeMounts:
21612162
- mountPath: /tmp/k8s-webhook-server/serving-certs
21622163
name: webhook-certs

testdata/project-v4-multigroup/test/e2e/e2e_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -227,12 +227,13 @@ var _ = Describe("Manager", Ordered, func() {
227227
},
228228
"runAsNonRoot": true,
229229
"runAsUser": 1000,
230+
"readOnlyRootFilesystem": true,
230231
"seccompProfile": {
231232
"type": "RuntimeDefault"
232233
}
233234
}
234235
}],
235-
"serviceAccount": "%s"
236+
"serviceAccountName": "%s"
236237
}
237238
}`, token, metricsServiceName, namespace, serviceAccountName))
238239
_, err = utils.Run(cmd)

testdata/project-v4-with-plugins/config/manager/manager.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ spec:
7272
value: memcached:1.6.26-alpine3.19
7373
ports: []
7474
securityContext:
75+
readOnlyRootFilesystem: true
7576
allowPrivilegeEscalation: false
7677
capabilities:
7778
drop:

testdata/project-v4-with-plugins/dist/install.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -850,6 +850,7 @@ spec:
850850
capabilities:
851851
drop:
852852
- ALL
853+
readOnlyRootFilesystem: true
853854
volumeMounts:
854855
- mountPath: /tmp/k8s-webhook-server/serving-certs
855856
name: webhook-certs

testdata/project-v4-with-plugins/test/e2e/e2e_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -227,12 +227,13 @@ var _ = Describe("Manager", Ordered, func() {
227227
},
228228
"runAsNonRoot": true,
229229
"runAsUser": 1000,
230+
"readOnlyRootFilesystem": true,
230231
"seccompProfile": {
231232
"type": "RuntimeDefault"
232233
}
233234
}
234235
}],
235-
"serviceAccount": "%s"
236+
"serviceAccountName": "%s"
236237
}
237238
}`, token, metricsServiceName, namespace, serviceAccountName))
238239
_, err = utils.Run(cmd)

testdata/project-v4/config/manager/manager.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ spec:
6767
name: manager
6868
ports: []
6969
securityContext:
70+
readOnlyRootFilesystem: true
7071
allowPrivilegeEscalation: false
7172
capabilities:
7273
drop:

testdata/project-v4/dist/install.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -715,6 +715,7 @@ spec:
715715
capabilities:
716716
drop:
717717
- ALL
718+
readOnlyRootFilesystem: true
718719
volumeMounts:
719720
- mountPath: /tmp/k8s-webhook-server/serving-certs
720721
name: webhook-certs

testdata/project-v4/test/e2e/e2e_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -227,12 +227,13 @@ var _ = Describe("Manager", Ordered, func() {
227227
},
228228
"runAsNonRoot": true,
229229
"runAsUser": 1000,
230+
"readOnlyRootFilesystem": true,
230231
"seccompProfile": {
231232
"type": "RuntimeDefault"
232233
}
233234
}
234235
}],
235-
"serviceAccount": "%s"
236+
"serviceAccountName": "%s"
236237
}
237238
}`, token, metricsServiceName, namespace, serviceAccountName))
238239
_, err = utils.Run(cmd)

0 commit comments

Comments
 (0)