-
Notifications
You must be signed in to change notification settings - Fork 260
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
Multi openstack cloud support with OCCM #2183
Labels
kind/feature
Categorizes issue or PR as related to a new feature.
Comments
k8s-ci-robot
added
the
kind/feature
Categorizes issue or PR as related to a new feature.
label
Sep 27, 2024
Beside the fact that your proposed solution is a huge workaround (I almost wrote hack), I like the idea of reading the secret and take the region from there. |
@mdbooth I think I found a related / similar issue with Hypershift & CAPO:
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
/kind feature
Glossary
Description
I would like to be able to create k8s cluster spread across different openstack clusters. I have already underlying network based on VPN tunnels and network interconnections, ready to VMs communications between different clouds.
I am able to create VM in my different clouds with the help of
spec.template.spec.identityRef
fromOpenStackMachineTemplate
which permit to overrideidetityRef
define in parentOpenStackCluster
object.It works well ! My issue concern integration with OCCM (Openstack Cloud Controller Manager).
The only way yo manage multiple clouds with OCCM seems to be to deploy 1 OCCM instance per cloud by setting env variables
OS_CCM_REGIONAL="true"
andOS_V1_INSTANCES="true"
.In this way each OCCM manage his own cloud by adding OS region name (a limitation could be that 2 differents clouds should have different regions names but I don't think that is really an issue). The "feature flag" implementation is here.
OCCM with this env variables manage VMs with providerId format like
openstack://region_name/uuid
k8s nodes
spec.providerID
is immutable and created by kubeadm in the usecase of CAPO, so I configure my VMs with following configuration :In that way k8s node are properly provision with the right providerID anc correctly recognize by the right OCCM.
Missing feature
The issue is now on CAPO implementation which hardcode providerID in format
openstack:///uuid
in his machine crd object with no possibility to configure endoint field with region nameI explain this scenario in an issue concerning usecase without kubeadm and unset providerID with usage of multiple OCCM in same k8s cluster kubernetes/cloud-provider-openstack#2590 (comment) ,
TLDR: CAPI see k8s node with providerID
openstack://region_name/uuid
but CAPO see machine with providerIDopenstack:///uuid
(with same uuid) and it is stuck in this state.Code to patch
I think that CAPO machine crd providerID is hardcoded here but I don't find proper way to get region name here, to template this instruction.
How to patch it ?
The text was updated successfully, but these errors were encountered: