4 KiB
Fixes
-
[system] Fix Keycloak probe crashloop with management port health endpoints: Fixed a crashloop where Keycloak 26.x was endlessly restarting because liveness and readiness probes were sending HTTP requests to port 8080. Keycloak 26.x redirects all requests on port 8080 to
KC_HOSTNAME(HTTPS), and since kubelet does not follow redirects, probes failed, eventually triggering container restarts. The fix switches probes to the dedicated management port 9000 (/health/live,/health/ready) enabled viaKC_HEALTH_ENABLED=true, exposes management port 9000, and adds astartupProbewith appropriate failure thresholds for better startup tolerance (@mattia-eleuteri in #2162, #2178). -
[system] Fix etcd-operator deprecated kube-rbac-proxy image: Replaced the deprecated
gcr.io/kubebuilder/kube-rbac-proxy:v0.16.0image withquay.io/brancz/kube-rbac-proxy:v0.18.1in the vendored etcd-operator chart. The GCR-hosted image became unavailable after March 18, 2025, causing etcd-operator pods to fail on image pull (@kvaps in #2181, #2183). -
[platform] Fix VM MAC address not preserved during virtual-machine to vm-instance migration: During the
virtual-machine→vm-instancemigration (script 29), VM MAC addresses were not preserved. Kube-OVN reads MAC addresses exclusively from the pod annotationovn.kubernetes.io/mac_address, not fromspec.macAddressof the IP resource. Without this annotation, migrated VMs received a new random MAC address, breaking OS-level network configuration that matches by MAC (e.g., netplan). The fix adds a Helmlookupin the vm-instance chart template to read the Kube-OVN IP resource and automatically inject the MAC and IP addresses as pod annotations (@sircthulhu in #2169, #2191). -
[dashboard] Fix External IPs page showing empty rows: Fixed the External IPs administration page displaying empty rows instead of service data. The
EnrichedTableconfiguration in theexternal-ipsfactory was using incorrect property names — replacedclusterNamePartOfUrlwithclusterand changedpathToItemsfrom array format to dot-path string format, matching the convention used by all otherEnrichedTableinstances (@IvanHunters in #2175, #2192). -
[dashboard] Fix disabled/hidden state reset on MarketplacePanel reconciliation: Fixed a bug where the dashboard controller was hardcoding
disabled=falseandhidden=falseon every reconcile loop, overwriting changes made through the dashboard UI. Services disabled or hidden via the marketplace panel now correctly retain their state after controller reconciliation (@IvanHunters in #2176, #2202). -
[dashboard] Fix hidden MarketplacePanel resources appearing in sidebar menu: Fixed the sidebar navigation showing all resources regardless of their MarketplacePanel
hiddenstate. The controller now fetches MarketplacePanels during sidebar reconciliation and filters out resources wherehidden=true, ensuring that hiding a resource from the marketplace also removes it from the sidebar navigation. Listing failures are non-fatal — if the configuration fetch fails, no hiding is applied and the dashboard remains functional (@IvanHunters in #2177, #2204).
Documentation
- [website] Add OIDC self-signed certificates configuration guide: Added a comprehensive guide for configuring OIDC authentication with Keycloak when using self-signed certificates (the default in Cozystack). Covers Talos machine configuration with certificate mounting and host entries, kubelogin setup instructions, and a troubleshooting section. The guide is available for both v0 and v1 versioned documentation paths (@IvanHunters in cozystack/website#443).
Full Changelog: https://github.com/cozystack/cozystack/compare/v1.0.3...v1.0.4