Categories:
Harbor infrastructure specification
Purpose
Describe the Harbor registry infrastructure owned by infra/harbor, spanning
Proxmox setup, K3s host configuration, Flux-managed chart declarations, and
Harbor service Terraform. The tf_setup, ansible, cl, and tf packages
are implementation stages of this owner. This is a checked-in source
baseline, without an observation of live registry availability or deployment
success.
Baseline revision: 550d7e79b1f5fdbc2b6017b75178471d6914082f.
Observed: 2026-09-08. Sources: owner README,
BUILD, and the implementation links below.
Requirements
Requirement: Dedicated K3s registry host
Setup SHALL declare a Proxmox VM in the src_infra_harbor pool with two
cores, 4096 MiB memory, and 20 GiB boot, 20 GiB K3s data, and 40 GiB K3s
storage disks. Ansible SHALL apply the shared host and K3s roles with K3s
secrets encryption enabled. Its firewall variables SHALL scope API port
6443 access to the declared Flux host address.
Sources: VM definition, deployment playbook, K3s configuration, and host variables.
Scenario: Inspect management API access
- WHEN the Harbor host configuration is evaluated
- THEN the API-port firewall entry identifies the Flux source address
- AND the K3s configuration enables secrets encryption and disables bundled Traefik
Requirement: Remote Flux chart reconciliation
The Harbor Flux manifests SHALL declare a remote-cluster Kustomization and
HelmRelease using src-infra-harbor-cl-kubeconfig. The HelmRelease SHALL
pin its chart version, enable Helm tests and drift detection, set
https://harbor.alwaldend.com as the external URL, and use the local-path
storage class for its declared persistent components.
Source: Harbor Flux manifests.
Scenario: Inspect the Harbor release declaration
- WHEN a maintainer evaluates the Harbor HelmRelease
- THEN the source selects a specific chart version and the remote Harbor cluster configuration
- AND tests, drift detection, external URL, and persistent storage choices are explicit
Requirement: Vault-backed registry identity configuration
Harbor service Terraform SHALL configure Vault OIDC authentication using
client credentials from the Vault provider, the groups claim, and the
src_infra_harbor_admins administrator group. It SHALL enable automatic
onboarding and use the username claim for users.
Source: authentication configuration.
The baseline sets oidc_verify_cert = false with a CA-issues comment; this
specification does not claim that OIDC server certificate verification is
enabled.
Scenario: Resolve OIDC identity settings
- WHEN the service Terraform authentication resource is inspected
- THEN it references Vault-provided client credentials and the configured user and group claims
- AND its certificate-verification setting remains visible as a baseline limitation
Requirement: Registry projects and guest access
Service Terraform SHALL declare an alwaldend project with vulnerability
scanning and automatic SBOM generation, plus a dockerhub proxy-cache
project linked to the Docker Hub registry. Both projects SHALL grant the
configured src_infra_harbor_users OIDC group the guest role.
Sources: first-party project and Docker Hub proxy.
Scenario: Inspect registry consumer permissions
- WHEN the managed registry projects are evaluated
- THEN
alwaldendenables scanning and SBOM generation, whiledockerhubreferences the Docker Hub proxy registry - AND both group membership resources specify guest access