Skip to content

CRD Reference

All resources use the API group openvox.voxpupuli.org/v1alpha1.

Resource Hierarchy

graph TD
    Cfg["Config"]
    CA["CertificateAuthority"]
    SP["SigningPolicy"]
    NC["NodeClassifier"]
    RP["ReportProcessor"]
    Cert["Certificate"]
    Srv["Server"]
    Pool["Pool"]

    Cfg -->|authorityRef| CA
    Cfg -->|nodeClassifierRef| NC
    Cfg -->|configRef| RP
    CA -->|certificateAuthorityRef| SP
    CA -->|authorityRef| Cert
    Cert -->|certificateRef| Srv
    Cfg -->|configRef| Srv
    Srv -->|poolRefs| Pool

Each resource references its parent. The operator reconciles them in order: a Config references a CertificateAuthority via authorityRef and optionally a NodeClassifier via nodeClassifierRef, a CertificateAuthority must be Ready before a Certificate can be signed, and a Certificate must be Signed before a Server creates its Deployment. SigningPolicies and NodeClassifiers can be created at any time and take effect within ~60 seconds.

Resources

Kind Short Name Purpose
Config cfg Shared config (puppet.conf, auth.conf), PuppetDB connection
CertificateAuthority ca CA infrastructure: PVC, keys, 3 CA Secrets (cert, key, CRL)
SigningPolicy sp Declarative CSR signing policy for a CA
NodeClassifier nc External Node Classifier (ENC) endpoint
Certificate cert Lifecycle of a single certificate (request, sign)
Server - OpenVox Server Deployment (CA and/or server role)
Pool - Networking resource: Service for Servers that reference this Pool
ReportProcessor rp Webhook-based report forwarding endpoint

Shared Types

These types are reused across multiple CRDs.

ImageSpec

Field Type Default Description
repository string ghcr.io/slauger/openvox-server Container image repository
tag string latest Container image tag
pullPolicy string IfNotPresent Image pull policy
pullSecrets []LocalObjectReference - Image pull secrets

StorageSpec

Field Type Default Description
size string 1Gi Requested storage size
storageClass string - Storage class name (empty = default)

CodeSpec

Used by Config and Server to define the Puppet code source. Either claimName or image may be set, not both.

Field Type Default Description
claimName string - Name of an existing PVC containing Puppet code
image string - OCI image reference containing Puppet code (Kubernetes 1.35+, or 1.31+ with feature gate)
imagePullPolicy string IfNotPresent When to pull the code image
imagePullSecret string - Secret name for pulling from private registries