github slok/sloth v0.13.0

latest release: sloth-helm-chart-0.13.0
17 hours ago

This is a big one 😆 (check #664)

Highlights

Changed

  • Split image registry and repository in Helm chart
  • ⚠️(BREAKING) Internally Sloth (not k8s) prometheusServiceLevel uses k8s k8s.io/apimachinery/pkg/util/yaml lib for unmarshaling YAML instead of gopkg.in/yaml.v2.
  • Core SLO validation and SLO rules generation migrated to SLO plugins.
  • ⚠️(BREAKING) --sli-plugins-path, --slo-plugins-path, -m args and it's env vars SLOTH_SLI_PLUGINS_PATHand SLOTH_SLO_PLUGINS_PATH have been removed in favor or --plugins-path, -p and it's env var SLOTH_PLUGINS_PATH that discovers and loads SLI and SLO plugins with a single flag.
  • Simplify validation and improve validation message by using custom logic instead of go-playground/validator.
  • ⚠️(BREAKING) --disable-optimized-rules flag and associated env var has been removed.**
  • (BREAKING) Helm chart has removed the option for disabling optimized rules.
  • Update to Kubernetes v1.34.
  • Update to Go v1.25.

Added

  • Sloth domain models can be imported in Go apps using github.com/slok/sloth/pkg/common/model.
  • Sloth conventions can be imported in Go apps using github.com/slok/sloth/pkg/common/conventions.
  • Sloth SLO validation logic can be imported in Go apps using github.com/slok/sloth/pkg/common/validation.
  • A new SLO rule generation plugin system has been added to be able to change/extend the SLO rule generation process.
  • SLO plugins can be loaded from FS directories recursively using --plugins-path in the commands.
  • SLO plugins have a priority value to be able to order in the execution chain.
  • Sloth regular (non-k8s) prometheus/v1 API support for SLO plugins at SLO group level and per SLO level.
  • Sloth K8s CRD sloth.slok.dev/v1/PrometheusServiceLevel API support for SLO plugins at SLO group level and per SLO level.
  • Allow overriding previous declared SLO plugins (includes defaults) at SLO group and SLO level.
  • SLO plugins can access env vars and use OS/exec by default.
  • Allow github.com/caarlos0/env/v11 module in SLO plugins.
  • Add --slo-plugins and -s flag (generate and k8s controller) to be able to declare SLO plugins at cmd level, these plugins will be applied to all SLOs.
  • Add --disable-default-slo-plugins flag (generate and k8s controller) to be able to disable default Sloth SLO plugins.
  • Helm chart supports node selector.

Details (Per PR and autogenerated)

What's Changed

  • Prepare deployoment manifests release for v0.12.0 by @slok in #556
  • Add Stale CI to autoclose issues and PRs by @slok in #559
  • Start moving models to an importable own package by @slok in #561
  • Move more to conventions and utils to be importable by @slok in #562
  • Move sli plugins loader and reader to independent packages by @slok in #563
  • Move prom SLO IO writer to storage package by @slok in #564
  • Move merge label to utils by @slok in #565
  • Move sloth prom spec loader to storage package by @slok in #566
  • Move open SLO spec loader to storage package by @slok in #567
  • build(deps): bump github.com/go-playground/validator/v10 from 10.25.0 to 10.26.0 by @dependabot[bot] in #568
  • Split image registry and repository from Helm chart by @QuantumEnigmaa in #491
  • Move K8s YAML and CR loaders to storage package by @slok in #569
  • Add a middle domain model for prom rules by @slok in #570
  • Move apiserver storage to storage package by @slok in #571
  • Move kubernetes logic to their own packages in storage by @slok in #572
  • Add SLO generation as a chain of processors by @slok in #573
  • build(deps): bump golang from 1.24.1-alpine to 1.24.2-alpine in /docker/prod by @dependabot[bot] in #574
  • Add SLO rule generation plugin system by @slok in #575
  • Add intervals to prom rule models by @slok in #576
  • Add SLO plugin and SLO plugin repository on domain layer by @slok in #577
  • Add missing SLO plugin unit test usage on domain app by @slok in #578
  • Add priority to have SLO plugins execution order in the chain by @slok in #579
  • Update project status on readme by @slok in #580
  • Add debug core SLO plugin by @slok in #581
  • build(deps): bump github.com/prometheus/client_golang from 1.21.1 to 1.22.0 by @dependabot[bot] in #583
  • Add support for SLO plugins on default (non-k8s) sloth prometheus service level spec by @slok in #584
  • Move SLO validation to an SLO plugin by @slok in #585
  • Add the original SLO group source information to the plugin request by @slok in #586
  • fix: update go version go.mod by @wbollock in #588
  • Aggregate SLO and SLI plugin file loader into a single repo that discovers both and change flags to improve usage by @slok in #589
  • Migrate to mockery v3 by @slok in #590
  • build(deps): bump sigs.k8s.io/structured-merge-diff/v4 from 4.6.0 to 4.7.0 by @dependabot[bot] in #592
  • Add support for SLO plugins on Kubernetes API by @slok in #591
  • Fix naming on k8s plugin example by @slok in #593
  • Add overridePrevious as a way of resetting the declared previous chain by @slok in #595
  • build(deps): bump github.com/prometheus-operator/prometheus-operator/pkg/client from 0.81.0 to 0.82.0 by @dependabot[bot] in #597
  • Simplify and improve validator by @slok in #600
  • Remove not optimized SLI rule generation flag by @slok in #601
  • Pass default plugins as a chain by @slok in #603
  • Support env vars on SLO plugins by @slok in #604
  • Allow SLO plugins at application level using cmd flags by @slok in #605
  • Add SLO plugin readmes by @slok in #606
  • Fix readme on validate plugin by @slok in #609
  • build(deps): bump golang from 1.24.2-alpine to 1.24.3-alpine in /docker/prod by @dependabot[bot] in #612
  • [FEAT] add helm chart nodeselector property by @pgmrey in #613
  • Allow disabling default plugins using a cmd flag on CLI and k8s controller modes by @slok in #614
  • Update Prometheus dep to v3.4.0 by @slok in #619
  • build(deps): bump github.com/prometheus/common from 0.63.0 to 0.64.0 by @dependabot[bot] in #617
  • Update to Kubernetes v1.33 by @slok in #620
  • Update prom operator dependencies by @slok in #622
  • build(deps): bump github.com/prometheus/prometheus from 0.304.0 to 0.304.1 by @dependabot[bot] in #625
  • build(deps): bump golang from 1.24.3-alpine to 1.24.4-alpine in /docker/prod by @dependabot[bot] in #627
  • build(deps): bump github.com/prometheus/common from 0.64.0 to 0.65.0 by @dependabot[bot] in #632
  • build(deps): bump github.com/oklog/run from 1.1.0 to 1.2.0 by @dependabot[bot] in #636
  • Update deps and add support for go 1.25 and k8s 1.34 by @slok in #662
  • Prepare for v0.13.0 by @slok in #663

New Contributors

Full Changelog: v0.12.0...v0.13.0

Don't miss a new sloth release

NewReleases is sending notifications on new releases.