Skip to content

docs(release): add changelog for v1.6.0 - #3429

Merged
myasnikovdaniil merged 1 commit into
mainfrom
changelog-v1.6.0
Jul 22, 2026
Merged

myasnikovdaniil merged 1 commit into
mainfrom
changelog-v1.6.0

Conversation

@myasnikovdaniil

@myasnikovdaniil myasnikovdaniil commented Jul 22, 2026 •

Copy link
Copy Markdown
Contributor

What this PR does

Adds docs/changelogs/v1.6.0.md (667 lines), generated locally with the process in docs/agents/changelog.md. Normally tags.yaml's generate-changelog job produces this on the stable tag push, but that job never ran for v1.6.0 — see the note below.

Coverage boundary. The changelog runs through #3386, i.e. the release period ending at the v1.6.0-rc.4 cut. Roughly eight PRs merged to main after that cut are deliberately absent, because v1.6.0 is a promotion rather than a rebuild: every shipped artifact is pinned to an rc.4 digest (cozystack-packages@sha256:bf682087…, cozystack-operator@sha256:93b305f7…), so that later code is in the tagged tree but not in anything users install. The changelog describes what shipped.

Why this is a manual PR. generate-changelog and update-website-docs are jobs in tags.yaml, triggered by push: tags. The v1.6.0 tag was pushed by pull-requests-release.yaml's finalize job using the cozystack-ci app token, and no workflow run was created for that ref — every rc tag, pushed by cut-prerelease.yaml with the same app, did trigger it. v1.6.0 is the first stable tag created through the promote flow, so this path had never run before. The cause is not yet established and needs a repro rather than a guess; the website docs versioning is still outstanding for the same reason.

Screenshots

N/A — documentation only.

Downstream repositories

Walked the trigger map in docs/agents/contributing.md against the diff, which is a single new file under docs/changelogs/. No trigger matches: the map covers package layout, release assets, CRDs, workflow behaviour and naming contracts, none of which a changelog file touches. The separate repository list in docs/agents/changelog.md was already consumed while generating this file — it feeds the notes, it is not a code coupling.

Release note

NONE

Summary by CodeRabbit

  • Documentation
    • Added comprehensive release notes for version 1.6.0.
    • Documented breaking changes, upgrade prerequisites, manual upgrade steps, and post-upgrade expectations.
    • Highlighted major features, deprecations, security updates, bug fixes, operational notes, and component version updates.
    • Included configuration, CI, development, and related-project changelog updates.
    • Added contributor acknowledgements and a link to the full changelog.

Signed-off-by: Myasnikov Daniil <[email protected]>
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Caution

The consumer version of Gemini Code Assist on GitHub has been sunset. All code review activity has officially ceased.

@coderabbitai

coderabbitai Bot commented Jul 22, 2026 •

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

Changes

Release documentation

Layer / File(s) Summary
Upgrade guidance and feature highlights
docs/changelogs/v1.6.0.md
Adds v1.6.0 release metadata, upgrade requirements, deprecations, and major platform features.
Platform updates and quality changes
docs/changelogs/v1.6.0.md
Documents component version updates, improvements, bug fixes, security changes, dependencies, and resource configuration.
Development and release metadata
docs/changelogs/v1.6.0.md
Records CI, testing, documentation, related repository changes, contributors, and the full changelog link.

Estimated code review effort: 2 (Simple) | ~10 minutes

Suggested labels: kind/documentation, size/L, area/release

