Skip to content

Releases: projectsveltos/ui-backend

v1.2.0

18 Oct 13:48
f688abe

Choose a tag to compare

✨ 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

  1. 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.

  1. 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.

  1. 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.

  1. Corrected Drift Detection with Kustomize PR 1420:

Fixed an issue where the ContinuousWithDriftDetection synchronization mode did not work correctly when used with KustomizationRefresources.

  1. 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.

  1. 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.

  1. 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.

  1. 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.

  1. 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.

v1.1.1

17 Sep 19:32
6430a11

Choose a tag to compare

🐛 Bug Fixes

We fixed a bug on the MCP Server and improved our dashboard's debug reporting.

v1.1.0

14 Sep 12:32
827e7cb

Choose a tag to compare

🚀 Features

  • Sveltos MCP Server: This release introduces the new Sveltos MCP Server, which provides the ability to trigger debug sessions. This new component enhances the management capabilities of the Sveltos platform by providing a powerful way to interact with and diagnose cluster issues, particularly when used in conjunction with AI-based SRE tools.

  • Sveltos Profile Management: You can now pause and unpause a Sveltos profile instance. When a profile is paused, Sveltos will stop reconciling it, meaning any changes to the profile or its matching clusters will not be propagated. This is useful for preventing unwanted changes during maintenance or troubleshooting. PR

  • Predictable ClusterProfile Names: Event-driven ClusterProfile instances no longer have random names. A new, optional field, InstantiatedProfileNameFormat, has been added to the EventTrigger spec. This allows you to define a naming template for generated profiles, making it easy to predict their names and set up dependencies for other profiles. PR

  • CEL-based Health Checks: You can now use Common Expression Language (CEL) to define ValidateHealths for resources. This provides more flexibility and power for creating custom health validation rules. PR

  • Kustomize Components Support: ClusterProfile's KustomizationRef section now includes a components field. This lets you include reusable Kustomize components in your deployments by specifying relative paths to component directories. Sveltos will automatically integrate these components into the kustomization.yaml file before building and applying the final manifest. PR

  • Enhanced Addon Reporting: The Show addons command now also reports on resources deployed directly in the management cluster, providing a more complete overview of your deployed components.

🐛 Bug Fixes

  • Fixed an issue where the Helm chart was not correctly upgrading Sveltos Custom Resource Definitions (CRDs).

  • Improved error messages for resource deployment failures. The messages now specify the exact resource that failed to deploy, instead of providing a general error message.

  • Conflict messages have been improved to provide clearer information during reconciliation.

v1.0.1

16 Aug 07:00
7633218

Choose a tag to compare

🐛 Bug Fixes

  • Helm Chart Templating: Previously, two paths in the addon controller failed to instantiate Helm charts correctly, causing them to be deployed and immediately undeployed. This occurred when the release namespace was defined as a template. The fix ensures that Helm charts are now properly templated and instantiated at runtime, resolving the deployment issue. PR

  • Stale HealthCheck Reports: The system no longer leaves behind stale HealthCheckReport objects after their corresponding HealthCheck is deleted. The fix now correctly identifies and cleans up these reports by using the ctrl.Request Name to ensure reconciliation occurs even after the HealthCheck object is gone. PR

  • SveltosCluster Kubeconfig Update: When a cluster is re-registered with Sveltos, the SveltosCluster.Spec.KubeconfigKeyName is now correctly updated to match the key in the Secret holding the cluster's kubeconfig. This prevents components from failing to locate the kubeconfig when the key changes (e.g., from re-kubeconfig back to kubeconfig), ensuring continuous operation. PR

  • EventReport Resource Parsing: The system now correctly reads resources from EventReports, even when they contain the --- separator within the resource data itself (e.g., certificates in a ConfigMap). The strings.Split function has been replaced with a custom function, deployer.CustomSplit, which accurately parses YAML and avoids misinterpreting internal content as resource delimiters. PR

  • Optimized Resource Instantiation: When instantiating referenced resources from ConfigMaps or Secrets, Sveltos now directly processes the string content instead of first marshaling it to JSON. This simplifies the templating process, as only the value (not the key) needs to be treated as a template. PR

v1.0.0

05 Aug 20:49
730b63f

Choose a tag to compare

🚀 Features

  • Introducing pull mode: An agent gets deployed in the managed cluster and this agent fetches configuration from the control cluster. This eliminates the need for your managed clusters to be accessible from the management cluster, enhancing security and flexibility.

🐛 Bug Fixes

  • Optimized ClusterHealthCheck & EventTrigger Reconciliation: We've fine-tuned how ClusterHealthCheck and EventTrigger behave. Now, these controllers will only reconcile on specification changes, not on status updates. This is a big win for efficiency! It prevents the controller from triggering new reconciliations due to its own status reports, significantly reducing API server load and ensuring smoother operations.
  • Enhanced Reporting for Missing Resources: You'll now get clearer feedback if a required resource listed in TemplateResourceRefs is missing. ClusterSummary will actively report these issues, moving beyond just logging them. This makes it much easier to identify and resolve configuration problems quickly.
  • Simplified Private Registry Integration: We've added support for private registries that don't require authentication, streamlining your deployment workflows in certain environments.
  • Flux Source Support for EventTrigger
  • NATS.io JetStream Integration Fix: We've fixed the integration with NATS.io JetStream, ensuring reliable eventing and communication within your Sveltos deployments.

