⚠️ Release Candidate Warning: This is a release candidate intended for final validation before the stable v1.0.0 release. Breaking changes are not expected at this stage, but please test thoroughly before deploying to production.
Features and Improvements
- [keycloak] Allow custom Ingress hostname via values: Added an
ingress.hostfield to the cozy-keycloak chart values, allowing operators to override the defaultkeycloak.<root-host>Ingress hostname. The custom hostname is applied to both the Ingress resource and theKC_HOSTNAMEenvironment variable in the StatefulSet. When left empty, the original behavior is preserved (fully backward compatible) (@sircthulhu in #2101).
Fixes
-
[platform] Fix upgrade issues in migrations, etcd timeout, and migration script: Fixed multiple upgrade failures discovered during v0.41.1 → v1.0 upgrade testing. Migration 26 now uses the
cozystack.io/ui=truelabel (always present on v0.41.1) instead of the new label that depends on migration 22 having run, and adds robust Helm secret deletion with fallback and verification. Migrations 28 and 29 wrapgrepcalls to preventpipefailexits and fix the reconcile annotation to use RFC3339 format. Migration 27 now skips missing CRDs and adds a name-pattern fallback for Helm secret deletion. The etcd HelmRelease timeout is increased from 10m to 30m to accommodate TLS cert rotation hooks. Themigrate-to-version-1.0.shscript gains the missingbundle-disable,bundle-enable,expose-ingress, andexpose-servicesfield mappings (@kvaps in #2096). -
[platform] Fix orphaned -rd HelmReleases after application renames: After the
ferretdb→mongodb,mysql→mariadb, andvirtual-machine→vm-disk+vm-instancerenames, the system-level-rdHelmReleases incozy-system(ferretdb-rd,mysql-rd,virtual-machine-rd) were left orphaned, referencing ExternalArtifacts that no longer exist and causing persistent reconciliation failures. Migrations 28 and 29 are updated to remove these resources, and migration 33 is added as a safety net for clusters that already passed those migrations (@kvaps in #2102). -
[monitoring-agents] Fix FQDN resolution regression in tenant workload clusters: The fix introduced in #2075 used
_cluster.cluster-domainreferences invalues.yaml, but_clustervalues are not accessible from Helm subchart contexts — meaning fluent-bit received empty hostnames and failed to forward logs. This PR replaces the_clusterreferences with a newglobal.clusterDomainvariable (empty by default for management clusters, set to the cluster domain for tenant clusters), which is correctly shared with all subcharts (@kvaps in #2086). -
[dashboard] Fix legacy templating and cluster identifier in sidebar links: Standardized the cluster identifier used across dashboard menu links, administration links, and API request paths, resolving incorrect or broken link targets for the Backups and External IPs sidebar sections (@androndo in #2093).
-
[dashboard] Fix backupjobs creation form and sidebar backup category identifier: Fixed the backup job creation form configuration, adding the required Name, Namespace, Plan Name, Application, and Backup Class fields. Fixed the sidebar backup category identifier that was causing incorrect navigation (@androndo in #2103).
Documentation
-
[website] Add Helm chart development principles guide: Added a new developer guide section documenting Cozystack's four core Helm chart principles: easy upstream updates, local-first artifacts, local dev/test workflow, and no external dependencies (@kvaps in cozystack/website#418).
-
[website] Add network architecture overview: Added comprehensive network architecture documentation covering the multi-layered networking stack — MetalLB (L2/BGP), Cilium eBPF (kube-proxy replacement), Kube-OVN (centralized IPAM), and tenant isolation with identity-based eBPF policies — with Mermaid diagrams for all major traffic flows (@IvanHunters in cozystack/website#422).
-
[website] Update documentation to use jsonpatch for service exposure: Improved
kubectl patchcommands throughout installation and configuration guides to use JSON Patchaddoperations for extending arrays instead of replacing them wholesale, making the documented commands safer and more precise (@sircthulhu in cozystack/website#427). -
[website] Update certificates section in Platform Package documentation: Updated the certificate configuration documentation to reflect the new
solverandissuerNamefields introduced in v1.0.0-rc.1, replacing the legacyissuerTypereferences (@myasnikovdaniil in cozystack/website#429). -
[website] Add tenant Kubernetes cluster log querying guide: Added documentation for querying logs from tenant Kubernetes clusters in Grafana using VictoriaLogs labels (
tenant,kubernetes_namespace_name,kubernetes_pod_name), including themonitoringAgentsaddon prerequisite and step-by-step filtering examples (@IvanHunters in cozystack/website#430). -
[website] Replace non-idempotent commands with idempotent alternatives: Updated
helm installtohelm upgrade --install,kubectl create -ftokubectl apply -f, andkubectl create nsto the dry-run+apply pattern across all installation and deployment guides so commands can be safely re-run (@lexfrei in cozystack/website#431). -
[website] Fix broken documentation links with
.mdsuffix: Fixed incorrect internal links with.mdsuffix across virtualization guides for both v0 and v1 documentation, standardizing link text to "Developer Guide" (@cheese in cozystack/website#432).
Contributors
We'd like to thank all contributors who made this release possible:
New Contributors
We're excited to welcome our first-time contributors:
- @cheese - First contribution!
Full Changelog: v1.0.0-rc.1...v1.0.0-rc.2