Skip to content

chore: bump DefaultKubeBinaryVersion to 1.32, make 1.32 CEL changes, fix int tests to handle 1 version off API deprecation, and fix prerelease-lifecycle-gen for # of APIs#126977

Merged
k8s-ci-robot merged 1 commit into
kubernetes:masterfrom
aaron-prindle:compat-version-132
Sep 17, 2024

Conversation

@aaron-prindle

@aaron-prindle aaron-prindle commented Aug 28, 2024

Copy link
Copy Markdown
Contributor

What type of PR is this?

/kind feature

What this PR does / why we need it:

Update default compatible version for 1.32, add tests for previous added cel lib.

Which issue(s) this PR fixes:

Fixes #126946

Special notes for your reviewer:

Does this PR introduce a user-facing change?

To enhance usability and developer experience, CRD validation rules now support direct use of (CEL) reserved keywords as field names in object validation expressions.
Name format CEL library is supported in new expressions.

Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:


@k8s-ci-robot k8s-ci-robot added release-note Denotes a PR that will be considered when it comes time to generate release notes. kind/feature Categorizes issue or PR as related to a new feature. size/M Denotes a PR that changes 30-99 lines, ignoring generated files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. do-not-merge/needs-sig Indicates an issue or PR lacks a `sig/foo` label and requires one. needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. labels Aug 28, 2024
@k8s-ci-robot

Copy link
Copy Markdown
Contributor

Hi @aaron-prindle. Thanks for your PR.

I'm waiting for a kubernetes member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

Details

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.

@k8s-ci-robot k8s-ci-robot added the needs-priority Indicates a PR lacks a `priority/foo` label and requires one. label Aug 28, 2024
@aaron-prindle aaron-prindle changed the title chore: Update default compatible version for 1.32 chore: update default compatible version for 1.32 Aug 28, 2024
@k8s-ci-robot k8s-ci-robot added sig/api-machinery Categorizes an issue or PR as relevant to SIG API Machinery. sig/architecture Categorizes an issue or PR as relevant to SIG Architecture. sig/release Categorizes an issue or PR as relevant to SIG Release. sig/scheduling Categorizes an issue or PR as relevant to SIG Scheduling. and removed do-not-merge/needs-sig Indicates an issue or PR lacks a `sig/foo` label and requires one. labels Aug 28, 2024
@Jefftree

Copy link
Copy Markdown
Member

/ok-to-test

@k8s-ci-robot k8s-ci-robot added ok-to-test Indicates a non-member PR verified by an org member that is safe to test. and removed needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. labels Aug 28, 2024
@fedebongio

Copy link
Copy Markdown
Contributor

/triage accepted

@k8s-ci-robot k8s-ci-robot added triage/accepted Indicates an issue or PR is ready to be actively worked on. and removed needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. labels Aug 29, 2024
@aaron-prindle aaron-prindle force-pushed the compat-version-132 branch 2 times, most recently from 83bc9d1 to 6ede768 Compare September 3, 2024 13:57
@aaron-prindle

aaron-prindle commented Sep 16, 2024

Copy link
Copy Markdown
Contributor Author

Currently the integration tests fail without the 1beta3 flowcontrols changes to add a prerelease-lifecycle-gen:removed=1.33 tag. Without these changes, the following tests fail:

Failed job history:
link:
https://prow.k8s.io/view/gs/kubernetes-jenkins/pr-logs/pull/126977/pull-kubernetes-integration/1834653846241021952
tests:

  • k8s.io/kubernetes/test/integration/controlplane: transformation
  • k8s.io/kubernetes/test/integration: etcd
  • k8s.io/kubernetes/test/integration: metrics

Screenshot 2024-09-15 10 16 01 PM
Screenshot 2024-09-15 10 15 36 PM

I've re-added the prerelease-lifecycle-gen:removed=1.33 tag to v1beta3 flowcontrol types.go + updated a related /usr/local/google/home/aprindle/kubernetes/test/integration/apiserver/apiserver_test.go which relies on the version v1beta3 flowcontrol is removed at to the PR to get tests passing again:

Additional changes made related to v1beta3 flowcontrol APIs to get tests green:

I still trying to understand what alternative fixes there might be here, currently ommitting any v1beta3 flowcontrol change causes integration tests to fail. I understand that no beta API should have to be modified but it seems that v1beta3 flowcontrol being removed @ 1.32 directly relates to the integration tests failing atm

@liggitt

liggitt commented Sep 16, 2024

Copy link
Copy Markdown
Member

I've re-added the prerelease-lifecycle-gen:removed=1.33 tag to v1beta3 flowcontrol types.go + updated a related /usr/local/google/home/aprindle/kubernetes/test/integration/apiserver/apiserver_test.go which relies on the version v1beta3 flowcontrol is removed at to the PR to get tests passing again:

we're not going to push out removal of v1beta3, so let's keep it at 1.32 and work through the test failures

@liggitt

liggitt commented Sep 16, 2024

Copy link
Copy Markdown
Member

I think the expectation is that once we remove the ability to serve something, we drop it from test/integration/etcd/data.go