v1.0.0-beta.0

31 Jul 15:20
57dc5dd

Choose a tag to compare

v1.0.0-beta.0 Pre-release
Pre-release

🚨 This is a BETA RELEASE. Use it only for testing purposes. If you find any bugs, file an issue.

🚀 Features

  • Introducing pull mode: An agent gets deployed in the managed cluster and this agent fetches configuration from the control cluster. This eliminates the need for your managed clusters to be accessible from the management cluster, enhancing security and flexibility.

🐛 Bug Fixes

  • Optimized ClusterHealthCheck & EventTrigger Reconciliation: We've fine-tuned how ClusterHealthCheck and EventTrigger behave. Now, these controllers will only reconcile on specification changes, not on status updates. This is a big win for efficiency! It prevents the controller from triggering new reconciliations due to its own status reports, significantly reducing API server load and ensuring smoother operations.
  • Enhanced Reporting for Missing Resources: You'll now get clearer feedback if a required resource listed in TemplateResourceRefs is missing. ClusterSummary will actively report these issues, moving beyond just logging them. This makes it much easier to identify and resolve configuration problems quickly.
  • Simplified Private Registry Integration: We've added support for private registries that don't require authentication, streamlining your deployment workflows in certain environments.
  • Flux Source Support for EventTrigger
  • NATS.io JetStream Integration Fix: We've fixed the integration with NATS.io JetStream, ensuring reliable eventing and communication within your Sveltos deployments.

v0.57.2

10 Jun 11:14
a3240c4

Choose a tag to compare

Updating tag

v0.57.1

08 Jun 13:22
3c92ba1

Choose a tag to compare

🚀 Features

1. Support for CEL Rules

Introduced CEL (Common Expression Language) rule support across multiple resource types. These rules enhance dynamic evaluation and validation capabilities, and can now be defined for the following instances:

  • Classifier
  • EventSource
  • HealthCheck
  • SveltosCluster liveness and readiness checks
  • Techsupport

2. Configurable Token Duration for Token Renewal

Added an optional tokenDuration field to the TokenRequestRenewalOption struct, allowing fine-grained control over token validity:

If tokenDuration is set, it defines how long the token remains valid.
If not set, the system falls back to renewTokenRequestInterval.
This ensures tokens can be renewed proactively, reducing risk during brief network outages.

3. Event Generation on Feature Deployment

The system now emits events when features are successfully deployed to a cluster via ClusterSummary. These events provide visibility into the deployment process and include details about the feature and target cluster.

4. EventTrigger destinationCluster Field

Introduced a new field, destinationCluster, in the EventTrigger resource. This field, a corev1.ObjectReference, can be expressed as a template. It addresses scenarios where an event in one cluster (e.g., a management cluster) necessitates deploying resources to a different, specific cluster.

If defined, Sveltos will first instantiate destinationCluster (using both Resource and source cluster data), then set the ClusterProfile.Spec.ClusterRefs.

v0.56.0

01 Jun 12:45
13220ee

Choose a tag to compare

🐛 Bug Fixes

  • Helm Chart Upgrade/Downgrade Errors Not Reported
    Fixed an issue where errors during Helm chart upgrades or downgrades were being ignored. Sveltos would incorrectly mark these operations as successful even when failures occurred.
    PR #1224

  • Incorrect Cleanup of Stale Resources on Deployment Failure
    Addressed a bug where Sveltos would incorrectly delete existing Kubernetes resources when deploying an update using PolicyRefs or KustomizationRefs. If a deployment failed partway (e.g., due to invalid data), previously deployed resources not explicitly redeployed in the failed attempt were being treated as stale and removed.
    PR #1220

  • Deployment Failure with Long Cluster/Profile Names
    Resolved an issue in continuousWithDriftDetectionMode where deployments would fail if the combination of cluster name and profile name exceeded 63 characters.
    PR #1230

  • Dashboard Crash Due to File Descriptor Limit
    Fixed a bug in the dashboard that caused it to crash with a "too many open files" error.

v0.55.0

25 May 16:54
53cbcf8

Choose a tag to compare

🚀 Features

  • Values Merge Support: Helm chart values specified via Values and ValuesFrom are now properly merged, following the defined order (first all Values, then ValuesFrom). This is powered by mergo. mergo is used for this goal
    👉 PR

🐛 Bug Fixes

  • Drift Detection Optimization (Agentless Mode):
    1. Improved performance by limiting the cache to only load ResourceSummary instances for the relevant cluster.
    2. Fixed a slow startup issue caused by inefficient drift detection initialization.
    3. Resolved a bug where stale ResourceSummary instances remained after cluster deletion. 👉 PR #1207
  • Advanced Dashboard Dependencies:
    1. 👉 PR #90
  • Addon controller:
    1. Improved Helm Failure Handling: Enhanced how Sveltos responds to Helm installation failures for better reliability. 👉 PR #1206
    2. Conflict Handover Fix: Resolved an issue where Profile B couldn't take over management of a Helm chart after it was removed from Profile A, despite the conflict being cleared. 👉 PR