
* Add kubeconfig as configuration option to charm * Update magnum.conf templates to add new configuration related to magnum-capi-helm driver Change-Id: Id2eacca3cb189be5507f29f84ebcce73c0c201a5 Signed-off-by: Hemanth Nakkina <hemanth.nakkina@canonical.com>
magnum-k8s
Description
magnum-k8s is an operator to manage the Magnul API and conductor services on a Kubernetes based environment.
Usage
Deployment
magnum-k8s is deployed using below command:
juju deploy magnum-k8s magnum --trust
Now connect the magnum operator to existing database, messaging and keystone identity operators:
juju relate mysql:database magnum:database
juju relate rabbitmq:amqp magnum:amqp
juju relate keystone:identity-service magnum:identity-service
juju relate keystone:identity-ops magnum:identity-ops
Configuration
This section covers common and/or important configuration options. See file
config.yaml
for the full list of options, along with their descriptions and
default values. See the Juju documentation for details
on configuring applications.
Actions
This section covers Juju actions supported by the charm.
Actions allow specific operations to be performed on a per-unit basis. To
display action descriptions run juju actions magnum
. If the charm is not
deployed then see file actions.yaml
.
Further information on testing
magnum-k8s support magnum-capi-helm driver and needs external kubernetes management cluster.
Kubernetes management cluster should already have the Cluster API deployed. Cluster API can be deployed by running following steps
curl -L https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.9.6/clusterctl-linux-amd64 -o clusterctl
sudo install -o root -g root -m 0755 clusterctl /usr/local/bin/clusterctl
KUBECONFIG=<kubeconfig file path> clusterctl init --core cluster-api:v1.9.6 --bootstrap canonical-kubernetes --control-plane canonical-kubernetes --infrastructure openstack:v0.11.3 --addon helm
Also Kubernetes cluster credentials should be passed as a juju secret to the
magnum charm via config option kubeconfig
Steps to create juju secret and update config
juju add-secret secret-kubeconfig kubeconfig#file=<kubeconfig file path>
juju grant-secret secret-kubeconfig magnum
juju config magnum kubeconfig=<secret-kubeconfig URI>
Relations
magnum-k8s requires the following relations:
database
: To connect to MySQL
amqp
: To connect to RabbitMQ
identity-service
: To register endpoints in Keystone
ingress-internal
: To expose service on underlying internal network
ingress-public
: To expose service on public network
identity-ops
: To create trustee user
OCI Images
The charm by default uses following images:
`ghcr.io/canonical/magnum-consolidated:2025.1`
Contributing
Please see the Juju SDK docs for guidelines on enhancements to this charm following best practice guidelines, and CONTRIBUTING.md for developer guidance.
Bugs
Please report bugs on Launchpad.