-
Notifications
You must be signed in to change notification settings - Fork 2.7k
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
Remove Kubernetes 1.23 jobs #29387
Remove Kubernetes 1.23 jobs #29387
Conversation
/assign @cici37 @ramrodo @palnabarun |
Signed-off-by: Marko Mudrinić <[email protected]>
/hold |
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.
Added some notes to guide the review process. I need to add some TODOs and I'll do that later today.
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 removed this file because it seems related to presubmits for k/k 1.23. We should double check with Windows folks to make sure this is okay.
- name: ci-kubernetes-e2e-gce-cos-k8sbeta-alphafeatures | ||
gcs_prefix: kubernetes-jenkins/logs/ci-kubernetes-e2e-gce-cos-k8sbeta-alphafeatures | ||
column_header: | ||
- configuration_value: node_os_image | ||
- configuration_value: master_os_image | ||
- configuration_value: Commit | ||
- configuration_value: infra-commit | ||
- name: ci-kubernetes-e2e-gce-cos-k8sbeta-default | ||
gcs_prefix: kubernetes-jenkins/logs/ci-kubernetes-e2e-gce-cos-k8sbeta-default | ||
column_header: | ||
- configuration_value: node_os_image | ||
- configuration_value: master_os_image | ||
- configuration_value: Commit | ||
- configuration_value: infra-commit | ||
- name: ci-kubernetes-e2e-gce-cos-k8sbeta-ingress | ||
gcs_prefix: kubernetes-jenkins/logs/ci-kubernetes-e2e-gce-cos-k8sbeta-ingress | ||
column_header: | ||
- configuration_value: node_os_image | ||
- configuration_value: master_os_image | ||
- configuration_value: Commit | ||
- configuration_value: infra-commit | ||
- name: ci-kubernetes-e2e-gce-cos-k8sbeta-reboot | ||
gcs_prefix: kubernetes-jenkins/logs/ci-kubernetes-e2e-gce-cos-k8sbeta-reboot | ||
column_header: | ||
- configuration_value: node_os_image | ||
- configuration_value: master_os_image | ||
- configuration_value: Commit | ||
- configuration_value: infra-commit | ||
- name: ci-kubernetes-e2e-gce-cos-k8sbeta-serial | ||
gcs_prefix: kubernetes-jenkins/logs/ci-kubernetes-e2e-gce-cos-k8sbeta-serial | ||
column_header: | ||
- configuration_value: node_os_image | ||
- configuration_value: master_os_image | ||
- configuration_value: Commit | ||
- configuration_value: infra-commit | ||
- name: ci-kubernetes-e2e-gce-cos-k8sbeta-slow | ||
gcs_prefix: kubernetes-jenkins/logs/ci-kubernetes-e2e-gce-cos-k8sbeta-slow | ||
column_header: | ||
- configuration_value: node_os_image | ||
- configuration_value: master_os_image | ||
- configuration_value: Commit | ||
- configuration_value: infra-commit |
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.
This is auto-generated and will be back in place after uncommenting k8s-beta.
- name: pull-kubernetes-e2e-gce-ubuntu | ||
test_group_name: pull-kubernetes-e2e-gce-ubuntu | ||
base_options: width=10 |
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.
This job is removed in 1.23 so we don't need this tab at all.
- name: pull-e2e-podutil | ||
test_group_name: pull-kubernetes-node-e2e-podutil | ||
base_options: width=10 |
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.
This job is removed in 1.23 so we don't need this tab at all.
@xmudrii Thanks for the great explanation and links for reference! I understand better the version markers now. I think that adding the TODOs comments to be aware when we release 1.28 will be a great guide. Maybe we could add this issue/guide to the Handbook to have this issue present and be followed in the upcoming release. /lgtm |
/approve Thanks for the extensive notes. I do shudder at when we have to create 1.28 jobs for sure! |
Signed-off-by: Marko Mudrinić <[email protected]>
I added
I also added this on meeting agenda for the SIG Release meeting planned for May 2nd. @cici37 @ramrodo @dims PTAL again, I pushed a commit to add TODOs. When ready, please unhold the PR. |
/lgtm will leave it to release folks to unhold. |
Great! Everything looks good to me |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: dims, ramrodo, xmudrii 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 |
@xmudrii: Updated the
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/test-infra repository. |
Experimenting with removing Kubernetes 1.23 jobs (ref #29230, #29379, #29327)This PR removes Kubernetes 1.23 jobs.
Disclaimer: this is done in a hacky way and I'll try my best to explain what's going on and what issues we have.
Version markers
For context, version markers are explained here: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-release/kubernetes-versions.md
We have the following version markers in play:
k8s-master
k8s-beta
k8s-stable1
tok8s-stable4
The biggest issue that we have with
k8s-beta
is that we use it for way too long. It should be used only in the "transition period" between cutting the release branch and publishing the .0 release. However, we don't push outk8s-beta
after .0 release, instead we continue using it until the next branch cut.This can be quite confusing for those eventually depending on those markers. We discussed it previously on Slack and some idea was that we should fix this: https://kubernetes.slack.com/archives/CJH2GBF7Y/p1680813414229639
Fixing this is going to be important especially for the next part.
Removing jobs for the EOL release branch
Removing jobs for the EOL release branch is often done by generating jobs for the new release branch + some manual clean ups. In other words, we basically did this:
make -C releng prepare-release-branch
There are two problems with that:
k8s-beta
is used all the time and not only in the transition periodWhen we run that command, the result will be:
Bold steps are problematic:
Mitigations
What we need actually is just config-rotator and regenerating generated.yaml. In other words, we don't need config-forker and all the logic that generates 1.28 jobs.
It's possible to execute both manually, however, before we can do that, we have to figure out how to approach
k8s-beta
jobs. The best idea I was able to come up is to just commentk8s-beta
inreleng/test_config.yaml
. That way, regenerating generated.yaml is actually going to remove all k8sbeta tests which we in fact don't need at this stage because that marker shouldn't be in use until we don't cut 1.28 release branch.With that done, the following commands can be used to do the magic:
At this stage, we're almost ready. Concretely:
After that, we should be in a good state. 🎉
Generating 1.28 jobs
Generating 1.28 jobs is not going to be trivial. We can't use the Make target (
make -C releng prepare-release-branch
) because we already used config-rotator and using it again in the same release cycle would end up in skipping one version marker. For example, 1.28 would be added as k8s-beta, but 1.27 would end up jumping from stable1 to stable2. Instead, 1.27 should stay at stable1 until we don't push out 1.28 to stable1 next time we're removing jobs.Instead of using the Make target, we have to:
In fact, most of those tasks should be pretty easy. The real challenge is making sure we adhere to this, i.e. that we don't forget about this issue. This is especially important because the handbook is instructing to use the Make target.
Follow ups
We have an issue with some fork annotations. Some of them are lost in 1.23.yaml and we need to look into that. That's mostly like irrelevant to this PR, it's mostly like that we forgot to update those annotations when introducing stable4 marker a while ago.