classifier

Sveltos Classifier dynamically classify a cluster based on run time information (Kubernetes version, deployed resources and more)

APACHE-2.0 License

Stars
2
Committers
4

Bot releases are visible (Hide)

classifier - v0.34.2 Latest Release

Published by gianlucam76 3 months ago

🐛 Bug Fixes

  • template functions (sprig + all others implemented in Sveltos) are moved to libsveltos and so available for both ClusterProfile/Profile and EventTrigger (PR)
  • Content of ConfigMap/Secret referenced in ValuesFrom section of both HelmChart and KustomizeRef is considered by Sveltos a template (and so instantiated) only if the referenced ConfigMap/Secret has the projectsveltos.io/template annotation
classifier - v0.34.1

Published by gianlucam76 3 months ago

🚀 Features:

• EventTrigger spec contains Patches

classifier - v0.34.0

Published by gianlucam76 3 months ago

🚀 Features:

  • customise drift-detection-manager: Sveltos can be passed a ConfigMap containing pre-deployment patches which will be used to customise drift-detection-manager before deploying it. PR
  • customize sveltos-agent: Sveltos can be passed a ConfigMap containing pre-deployment patches which will be used to customise sveltos-agent before deploying it. PR

🐛 Bug Fixes

  • pre-deployment patches with multiple resources BUG

🌱 Others

  • bump clusterapi to v1.7.4
classifier - v0.33.0

Published by gianlucam76 4 months ago

This release brings exciting new features and essential bug fixes.

🚀 Features:

  1. API Bump: We've upgraded the APIs to version v1beta1.
  2. Template Functions: enhance your templates with powerful new functions:: toToml, fromToml, toYaml, fromYaml, etc. Explore the full list of functions in PR #586
  3. Fine-tune your add-ons and applications with post-rendering patches: make adjustments to generated manifests before they reach managed clusters. This allows for granular control over your deployments. PR #607
  4. Dynamic Referenced Resources: Define referenced resources dynamically within templates. Use cluster namespace, name, and type for flexible deployments. See more in PR #610;
  5. Selective Drift Detection: In ContinuosWithDriftDetection mode, you can now exclude specific resources from configuration drift monitoring. This provides more granular control over drift detection. Details in PR 612
  6. User data can be stored in SveltosCluster: those data can be used among the other things with templating PR 315

🐛 Bug Fixes

  1. Stale Resource Identification: Improved logic ensures accurate identification and handling of outdated resources.PR 582
  2. CRD Removal Handling: Drift detection now correctly reacts to the removal of Custom Resource Definitions (CRDs). PR 206
classifier - v0.32.0

Published by gianlucam76 4 months ago

🐛 Bug Fixes

  • Set ttlSecondsAfterFinished on Job that register management cluster. If Job is left after registration succeeds, helm upgrade for projectsveltos fails
  • Correctly set version for addon-controller and classifier so on upgrade drift-detection-manager and sveltos-agent are upgraded
classifier - v0.31.0

Published by gianlucam76 5 months ago

🐛 Bug Fixes

  • Fix bug: this caused resources to not be properly cleaned up when a ClusterProfile/Profile was deleted or stopped matching a cluster
  • Fix but: this caused Sveltos to fail parsing certain YAML stored in secret/configMap or kustomizationRef
  • Fix bug: this caused Sveltos to fail deploying content of a KustomizationRef.
  • Increased memory limits for sveltos-agent and drift-detection-manager
classifier - v0.30.0

Published by gianlucam76 5 months ago

🚀 Features:

  • Tiers: The concept of tier is introduced to manage deployment priority for resources targeted by multiple configurations. More info on this PR

🐛 Bug Fixes

  • Correctly handle ConfigMap/Secret whose data section contains resources that in turns contains "---". Bug
  • When profile contains multiple helm charts and deploying one fails, all installed charts are reported. Bug
  • A (non default) separate image addon-controller is built that contains git binary. This will allow Kustomize files referencing other remote kustomize resources to be properly built. Bug

