Files
sunbeam-charms/charms/nova-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

147 lines
3.4 KiB
YAML

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]