Suggested reviewers: lllamnyp

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly matches the main change: adding the v1.6.0 changelog documentation.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch changelog-v1.6.0

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🤖 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 `@docs/changelogs/v1.6.0.md`:
- Line 312: Update the NATS changelog entry’s source link to use the HTTPS
scheme while preserving the existing repository URL and surrounding attribution.
- Line 7: Correct the “ten-PR sweep” wording in the v1.6.0 changelog to match
the 12 distinct cleanup PRs referenced in the cleanup list, or use “ten-package
sweep” if that is the intended scope. Keep the surrounding application-storage
cleanup description unchanged.
- Around line 223-225: Clarify the release-integrity wording in the changelog
paragraph around “renamed release candidate” and “restamps the version-stamped
assets” by distinguishing immutable container images and tested build artifacts
from promotion-generated version-stamped assets. State that images remain
byte-identical and are retagged by digest, while only the explicitly regenerated
assets change during promotion.
- Around line 255-259: Update the release links in the Velero, Keycloak, and
csi-driver-nfs changelog entries to point to their exact patch tags—1.18.1,
26.6.3, and 4.13.3—or explicitly state that the existing links cover the full
patch series.
🪄 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: bcdfbaaf-2c25-45d9-98eb-9fdb824852a1

📥 Commits

Reviewing files that changed from the base of the PR and between 764e304 and 676c8b8.

📒 Files selected for processing (1)
  • docs/changelogs/v1.6.0.md

Comment thread docs/changelogs/v1.6.0.md

# Cozystack v1.6.0

Cozystack v1.6.0 replaces the Ubuntu + kubeadm bootstrap of **tenant Kubernetes workers with Talos Linux** driven by Cluster API, completes the **etcd-operator `v1alpha2` migration** with in-place adoption of live clusters, adds **OIDC single sign-on for tenant kube-apiservers and per-instance Grafana**, introduces the tenant-facing **`SecurityGroup` firewall API**, makes **tenant resource quotas hierarchical** so a sub-tenant can no longer escalate past its parent's budget, gives Keycloak an optional **KMS-encrypting database proxy**, a separate admin hostname and S3 backups, propagates **operator-provided wildcard certificates** down to every tenant termination point, and reworks the release pipeline around **immutable tags and rc→stable promotion** so a stable release is the byte-identical promotion of the release candidate that was tested. A ten-PR sweep also makes **application deletion actually reclaim its storage** instead of leaking PVCs. The release rolls up every fix from v1.5.1, v1.5.2 and v1.5.3.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Correct the “ten-PR sweep” count.

The changelog calls this a ten-PR sweep, but the referenced cleanup work lists 12 distinct PRs in Lines 233. Either change the wording to “ten-package sweep” or update the count.

Also applies to: 227-233

🤖 Prompt for 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.

In `@docs/changelogs/v1.6.0.md` at line 7, Correct the “ten-PR sweep” wording in
the v1.6.0 changelog to match the 12 distinct cleanup PRs referenced in the
cleanup list, or use “ten-package sweep” if that is the intended scope. Keep the
surrounding application-storage cleanup description unchanged.

Comment thread docs/changelogs/v1.6.0.md
Comment on lines +223 to +225
A stable release is now a **renamed release candidate**: the bytes shipped as `vX.Y.Z` are bit-for-bit the bytes built and end-to-end tested as `vX.Y.Z-rc.N`. No tag is ever force-moved and stable is never rebuilt — it is promoted by retagging the rc's existing images by digest.

The enabler was decoupling the operator's self-reported version from its image: it now reads `COZYSTACK_VERSION` from the environment (threaded through `cozystackOperator.platformVersion`), falling back to the build-time value, so the same bits can report any release name. All five force-retag sites in the release workflows are removed and replaced with write-once or fast-forward-only semantics, and the cron-driven `auto-release.yaml` patch-tag workflow is deleted outright — stable tags now exist only through explicit promotion. A `promote-rc.yaml` workflow validates the rc, `skopeo copy`s every digest-pinned image reference to the stable tag, restamps the version-stamped assets, and opens a `release-X.Y.Z` PR whose merge cuts the write-once stable tag ([**@myasnikovdaniil**](https://github.com/myasnikovdaniil) in #3017). A companion **Cut Pre-release Tag** workflow covers the rc side of the same flow (#3253).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔒 Security & Privacy | 🟠 Major | ⚡ Quick win

Resolve the byte-identical versus restamped-assets contradiction.

