Files
sunbeam-charms/charms/magnum-k8s/charmcraft.yaml
Hemanth Nakkina 75c50a1e18 Add support for magnum-capi-helm
* 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>
2025-08-21 13:29:31 +05:30

108 lines
2.6 KiB
YAML

type: charm
name: magnum-k8s
summary: OpenStack magnum service
description: |
Magnum is an OpenStack project which offers container orchestration engines
for deploying and managing containers as first class resources in OpenStack.
assumes:
- k8s-api
- juju >= 3.1
base: ubuntu@24.04
platforms:
amd64:
config:
options:
cluster-user-trust:
type: boolean
default: false
description: |
Controls whether to assign a trust to the cluster user or not. You will
need to set it to True for clusters with volume_driver=cinder or
registry_enabled=true in the underlying cluster template to work. This is
a potential security risk since the trust gives instances OpenStack API
access to the cluster's project. Note that this setting does not affect
per-cluster trusts assigned to the Magnum service user.
debug:
default: false
description: Enable debug logging.
type: boolean
region:
default: RegionOne
description: Name of the OpenStack region
type: string
kubeconfig:
type: secret
description: |
Kubeconfig to connect to Cluster API management cluster.
The value should be juju secret.
containers:
magnum-api:
resource: magnum-api-image
magnum-conductor:
resource: magnum-conductor-image
resources:
magnum-api-image:
type: oci-image
description: OCI image for OpenStack magnum
upstream-source: ghcr.io/canonical/magnum-consolidated:2025.1
magnum-conductor-image:
type: oci-image
description: OCI image for OpenStack magnum
upstream-source: ghcr.io/canonical/magnum-consolidated:2025.1
requires:
database:
interface: mysql_client
limit: 1
identity-service:
interface: keystone
identity-ops:
interface: keystone-resources
ingress-internal:
interface: ingress
limit: 1
ingress-public:
interface: ingress
optional: true
limit: 1
amqp:
interface: rabbitmq
receive-ca-cert:
interface: certificate_transfer
optional: true
logging:
interface: loki_push_api
optional: true
tracing:
interface: tracing
optional: true
limit: 1
peers:
peers:
interface: magnum-peer
parts:
charm:
build-packages:
- git
- libffi-dev
- libssl-dev
- rustc-1.80
- cargo-1.80
- pkg-config
charm-binary-python-packages:
- cryptography
- jsonschema
- pydantic
- jinja2
build-snaps: [astral-uv]
override-build: |
uv export --frozen --no-hashes --format=requirements-txt -o requirements.txt
craftctl default
charm-requirements: [requirements.txt]