Files
sunbeam-charms/charms/ironic-k8s/charmcraft.yaml
Claudiu Belu f07ada88f1 Adds ironic-k8s charm
Adds the basic charm, with typical relations and setup.

The charm has the following resources:

- ironic-api-image
- ironic-novncproxy-image

The charm enables the audit middleware for the Ironic API.

The charm provides the "ironic-api" relation, based on
service_readiness.

The charm has the traefik-route-internal and traefik-route-public for
the ironic-novncproxy service.

Change-Id: Ic00a933bae43a5d598c03eef18969a41138ea653
Signed-off-by: Claudiu Belu <cbelu@cloudbasesolutions.com>
2025-09-30 10:07:41 +00:00

120 lines
2.5 KiB
YAML

type: charm
title: OpenStack Ironic service
name: ironic-k8s
summary: OpenStack bare metal provisioning service
description: |
ironic-k8s is a charm for the OpenStack Ironic service, a bare metal
provisioning service.
assumes:
- k8s-api
- juju >= 3.1
links:
source: https://opendev.org/openstack/sunbeam-charms
issues: https://bugs.launchpad.net/sunbeam-charms
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:
ironic-api:
resource: ironic-api-image
ironic-novncproxy:
resource: ironic-novncproxy-image
resources:
ironic-api-image:
type: oci-image
description: OCI image for OpenStack Ironic API
upstream-source: ghcr.io/canonical/ironic-api:2025.1
ironic-novncproxy-image:
type: oci-image
description: OCI image for OpenStack Ironic noVNC proxy
upstream-source: ghcr.io/canonical/ironic-novncproxy:2025.1
requires:
amqp:
interface: rabbitmq
limit: 1
database:
interface: mysql_client
limit: 1
identity-service:
interface: keystone
limit: 1
ingress-internal:
interface: ingress
limit: 1
ingress-public:
interface: ingress
optional: true
limit: 1
logging:
interface: loki_push_api
optional: true
limit: 1
receive-ca-cert:
interface: certificate_transfer
optional: true
limit: 1
tracing:
interface: tracing
optional: true
limit: 1
# For ironic-novncproxy
traefik-route-internal:
interface: traefik_route
limit: 1
# For ironic-novncproxy
traefik-route-public:
interface: traefik_route
optional: true
limit: 1
provides:
ironic-api:
interface: baremetal
peers:
peers:
interface: ironic-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
- 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]