Cloud Controller Manager addons

Before engaging on Github, I’d like to ask if any of the involved developers of MicroK8S would be able to point to any important thing to know for trying to implement different Cloud Controller Manager as an addon.

To give an example, adding Hetzner CCM with networks support, it would help if Calico would use native networking and benefit from the routes that the ccm creates, maximizing this way networking performance within the cluster. If the addon would make the necessary changes to Calico CNI, will those be reverted on a cluster upgrade, or are good long term?

Hi @madalinignisca

Thank you for considering to contribute to MicroK8s. I am sure you have seen the addons template repository [1] that also includes a HACKING.md doc on how to start your journey.

My recommendation is to stay active in our communication channels (slack and github) and do the development out in the open so we can offer assistance when needed. Maybe you could submit a draft PR and keep ping us there.

I suspect there will be requirements we will need to take into account so we do not break your addon during upgrades. To your question for example we do not change the calico deployment within a release track (ie all 1.25 deployments will have the same calico version). We do however have hooks the addons could make use to ensure their operation during a refresh see for example the kube-ovn addon [2].

Lets move our discussion over on github. Thank you.

[1] GitHub - canonical/microk8s-addons-repo-template: Template repository for MIcroK8s addons
[2] microk8s-core-addons/addons/kube-ovn at main · canonical/microk8s-core-addons · GitHub