🌱 Others

  1. Advanced clustrerAPI to v1.7.2
  2. Advanced Helm SDK to v3.15.0
  3. Advanced kind cluster for functional verification to v1.30.0
classifier - v0.29.1

Published by gianlucam76 5 months ago

🚀 Features:

  • KustomizationRef.Path and PolicyRef.Path can be expressed as templates and instantiate at run-time using Cluster metadata info PR
classifier - v0.29.0

Published by gianlucam76 6 months ago

🚀 Features:

  1. Helm charts values can be collected from referenced ConfigMap/Secret (PR)
    2.Define your Kustomize builds as templates. Sveltos can then instantiate them using key-value pairs provided directly in your ClusterProfile/Profile or referenced from Secrets/ConfigMaps. These key-value pairs themselves can also be templates, allowing for even more dynamic configurations based on resources in your management cluster (PR)

🐛 Bug Fixes

  1. Run helm install with replace flag set (PR)

🌱 Others

  1. Bump Kubernetes to v1.30.0, controller-runtime to v1.18.1 and clusterAPI to v1.7.1
classifier - v0.28.0

Published by gianlucam76 6 months ago

🚀 Features:

  • management cluster is automatically registered to be managed by Sveltos;
  • sveltosctl register command has been expanded to specify labels SveltosCluster should have;
  • sveltosctl generate kubeconfig has been introduced. Running this command while pointing to the managed cluster, will generate and output a Kubeconfig that can be later on consumed by sveltosctl register cluster
  • sveltosctl register command accepts a new flag fleet-cluster-context that can be set to the context pointing to the managed cluster. So this command can be run with default context pointing to the management cluster and it will automatically generate a kubeconfig and register the cluster in one shot.

🐛Bug fixed:

  • add-on controller will correctly redeploy and helm chart when its values are modified (read more about bug here)
classifier - v0.27.0

Published by gianlucam76 7 months ago

🚀 Features:

  • EventTrigger can reference ClusterSet
  • images are built for amd64 and arm64

This release contains a non backward compatible change. ClusterProfile/Profile when referencing ClusterSet/Set respectively, only need to specify the name.

classifier - v0.26.0

Published by gianlucam76 7 months ago

🚀 Features:

  • Introduce ClusterSet/Set: Those CRDs can be used to select clusters (using as usual clusterSelector) and have another field specifying how many of the matching clusters should be selected. For instance 2 clusters might match a Set but only one will be selected. This is useful when you want to implement active/passive failover: Create a ClusterSet/Set with maxReplicas: 1 and have it match two clusters in the clusterSelector. This ensures only one cluster is active at a time. If the active cluster goes down, the backup cluster will be automatically selected for deployments.
    ClusterProfile can reference a ClusterSet (and a Profile can reference a Set). The add-ons defined in the ClusterProfile will be deployed only to the currently selected clusters within the referenced ClusterSet. This enables dynamic deployment management based on the available and healthy clusters in the set.
classifier - v0.25.0

Published by gianlucam76 8 months ago

🚀 Features:

  • MS Team notification support

🐛 Bug Fixes:

  • Fix for inconsistent template naming (inconsistent between code and documentation)
  • Fix for the extra labels/annotations metadata

🌱 Others:

  • Remove rbac proxy container (metric will be fetched directly from the main container)
  • Optimisation to avoid keep trying to reconciler clusters when those become not ready
classifier - v0.25.0

Published by gianlucam76 8 months ago

🚀 Features:

  • MS Team notification support

🐛 Bug Fixes:

  • Fix for inconsistent template naming (inconsistent between code and documentation)
  • Fix for the extra labels/annotations metadata

🌱 Others:

  • Remove rbac proxy container (metric will be fetched directly from the main container)
  • Optimisation to avoid keep trying to reconciler clusters when those become not ready
classifier - v0.24.0

Published by gianlucam76 8 months ago

🚀 Features:

  • ClusterProfile/Profile allows specifying extra metadata (labels and annotations) which will be added to all resources deployed by Sveltos (YAML/JSON, Helm charts, Kustomize)

