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

Document PVLabeler as deprecated #119129

Merged
merged 1 commit into from
Oct 29, 2023

Conversation

stephenfin
Copy link
Member

@stephenfin stephenfin commented Jul 6, 2023

What type of PR is this?

/kind documentation
/sig cloud-provider

What this PR does / why we need it:

This has no callers outside of the deprecated PersistentVolumeLabel admission controller, and it does not appear to be intended for implementation by external cloud provider implementations. The CSI topology feature, while not an exact equivalent, fulfils a very similar role. Indicate this.

Which issue(s) this PR fixes:

Fixes #

Special notes for your reviewer:

I'm unsure if this is correct approach. An alternative approach would be to start supporting this again in external cloud provider. While the CSI topology feature does allow us to restrict PVs to one or more "zones", there's no way to identify the exact zone that it ended up in. For example, the using cloud-provider-openstack with the Cinder CSI driver, we can define allowedTopologies on our StorageClass(es):

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: topology-aware-standard
provisioner: cinder.csi.openstack.org
reclaimPolicy: Delete
allowVolumeExpansion: true
volumeBindingMode: WaitForFirstConsumer
allowedTopologies:
- matchLabelExpressions:
  - key: topology.cinder.csi.openstack.org/zone
    values:
    - abc
    - xyz
    - mno

This results in nodeAffinity in our PersistentVolume.spec:

kind: PersistentVolume
# ...
spec:
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: topology.cinder.csi.openstack.org/zone
          operator: In
          values:
          - abc
      - matchExpressions:
        - key: topology.cinder.csi.openstack.org/zone
          operator: In
          values:
          - xyz
      - matchExpressions:
        - key: topology.cinder.csi.openstack.org/zone
          operator: In
          values:
          - mno
  persistentVolumeReclaimPolicy: Delete
  storageClassName: topology-aware-standard

With this we can know it landed in one of three zones but we don't know which one. Previously, we've had seen the exact zone it ended up in. We can fetch this information directly from the cloud in question but I wonder if there's value in still having topology.kubernetes.io/zone and topology.kubernetes.io/region labels on PVs?

Does this PR introduce a user-facing change?

NONE

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


This has no callers outside of the deprecated PersistentVolumeLabel
admission controller, and it does not appear to be intended for
implementation by external cloud provider implementations. The CSI
topology feature, while not an exact equivalent, fulfils a very similar
role. Indicate this.

Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
@k8s-ci-robot k8s-ci-robot added release-note-none Denotes a PR that doesn't merit a release note. kind/documentation Categorizes issue or PR as related to documentation. size/XS Denotes a PR that changes 0-9 lines, ignoring generated files. sig/cloud-provider Categorizes an issue or PR as relevant to SIG Cloud Provider. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. 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. needs-priority Indicates a PR lacks a `priority/foo` label and requires one. labels Jul 6, 2023
@k8s-ci-robot
Copy link
Contributor

Hi @stephenfin. 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.

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.

@mdbooth
Copy link
Contributor

mdbooth commented Jul 6, 2023

/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 Jul 6, 2023
@mdbooth
Copy link
Contributor

mdbooth commented Jul 6, 2023

/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 Jul 6, 2023
@mdbooth
Copy link
Contributor

mdbooth commented Jul 6, 2023

I'd add an LGTM label, but I'm not familiar with k/k's deprecation process. However, it certainly looks good to me in principal.

@mdbooth
Copy link
Contributor

mdbooth commented Sep 8, 2023

This has been lingering a bit. I wonder if we could get some eyes on it, perhaps from @andrewsykim or @cheftako?

@dims
Copy link
Member

dims commented Oct 28, 2023

/approve
/lgtm

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Oct 28, 2023
@k8s-ci-robot
Copy link
Contributor

LGTM label has been added.

Git tree hash: 880cf8773d549bf3f4e8045ebb9920090961e208

@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: dims, stephenfin

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 /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Oct 28, 2023
@k8s-ci-robot k8s-ci-robot merged commit 94f7049 into kubernetes:master Oct 29, 2023
12 checks passed
@k8s-ci-robot k8s-ci-robot added this to the v1.29 milestone Oct 29, 2023
@stephenfin stephenfin deleted the deprecate-pvlabeler branch October 30, 2023 08:42
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/cloudprovider cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. kind/documentation Categorizes issue or PR as related to documentation. 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-none Denotes a PR that doesn't merit a release note. sig/cloud-provider Categorizes an issue or PR as relevant to SIG Cloud Provider. size/XS Denotes a PR that changes 0-9 lines, ignoring generated files. triage/accepted Indicates an issue or PR is ready to be actively worked on.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants