Goal
Prepare metadata-service to be distributed as a standalone RPM as part of an OpenCHAMI release.
Today, its Quadlet and RPM packaging are maintained centrally in the OpenCHAMI/release repository. Move ownership of the service-specific deployment artifacts into this repository while continuing to consume shared OpenCHAMI infrastructure from the release/common packages.
This work complements #25.
Scope
Current deployment requirements to preserve
The current release configuration includes the following metadata-service requirements:
- Container image:
ghcr.io/openchami/metadata-service
- Shared environment file:
/etc/openchami/configs/openchami.env
- TokenSmith bootstrap token exposed as
TOKENSMITH_BOOTSTRAP_TOKEN
- Token bootstrap through
/usr/sbin/tokensmith_bootstrap_token metadata-service
- SMD and TokenSmith service dependencies
metadata-service-data persistent volume mounted at /data
openchami-internal.network
/dev/net/tun and CAP_NET_ADMIN for WireGuard tunnel creation
--http-proxy=false
- Membership in
openchami.target
Use the current files in OpenCHAMI/release as migration inputs, not necessarily as the final design. Remove accidental duplication while porting them, such as repeated secret declarations.
Shared-package boundary
Do not duplicate shared deployment infrastructure in this repository. The RPM should declare or document dependencies on the package that owns shared artifacts such as:
openchami.target
openchami-internal.network
/etc/openchami/configs/openchami.env
- TokenSmith bootstrap tooling
- repository-wide certificate and bootstrap scripts
Acceptance criteria
RPM signing
Use OpenCHAMI/gpg-signing-manager as the source of truth for RPM signing. Do not create another signing implementation or use the stale duplicate signing actions under OpenCHAMI/github-actions.
Goal
Prepare metadata-service to be distributed as a standalone RPM as part of an OpenCHAMI release.
Today, its Quadlet and RPM packaging are maintained centrally in the
OpenCHAMI/releaserepository. Move ownership of the service-specific deployment artifacts into this repository while continuing to consume shared OpenCHAMI infrastructure from the release/common packages.This work complements #25.
Scope
metadata-service.containerQuadlet in this repository.metadata-data.volumeQuadlet, or document why it belongs in a shared package./etc/containers/systemd/.Current deployment requirements to preserve
The current release configuration includes the following metadata-service requirements:
ghcr.io/openchami/metadata-service/etc/openchami/configs/openchami.envTOKENSMITH_BOOTSTRAP_TOKEN/usr/sbin/tokensmith_bootstrap_token metadata-servicemetadata-service-datapersistent volume mounted at/dataopenchami-internal.network/dev/net/tunandCAP_NET_ADMINfor WireGuard tunnel creation--http-proxy=falseopenchami.targetUse the current files in
OpenCHAMI/releaseas migration inputs, not necessarily as the final design. Remove accidental duplication while porting them, such as repeated secret declarations.Shared-package boundary
Do not duplicate shared deployment infrastructure in this repository. The RPM should declare or document dependencies on the package that owns shared artifacts such as:
openchami.targetopenchami-internal.network/etc/openchami/configs/openchami.envAcceptance criteria
systemctl daemon-reloaddiscovers the generated metadata-service unit.RPM signing
Use
OpenCHAMI/gpg-signing-manageras the source of truth for RPM signing. Do not create another signing implementation or use the stale duplicate signing actions underOpenCHAMI/github-actions.OpenCHAMI/release.@main.rpm --checksigbefore publication.