Magnum driver that uses Kubernetes Cluster API via Helm.
Go to file
John Garbutt 85112a457a
Add a stub cluster_api driver (#1)
The plan is to slowly build up the ability to create K8s CRDs
instead of heat templates in a separate driver.
The starting point is adding the new experimental driver.

Extracted from:
https://review.opendev.org/c/openstack/magnum/+/815521

Change-Id: I32b7a91640f4f65b9662de080682761a2c182055
2023-09-12 18:16:32 +01:00
.github/workflows Attempt to add tox tests 2023-09-12 16:41:35 +01:00
magnum_capi_helm Add a stub cluster_api driver (#1) 2023-09-12 18:16:32 +01:00
releasenotes Add automatic black formatting 2023-09-12 17:04:17 +01:00
.coveragerc Attempt to import from openstack cookiecutter 2023-09-12 16:39:06 +01:00
.gitignore Attempt to import from openstack cookiecutter 2023-09-12 16:39:06 +01:00
.stestr.conf Attempt to import from openstack cookiecutter 2023-09-12 16:39:06 +01:00
LICENSE Attempt to import from openstack cookiecutter 2023-09-12 16:39:06 +01:00
README.rst Attempt to import from openstack cookiecutter 2023-09-12 16:39:06 +01:00
requirements.txt Add automatic black formatting 2023-09-12 17:04:17 +01:00
setup.cfg Add a stub cluster_api driver (#1) 2023-09-12 18:16:32 +01:00
setup.py Add automatic black formatting 2023-09-12 17:04:17 +01:00
test-requirements.txt Add automatic black formatting 2023-09-12 17:04:17 +01:00
tox.ini Add a stub cluster_api driver (#1) 2023-09-12 18:16:32 +01:00

magnum-capi-helm

OpenStack Magnum driver using helm to create k8s clusterswith Cluster API.

The helm charts started out in August 2021 to build a template for creating K8s on OpenStack using Cluster API: https://github.com/stackhpc/capi-helm-charts

The helm charts have been in use by Azimuth since early 2022 to create Kubernetes clusters on OpenStack, in preference to previous Magnum support: https://github.com/stackhpc/azimuth

There has been an ongoing effort since October 2021 to create a Magnum driver that makes use of the above helm charts, with a view to replace the existing Heat based driver: https://review.opendev.org/c/openstack/magnum/+/815521

In early 2023 we discovered Vexhost had created thier own Cluster API Magnum driver, out of tree: https://github.com/vexxhost/magnum-cluster-api

After PTG discussons, we wanted something that would merge upstream and allowed for simple downstream modifications of templates, with updates that are independent of Magnum releases. The helm abstraction looked best able to deliver these aims, alongside being equaly useful outside of Magnum, potentially operated using ArgoCD or similar.

Where possible, this driver is attempting to re-use logic from the vexhost driver, in the hope of both drivers eventually sharing more code, prehaps similar to the old cut and paste openstack common of old. In particular, the vexhost driver had already fixed some nasty problems around ensuring the existing "coe credentials" API calls work with Cluster API, and being able to generate appropriate application credentials for use with both Cluster API Provider OpenStack (CAPO) and Cloud Provider OpenStack, with appropriate ca cetificates included.