Line 223 promises that stable is a byte-identical promotion of the tested release candidate, while Line 225 says promotion “restamps the version-stamped assets.” Clarify which artifacts change during promotion; otherwise the release-integrity guarantee is misleading.

🤖 Prompt for 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.

In `@docs/changelogs/v1.6.0.md` around lines 223 - 225, Clarify the
release-integrity wording in the changelog paragraph around “renamed release
candidate” and “restamps the version-stamped assets” by distinguishing immutable
container images and tested build artifacts from promotion-generated
version-stamped assets. State that images remain byte-identical and are retagged
by digest, while only the explicitly regenerated assets change during promotion.

Comment thread docs/changelogs/v1.6.0.md
Comment on lines +255 to +259
* **Velero**: 1.17.0 → 1.18.1 (chart 11.0.0 → 12.0.3), with velero plugins moved to velero-1.18-compatible releases and `kubevirt-velero-plugin` v0.8.0 → v0.9.0. ([release notes](https://github.com/vmware-tanzu/velero/releases/tag/v1.18.0)) ([**@lexfrei**](https://github.com/lexfrei) in #2974)
- **Concurrent backup processing** — multiple backups now run simultaneously without interfering, a direct win on multi-tenant clusters.
- **Cache volumes for data movers** on restore (CSI snapshot data movement and fs-backup), so data-mover pods no longer fail on limited node ephemeral disk, and restore throughput improves.
- Incremental backup size is now observable for data-mover backups.
- v1.18.1 fixes list-scoping bugs that made restores, PodVolumeRestores and CSI PVC backups list across all namespaces instead of the install namespace, and migrates `VolumeGroupSnapshot` to `v1beta2` for Kubernetes 1.34+.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Link the patch-specific release pages. The Velero, Keycloak, and csi-driver-nfs entries describe 1.18.1, 26.6.3, and 4.13.3, but the links point to the 1.18.0, 26.6.0, and 4.13.0 release pages. Use the exact patch tags or say the linked pages cover the whole patch series.

🤖 Prompt for 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.

In `@docs/changelogs/v1.6.0.md` around lines 255 - 259, Update the release links
in the Velero, Keycloak, and csi-driver-nfs changelog entries to point to their
exact patch tags—1.18.1, 26.6.3, and 4.13.3—or explicitly state that the
existing links cover the full patch series.

Comment thread docs/changelogs/v1.6.0.md

* **OpenCost**: 1.111.0 → 1.120.3 (chart 1.41.0 → 2.5.23). ([sources](https://github.com/opencost/opencost-helm-chart)) ([**@lexfrei**](https://github.com/lexfrei) in #3000)

* **NATS**: 2.11.8 → 2.11.10 (chart 1.3.13 → 1.3.16). ([sources](http://github.com/nats-io/k8s)) ([**@lexfrei**](https://github.com/lexfrei) in #2976)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔒 Security & Privacy | 🟡 Minor | ⚡ Quick win

Use HTTPS for the NATS source link.

Replace the http://github.com/nats-io/k8s URL with HTTPS to avoid relying on an insecure redirect.

🤖 Prompt for 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.

In `@docs/changelogs/v1.6.0.md` at line 312, Update the NATS changelog entry’s
source link to use the HTTPS scheme while preserving the existing repository URL
and surrounding attribution.

@dosubot dosubot Bot added area/release Issues or PRs related to release tooling (changelog, backport, release pipeline) kind/documentation Categorizes issue or PR as related to documentation labels Jul 22, 2026
@myasnikovdaniil
myasnikovdaniil merged commit a2acfcd into main Jul 22, 2026
15 checks passed
@myasnikovdaniil
myasnikovdaniil deleted the changelog-v1.6.0 branch July 22, 2026 16:12
@github-actions github-actions Bot added the size/XL This PR changes 500-999 lines, ignoring generated files label Jul 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/release Issues or PRs related to release tooling (changelog, backport, release pipeline) kind/documentation Categorizes issue or PR as related to documentation size/XL This PR changes 500-999 lines, ignoring generated files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants