Fixing the Vexxhost MCAPI Driver in Kolla-Ansible OpenStack 2023.2

Fixing the Vexxhost MCAPI Driver in Kolla-Ansible OpenStack 2023.2
created with MS Copilot

After updating the containers in my Kolla-Ansible deployment, I ran into a frustrating issue when trying to spin up new Kubernetes clusters with Magnum and the Vexxhost Cluster API (CAPI) driver.

Everything had been working flawlessly—until the image refresh.

The Error

Here’s what I was met with in the magnum-conductor.log:

magnum_cluster_api.KubeError: API request failed: ApiError: clusterresourcesets.addons.cluster.x-k8s.io "fc579238-aaf6-4166-a393-c67b929d9e0f" not found

After much trial, error, and a lot of coffee, here’s the combo of versions and commands that finally fixed MCAPI in OpenStack 2023.2 (as of May 22, 2025):

export EXP_CLUSTER_RESOURCE_SET=true
export CLUSTER_TOPOLOGY=true

clusterctl init \
    --core cluster-api:v1.8.4 \
    --bootstrap kubeadm:v1.8.4 \
    --control-plane kubeadm:v1.8.4 \
    --infrastructure openstack:v0.11.2

kind get kubeconfig > config
mkdir -p /etc/kolla/config/magnum/
cp ~/config /etc/kolla/config/magnum/kubeconfig

cat /etc/kolla/config/magnum.conf
[trust]
cluster_user_trust = True

[cluster_template]
kubernetes_allowed_network_drivers = calico
kubernetes_default_network_driver = calico

[nova_client]
api_version = 2.15

kolla-ansible -i multinode deploy --tags common,horizon,magnum
ansible -i multinode -m script -a "patch_magnum_capi_drv_bobcat.sh" control
ansible -i multinode -m shell -a 'podman restart magnum_conductor magnum_api' control

> ⚠️ I tried several newer CAPI versions, but none of them worked reliably with Magnum in this setup. Your mileage may vary.

Wrap-Up

If you're running into odd failures post-upgrade, double-check your CAPI and CAPO versions. Rolling back to these known-good versions might save you hours of debugging.

Got a better fix or using a newer version that works? Drop it in the comments—I’m all ears.

For any new deployments

In case you are doing a new deployment following my previous blog post, this is the complete code including the kind deployment.

export PATH=$PATH:~/.arkade/bin
kind delete cluster
kind create cluster --config=kind-config.yml --image kindest/node:v1.28.13

export EXP_CLUSTER_RESOURCE_SET=true
export CLUSTER_TOPOLOGY=true

clusterctl init \
    --core cluster-api:v1.8.4 \
    --bootstrap kubeadm:v1.8.4 \
    --control-plane kubeadm:v1.8.4 \
    --infrastructure openstack:v0.11.2

kind get kubeconfig > config
mkdir -p /etc/kolla/config/magnum/
cp ~/config /etc/kolla/config/magnum/kubeconfig

kolla-ansible -i multinode deploy --tags common,horizon,magnum
ansible -i multinode -m script -a "patch_magnum_capi_drv_bobcat.sh" control
ansible -i multinode -m shell -a 'podman restart magnum_conductor magnum_api' control
Privacy Policy Cookie Policy Terms and Conditions