cozystack/packages/apps
Andrei Kvapil 7ff5b2ba23
[harbor] Add managed Harbor container registry (#2058)
## What this PR does

Adds Harbor v2.14.2 as a managed tenant-level container registry service
in the PaaS bundle.

**Architecture:**

- Wrapper chart (`apps/harbor`) — HelmRelease, Ingress,
WorkloadMonitors, BucketClaim, dashboard RBAC
- Vendored upstream chart (`system/harbor`) from helm.goharbor.io
v1.18.2
- System chart (`system/harbor`) provisions PostgreSQL via CloudNativePG
and Redis via redis-operator
- ApplicationDefinition (`system/harbor-rd`) for dynamic `Harbor` CRD
registration
- PackageSource and paas.yaml bundle entry for platform integration

**Key design decisions:**

- Database and Redis provisioned via CPNG and redis-operator (not
internal Helm-based instances) for reliable day-2 operations
- Registry image storage uses S3 via COSI BucketClaim/BucketAccess from
namespace SeaweedFS
- Trivy vulnerability scanner cache uses PVC (S3 not supported by
vendored chart)
- Token CA key/cert persisted across upgrades via Secret lookup
- Per-component resource configuration (core, registry, jobservice,
trivy)
- Ingress with TLS via cert-manager, cloudflare issuer type handling,
proxy timeouts for large image pushes
- Auto-generated admin credentials persisted across upgrades

**E2E test:** Creates Harbor instance, verifies HelmRelease readiness,
deployment availability, credentials secret, service port, then cleans
up.

### Release note

```release-note
[harbor] Add managed Harbor container registry as a tenant-level service
```

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **New Features**
* Added Harbor container registry deployment with integrated Kubernetes
support, including database and cache layers.
  * Enabled metrics monitoring via Prometheus integration.
  * Configured dashboard management interface for Harbor administration.

* **Tests**
  * Added end-to-end testing for Harbor deployment and verification.

* **Chores**
  * Integrated Harbor into the platform's application package bundle.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-02-18 13:54:26 +01:00
..
bucket refactor: move scripts to hack directory 2026-01-15 16:06:56 +01:00
clickhouse refactor: move scripts to hack directory 2026-01-15 16:06:56 +01:00
foundationdb refactor: move scripts to hack directory 2026-01-15 16:06:56 +01:00
harbor fix(harbor): use standard hostname pattern without double prefix 2026-02-18 02:17:59 +03:00
http-cache Prepare release v1.0.0-beta.6 2026-02-17 22:36:40 +00:00
kafka refactor: move scripts to hack directory 2026-01-15 16:06:56 +01:00
kubernetes Prepare release v1.0.0-beta.6 2026-02-17 22:36:40 +00:00
mariadb feat(platform): add migration 27 to rename mysql resources to mariadb 2026-02-12 15:16:29 +01:00
mongodb fix(mongodb): update MongoDB logo 2026-02-10 21:17:50 +01:00
nats Add monitoring for NATs 2026-02-17 22:54:12 +01:00
postgres refactor: move scripts to hack directory 2026-01-15 16:06:56 +01:00
qdrant [qdrant] Add Qdrant vector database application 2026-02-06 13:30:58 +03:00
rabbitmq refactor: move scripts to hack directory 2026-01-15 16:06:56 +01:00
redis refactor: move scripts to hack directory 2026-01-15 16:06:56 +01:00
tcp-balancer refactor: move scripts to hack directory 2026-01-15 16:06:56 +01:00
tenant [platform] Add DNS-1035 validation for Application names (#1771) 2026-02-17 14:33:02 +03:00
vm-disk refactor: move scripts to hack directory 2026-01-15 16:06:56 +01:00
vm-instance feat(vm-instance): port cpuModel, instancetype switching, and runStrategy changes 2026-02-14 03:02:41 +01:00
vpc feat(vpc): migrate subnets definition from map to array format 2026-02-15 21:34:19 +01:00
vpn refactor: move scripts to hack directory 2026-01-15 16:06:56 +01:00
Makefile refactor: move scripts to hack directory 2026-01-15 16:06:56 +01:00
README.md [clickhouse] add clickhouse keeper 2025-08-07 14:07:05 +03:00

How to test packages local

cd packages/core/installer
make image-cozystack REGISTRY=YOUR_CUSTOM_REGISTRY
make apply
kubectl delete po -l app=source-controller -n cozy-fluxcd