Skip to content
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 initial support for StorageVersion API for CRDs #120582

Closed

Conversation

richabanker
Copy link
Contributor

@richabanker richabanker commented Sep 11, 2023

What type of PR is this?

/kind feature

What this PR does / why we need it:

This PR is based off of #113498, but rebased off of master. This is an attempt to drive the StorageVersion API graduation toward beta by addressing requirements/concerns for the same.

Which issue(s) this PR fixes:

Fixes kubernetes/enhancements#2339

Special notes for your reviewer:

Does this PR introduce a user-facing change?


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

- [KEP]: https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/2339-storageversion-api-for-ha-api-servers

@k8s-ci-robot
Copy link
Contributor

Adding the "do-not-merge/release-note-label-needed" label because no release-note block was detected, please follow our release note process to remove it.

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.

@k8s-ci-robot k8s-ci-robot added size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. kind/feature Categorizes issue or PR as related to a new feature. do-not-merge/release-note-label-needed Indicates that a PR should not merge because it's missing one of the release note labels. 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-priority Indicates a PR lacks a `priority/foo` label and requires one. labels Sep 11, 2023
@k8s-ci-robot k8s-ci-robot requested a review from jpbetz September 11, 2023 23:04
@k8s-ci-robot k8s-ci-robot added area/test sig/api-machinery Categorizes an issue or PR as relevant to SIG API Machinery. sig/testing Categorizes an issue or PR as relevant to SIG Testing. and removed do-not-merge/needs-sig Indicates an issue or PR lacks a `sig/foo` label and requires one. labels Sep 11, 2023
@richabanker richabanker force-pushed the storage-version-api-beta branch from b447044 to 62a4a3e Compare September 11, 2023 23:06
@richabanker richabanker changed the title add initial support for StorageVersion API for CRDs Add initial support for StorageVersion API for CRDs Sep 11, 2023
@alexzielenski
Copy link
Contributor

/assign @andrewsykim
/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 Sep 12, 2023
@richabanker richabanker force-pushed the storage-version-api-beta branch 2 times, most recently from 8b18ac9 to bde2f04 Compare September 15, 2023 23:32
@k8s-ci-robot k8s-ci-robot added area/conformance Issues or PRs related to kubernetes conformance tests sig/architecture Categorizes an issue or PR as relevant to SIG Architecture. sig/instrumentation Categorizes an issue or PR as relevant to SIG Instrumentation. labels Sep 15, 2023
@richabanker richabanker force-pushed the storage-version-api-beta branch 4 times, most recently from 2b73cb9 to 1d21b54 Compare September 16, 2023 00:46
// StorageVersionAPI feature gate is disabled
if !utilfeature.DefaultFeatureGate.Enabled(features.StorageVersionAPI) ||
!utilfeature.DefaultFeatureGate.Enabled(features.APIServerIdentity) {
klog.V(2).Infof("Skipped waiting for storage version to finish updating since StorageVersionAPI and/or APIServerIdentity feature are disabled.")
Copy link
Member

Choose a reason for hiding this comment

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

IIUC this line will be logged at V2 for every CR write requests when the feature is disabled. That seems to be a lot of clusters and a lot of logs.

return nil
}
// Get the latest CRD to make sure it's not terminating or deleted
crd, err := r.crdLister.Get(crdName)
Copy link
Member

Choose a reason for hiding this comment

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

I don't recall why I added this. It doesn't feel StorageVersion specific. We can exclude this from the PR