I think that means for v1beta3 flowcontrol in 1.32 we can either:

  1. drop v1beta3 flowcontrol from the etcd test data now (since we're bumping to 1.32 and by default we won't serve it any more)
  2. set KUBE_APISERVER_SERVE_REMOVED_APIS_FOR_ONE_RELEASE=true in the integration tests to let things technically past their removal minor but which still actually have serving code wired up still be served. Then when we actually remove serving code for v1beta3 flowcontrol in 1.33 we'll drop it from etcd test data

I'd lean towards the latter

@k8s-ci-robot k8s-ci-robot added the sig/etcd Categorizes an issue or PR as relevant to SIG Etcd. label Sep 16, 2024
@aaron-prindle aaron-prindle force-pushed the compat-version-132 branch 2 times, most recently from 7ca1aff to 4805332 Compare September 16, 2024 17:26
@k8s-ci-robot k8s-ci-robot added the sig/instrumentation Categorizes an issue or PR as relevant to SIG Instrumentation. label Sep 16, 2024
@aaron-prindle

aaron-prindle commented Sep 16, 2024

Copy link
Copy Markdown
Contributor Author

As discussed offline, selected the preferred option below to resolve v1beta3 flowcontrol integration test failures:

set KUBE_APISERVER_SERVE_REMOVED_APIS_FOR_ONE_RELEASE=true in the integration tests to let things technically past their removal minor but which still actually have serving code wired up still be served. Then when we actually remove serving code for v1beta3 flowcontrol in 1.33 we'll drop it from etcd test data

With that change in, the tests are passing now 🟢

image

Going to squash the commits now and resubmit

@aaron-prindle aaron-prindle changed the title chore: update default compatible version for 1.32 chore: bump DefaultKubeBinaryVersion to 1.32, make 1.32 CEL changes and fix prerelease-lifecycle-gen for # of APIs Sep 16, 2024
Comment thread staging/src/k8s.io/api/resource/v1alpha3/types.go
},
}

// Toggle "KUBE_APISERVER_SERVE_REMOVED_APIS_FOR_ONE_RELEASE" to allow for 1.32 flowcontrol v1beta3 API removal to not block tests

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we'd leave this here indefinitely so future APIs keep being testable as long as they can be served. We'd remove the v1beta3 flowcontrol fixtures from etcd data as part of removing serving code, not this bit

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same comment in other integration tests

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've updated this comment to reflect the suggestion above, it now removes mention of v1beta3 flowcontrol and being temporary. It now reads:

	// KUBE_APISERVER_SERVE_REMOVED_APIS_FOR_ONE_RELEASE allows for APIs pending removal to not block tests

@aaron-prindle aaron-prindle force-pushed the compat-version-132 branch 3 times, most recently from f087e5f to 52da972 Compare September 17, 2024 16:25
@aaron-prindle aaron-prindle changed the title chore: bump DefaultKubeBinaryVersion to 1.32, make 1.32 CEL changes and fix prerelease-lifecycle-gen for # of APIs chore: bump DefaultKubeBinaryVersion to 1.32, make 1.32 CEL changes, fix int tests to handle 1 version off API deprecation, and fix prerelease-lifecycle-gen for # of APIs Sep 17, 2024
…fix int tests to handle 1 version off API deprecation, and fix prerelease-lifecycle-gen for # of APIs
@aaron-prindle

aaron-prindle commented Sep 17, 2024

Copy link
Copy Markdown
Contributor Author

Tests green now 🟢. Thanks for all of the help here @liggitt!

@liggitt

liggitt commented Sep 17, 2024

Copy link
Copy Markdown
Member

/lgtm
/approve

@k8s-ci-robot

Copy link
Copy Markdown
Contributor

LGTM label has been added.

DetailsGit tree hash: 84fe000bd4a6cb8a0a9fd859e5f40c53e7aeb059

@k8s-ci-robot

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: aaron-prindle, liggitt

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. area/apiserver area/test cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. kind/api-change Categorizes issue or PR as related to adding, removing, or otherwise changing an API kind/feature Categorizes issue or PR as related to a new feature. lgtm "Looks good to me", indicates that a PR is ready to be merged. needs-priority Indicates a PR lacks a `priority/foo` label and requires one. ok-to-test Indicates a non-member PR verified by an org member that is safe to test. release-note Denotes a PR that will be considered when it comes time to generate release notes. sig/api-machinery Categorizes an issue or PR as relevant to SIG API Machinery. sig/architecture Categorizes an issue or PR as relevant to SIG Architecture. sig/auth Categorizes an issue or PR as relevant to SIG Auth. sig/etcd Categorizes an issue or PR as relevant to SIG Etcd. sig/instrumentation Categorizes an issue or PR as relevant to SIG Instrumentation. sig/release Categorizes an issue or PR as relevant to SIG Release. sig/scheduling Categorizes an issue or PR as relevant to SIG Scheduling. sig/testing Categorizes an issue or PR as relevant to SIG Testing. size/M Denotes a PR that changes 30-99 lines, ignoring generated files. triage/accepted Indicates an issue or PR is ready to be actively worked on.

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

Bump DefaultKubeBinaryVersion to 1.32

8 participants