feat(harbor): bump chart to 1.19.1 (Harbor 2.15.1)#2966
Conversation
Bump the vendored Harbor Helm chart from 1.18.2 to 1.19.1, which upgrades Harbor itself from appVersion 2.14.2 to 2.15.1. The bump adds PodDisruptionBudget templates for the core, exporter, jobservice, nginx, portal, registry and trivy components, improving availability during voluntary disruptions (node drains/upgrades). Signed-off-by: Алексей Артамонов <alexeyartamonov1987@gmail.com>
|
Note Gemini is unable to generate a summary for this pull request due to the file types involved not being currently supported. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
✅ Files skipped from review due to trivial changes (1)
📝 WalkthroughWalkthroughThe Harbor Helm chart is upgraded from v2.14.2/1.18.2 to v2.15.1/1.19.1. All component container images are updated to ChangesHarbor v2.15.1 upgrade
Sequence DiagramsequenceDiagram
participant Helm as Helm Upgrade
participant Chart as Chart.yaml
participant Values as values.yaml
participant Templates as Component Templates
participant Containers as Container Pods
Helm->>Chart: bump appVersion to 2.15.1
Helm->>Chart: bump version to 1.19.1
Helm->>Values: update all image tags to v2.15.1
Helm->>Values: add probe defaults per component
Helm->>Values: add podDisruptionBudget configs
Values->>Templates: provide probe parameters
Values->>Templates: provide PDB enabled flags
Values->>Templates: provide redis config
Templates->>Containers: render livenessProbe with values
Templates->>Containers: render readinessProbe with values
Templates->>Containers: render startupProbe (core only)
Templates->>Containers: render PodDisruptionBudget if enabled
Containers->>Containers: health checks follow tunable schedules
Containers->>Containers: disruptions respect minAvailable/maxUnavailable
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Suggested labels
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@packages/system/harbor/charts/harbor/templates/registry/registry-cm.yaml`:
- Around line 179-180: The Redis password is currently being rendered directly
into the ConfigMap (config.yml) at line 180, which exposes credentials to anyone
with ConfigMap read access, violating secret storage boundaries. Remove the
password line from the registry-cm.yaml ConfigMap template entirely, then modify
the registry-dpl.yaml deployment template to inject the REGISTRY_REDIS_PASSWORD
as an environment variable using secretKeyRef for both the registry and
registryctl containers, ensuring the actual password value comes from a Secret
rather than being exposed in the ConfigMap.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: d019d960-8afc-44f9-93ca-35635be315d6
📒 Files selected for processing (24)
packages/system/harbor/charts/harbor/Chart.yamlpackages/system/harbor/charts/harbor/README.mdpackages/system/harbor/charts/harbor/templates/_helpers.tplpackages/system/harbor/charts/harbor/templates/core/core-dpl.yamlpackages/system/harbor/charts/harbor/templates/core/core-pdb.yamlpackages/system/harbor/charts/harbor/templates/database/database-ss.yamlpackages/system/harbor/charts/harbor/templates/exporter/exporter-dpl.yamlpackages/system/harbor/charts/harbor/templates/exporter/exporter-pdb.yamlpackages/system/harbor/charts/harbor/templates/gateway-apis/route.yamlpackages/system/harbor/charts/harbor/templates/jobservice/jobservice-cm-env.yamlpackages/system/harbor/charts/harbor/templates/jobservice/jobservice-dpl.yamlpackages/system/harbor/charts/harbor/templates/jobservice/jobservice-pdb.yamlpackages/system/harbor/charts/harbor/templates/nginx/deployment.yamlpackages/system/harbor/charts/harbor/templates/nginx/nginx-pdb.yamlpackages/system/harbor/charts/harbor/templates/nginx/service.yamlpackages/system/harbor/charts/harbor/templates/portal/deployment.yamlpackages/system/harbor/charts/harbor/templates/portal/portal-pdb.yamlpackages/system/harbor/charts/harbor/templates/redis/statefulset.yamlpackages/system/harbor/charts/harbor/templates/registry/registry-cm.yamlpackages/system/harbor/charts/harbor/templates/registry/registry-dpl.yamlpackages/system/harbor/charts/harbor/templates/registry/registry-pdb.yamlpackages/system/harbor/charts/harbor/templates/trivy/trivy-pdb.yamlpackages/system/harbor/charts/harbor/templates/trivy/trivy-sts.yamlpackages/system/harbor/charts/harbor/values.yaml
Aleksei Sviridkin (lexfrei)
left a comment
There was a problem hiding this comment.
NOT LGTM — the bump ships Harbor 2.15.1 but the user-facing app chart still declares appVersion: 2.14.2, so every Harbor instance will report the wrong version through the platform API.
Business context: raise the bundled Harbor registry from 2.14.2 to 2.15.1 by refreshing the vendored upstream Helm chart, picking up upstream's new per-component PodDisruptionBudgets and configurable probes.
The vendored chart refresh itself is clean: packages/system/harbor/charts/harbor/ is byte-for-byte identical to a fresh helm pull harbor/harbor --version 1.19.1 (62 files, matching checksums), the prior 1.18.2 tree was likewise identical to upstream so no downstream customizations were dropped, and the cozystack value contract (external CNPG database, external Redis via inline redis.external.password, S3 imageChartStorage, expose.type: clusterIP) renders cleanly with helm unittest passing 7/7.
Blockers
B1: apps/harbor still declares Harbor 2.14.2 while the chart now ships 2.15.1
File: packages/apps/harbor/Chart.yaml:7
Issue: the system chart is bumped to Harbor 2.15.1, but the user-facing app chart still has appVersion: "2.14.2".
Evidence: packages/apps/Makefile packages charts with helm package --version $(COZYSTACK_VERSION), which overrides only version and ships appVersion verbatim. The Application type exposes appVersion as a top-level served field, so kubectl get harbors and the dashboard report 2.14.2 for instances actually running 2.15.1. Every other managed app uses appVersion as the upstream software version (clickhouse 24.9.2, postgres 16.2).
Impact: the platform misreports the deployed Harbor version to operators — a wrong basis for CVE and upgrade decisions on a registry.
Fix: bump appVersion: "2.14.2" to "2.15.1" in packages/apps/harbor/Chart.yaml within this PR.
Non-blocking follow-ups
- harbor-helm 1.19.1 ships two upstream issues, both in vendored code and both off cozystack's default path — worth reporting upstream at goharbor/harbor-helm, not patching here:
- The new PodDisruptionBudget templates emit both
minAvailableandmaxUnavailablewhen a user enables a PDB and setsmaxUnavailable(the defaultminAvailable: 1is not cleared); the API server rejects that manifest. cozystack is unaffected — PDBs default toenabled: falseand components run a single replica, so no PDB renders. registry-cm.yamlresolves the external-Redis password via Helmlookupwhenredis.external.existingSecretis set, and theREGISTRY_REDIS_PASSWORDenv fallback was removed — so on a first GitOps render the password is empty, and when the lookup succeeds the secret is written into a ConfigMap. cozystack is unaffected — it supplies the password inline viaredis.external.password, neverexistingSecret.
- The new PodDisruptionBudget templates emit both
packages/system/harbor/Makefile'supdatetarget runshelm pullwith no--version, so re-running it fetches latest rather than reproducibly re-pulling 1.19.1. Pre-existing and consistent with the repo, but pinning would make future bumps deterministic.- Harbor runs a forward-only DB schema migration on first 2.15 startup; helm/Flux rollback won't downgrade the schema. Standard Harbor upgrade caveat, worth a line in the release notes.
The system chart was bumped to Harbor 2.15.1, but the user-facing app chart still declared appVersion 2.14.2. Since the Application type serves appVersion as a top-level field, the platform API and dashboard misreported the deployed Harbor version. Align appVersion with the shipped 2.15.1. Signed-off-by: Алексей Артамонов <alexeyartamonov1987@gmail.com>
Aleksei Sviridkin (lexfrei)
left a comment
There was a problem hiding this comment.
LGTM — the blocker is fixed (apps/harbor/Chart.yaml appVersion bumped to 2.15.1 in 11378a9b, instances will now report the correct version), and the rest of the bump remains a clean vendored refresh.
Re-verified on head 11378a9b:
packages/system/harbor/charts/harbor/is still byte-for-byte identical to a freshhelm pull harbor/harbor --version 1.19.1(62 files,diff -rqempty).apps/harbor/Chart.yamlappVersion: "2.15.1", matching what the system chart deploys.helm unittestpasses 7/7 andhelm templatewith the cozystack contract (external CNPG / RedisFailover / S3) renders cleanly (exit 0).
Non-blocking follow-ups from the prior review still stand (two upstream harbor-helm 1.19.1 issues off the cozystack default path — unconditional minAvailable+maxUnavailable in PDB templates and lookup-based external-Redis password in registry-cm.yaml; both worth reporting to goharbor/harbor-helm, neither blocks here).
Bump the vendored Harbor Helm chart from 1.18.2 to 1.19.1, which upgrades Harbor itself from appVersion 2.14.2 to 2.15.1.
The bump adds PodDisruptionBudget templates for the core, exporter, jobservice, nginx, portal, registry and trivy components, improving availability during voluntary disruptions (node drains/upgrades).
What this PR does
Screenshots
Release note
Summary by CodeRabbit
Release Notes
New Features
Improvements