✨ New Features and Enhancements
Progressive Rollouts with Cluster Promotion
A new Custom Resource Definition (ClusterPromotion) is introduced to enable declarative, multi-stage, progressive rollout of a single configuration (profileSpec) across multiple sets of clusters. This is ideal for promoting configurations from environments like staging to production in a controlled, sequential manner.
It manages an ordered series of stages, each with its own cluster selector.
It supports automated promotion to the next stage after the previous stage's configuration is successfully deployed (e.g., waiting for a defined delay).
See PR #1437
Enhanced Conflict Resolution and Metadata Handling
Policy Tier for Conflict Resolution
The new Tier field has been added to PolicyRef and KustomizationRef objects. This introduces a secondary, intra-profile priority system designed to resolve resource conflicts.
When multiple ClusterProfile or Profile objects targeting the same cluster attempt to deploy the identical Kubernetes resource, the ClusterProfile with the lowest numerical Tier value wins (lower number indicates higher priority).
See PR #1439
🐛 Bug Fixes and Enhancements
- Optimized Reconciliation Logic PR 1398:
Resolved an issue that caused unnecessary reconciliation loops for add-on profiles, leading to excessive resource consumption and potential rate-limiting. The controller now only reconciles when actual changes occur.
- Prevented Controller Crash PR 1407:
Fixed a critical bug that caused the controller to crash when attempting to process a ConfigurationGroup resource whose status field was empty. This improves the overall robustness and uptime of the controller.
- Improved Template Instantiation Error Reporting PR 1419:
When the templating process for add-ons fails (e.g., missing values), the controller now accurately reports the specific error in the ClusterSummary Status. This significantly streamlines troubleshooting for failed deployments.
- Corrected Drift Detection with Kustomize PR 1420:
Fixed an issue where the ContinuousWithDriftDetection synchronization mode did not work correctly when used with KustomizationRefresources.
- Enhanced Status Reporting for Paused Resources PR 1423:
The ClusterSummary status now explicitly reports when a deployment is halted because either the target Cluster or the associated Profile/ClusterProfile is paused. This provides clearer feedback on the current operational state.
- ValuesFrom Instantiation PR 1428:
Refined the ValuesFrom feature to ensure that template instantiation is only attempted for ConfigMap or Secret data that includes the explicit projectsveltos.io/template annotation. This prevents unintended template parsing and potential errors.
- Richer Error Details in ClusterSummary PR 1433:
General improvements to error reporting within the ClusterSummary resource, providing more detailed and actionable information about deployment failures. This enhancement makes it easier to diagnose and resolve add-on deployment issues across your fleet.
- Move Referenced Resource Data to Annotations PR 1439:
To remove the previous limit of 63 characters on resource names, Sveltos now stores referenced resource metadata as annotations instead of labels. This resolves limitations related to label value length.
- Improved ClusterAPI Readiness Detection PR 564:
Added a check to the Cluster Predicate to detect the ClusterAPI Cluster's ControlPlaneInitialized condition is set to True. This prevents unnecessary delays deploying add-ons.
10 . Reduced Redundant EventReport Updates: PR 570
The system now sorts and maintains matching resources within the EventReport to prevent redundant updates. Previously, an EventSource watcher on a resource could trigger reprocessing and an EventReport update even if the list of matching resources hadn't actually changed (especially when collectResources was false), leading to unnecessary work on the control cluster. Skipping the update when the sorted list is identical prevents this issue.