Go modules ยท #2329
github.com/projectsveltos/addon-controller
v1.14.0projectsveltos/addon-controller โLast release 5 days ago
22 Aug 2026
Ships on a steady schedule
a new release about every 8 days
Rarely documented
notes for 10 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
3 years old
1061 releases ยท first in 2023
Release timeline
1061 releases since 2023Releases
- v1.11.1-0.20260623084957-f70f37d5d08023 Jun 2026pre-release
Nothing published for this version
- v1.11.1-0.20260622194528-59157acf98a022 Jun 2026pre-release
Nothing published for this version
- v1.11.1-0.20260622155746-7e351ac42a5122 Jun 2026pre-release
Nothing published for this version
- v1.11.1-0.20260621134344-811311c194d321 Jun 2026pre-release
Nothing published for this version
- v1.11.1-0.20260620164633-d469da1359a020 Jun 2026pre-release
Nothing published for this version
- v1.11.1-0.20260619100342-4b62e97434a319 Jun 2026pre-release
Nothing published for this version
- v1.11.1-0.20260617140648-702c76a682b617 Jun 2026pre-release
Nothing published for this version
- v1.11.1-0.20260615142731-8073145c2b8515 Jun 2026pre-release
Nothing published for this version
- v1.11.1-0.20260614203034-0b36593fd48f14 Jun 2026pre-release
Nothing published for this version
- v1.11.1-0.20260614075511-4ba177c406f714 Jun 2026pre-release
Nothing published for this version
- v1.11.1-0.20260612134036-b21c515d0d2a12 Jun 2026pre-release
Nothing published for this version
- v1.11.1-0.20260611093205-4ae849a5156711 Jun 2026pre-release
Nothing published for this version
- v1.11.1-0.20260611060904-4f7b34e7fb8811 Jun 2026pre-release
Nothing published for this version
- v1.11.010 Jun 2026
Release notes
Open source โ๐ New Features
Health Checks: Metric-Based Validation
ValidateHealthnow supports querying a Prometheus-compatible endpoint as an additional data source. Named scalar values are exposed to the Lua evaluate() function via a metrics table, enabling checks such as "error rate below 5 %". In push mode the endpoint must be reachable from the management cluster; in pull mode the sveltos-applier agent running inside the managed cluster reaches it directly via in-cluster DNS.
PR: addon-controller #1816 (#1816)Kubernetes Events for Deployment Failures
The addon-controller now raises Kubernetes Warning events to make failure causes immediately visible via kubectl describe or any event-watching tool. Events are emitted for conflicts, missing referenced resources, template instantiation errors, and when the controller gives up after reaching the maximum consecutive failure count.
PR: addon-controller #1815 (#1815)Dashboard: Cluster Deployment Health Signals
The cluster list now surfaces deployment state at a glance. An amber alert icon appears when one or more profile deployments are failing; a blue clock icon appears when deployment is actively in progress with no failures. The ui-backend computes these signals as O(1) in-memory indexes updated by the existing ClusterSummary watcher, so no per-request scanning is required.
PRs: dashboard #173 (projectsveltos/dashboard#173), ui-backend #167 (projectsveltos/ui-backend#167)HealthCheck: Surface "No Resources Found" as a Degraded Status
When a HealthCheck's resource selectors matched nothing, the resulting HealthCheckReport was silently empty and sveltosctl show resources showed nothing. The Lua evaluate() function can now detect an empty resources table and return a top-level degraded status (e.g. "No deployments found in namespace metrics"), which is surfaced in the report and in sveltosctl.
PR: sveltos-agent #489 (projectsveltos/sveltos-agent#489)MCP Server: Classifier Pipeline Analysis Tool
A new tool has been added to the Sveltos MCP server to analyze classifier pipelines, making it easier to inspect and reason about classifier configuration via AI-assisted workflows.
PR: mcp-server #55 (projectsveltos/mcp-server#55)Shard-Controller: Patch Support
A new--shard-components-configflag accepts the name of a ConfigMap in the Sveltos namespace. The ConfigMap holds one or more patches (JSON6902 or strategic-merge) that are applied to the five Deployments shard-controller creates per shard. Target selectors allow a single ConfigMap to patch only specific components. When the ConfigMap changes, a dedicated reconciler re-deploys all active shards immediately so patches take effect without restarting shard-controller.
PR: shard-controller #216 (projectsveltos/shard-controller#216)
๐ Bug Fixes
addon-controller: Logging, Pull-Mode Status Handler, Helm Data Race, and Dependency Manager
Fixed a logging mistake where cluster name was populated with the cluster namespace in two places. Corrected the pull-mode agent status handler, which could reach a nil dereference when the agent returned an error without a status payload. Fixed a data race in the Helm chart manager where a shared map was read without holding the mutex. The dependency manager's background update loop now snapshots work, releases the write lock before making API calls, and re-acquires it only to clear completed entries โ unblocking concurrent reconcilers. Its startup rebuild loop now waits 5 seconds between retries instead of spinning at full speed on API errors.
PR: addon-controller #1823 (#1823)sveltos-applier: ClassifierReport Retry, Discovery Loop, and Namespace Client Reuse
ClassifierReports were silently marked as delivered even when the push to the management cluster failed, so they were never rld also continue with an empty Classifier object on non-NotFound API errors. The discovery retry loop in the REST mapperrefresh executed exactly once regardless of the loop variable, causing immediate failure on transient API server slowness. A new Kubernetes client โ and with it a new HTTP connection pool โ was being created for every single resource that needed a namespace ensured; it is now
created once per reconciliation pass.
PR: sveltos-applier #89 (projectsveltos/sveltos-applier#89)sveltos-agent: Handful Bugs in the Evaluation Package
Nine bugs in the evaluation package have been corrected.
PR: sveltos-agent #490 (projectsveltos/sveltos-agent#490)
๐ง Maintenance
- All components advanced to Go v1.26.4
- All components advanced to golangci-lint v1.12.1
- v1.10.1-0.20260608135832-407eefd2888d8 Jun 2026pre-release
Nothing published for this version
- v1.10.1-0.20260607134513-fa510616ae647 Jun 2026pre-release
Nothing published for this version
- v1.10.1-0.20260606155546-67dfbd5130176 Jun 2026pre-release
Nothing published for this version
- v1.10.1-0.20260604131817-9834cc9d66114 Jun 2026pre-release
Nothing published for this version
- v1.10.1-0.20260603153140-e97efd6e49083 Jun 2026pre-release
Nothing published for this version
- v1.10.1-0.20260601155128-1b53d7e6c13b1 Jun 2026pre-release
Nothing published for this version
- v1.10.1-0.20260530102009-9011f39220b130 May 2026pre-release
Nothing published for this version
- v1.10.1-0.20260529145402-ad8e92d1b66929 May 2026pre-release
Nothing published for this version
- v1.10.1-0.20260528132700-0af441e209ac28 May 2026pre-release
Nothing published for this version
- v1.10.1-0.20260526191023-2de96ecb530926 May 2026pre-release
Nothing published for this version
- v1.10.1-0.20260525165759-45f93f548c0625 May 2026pre-release
Nothing published for this version
- v1.10.1-0.20260525082255-191cde87141325 May 2026pre-release
Nothing published for this version
- v1.10.1-0.20260524152259-37aa108c502724 May 2026pre-release
Nothing published for this version
- v1.10.1-0.20260523193958-dfd5360438e823 May 2026pre-release
Nothing published for this version
- v1.10.1-0.20260523065014-834c97223de023 May 2026pre-release
Nothing published for this version
- v1.10.1-0.20260522074550-5673316ef28622 May 2026pre-release
Nothing published for this version
- v1.10.1-0.20260521174534-4c027ffe680921 May 2026pre-release
Nothing published for this version
- v1.10.1-0.20260521054544-7accbae59a2a21 May 2026pre-release
Nothing published for this version
- v1.10.1-0.20260520193136-83a31506b45820 May 2026pre-release
Nothing published for this version
- v1.10.1-0.20260516131711-a466817b087c16 May 2026pre-release
Nothing published for this version
- v1.10.015 May 2026
Release notes
Open source โ๐ New Features
OIDC Authentication in Dashboard
Users can now log into the Sveltos dashboard using OpenID Connect (Authorization Code Flow with a public client), as an alternative to manual token authentication.
PR: dashboard #160 (projectsveltos/dashboard#160)
๐ Bug Fixes
EventManager: Ordered Removal of Resources
When stale ClusterProfile resources were being cleaned up by the event-manager, referenced resources could be removed before the ClusterProfile was fully deleted, causing ordering violations. Sveltos now waits for stale ClusterProfiles to be fully deleted before removing their referenced resources.
PR: event-manager #485 (projectsveltos/event-manager#485)
addon-controller: Guaranteed Helm Chart Handoff Between Profiles
When a cluster atomically switched from one ClusterProfile to another (both referencing the same Helm chart), a race condition could cause a delete-and-reinstall instead of an in-place upgrade. Sveltos now verifies that every matching profile has had its ClusterSummary fully processed by the chart manager before allowing an uninstall, avoiding unnecessary downtime.
PR: addon-controller #1780 (#1780)
addon-controller: Surface Errors for Missing Non-Optional TemplateResourceRefs
When a non-optional resource referenced in TemplateResourceRefs was missing, no error was reported in the ClusterSummary, making it difficult to diagnose why a profile was not being deployed. The failure message is now surfaced directly in the ClusterSummary status.
PR: addon-controller #1790 (#1790)
shard-controller: Correct Flags for Init Container in Agentless Mode
When running in agentless mode, the agent-in-mgmt-cluster flag was not being set correctly for the addon-controller init container.
- v1.9.1-0.20260515110125-db19aed48a4f15 May 2026pre-release
Nothing published for this version
- v1.9.1-0.20260514072008-1f15e55ba8de14 May 2026pre-release
Nothing published for this version
- v1.9.1-0.20260514063107-cf046018525a14 May 2026pre-release
Nothing published for this version
- v1.9.1-0.20260513181656-ae333f7526c113 May 2026pre-release
Nothing published for this version
- v1.9.1-0.20260513141325-e85d5a906c4d13 May 2026pre-release
Nothing published for this version
- v1.9.1-0.20260512164425-41601094377c12 May 2026pre-release
Nothing published for this version
- v1.9.1-0.20260511195647-3eb4987ca62211 May 2026pre-release
Nothing published for this version
- v1.9.1-0.20260509174502-f59296975bc19 May 2026pre-release
Nothing published for this version
- v1.9.1-0.20260508203449-e2c8d5bc00b58 May 2026pre-release
Nothing published for this version
- v1.9.08 May 2026
Release notes
Open source โ๐ New Features
Remote URL Support in PolicyRefs
Reference YAML content directly from HTTP/HTTPS endpoints: Previously,
PolicyRefwas limited to ConfigMaps and Secrets, which imposed an ~1 MB size cap. You can now define aremoteURLfield pointing to any HTTP/HTTPS URL. Sveltos fetches and redeploys automatically whenever the content changes, driven by a configurable polling interval (default: 5 minutes).Optional authentication via
secretRef(token, username/password, or CA file) and Go template rendering are fully supported.
preDeployChecks
Gate deployments on cluster readiness: A new
preDeployChecksfield onClusterProfile/Profilelets you define conditions that must pass before Sveltos deploys any resource. This provides a built-in operational gate โ for example, blocking rollouts until a cluster reaches a healthy state.
Avoid Spurious Helm Upgrades
Stable revision counters after management cluster takeover: When a new management cluster reconciled clusters that already had Helm charts deployed, the absence of stored state caused Sveltos to run
helm upgradeon every reconcile even when nothing had changed. Revision counters now remain stable on takeover. Charts withpatches:configured and
ContinuousWithDriftDetectionsubsequent reconciliations are intentionally unaffected.
Show Addons: Filter by Helm Charts or Resources
Targeted addon inspection in
sveltosctl:sveltosctl show addonsgains two new flags โ--helm-chartsto display only Helm releases and--resourcesto display only Kubernetes resources. This makes it easier to inspect large deployments without noise from unrelated resource types.PR: sveltosctl #427
Dashboard DryRun Information
Simulation results in the Sveltos dashboard: The Sveltos dashboard now surfaces DryRun simulation results. Operators can review exactly what changes would be applied to each cluster before committing a profile to active mode โ without leaving the dashboard.
๐ Bug Fixes
Drift Detection and KustomizationRefs
Configuration drift for
KustomizationRef-deployed resources was not being detected or repaired. Resources deployed viaKustomizationRefs(e.g. through a FluxGitRepository) are now correctly tracked by the drift-detection agent and reconciled when changed out-of-band.
Helm Chart Errors in Pull Mode
Partial
ConfigurationBundleinstances no longer reach the applier: When processing Helm charts in pull mode, an error mid-flight could cause a partially populatedConfigurationBundleto be committed. The applier would then treat missing resources as deleted, pruning live workloads or deploying broken stacks. Bundle preparation is now atomic โ any error discards all
partial state before it can be committed.
ClusterPromotion/ClusterProfile Ordering
When
ClusterPromotioncreatesClusterProfileresources, the order ofHelmCharts,KustomizationRefs, andPolicyRefsmust be preserved. A bug was causing the order in generatedClusterProfileresources to diverge from theClusterPromotiondefinition. This is now fixed.
EventTrigger: Stale Profiles on EventSource Change
When an
EventTrigger's referencedEventSourcewas updated, theClusterProfile,ConfigMap, andSecretresources created for the previousEventSourcewere left as stale orphans in the management cluster. These are now correctly cleaned up whenever theEventSourcereference changes.
DryRun: ClusterSummary Preserved When Cluster Stops Matching
When a
ClusterProfilesimultaneously changed its cluster selector (deselecting a cluster) and switched toDryRunmode, the system immediately deleted theClusterSummaryand ran undeploy logic โ leaving noClusterReportbehind. Sveltos now keeps theClusterSummaryalive in DryRun scenarios, generates aClusterReportfor the diff, and defers actual cleanup until
DryRun mode is exited.
Shard Controller: Cluster Shard Tracking
The shard controller was building its internal cluster map key from an uninitialized object (before the
Getcall), so every reconcile wrote to the same emptynamespace/namekey, corrupting the cluster-to-shard map. Cluster shard tracking now correctly identifies clusters by their actual namespace and name.
ClusterConfiguration OwnerReference Updates
Incorrect logic when updating
ClusterConfigurationownerReferenceswas causing instances to be erroneously deleted. This is now fixed.
๐ค MCP Server Tools
list_pending_profiles_for_cluster
Identify why a profile update is blocked: Given a cluster reference, this new tool scans all
ClusterProfileandProfileresources and returns those whose update to that cluster is currently pending, together with a structured reason. Two reasons are surfaced:ClusterSuspended(the cluster is paused or outside its active window) andMaxUpdateThrottle(the cluster is
queued behind others under aMaxUpdatelimit).PR: mcp-server #47
list_dryrun_changes_for_cluster
Preview changes before they apply: This tool surfaces the simulated changes that DryRun-mode profiles would apply to a given managed cluster. Results are organized across three categories โ Helm release changes, resource changes (from policy refs or pull-mode templates), and Kustomize changes โ with no-op entries suppressed for clarity. Each result also includes a
hasChangessummary flag.PR: mcp-server #48
โก Optimizations
ResourceSummary Collection
Unnecessary network calls to managed clusters to check or remove
ResourceSummaryinstances are now skipped when the sync mode is notContinuousWithDriftDetectionand noResourceSummarywas ever deployed. This eliminates spurious reconcile failures and 10-second retry loops against unreachable clusters.PRs: addon-controller #1735, #1750
Report Collection at Scale (Agentless Mode)
EventReport,HealthCheckReport,ReloaderReport, andClassifierReportcollection in agentless mode has been optimized across event-manager, healthcheck-manager, and classifier. All reports are now fetched in a single management-cluster query instead of one query per managed cluster. Collection is also skipped entirely for clusters with no matchingEventTrigger,
ClusterHealthCheck, or reloader-enabled profile. In environments with more than 50 clusters, up to 5 parallel workers are used to parallelise report processing.PRs: event-manager #475, healthcheck-manager #398, classifier #465
- v1.8.1-0.20260506175023-b6237da78bc06 May 2026pre-release
Nothing published for this version
- v1.8.1-0.20260506050746-aa812aab12e16 May 2026pre-release
Nothing published for this version
- v1.8.1-0.20260505133008-bac3e03e07fa5 May 2026pre-release
Nothing published for this version
- v1.8.1-0.20260504174721-6a54bd9d1b214 May 2026pre-release
Nothing published for this version
- v1.8.1-0.20260503201839-a7d2f7755fe73 May 2026pre-release
Nothing published for this version
- v1.8.1-0.20260501123148-51b70adbe49b1 May 2026pre-release
Nothing published for this version
- v1.8.1-0.20260430193734-58eeabc2c65530 Apr 2026pre-release
Nothing published for this version
- v1.8.1-0.20260430153734-63c425d617fb30 Apr 2026pre-release
Nothing published for this version
- v1.8.1-0.20260430082712-83835e6443f130 Apr 2026pre-release
Nothing published for this version
- v1.8.1-0.20260428160113-abc37b7c00ac28 Apr 2026pre-release
Nothing published for this version
- v1.8.1-0.20260428072916-9167c52ede6728 Apr 2026pre-release
Nothing published for this version
- v1.8.1-0.20260427070740-1b92aa13170b27 Apr 2026pre-release
Nothing published for this version
- v1.8.1-0.20260426111514-eca8f54b8e4826 Apr 2026pre-release
Nothing published for this version
- v1.8.1-0.20260425142249-46612ee1f36825 Apr 2026pre-release
Nothing published for this version
- v1.8.1-0.20260423194303-2fbd8e9fb3f123 Apr 2026pre-release
Nothing published for this version