type: charm name: nova-k8s summary: OpenStack Compute - Nova cloud controller service description: | OpenStack is a reliable cloud infrastructure. Its mission is to produce the ubiquitous cloud computing platform that will meet the needs of public and private cloud providers regardless of size, by being simple to implement and massively scalable. . OpenStack Compute, codenamed Nova, is a cloud computing fabric controller. In addition to its "native" API (the OpenStack API), it also supports the Amazon EC2 API. . This charm provides the cloud controller service for OpenStack Nova and includes nova-scheduler, nova-api and nova-conductor services. assumes: - k8s-api - juju >= 3.1 links: source: - https://opendev.org/openstack/charm-nova-k8s issues: - https://bugs.launchpad.net/charm-nova-k8s base: ubuntu@24.04 platforms: amd64: config: options: debug: default: false description: Enable debug logging. type: boolean region: default: RegionOne description: Name of the OpenStack region type: string containers: nova-api: resource: nova-api-image nova-scheduler: resource: nova-scheduler-image nova-conductor: resource: nova-conductor-image nova-spiceproxy: resource: nova-spiceproxy-image resources: nova-api-image: type: oci-image description: OCI image for OpenStack Nova API upstream-source: ghcr.io/canonical/nova-consolidated:2025.1 nova-scheduler-image: type: oci-image description: OCI image for OpenStack Nova Scheduler upstream-source: ghcr.io/canonical/nova-consolidated:2025.1 nova-conductor-image: type: oci-image description: OCI image for OpenStack Nova Conductor upstream-source: ghcr.io/canonical/nova-consolidated:2025.1 nova-spiceproxy-image: type: oci-image description: OCI image for OpenStack Nova Spice proxy upstream-source: ghcr.io/canonical/nova-consolidated:2025.1 requires: ingress-internal: interface: ingress limit: 1 ingress-public: interface: ingress optional: true limit: 1 traefik-route-internal: interface: traefik_route limit: 1 traefik-route-public: interface: traefik_route optional: true limit: 1 database: interface: mysql_client limit: 1 api-database: interface: mysql_client limit: 1 cell-database: interface: mysql_client limit: 1 amqp: interface: rabbitmq identity-service: interface: keystone placement: interface: placement cloud-compute: interface: nova-compute optional: true receive-ca-cert: interface: certificate_transfer optional: true logging: interface: loki_push_api optional: true tracing: interface: tracing optional: true limit: 1 provides: nova-service: interface: nova peers: peers: interface: nova-peer parts: update-certificates: plugin: nil override-build: | apt update apt install -y ca-certificates update-ca-certificates charm: after: - update-certificates build-packages: - git - libffi-dev - libssl-dev - pkg-config - rustc - cargo 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]