-
Notifications
You must be signed in to change notification settings - Fork 611
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/clouds support for controllerServer #2551
Conversation
Welcome @MatthieuFin! |
Hi @MatthieuFin. 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 Once the patch is verified, the new status will be reflected by the 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. |
As mentioned here and after some local tests it seems to be the proper implementation way. I propose to avoid usage of storageClass |
/ok-to-test Sorry, I won't have time to take a closer look before my vacations, will be back in 2 weeks. @kayrus might be the proper person to check this PR out. |
Looks like the tests have to be fixed here. |
/retest |
/retest |
Hi, My issue concern topology keys, currently only available is topology.cinder.csi.openstack.org/zone and obviously my provider OVH use same zone name (nova) on each of their openstack cluster, so I need to add possibility to manage another key to differentiate them. |
70b257c
to
33aec86
Compare
we have exactly the same problem (several openstack with same availability zone name) I'm interesseted by this feature let me know if you need some test feedback regards |
Hi ! You could use my last commit to build image, if you'r lazy to build it you could use mine exposed here This permit to create a storageClass with following allowedTopology: allowedTopologies:
- matchLabelExpressions:
- key: topology.cinder.csi.openstack.org/zone
values:
- nova
- key: topology.kubernetes.io/region
values:
- GRA9 Moreover you have to enable option
In that way if you print your CSINode object you shoul see topologyKeys:
- topology.cinder.csi.openstack.org/zone
- topology.kubernetes.io/region Which permit you to use correctly your storage class based on another param than availability zone name |
Looks like @MatthieuFin fixed most of the issues, what are the reasons why this code can't be merged ? |
looks like there is a merge conflict, the others ok to me now /lgtm |
…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 <[email protected]>
…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 <[email protected]>
Signed-off-by: MatthieuFin <[email protected]>
add documentation and examples about multi cloud support configuration Co-authored-by: sebastienmusso <[email protected]> Co-authored-by: FlorentLaloup <[email protected]> Signed-off-by: MatthieuFin <[email protected]>
…ies` arg Add unit tests cases on listvolumes function in multicloud configuration with and without `--max-entries` arg Signed-off-by: MatthieuFin <[email protected]>
Rebase done |
/lgtm |
Hello there ! |
I can approve but I still need folks to take a look |
No problem ! |
Hi, is there any todo left to get this merged? |
/approve good enough time for people to comment if they have any objection |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: jichenjc 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 |
Affected binaries:
What this PR does / why we need it:
Enable multi region / multi clouds support on cinder-csi-plugin controllerServer.
Which issue this PR fixes(if applicable):
fixes #2035
Special notes for reviewers:
I have a kubernetes cluster stretch on multiples openstack clusters (3 OVH and 1 onPremise linked by a private dark fiber).
That why my approche is more "multi clouds" than only "multi region"
I don't touch nodeServer behavior (I simply deploy a Daemonset with a nodeSelector on a label whitch select nodes based on their hypervisor, and mount a dedicated secret with openstack creds associated)
The purpose is on controllerServer which handle all kube requests to manage pvc, he had be able to CRUD volumes on all managed openstack cluster.
I propose to use gcfg subsection feature to be abble to handle multiple "sections"
Global
in config files. This permit to be backaward compatible with configfiles syntax.I choose to use StorageClass
parameters
to deal with cloud selection (i add an optionnal fieldcloud
which containt config Global subsection name). In this way when a createVolumeRequest income controllerServer could identify OSInstance to used based on match between SC fieldparametes.cloud
and his config Global subsections.Issue
This PR is currently a MVP, which permit to create volumes and attach them to correct VM / OpenStack cluster, but i have a bit issue to troubleshoot, indeed all csi spec message don't contains
volume_context
orparameters
, especially for DeleteVolumeRequest which only contain volumeID.I have 2 ideas to troubleshoot this issue:
Release note: