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

[cinder-csi-plugin] Multi-region support for provisioning Cinder storage. #2035

Open
albgus opened this issue Nov 16, 2022 · 22 comments · May be fixed by #2551
Open

[cinder-csi-plugin] Multi-region support for provisioning Cinder storage. #2035

albgus opened this issue Nov 16, 2022 · 22 comments · May be fixed by #2551
Labels
kind/feature Categorizes issue or PR as related to a new feature.

Comments

@albgus
Copy link

albgus commented Nov 16, 2022

/kind feature

I have a scenario where we would need to implement high-availability across two datacenters, each operating as their own OpenStack region. As both regions are in the same City with a high speed low latency (<1ms) network between then it would be possible to create a stretched cluster between the regions. (I'm aware it's not possible to create proper high-availability of etcd with just two regions, but I belive it can be managed and it's a separate issue).

We do have some components that need persistent storage in our cluster, and we would like to be able to deploy these components in Kubernetes and use the built-in region awareness to deploy apps and their volumes.

Seems it should be possible to label each node with an appropriate topology.kubernetes.io/region label and then configure the Cinder CSI to map regions to a set of OpenStack credentials. Then get kind of similar to how for example the AWS EBS CSI manages different availability zones, with the awareness that only nodes in the correct region will be able to mount the volumes.

This might be a duplicate of #1924 , but I only really care about the storage part, we wouldn't need for instance the LoadBalancer support.

@k8s-ci-robot k8s-ci-robot added the kind/feature Categorizes issue or PR as related to a new feature. label Nov 16, 2022
@jichenjc
Copy link
Contributor

OpenStack region

openstack region concept is multiple openstack cluster running and share keystone / horizon
I think you are talking about AZ, which you mihgt refer to
ignore-volume-az key word at https://github.com/kubernetes/cloud-provider-openstack/blob/master/docs/cinder-csi-plugin/using-cinder-csi-plugin.md

@albgus
Copy link
Author

albgus commented Nov 18, 2022

No, I'm specifically talking about region. It would be really nice if OpenStack providers has their shit together at the same level as AWS, GCP, etc.. But it seems more common than not that providers chose to deploy separate regions in the same area as opposed to deploying a big OpenStack cloud with proper availability zones set up. Due to this I think it would be good if the Cinder CSI driver would work with this scenario. In my case there is no shared keystone either, presumably to fault isolate the regions or something..

At the very least OVH and Hetzner has this availability zone less setup, and it seems more common than not with public providers and I'm guessing the same may be true for many privately hosted setups.

@cambierr
Copy link

I'm guessing the same may be true for many privately hosted setups.

Can confirm with ~ 10 of our private clusters

@jichenjc
Copy link
Contributor

Seems it should be possible to label each node with an appropriate topology.kubernetes.io/region label and then configure the Cinder CSI to map regions to a set of OpenStack credentials.

ok, this make sense, some thoughts:

  1. we support multiple cloud definition so this should be good
  2. we should be able to pass region param in controllerServer.CreateVolume
  3. with 1) 2), we are able to talk to different region to create volume
  4. during attachment, need more time to know how to find corresponding node to do the attachment (e.g same region )

as I don't have those env ,so I am happy to get someone cooperate on this topic if you like , thanks

@cambierr
Copy link

cambierr commented Dec 15, 2022 via email

@jichenjc
Copy link
Contributor

please resubmit so at least I an help review , thanks for the feedback~

@jichenjc
Copy link
Contributor

@cambierr could you please help submit? Thanks

@k8s-triage-robot
Copy link

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

This bot triages un-triaged issues 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 issue is closed

You can:

  • Mark this issue as fresh with /remove-lifecycle stale
  • Close this issue 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 Apr 30, 2023
@k8s-triage-robot
Copy link

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

This bot triages un-triaged issues 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 issue is closed

You can:

  • Mark this issue as fresh with /remove-lifecycle rotten
  • Close this issue 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 May 30, 2023
@k8s-triage-robot
Copy link

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

This bot triages issues 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 issue is closed

You can:

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

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

/close not-planned

@k8s-ci-robot k8s-ci-robot closed this as not planned Won't fix, can't repro, duplicate, stale Jun 29, 2023
@k8s-ci-robot
Copy link
Contributor

@k8s-triage-robot: Closing this issue, marking it as "Not Planned".

In response to this:

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

This bot triages issues 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 issue is closed

You can:

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

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

/close not-planned

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.

@jichenjc
Copy link
Contributor

/reopen

@k8s-ci-robot k8s-ci-robot reopened this Jun 29, 2023
@k8s-ci-robot
Copy link
Contributor

@jichenjc: Reopened this issue.

In response to this:

/reopen

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-triage-robot
Copy link

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

This bot triages issues 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 issue is closed

You can:

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

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

/close not-planned

@k8s-ci-robot
Copy link
Contributor

@k8s-triage-robot: Closing this issue, marking it as "Not Planned".

In response to this:

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

This bot triages issues 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 issue is closed

You can:

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

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

/close not-planned

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 closed this as not planned Won't fix, can't repro, duplicate, stale Jan 19, 2024
@dulek
Copy link
Contributor

dulek commented Jan 19, 2024

/reopen

This seems to be a sane thing.

@k8s-triage-robot
Copy link

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

This bot triages issues 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 issue is closed

You can:

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

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

/close not-planned

@k8s-ci-robot k8s-ci-robot closed this as not planned Won't fix, can't repro, duplicate, stale Feb 18, 2024
@k8s-ci-robot
Copy link
Contributor

