-
Notifications
You must be signed in to change notification settings - Fork 1.6k
📖 add e2e test to validate webhook conversion between versions in the tutorials #5069
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
📖 add e2e test to validate webhook conversion between versions in the tutorials #5069
Conversation
|
Hi @wazery. Thanks for your PR. I'm waiting for a kubernetes-sigs member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
2fda561 to
681bf43
Compare
docs/book/src/multiversion-tutorial/testdata/project/test/e2e/e2e_test.go
Show resolved
Hide resolved
681bf43 to
d65d418
Compare
effbdb8 to
6d31a62
Compare
9fab9f8 to
6d8d9f7
Compare
docs/book/src/multiversion-tutorial/testdata/project/test/e2e/e2e_test.go
Outdated
Show resolved
Hide resolved
docs/book/src/multiversion-tutorial/testdata/project/test/e2e/e2e_test.go
Outdated
Show resolved
Hide resolved
e79777c to
941df82
Compare
|
/ok-to-test Thank you for the contirbution 🥇 We would need to do something very similar to that. |
1361e7e to
2891ee8
Compare
|
/override pull-kubebuilder-e2e-k8s-1-34-0 |
|
@camilamacedo86: Overrode contexts on behalf of camilamacedo86: pull-kubebuilder-e2e-k8s-1-34-0 In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
2891ee8 to
5921329
Compare
|
/override pull-kubebuilder-e2e-k8s-1-34-1 |
|
@wazery: wazery unauthorized: /override is restricted to Repo administrators. In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
5921329 to
e7a133f
Compare
|
@camilamacedo86 I just fixed the failing test, hope the PR is ready now for merge. |
|
/override pull-kubebuilder-e2e-k8s-1-34-1 /override pull-kubebuilder-e2e-k8s-1-34-0 |
|
@camilamacedo86: /override requires failed status contexts, check run or a prowjob name to operate on.
Only the following failed contexts/checkruns were expected:
If you are trying to override a checkrun that has a space in it, you must put a double quote on the context. In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
|
/override pull-kubebuilder-e2e-k8s-1-34-0 |
|
@camilamacedo86: Overrode contexts on behalf of camilamacedo86: pull-kubebuilder-e2e-k8s-1-34-0 In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
| - date; echo Hello from the Kubernetes cluster | ||
| restartPolicy: OnFailure` | ||
|
|
||
| newTextV1 := ` template: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should instead update the places where those values are defined instead
See: https://github.com/kubernetes-sigs/kubebuilder/blob/master/hack/docs/internal/cronjob-tutorial/sample.go#L19-L34
We can replace all this implementation and just update the const.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I just addressed it, many thanks for the pointer.
e7a133f to
a305b10
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR enhances security for Kubernetes CronJob samples across tutorials and adds comprehensive end-to-end tests for webhook conversion functionality. The changes add security contexts at both pod and container levels following Kubernetes security best practices.
- Adds pod-level and container-level security contexts to all CronJob sample YAML files
- Implements new e2e test for webhook conversion between v1 and v2 CronJob versions
- Updates test infrastructure to include proper cleanup of test resources
Reviewed Changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| hack/docs/internal/multiversion-tutorial/samples.go | Updates the v2 sample code template to include security contexts |
| hack/docs/internal/cronjob-tutorial/sample.go | Updates the cronjob sample code template to include security contexts |
| hack/docs/internal/multiversion-tutorial/generate_multiversion.go | Adds new function to inject webhook conversion e2e test and test cleanup |
| docs/book/src/multiversion-tutorial/testdata/project/test/e2e/e2e_test.go | Adds webhook conversion test and resource cleanup in AfterEach hook |
| docs/book/src/multiversion-tutorial/testdata/project/config/samples/batch_v2_cronjob.yaml | Adds security contexts to the v2 CronJob sample |
| docs/book/src/multiversion-tutorial/testdata/project/config/samples/batch_v1_cronjob.yaml | Adds security contexts to the v1 CronJob sample |
| docs/book/src/cronjob-tutorial/testdata/project/config/samples/batch_v1_cronjob.yaml | Adds security contexts to the cronjob tutorial sample |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| _, err := utils.Run(cmd) | ||
| Expect(err).NotTo(HaveOccurred(), "Failed to create v1 CronJob") | ||
|
|
||
| By("waiting for the v1 CronJob to be created") |
Copilot
AI
Oct 30, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Inconsistent indentation: this By statement uses tabs instead of the expected tab+spaces pattern. It should be indented with three tabs to align with the surrounding code within the It block.
| By("waiting for the v1 CronJob to be created") | |
| By("waiting for the v1 CronJob to be created") |
| cmd = exec.Command("kubectl", "get", "cronjob.v1.batch.tutorial.kubebuilder.io", "cronjob-sample", | ||
| "-n", namespace, "-o", "jsonpath={.spec.schedule}") | ||
| v1Schedule, err := utils.Run(cmd) | ||
| Expect(err).NotTo(HaveOccurred(), "Failed to get v1 CronJob schedule") | ||
| Expect(strings.TrimSpace(v1Schedule)).To(Equal("*/1 * * * *"), | ||
| "v1 schedule should be in cron format") |
Copilot
AI
Oct 30, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Inconsistent indentation: lines 371-376 use an extra level of indentation. The code following the By statement should be indented with three tabs, not three tabs plus spaces.
| cmd = exec.Command("kubectl", "get", "cronjob.v1.batch.tutorial.kubebuilder.io", "cronjob-sample", | |
| "-n", namespace, "-o", "jsonpath={.spec.schedule}") | |
| v1Schedule, err := utils.Run(cmd) | |
| Expect(err).NotTo(HaveOccurred(), "Failed to get v1 CronJob schedule") | |
| Expect(strings.TrimSpace(v1Schedule)).To(Equal("*/1 * * * *"), | |
| "v1 schedule should be in cron format") | |
| cmd = exec.Command("kubectl", "get", "cronjob.v1.batch.tutorial.kubebuilder.io", "cronjob-sample", | |
| "-n", namespace, "-o", "jsonpath={.spec.schedule}") | |
| v1Schedule, err := utils.Run(cmd) | |
| Expect(err).NotTo(HaveOccurred(), "Failed to get v1 CronJob schedule") | |
| Expect(strings.TrimSpace(v1Schedule)).To(Equal("*/1 * * * *"), | |
| "v1 schedule should be in cron format") |
| _, err := utils.Run(cmd) | ||
| Expect(err).NotTo(HaveOccurred(), "Failed to create v1 CronJob") | ||
| By("waiting for the v1 CronJob to be created") |
Copilot
AI
Oct 30, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Inconsistent indentation in the generated test template: this By statement should be indented with three tabs to align with the surrounding code within the It block.
| By("waiting for the v1 CronJob to be created") | |
| By("waiting for the v1 CronJob to be created") |
| cmd = exec.Command("kubectl", "get", "cronjob.v1.batch.tutorial.kubebuilder.io", "cronjob-sample", | ||
| "-n", namespace, "-o", "jsonpath={.spec.schedule}") | ||
| v1Schedule, err := utils.Run(cmd) | ||
| Expect(err).NotTo(HaveOccurred(), "Failed to get v1 CronJob schedule") | ||
| Expect(strings.TrimSpace(v1Schedule)).To(Equal("*/1 * * * *"), | ||
| "v1 schedule should be in cron format") |
Copilot
AI
Oct 30, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Inconsistent indentation in the generated test template: lines 826-831 use an extra level of indentation. The code following the By statement should be indented with three tabs, matching the pattern used in other By blocks.
| cmd = exec.Command("kubectl", "get", "cronjob.v1.batch.tutorial.kubebuilder.io", "cronjob-sample", | |
| "-n", namespace, "-o", "jsonpath={.spec.schedule}") | |
| v1Schedule, err := utils.Run(cmd) | |
| Expect(err).NotTo(HaveOccurred(), "Failed to get v1 CronJob schedule") | |
| Expect(strings.TrimSpace(v1Schedule)).To(Equal("*/1 * * * *"), | |
| "v1 schedule should be in cron format") | |
| cmd = exec.Command("kubectl", "get", "cronjob.v1.batch.tutorial.kubebuilder.io", "cronjob-sample", | |
| "-n", namespace, "-o", "jsonpath={.spec.schedule}") | |
| v1Schedule, err := utils.Run(cmd) | |
| Expect(err).NotTo(HaveOccurred(), "Failed to get v1 CronJob schedule") | |
| Expect(strings.TrimSpace(v1Schedule)).To(Equal("*/1 * * * *"), | |
| "v1 schedule should be in cron format") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/lgtm
I think we can fix the spaces in a follow up.
Thank you 🥇
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: camilamacedo86, wazery The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
@wazery: The following test failed, say
Full PR test history. Your PR dashboard. Please help us cut down on flakes by linking to an open issue when you hit one in your PR. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
|
/test pull-kubebuilder-e2e-k8s-1-32-0 |
This PR introduces an e2e test to validate webhook conversion between versions, as part of the multiversion tutorial e2e tests.
Fixes: #4255