ccf4ebbb48
magnum_capi_helm driver supports only kubeadm and there is no mechanism to use the driver with other k8s distributions like canonical k8s [1]. To generalize the kubernets control plane, the resource class KubeadmControlPlane is modified as K8sControlPlane. Two new configuration parameters are added: * api_resources - provides ability to modify the api version and plural names for cluster api resources. This is especially necessary for changing k8s control plane resource api versions and plural names. Also it will be helpful if the management cluster supports different api version than what is hardcoded in the driver for any cluster api resource. Note plural is only supported for k8s control plane as we dont see any value add to make it configurable for other cluster api resources. * k8s_control_plane_resource_conditions To change the control plane resource condition check to determine the resource status as ready. Canonical k8s does not use etcd as k8s backend and hence the EtcdClusterHealthy condition does not exist and the resource status is CREATE_FAILED. [1] https://documentation.ubuntu.com/canonical-kubernetes/release-1.32/capi/ [2] https://github.com/canonical/cluster-api-k8s/tree/main Change-Id: Iea342f8917f0b797fb3dc5810433d52841af9b55 Signed-off-by: Hemanth Nakkina <hemanth.nakkina@canonical.com>
Magnum CAPI Common
There are two magnum drivers using Cluster API. Ideally we would both build on a common shared code, ideally within the Magnum tree.
Some code and some ideas for these utilities come from this alternative Apache2 licensed driver: https://github.com/vexxhost/magnum-cluster-api
This is structured to make it easier for us to work out how to share some of this code