@k8s-triage-robot: Closing this issue, marking it as "Not Planned".

In response to this:

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

This bot triages issues 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 issue is closed

You can:

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

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

/close not-planned

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.

@MatthieuFin
Copy link

/reopen

@k8s-ci-robot
Copy link
Contributor

@MatthieuFin: You can't reopen an issue/PR unless you authored it or you are a collaborator.

In response to this:

/reopen

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.

MatthieuFin added a commit to MatthieuFin/cloud-provider-openstack that referenced this issue Feb 28, 2024
…ubernetes#2035)

* feat(cinder-csi-plugin-controller): add support --cloud-name arg which permit to manage multiple config Global sections

* feat(cinder-csi-plugin-controller): add support of key `cloud` from secret specified in storageClass to reference specific config Global section

* feat(cinder-csi-plugin-node): add support --cloud-name arg which permit to specify one of config Global section

Signed-off-by: MatthieuFin <matthieu2717@gmail.com>
MatthieuFin added a commit to MatthieuFin/cloud-provider-openstack that referenced this issue Feb 28, 2024
…ubernetes#2035)

* feat(cinder-csi-plugin-node): Additionnal topology keys `--additionnal-topology` are announced on NodeGetInfo to create proper CSINode object
    and could used in storage class allowedTopologies field, in combination with csi-provisioner `--feature-gates Topology=true`
    created PV will have nodeAffinity set with topologies presents in storageClass allowedTopologies and in `--additionnal-topology` argument.

Signed-off-by: MatthieuFin <matthieu2717@gmail.com>
@dulek dulek reopened this Feb 28, 2024
@dulek
Copy link
Contributor

dulek commented Feb 28, 2024

/remove-lifecycle rotten

@k8s-ci-robot k8s-ci-robot removed the lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. label Feb 28, 2024
@dulek
Copy link
Contributor

dulek commented Feb 28, 2024

/remove-lifecycle stale

MatthieuFin added a commit to MatthieuFin/cloud-provider-openstack that referenced this issue Apr 17, 2024
…ubernetes#2035)

* feat(cinder-csi-plugin-controller): add support --cloud-name arg which permit to manage multiple config Global sections

* feat(cinder-csi-plugin-controller): add support of key `cloud` from secret specified in storageClass to reference specific config Global section

* feat(cinder-csi-plugin-node): add support --cloud-name arg which permit to specify one of config Global section

Signed-off-by: MatthieuFin <matthieu2717@gmail.com>
MatthieuFin added a commit to MatthieuFin/cloud-provider-openstack that referenced this issue Apr 17, 2024
…ubernetes#2035)

* feat(cinder-csi-plugin-node): Additionnal topology keys `--additionnal-topology` are announced on NodeGetInfo to create proper CSINode object
    and could used in storage class allowedTopologies field, in combination with csi-provisioner `--feature-gates Topology=true`
    created PV will have nodeAffinity set with topologies presents in storageClass allowedTopologies and in `--additionnal-topology` argument.

Signed-off-by: MatthieuFin <matthieu2717@gmail.com>
MatthieuFin added a commit to MatthieuFin/cloud-provider-openstack that referenced this issue Apr 24, 2024
…ubernetes#2035)

* feat(cinder-csi-plugin-controller): add support --cloud-name arg which permit to manage multiple config Global sections

* feat(cinder-csi-plugin-controller): add support of key `cloud` from secret specified in storageClass to reference specific config Global section

* feat(cinder-csi-plugin-node): add support --cloud-name arg which permit to specify one of config Global section

Signed-off-by: MatthieuFin <matthieu2717@gmail.com>
MatthieuFin added a commit to MatthieuFin/cloud-provider-openstack that referenced this issue Apr 24, 2024
…ubernetes#2035)

* feat(cinder-csi-plugin-node): Additionnal topology keys `--additionnal-topology` are announced on NodeGetInfo to create proper CSINode object
    and could used in storage class allowedTopologies field, in combination with csi-provisioner `--feature-gates Topology=true`
    created PV will have nodeAffinity set with topologies presents in storageClass allowedTopologies and in `--additionnal-topology` argument.

Signed-off-by: MatthieuFin <matthieu2717@gmail.com>
MatthieuFin added a commit to MatthieuFin/cloud-provider-openstack that referenced this issue May 14, 2024
…ubernetes#2035)

* feat(cinder-csi-plugin-controller): add support --cloud-name arg which permit to manage multiple config Global sections

* feat(cinder-csi-plugin-controller): add support of key `cloud` from secret specified in storageClass to reference specific config Global section

* feat(cinder-csi-plugin-node): add support --cloud-name arg which permit to specify one of config Global section

Signed-off-by: MatthieuFin <matthieu2717@gmail.com>
MatthieuFin added a commit to MatthieuFin/cloud-provider-openstack that referenced this issue May 14, 2024
…ubernetes#2035)

* feat(cinder-csi-plugin-node): Additionnal topology keys `--additionnal-topology` are announced on NodeGetInfo to create proper CSINode object
    and could used in storage class allowedTopologies field, in combination with csi-provisioner `--feature-gates Topology=true`
    created PV will have nodeAffinity set with topologies presents in storageClass allowedTopologies and in `--additionnal-topology` argument.

Signed-off-by: MatthieuFin <matthieu2717@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/feature Categorizes issue or PR as related to a new feature.
Projects
None yet
7 participants