Files
sunbeam-charms/charms/magnum-k8s/charmcraft.yaml
Hemanth Nakkina 7fadc291d3 Add lock file for charms
* Add uv lock file for charm python packages
* Use uv lock file in charmcraft to build the charm
by generating requirements.txt based on uv lock file
* Add rustc dependency for barbican and magnum charms

Change-Id: I5447c70989a6afe534004438c45bed39a022c524
2025-05-05 15:49:14 +05:30

103 lines
2.5 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
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
- cargo
- 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]