// Manager provides methods for updating StorageVersion for CRDs. It does
// goroutine management to allow CRD storage version updates running in the
// background and not blocking the caller.
type Manager interface {
Copy link
Member

Choose a reason for hiding this comment

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

IIRC the main purpose of having the manager is to implement the queueing logic, which is unique to CRD

@k8s-ci-robot k8s-ci-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Mar 2, 2024
@richabanker richabanker force-pushed the storage-version-api-beta branch from 72b0ab8 to 588ae6a Compare March 11, 2024 02:27
@k8s-ci-robot k8s-ci-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Mar 11, 2024
@richabanker richabanker force-pushed the storage-version-api-beta branch from 588ae6a to b4a3ed5 Compare March 11, 2024 02:53
@richabanker richabanker force-pushed the storage-version-api-beta branch from b4a3ed5 to d76c0f4 Compare March 11, 2024 02:55
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: richabanker
Once this PR has been reviewed and has the lgtm label, please assign deads2k for approval. For more information see the Kubernetes Code Review Process.

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

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

@k8s-ci-robot
Copy link
Contributor

@richabanker: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
pull-kubernetes-e2e-autoscaling-hpa-cm 2a12a1a link false /test pull-kubernetes-e2e-autoscaling-hpa-cm
pull-kubernetes-e2e-autoscaling-hpa-cpu 2a12a1a link false /test pull-kubernetes-e2e-autoscaling-hpa-cpu
pull-kubernetes-e2e-capz-azure-file-vmss 2a12a1a link false /test pull-kubernetes-e2e-capz-azure-file-vmss
pull-kubernetes-cross 2a12a1a link false /test pull-kubernetes-cross
pull-kubernetes-e2e-capz-azure-disk 2a12a1a link false /test pull-kubernetes-e2e-capz-azure-disk
pull-kubernetes-e2e-storage-kind-disruptive 2a12a1a link false /test pull-kubernetes-e2e-storage-kind-disruptive
pull-kubernetes-e2e-gce-network-proxy-http-connect 2a12a1a link true /test pull-kubernetes-e2e-gce-network-proxy-http-connect
pull-kubernetes-local-e2e 2a12a1a link false /test pull-kubernetes-local-e2e
pull-publishing-bot-validate 2a12a1a link false /test pull-publishing-bot-validate
pull-kubernetes-e2e-gci-gce-ipvs 2a12a1a link false /test pull-kubernetes-e2e-gci-gce-ipvs
pull-kubernetes-e2e-ubuntu-gce-network-policies 2a12a1a link false /test pull-kubernetes-e2e-ubuntu-gce-network-policies
pull-kubernetes-e2e-capz-azure-disk-vmss 2a12a1a link false /test pull-kubernetes-e2e-capz-azure-disk-vmss
pull-kubernetes-e2e-gce-storage-slow 2a12a1a link false /test pull-kubernetes-e2e-gce-storage-slow
pull-kubernetes-e2e-gce-csi-serial 2a12a1a link false /test pull-kubernetes-e2e-gce-csi-serial
pull-kubernetes-kind-dra 2a12a1a link false /test pull-kubernetes-kind-dra
pull-kubernetes-e2e-gce-network-proxy-grpc 2a12a1a link false /test pull-kubernetes-e2e-gce-network-proxy-grpc
pull-kubernetes-e2e-kind-nftables 2a12a1a link false /test pull-kubernetes-e2e-kind-nftables
pull-kubernetes-node-e2e-crio-dra 2a12a1a link false /test pull-kubernetes-node-e2e-crio-dra
pull-kubernetes-e2e-capz-conformance 2a12a1a link false /test pull-kubernetes-e2e-capz-conformance
pull-kubernetes-node-e2e-containerd-1-7-dra 2a12a1a link false /test pull-kubernetes-node-e2e-containerd-1-7-dra
pull-kubernetes-e2e-gce-storage-snapshot 2a12a1a link false /test pull-kubernetes-e2e-gce-storage-snapshot
pull-kubernetes-e2e-capz-azure-file 2a12a1a link false /test pull-kubernetes-e2e-capz-azure-file
pull-kubernetes-e2e-gci-gce-ingress 2a12a1a link false /test pull-kubernetes-e2e-gci-gce-ingress
pull-kubernetes-e2e-capz-windows-master 2a12a1a link false /test pull-kubernetes-e2e-capz-windows-master
pull-kubernetes-e2e-kind-kms 94e51a9 link false /test pull-kubernetes-e2e-kind-kms
pull-kubernetes-e2e-gce-cos-alpha-features 94e51a9 link false /test pull-kubernetes-e2e-gce-cos-alpha-features
pull-kubernetes-linter-hints d76c0f4 link false /test pull-kubernetes-linter-hints
pull-kubernetes-e2e-kind d76c0f4 link true /test pull-kubernetes-e2e-kind

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/test-infra repository. I understand the commands that are listed here.

@richabanker
Copy link
Contributor Author

Created a new PR which uses a workqueue to perform async SV udpates here #123999

@k8s-triage-robot
Copy link

The Kubernetes project currently lacks enough contributors to adequately respond to all PRs.

This bot triages PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the PR is closed

You can:

  • Mark this PR as fresh with /remove-lifecycle stale
  • Close this PR with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Jun 17, 2024
@k8s-triage-robot
Copy link

The Kubernetes project currently lacks enough active contributors to adequately respond to all PRs.

This bot triages PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the PR is closed

You can:

  • Mark this PR as fresh with /remove-lifecycle rotten
  • Close this PR with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle rotten

@k8s-ci-robot k8s-ci-robot added lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels Jul 17, 2024
@k8s-triage-robot
Copy link

The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.

This bot triages PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the PR is closed

You can:

  • Reopen this PR with /reopen
  • Mark this PR as fresh with /remove-lifecycle rotten
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/close

@k8s-ci-robot
Copy link
Contributor

@k8s-triage-robot: Closed this PR.

In response to this:

The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.

This bot triages PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the PR is closed

You can:

  • Reopen this PR with /reopen
  • Mark this PR as fresh with /remove-lifecycle rotten
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/close

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/apiserver area/cloudprovider area/code-generation area/conformance Issues or PRs related to kubernetes conformance tests area/dependency Issues or PRs related to dependency changes area/e2e-test-framework Issues or PRs related to refactoring the kubernetes e2e test framework area/ipvs area/kube-proxy area/kubectl area/kubelet area/network-policy Issues or PRs related to Network Policy subproject area/provider/gcp Issues or PRs related to gcp provider area/release-eng Issues or PRs related to the Release Engineering subproject area/test cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. do-not-merge/release-note-label-needed Indicates that a PR should not merge because it's missing one of the release note labels. 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. lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. needs-priority Indicates a PR lacks a `priority/foo` label and requires one. sig/api-machinery Categorizes an issue or PR as relevant to SIG API Machinery. sig/apps Categorizes an issue or PR as relevant to SIG Apps. 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/autoscaling Categorizes an issue or PR as relevant to SIG Autoscaling. sig/cli Categorizes an issue or PR as relevant to SIG CLI. sig/cloud-provider Categorizes an issue or PR as relevant to SIG Cloud Provider. sig/instrumentation Categorizes an issue or PR as relevant to SIG Instrumentation. sig/network Categorizes an issue or PR as relevant to SIG Network. sig/node Categorizes an issue or PR as relevant to SIG Node. sig/release Categorizes an issue or PR as relevant to SIG Release. sig/scalability Categorizes an issue or PR as relevant to SIG Scalability. sig/scheduling Categorizes an issue or PR as relevant to SIG Scheduling. sig/storage Categorizes an issue or PR as relevant to SIG Storage. sig/testing Categorizes an issue or PR as relevant to SIG Testing. sig/windows Categorizes an issue or PR as relevant to SIG Windows. size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. triage/accepted Indicates an issue or PR is ready to be actively worked on. wg/structured-logging Categorizes an issue or PR as relevant to WG Structured Logging.
Projects
Archived in project
Archived in project
Archived in project
Archived in project
Status: Done
Development

Successfully merging this pull request may close these issues.

StorageVersion API for HA API servers
10 participants