🐛 Bug Fixes:

  • Filtering by cluster name in sveltosctl show addons
classifier - v0.23.0

Published by gianlucam76 8 months ago

🚀 Features:

  • Allows Sveltos to get YAMLs/JSONs from flux sources
classifier - v0.22.0

Published by gianlucam76 9 months ago

🚀 Features:

  • Allows to configure, per helm release, following helm options: skipCRDs, Wait, WaitForJobs, Atomic, DependencyUpdate, CreateNamespace;
  • Health rules can be defined looking at objects of different GVKs all together. This allows for more complex health evaluations when Kubernetes resources need to be looked at together;
  • deprecated add-on compliance validations.

🐛 Bug Fixes:

  • Support for OCI registry;
  • Avoid un-necessary helm upgrade (installed version vs expected version comparison fixed).
classifier - v0.21.1

Published by gianlucam76 9 months ago

🐛 Bug Fixes

  • addon-controller not reacting to new cluster matching an existing profile bug
  • addon-controller not cleaning up ClusterConfiguration for a deleted cluster which used to match a Profile bug
  • resource deployed in drift-detection mode has spurious redeployment due to an issue detecting false configuration drift bug
  • addon-controller logs reported an issue collecting ResourceSummary and ReloaderReport. That was a non issue as error was happening when ResourceSummary or the ReloaderSummary CRD were not deployed in a cluster bug
classifier - v0.21.0

Published by gianlucam76 10 months ago

🚀 Features:

  • Introducing Profile CRD: similar to ClusterProfile, Profile has a cluster selector and a list of add-ons and applications to deploy in matching clusters. Unlike ClusterProfile, Profile is a namespaced resource and can only match clusters in its same namespace and reference resources in its same namespace. This makes Profile useful for managing multiple tenants in the management cluster, where each tenant has its own namespace.
  • EventSource and Classifier now have the capability to analyze resources of different kinds simultaneously. This feature is enabled by the ResourceSelectors field, which allows you to select resources from various GroupVersionKinds and filter them based on various criteria, including: Namespace, Labels and Custom Lua functions for more sophisticated filtering. The optional AggregatedSelection field provides an additional layer of filtering for the resources selected using ResourceSelectors. This field accommodates a Lua function that further narrows down the subset of resources that have already been identified through ResourceSelectors. The function receives the array of resources selected by ResourceSelectors and processes it to eliminate or retain specific resources based on the specified criteria. If AggregatedSelection is not specified, all resources selected by ResourceSelectors will be considered. This feature enables more intricate filtering and selection operations on the resources, allowing for comprehensive analyses that consider all resources simultaneously. This capability is beneficial for more sophisticated tasks, such as identifying resources that are interconnected or share similar properties.
    further select a subset of the resources that have already been selected using the ResourceSelector field.
  • Discord notification: on top of Slack and Webex, notifications can be sent to Discord channel as well

⚠️ Breaking Changes

  • EventSource and Classifier CRDs have changed
  • EventBasedAddOn CRD has been renamed to EventTrigger
  • When using template, both Cluster and SveltosCluster can be referenced with keyword "Cluster"
  • OpenAPI validations was removed (compliance validations can only be expressed using Lua)
classifier - v0.20.0

Published by gianlucam76 11 months ago

🚀 Features:

  • ClusterProfile dependencies: a clusterProfile instance can now depend on other ClusterProfile instances. If ClusterProfile A depends on ClusterProfile B, for every matching cluster, add-ons and applications listed in ClusterProfile A won't be provisioned till all add-ons and applications listed in ClusterProfile B are provisioned.

🐛 Bug Fixed:

  • When ClusterProfile is instructed to create resources in the management cluster, those resources were incorrectly considered stale and removed when new managed clusters started matching. This behaviour is now fixed by this commit.
Package Rankings
Top 8.56% on Proxy.golang.org
Badges
Extracted from project README
CI Go Report Card Slack License Twitter Follow contributions welcome Slack
Related Projects