Skip to content

feat(ecs): add the AWS ECS provider - #1123

Draft
acouvreur wants to merge 10 commits into
mainfrom
feat/ecs-provider
Draft

acouvreur wants to merge 10 commits into
mainfrom
feat/ecs-provider

Conversation

@acouvreur

@acouvreur acouvreur commented Sep 11, 2026 •

Copy link
Copy Markdown
Member

Summary

This PR adds an AWS ECS provider. Closes #116.

Sablier scales an ECS service between an idle desired count and an active desired count. The default values are 0 and 1. Sablier finds the services from their resource tags. The provider name is ecs.

provider:
  name: ecs
  ecs:
    cluster: my-cluster
    region: eu-west-1
aws ecs tag-resource --resource-arn <service-arn> \
  --tags key=sablier.enable,value=true key=sablier.group,value=mygroup

Changes

  • New package pkg/provider/awsecs. The provider uses four ECS API calls: DescribeClusters, ListServices, DescribeServices and UpdateService. The API interface holds these calls, and *ecs.Client satisfies it.
  • New calls DescribeClusters one time. It stops with an error when the cluster does not exist or is not ACTIVE.
  • InstanceStart and InstanceStop set the desired count from sablier.active.replicas and sablier.idle.replicas. When the service already has this count, the provider does not send the update.
  • InstanceInspect uses the desired count, the running count, and the rollout state of the primary deployment. See the status table below. A service name or a full service ARN is accepted.
  • InstanceList and InstanceGroups read all pages of services in the cluster, and describe the services 10 at a time with their tags. They skip the services without sablier.enable=true and the DAEMON services.
  • InstanceEvents polls the cluster every 10 seconds. It compares two snapshots and sends the created, updated, removed, started and stopped events. After 5 failed polls in sequence, the stream stops with an error. The Proxmox LXC provider uses the same rule.
  • New configuration: provider.ecs.cluster (default default), provider.ecs.region and provider.ecs.endpoint. The credentials come from the default credential chain of the AWS SDK. The HTTP client of the AWS SDK uses otelhttp for tracing.
  • Documentation: a new tutorial page with the IAM policy, the ecs column in the compatibility matrix, the provider notes in the label reference, the README, and the tracing page. The CLI reference, the label reference, the OpenAPI spec and the theme schema are regenerated.

Integration test

  • TestECSProvider_Integration runs the provider with the real *ecs.Client against LocalStack in a container. It creates a cluster, a task definition that runs sablierapp/mimic, and tagged services. Then it checks the missing cluster error, list, groups, inspect by ARN, start, stop, and the started and stopped events.
  • ECS is not in the free LocalStack plan. The test skips when LOCALSTACK_AUTH_TOKEN is not set.
  • The new Integration (ECS) workflow runs the test when the LOCALSTACK_AUTH_TOKEN repository secret exists. GitHub does not pass secrets to pull requests from forks, so for these the workflow shows a notice and does not run the test.
  • CONTRIBUTING.md explains how to run the test locally.
  • The event unit tests now cancel and drain the stream in the test cleanup. Before this change, an event goroutine could log after its test ended.

Status mapping

ECS state Sablier status
Desired count is 0 stopped
Primary deployment rollout is FAILED error, with the rollout state reason
Running count is less than the desired count starting
Primary deployment rollout is IN_PROGRESS starting
All other states ready

ECS keeps the primary deployment IN_PROGRESS until the new tasks pass their container health checks. Thus the ready status waits for the health check.

Notes for review

  • Only REPLICA services are managed. A DAEMON service has no desired count. Standalone tasks are not managed, as agreed in the issue discussion.
  • One Sablier server manages one cluster.
  • The provider changes only the desired count. On ECS, the CPU and the memory are part of the task definition, and a change needs a new revision and a deployment. The provider ignores the sablier.idle.cpu, sablier.idle.memory, sablier.active.cpu and sablier.active.memory tags and logs a warning.
  • An ECS tag value cannot contain a comma (Tag). Thus sablier.group, sablier.running-days and sablier.anti-affinity use a space between the values on ECS, for example team-a team-b. The provider changes the spaces to commas before it parses the labels.
  • ECS sends the service changes only to EventBridge. There is no API to read these events, so the provider polls.
  • InstanceList with All set to false returns the services with a desired count more than 0. The Kubernetes provider uses the same rule since fix(kubernetes): list only the running workloads when All is false #1112.
  • The LocalStack image is pinned as 2026.8.2. The testcontainers LocalStack module rejects the zero-padded tag 2026.08.2, because that tag is not valid semver.

Tests

  • The unit tests use an in-memory fake of the four ECS calls. The fake supports pages, the TAGS field, the MISSING failures and injected errors. The coverage of pkg/provider/awsecs is 97.6%.
  • The integration test did not run against LocalStack yet. The LocalStack for Open Source application is pending, and the LOCALSTACK_AUTH_TOKEN secret does not exist.
  • With an invalid token, LocalStack stops at license activation, and the test fails in 2 seconds with a clear error. This check confirms the container setup and the image tag.
  • The same integration scenario passed against the Floci emulator in mock mode on a local machine. A temporary test file started Floci for this check. That file is not in this PR.
  • go test -short ./... passes, except TestSetupTheme, which also fails on main on Windows.
  • go build ./... and go vet ./... pass. gofmt reports no issue in the changed files. actionlint reports no issue in the new workflow.
  • The output of the five generators is equal to the committed files. This is the same check as make check-generate.
  • golangci-lint did not run locally, because the installed version is built with Go 1.26. The race detector does not run on the local machine. CI runs the two.

🤖 Generated with Claude Code

acouvreur and others added 7 commits September 10, 2026 22:47
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@github-actions github-actions Bot added documentation Improvements or additions to documentation provider Issue related to a provider labels Sep 11, 2026
@github-actions

github-actions Bot commented Sep 11, 2026 •

Copy link
Copy Markdown

Test Results

✅ All tests passed! | 1016 tests in 152.327s

View HTML Test Report

@github-actions

github-actions Bot commented Sep 11, 2026 •

Copy link
Copy Markdown
┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Diff between sablier and sablier                                                                                        │
├──────────┬──────────────────────────────────────────────────────────────────────────────┬──────────┬──────────┬─────────┤
│ PERCENT  │ NAME                                                                         │ OLD SIZE │ NEW SIZE │ DIFF    │
├──────────┼──────────────────────────────────────────────────────────────────────────────┼──────────┼──────────┼─────────┤
│ +100%    │ github.com/aws/aws-sdk-go-v2                                                 │          │ 5.3 MB   │ +5.3 MB │
│ +79.13%  │ encoding                                                                     │ 457 kB   │ 819 kB   │ +362 kB │
│ +95.14%  │ github.com/luthermonson/go-proxmox                                           │ 333 kB   │ 650 kB   │ +317 kB │
│ +100%    │ github.com/aws/smithy-go                                                     │          │ 274 kB   │ +274 kB │
│ +4.77%   │ crypto                                                                       │ 1.9 MB   │ 2.0 MB   │ +90 kB  │
│ +54.42%  │ compress/flate                                                               │ 72 kB    │ 112 kB   │ +39 kB  │
│ +9.99%   │ slices                                                                       │ 370 kB   │ 407 kB   │ +37 kB  │
│ +23.84%  │ internal/abi                                                                 │ 74 kB    │ 92 kB    │ +18 kB  │
│ +515.80% │ internal/runtime/gc/scan                                                     │ 1.5 kB   │ 9.0 kB   │ +7.6 kB │
│ +9.01%   │ internal/runtime/maps                                                        │ 44 kB    │ 48 kB    │ +3.9 kB │
│ +912.55% │ maps                                                                         │ 231 B    │ 2.3 kB   │ +2.1 kB │
│ +5.33%   │ vendor/golang.org/x/net/idna                                                 │ 22 kB    │ 24 kB    │ +1.2 kB │
│ +15.26%  │ internal/bytealg                                                             │ 6.1 kB   │ 7.0 kB   │ +927 B  │
│ +100%    │ gopkg.in/inf%2ev0                                                            │          │ 757 B    │ +757 B  │
│ +100%    │ cmp                                                                          │          │ 399 B    │ +399 B  │
│ +0.56%   │ internal/reflectlite                                                         │ 50 kB    │ 51 kB    │ +280 B  │
│ +100.78% │ internal/godebugs                                                            │ 256 B    │ 514 B    │ +258 B  │
│ +1.49%   │ strconv                                                                      │ 17 kB    │ 17 kB    │ +255 B  │
│ +0.89%   │ unicode                                                                      │ 28 kB    │ 28 kB    │ +245 B  │
│ +100%    │ _                                                                            │          │ 198 B    │ +198 B  │
│ +2.79%   │ internal/filepathlite                                                        │ 4.7 kB   │ 4.8 kB   │ +130 B  │
│ +12.46%  │ gopkg.in/evanphx/json-patch.v4                                               │ 963 B    │ 1.1 kB   │ +120 B  │
│ +1.19%   │ github.com/docker/go-connections                                             │ 6.8 kB   │ 6.9 kB   │ +81 B   │
│ +5.46%   │ github.com/buger/goterm                                                      │ 1.2 kB   │ 1.3 kB   │ +68 B   │
│ +0.80%   │ vendor/golang.org/x/text/secure/bidirule                                     │ 2.1 kB   │ 2.1 kB   │ +17 B   │
│ +1.65%   │ github.com/cenkalti/backoff/v5                                               │ 786 B    │ 799 B    │ +13 B   │
│ +1.24%   │ github.com/x448/float16                                                      │ 728 B    │ 737 B    │ +9 B    │
│ +0.05%   │ internal/fmtsort                                                             │ 8.1 kB   │ 8.1 kB   │ +4 B    │
│ +0.51%   │ main                                                                         │ 196 B    │ 197 B    │ +1 B    │
│ -0.02%   │ internal/syscall/unix                                                        │ 4.6 kB   │ 4.6 kB   │ -1 B    │
│ -0.22%   │ internal/testlog                                                             │ 1.8 kB   │ 1.8 kB   │ -4 B    │
│ -0.27%   │ internal/runtime/syscall/linux                                               │ 1.5 kB   │ 1.5 kB   │ -4 B    │
│ -0.29%   │ internal/runtime/exithook                                                    │ 1.7 kB   │ 1.7 kB   │ -5 B    │
│ -0.26%   │ github.com/cespare/xxhash/v2                                                 │ 2.3 kB   │ 2.3 kB   │ -6 B    │
│ -1.31%   │ golang.org/x/term                                                            │ 535 B    │ 528 B    │ -7 B    │
│ -0.98%   │ go/parser                                                                    │ 715 B    │ 708 B    │ -7 B    │
│ -0.64%   │ vendor/golang.org/x/crypto/internal/poly1305                                 │ 2.8 kB   │ 2.8 kB   │ -18 B   │
│ -0.10%   │ github.com/quic-go/qpack                                                     │ 22 kB    │ 22 kB    │ -22 B   │
│ -1.53%   │ vendor/golang.org/x/net/http/httpguts                                        │ 4.2 kB   │ 4.1 kB   │ -64 B   │
│ -100%    │ unsafe                                                                       │ 81 B     │          │ -81 B   │
│ -5.54%   │ container/heap                                                               │ 2.4 kB   │ 2.3 kB   │ -133 B  │
│ -0.86%   │ internal/runtime/cgroup                                                      │ 16 kB    │ 16 kB    │ -140 B  │
│ -5.50%   │ vendor/golang.org/x/text/unicode/bidi                                        │ 2.6 kB   │ 2.4 kB   │ -141 B  │
│ -0.54%   │ github.com/jinzhu/copier                                                     │ 26 kB    │ 26 kB    │ -143 B  │
│ -1.94%   │ vendor/golang.org/x/crypto/chacha20                                          │ 7.4 kB   │ 7.3 kB   │ -144 B  │
│ -1.70%   │ github.com/subosito/gotenv                                                   │ 9.1 kB   │ 8.9 kB   │ -154 B  │
│ -2.51%   │ internal/cpu                                                                 │ 6.1 kB   │ 6.0 kB   │ -154 B  │
│ -2.44%   │ debug/dwarf                                                                  │ 8.7 kB   │ 8.5 kB   │ -213 B  │
│ -17.39%  │ github.com/go-playground/locales                                             │ 1.4 kB   │ 1.1 kB   │ -236 B  │
│ -49.33%  │ internal/runtime/sys                                                         │ 523 B    │ 265 B    │ -258 B  │
│ -100%    │ internal/runtime/pprof/label                                                 │ 264 B    │          │ -264 B  │
│ -100%    │ internal/unsafeheader                                                        │ 312 B    │          │ -312 B  │
│ -37.56%  │ database/sql                                                                 │ 836 B    │ 522 B    │ -314 B  │
│ -4.05%   │ expvar                                                                       │ 9.4 kB   │ 9.0 kB   │ -380 B  │
│ -6.00%   │ vendor/golang.org/x/sys/cpu                                                  │ 6.4 kB   │ 6.0 kB   │ -381 B  │
│ -100%    │ internal/nettrace                                                            │ 384 B    │          │ -384 B  │
│ -1.98%   │ path                                                                         │ 20 kB    │ 19 kB    │ -388 B  │
│ -27.11%  │ internal/lazyregexp                                                          │ 1.7 kB   │ 1.2 kB   │ -456 B  │
│ -17.83%  │ golang.org/x/sync                                                            │ 2.7 kB   │ 2.2 kB   │ -483 B  │
│ -100%    │ go/ast                                                                       │ 504 B    │          │ -504 B  │
│ -63.21%  │ github.com/fsnotify/fsnotify                                                 │ 867 B    │ 319 B    │ -548 B  │
│ -3.36%   │ github.com/pmezard/go-difflib                                                │ 17 kB    │ 16 kB    │ -566 B  │
│ -9.46%   │ github.com/munnerz/goautoneg                                                 │ 6.1 kB   │ 5.5 kB   │ -579 B  │
│ -11.76%  │ internal/singleflight                                                        │ 5.1 kB   │ 4.5 kB   │ -594 B  │
│ -2.91%   │ errors                                                                       │ 21 kB    │ 20 kB    │ -606 B  │
│ -20.92%  │ internal/stringslite                                                         │ 3.0 kB   │ 2.4 kB   │ -628 B  │
│ -13.27%  │ internal/chacha8rand                                                         │ 5.0 kB   │ 4.4 kB   │ -667 B  │
│ -7.66%   │ github.com/tniswong/go.rfcx                                                  │ 9.2 kB   │ 8.5 kB   │ -706 B  │
│ -8.34%   │ container/list                                                               │ 8.5 kB   │ 7.8 kB   │ -706 B  │
│ -19.22%  │ golang.org/x/oauth2                                                          │ 3.7 kB   │ 3.0 kB   │ -710 B  │
│ -14.92%  │ github.com/docker/go-units                                                   │ 5.0 kB   │ 4.2 kB   │ -742 B  │
│ -1.28%   │ golang.org/x/crypto                                                          │ 62 kB    │ 61 kB    │ -786 B  │
│ -8.62%   │ github.com/go-openapi/jsonpointer                                            │ 9.5 kB   │ 8.7 kB   │ -821 B  │
│ -16.39%  │ google.golang.org/genproto/googleapis/rpc                                    │ 5.1 kB   │ 4.2 kB   │ -829 B  │
│ -8.60%   │ compress/zlib                                                                │ 9.8 kB   │ 8.9 kB   │ -840 B  │
│ -100.00% │ github.com/moby/docker-image-spec                                            │ 843 B    │          │ -843 B  │
│ -11.23%  │ github.com/sagikazarmark/locafero                                            │ 7.7 kB   │ 6.9 kB   │ -869 B  │
│ -9.03%   │ github.com/grpc-ecosystem/grpc-gateway/v2                                    │ 9.8 kB   │ 8.9 kB   │ -882 B  │
│ -12.76%  │ github.com/modern-go/concurrent                                              │ 7.0 kB   │ 6.1 kB   │ -894 B  │
│ -17.50%  │ google.golang.org/genproto/googleapis/api                                    │ 5.2 kB   │ 4.3 kB   │ -902 B  │
│ -13.71%  │ github.com/google/uuid                                                       │ 6.7 kB   │ 5.7 kB   │ -913 B  │
│ -100.00% │ github.com/go-playground/universal-translator                                │ 999 B    │          │ -999 B  │
│ -10.26%  │ internal/godebug                                                             │ 10 kB    │ 9.4 kB   │ -1.1 kB │
│ -4.75%   │ sigs.k8s.io/yaml                                                             │ 25 kB    │ 24 kB    │ -1.2 kB │
│ -9.95%   │ github.com/pkg/errors                                                        │ 12 kB    │ 11 kB    │ -1.2 kB │
│ -7.63%   │ internal/bisect                                                              │ 16 kB    │ 15 kB    │ -1.2 kB │
│ -4.38%   │ sort                                                                         │ 29 kB    │ 28 kB    │ -1.3 kB │
│ -14.03%  │ github.com/gin-contrib/sse                                                   │ 9.6 kB   │ 8.2 kB   │ -1.3 kB │
│ -9.68%   │ compress/gzip                                                                │ 14 kB    │ 13 kB    │ -1.4 kB │
│ -9.59%   │ text/tabwriter                                                               │ 14 kB    │ 13 kB    │ -1.4 kB │
│ -6.61%   │ github.com/spf13/afero                                                       │ 21 kB    │ 20 kB    │ -1.4 kB │
│ -7.85%   │ golang.org/x/time                                                            │ 18 kB    │ 16 kB    │ -1.4 kB │
│ -5.29%   │ vendor/golang.org/x/crypto/cryptobyte                                        │ 28 kB    │ 26 kB    │ -1.5 kB │
│ -0.69%   │ github.com/gabriel-vasile/mimetype                                           │ 214 kB   │ 212 kB   │ -1.5 kB │
│ -12.33%  │ embed                                                                        │ 12 kB    │ 11 kB    │ -1.5 kB │
│ -100%    │ go/scanner                                                                   │ 1.6 kB   │          │ -1.6 kB │
│ -78.50%  │ github.com/opencontainers/image-spec                                         │ 2.1 kB   │ 441 B    │ -1.6 kB │
│ -9.78%   │ github.com/go-logr/stdr                                                      │ 16 kB    │ 15 kB    │ -1.6 kB │
│ -2.48%   │ github.com/prometheus/common                                                 │ 70 kB    │ 68 kB    │ -1.7 kB │
│ -3.30%   │ github.com/leodido/go-urn                                                    │ 56 kB    │ 54 kB    │ -1.8 kB │
│ -86.41%  │ go/token                                                                     │ 2.2 kB   │ 294 B    │ -1.9 kB │
│ -8.31%   │ github.com/opencontainers/go-digest                                          │ 23 kB    │ 21 kB    │ -1.9 kB │
│ -5.37%   │ github.com/lmittmann/tint                                                    │ 36 kB    │ 34 kB    │ -2.0 kB │
│ -4.87%   │ bytes                                                                        │ 41 kB    │ 39 kB    │ -2.0 kB │
│ -14.57%  │ vendor/golang.org/x/net/http/httpproxy                                       │ 14 kB    │ 12 kB    │ -2.1 kB │
│ -6.01%   │ go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin │ 36 kB    │ 34 kB    │ -2.2 kB │
│ -18.66%  │ weak                                                                         │ 12 kB    │ 9.7 kB   │ -2.2 kB │
│ -2.47%   │ github.com/go-viper/mapstructure/v2                                          │ 96 kB    │ 94 kB    │ -2.4 kB │
│ -6.27%   │ bufio                                                                        │ 38 kB    │ 36 kB    │ -2.4 kB │
│ -90.85%  │ iter                                                                         │ 2.7 kB   │ 245 B    │ -2.4 kB │
│ -12.73%  │ github.com/djherbis/times                                                    │ 19 kB    │ 17 kB    │ -2.4 kB │
│ -17.45%  │ hash                                                                         │ 15 kB    │ 13 kB    │ -2.7 kB │
│ -7.41%   │ sigs.k8s.io/randfill                                                         │ 37 kB    │ 34 kB    │ -2.7 kB │
│ -5.47%   │ github.com/davecgh/go-spew                                                   │ 54 kB    │ 51 kB    │ -3.0 kB │
│ -1.67%   │ regexp                                                                       │ 186 kB   │ 182 kB   │ -3.1 kB │
│ -9.74%   │ vendor/golang.org/x/net/http2/hpack                                          │ 35 kB    │ 31 kB    │ -3.4 kB │
│ -7.93%   │ internal/strconv                                                             │ 43 kB    │ 39 kB    │ -3.4 kB │
│ -9.11%   │ vendor/golang.org/x/net/dns/dnsmessage                                       │ 38 kB    │ 34 kB    │ -3.4 kB │
│ -6.25%   │ strings                                                                      │ 59 kB    │ 55 kB    │ -3.7 kB │
│ -21.56%  │ internal/runtime/atomic                                                      │ 17 kB    │ 13 kB    │ -3.7 kB │
│ -10.65%  │ gopkg.in/inf.v0                                                              │ 35 kB    │ 32 kB    │ -3.8 kB │
│ -14.12%  │ k8s.io/utils                                                                 │ 32 kB    │ 28 kB    │ -4.6 kB │
│ -4.38%   │ fmt                                                                          │ 106 kB   │ 101 kB   │ -4.6 kB │
│ -10.17%  │ flag                                                                         │ 46 kB    │ 41 kB    │ -4.7 kB │
│ -14.24%  │ github.com/containerd/errdefs                                                │ 33 kB    │ 29 kB    │ -4.8 kB │
│ -15.98%  │ github.com/samber/slog-gin                                                   │ 32 kB    │ 27 kB    │ -5.1 kB │
│ -11.82%  │ github.com/prometheus/procfs                                                 │ 44 kB    │ 38 kB    │ -5.2 kB │
│ -8.85%   │ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp                │ 59 kB    │ 54 kB    │ -5.2 kB │
│ -13.09%  │ github.com/sourcegraph/conc                                                  │ 41 kB    │ 36 kB    │ -5.4 kB │
│ -7.14%   │ mime                                                                         │ 79 kB    │ 73 kB    │ -5.6 kB │
│ -4.51%   │ log                                                                          │ 126 kB   │ 120 kB   │ -5.7 kB │
│ -14.60%  │ github.com/distribution/reference                                            │ 39 kB    │ 33 kB    │ -5.7 kB │
│ -3.79%   │ time                                                                         │ 160 kB   │ 154 kB   │ -6.1 kB │
│ -6.48%   │ internal/poll                                                                │ 96 kB    │ 90 kB    │ -6.2 kB │
│ -4.47%   │ html                                                                         │ 140 kB   │ 134 kB   │ -6.3 kB │
│ -10.15%  │ internal/sync                                                                │ 62 kB    │ 56 kB    │ -6.3 kB │
│ -20.25%  │ unique                                                                       │ 34 kB    │ 27 kB    │ -6.9 kB │
│ -14.58%  │ context                                                                      │ 48 kB    │ 41 kB    │ -6.9 kB │
│ -11.77%  │ github.com/go-logr/logr                                                      │ 60 kB    │ 52 kB    │ -7.0 kB │
│ -14.05%  │ vendor/golang.org/x/text/unicode/norm                                        │ 50 kB    │ 43 kB    │ -7.1 kB │
│ -18.23%  │ gopkg.in/ini.v1                                                              │ 41 kB    │ 34 kB    │ -7.5 kB │
│ -7.15%   │ k8s.io/klog/v2                                                               │ 124 kB   │ 115 kB   │ -8.9 kB │
│ -5.16%   │ sigs.k8s.io/json                                                             │ 173 kB   │ 164 kB   │ -8.9 kB │
│ -12.26%  │ github.com/spf13/viper                                                       │ 74 kB    │ 65 kB    │ -9.0 kB │
│ -10.87%  │ github.com/gorilla/websocket                                                 │ 84 kB    │ 75 kB    │ -9.1 kB │
│ -16.26%  │ io                                                                           │ 56 kB    │ 47 kB    │ -9.1 kB │
│ -10.42%  │ go.opentelemetry.io/auto/sdk                                                 │ 88 kB    │ 79 kB    │ -9.2 kB │
│ -10.13%  │ github.com/coreos/go-systemd/v22                                             │ 91 kB    │ 82 kB    │ -9.2 kB │
│ -1.31%   │ github.com/sablierapp/sablier                                                │ 720 kB   │ 710 kB   │ -9.4 kB │
│ -2.90%   │ reflect                                                                      │ 340 kB   │ 330 kB   │ -9.8 kB │
│ -10.29%  │ syscall                                                                      │ 101 kB   │ 91 kB    │ -10 kB  │
│ -23.31%  │ github.com/prometheus/client_model                                           │ 47 kB    │ 36 kB    │ -11 kB  │
│ -5.04%   │ github.com/spf13/cobra                                                       │ 239 kB   │ 227 kB   │ -12 kB  │
│ -4.15%   │ math                                                                         │ 306 kB   │ 293 kB   │ -13 kB  │
│ -4.80%   │ go.yaml.in/yaml/v2                                                           │ 275 kB   │ 262 kB   │ -13 kB  │
│ -6.90%   │ os                                                                           │ 213 kB   │ 198 kB   │ -15 kB  │
│ -4.69%   │ go.yaml.in/yaml/v3                                                           │ 315 kB   │ 300 kB   │ -15 kB  │
│ -9.98%   │ github.com/modern-go/reflect2                                                │ 148 kB   │ 134 kB   │ -15 kB  │
│ -9.13%   │ golang.org/x/text                                                            │ 166 kB   │ 151 kB   │ -15 kB  │
│ -4.94%   │ github.com/pelletier/go-toml/v2                                              │ 336 kB   │ 319 kB   │ -17 kB  │
│ -12.53%  │ github.com/emicklei/go-restful/v3                                            │ 134 kB   │ 117 kB   │ -17 kB  │
│ -18.21%  │ github.com/go-openapi/swag                                                   │ 95 kB    │ 78 kB    │ -17 kB  │
│ -38.34%  │ golang.org/x/sys                                                             │ 46 kB    │ 29 kB    │ -18 kB  │
│ -21.31%  │ go.opentelemetry.io/proto/otlp                                               │ 84 kB    │ 66 kB    │ -18 kB  │
│ -15.95%  │ sync                                                                         │ 117 kB   │ 99 kB    │ -19 kB  │
│ -7.03%   │ text/template                                                                │ 292 kB   │ 272 kB   │ -21 kB  │
│ -7.22%   │ github.com/google/go-cmp                                                     │ 298 kB   │ 276 kB   │ -22 kB  │
│ -100%    │ go.shape                                                                     │ 22 kB    │          │ -22 kB  │
│ -7.27%   │ github.com/spf13/pflag                                                       │ 302 kB   │ 280 kB   │ -22 kB  │
│ -8.92%   │ sigs.k8s.io/structured-merge-diff/v6                                         │ 281 kB   │ 256 kB   │ -25 kB  │
│ -8.34%   │ k8s.io/kube-openapi                                                          │ 315 kB   │ 289 kB   │ -26 kB  │
│ -38.18%  │ vendor/golang.org/x/crypto/chacha20poly1305                                  │ 71 kB    │ 44 kB    │ -27 kB  │
│ -8.63%   │ github.com/diskfs/go-diskfs                                                  │ 330 kB   │ 302 kB   │ -28 kB  │
│ -8.37%   │ github.com/godbus/dbus/v5                                                    │ 345 kB   │ 316 kB   │ -29 kB  │
│ -10.60%  │ github.com/fxamacker/cbor/v2                                                 │ 305 kB   │ 272 kB   │ -32 kB  │
│ -9.74%   │ github.com/gin-gonic/gin                                                     │ 337 kB   │ 304 kB   │ -33 kB  │
│ -35.34%  │ github.com/spf13/cast                                                        │ 107 kB   │ 69 kB    │ -38 kB  │
│ -2.23%   │ net                                                                          │ 1.7 MB   │ 1.7 MB   │ -38 kB  │
│ -5.81%   │ github.com/goccy/go-yaml                                                     │ 703 kB   │ 662 kB   │ -41 kB  │
│ -13.02%  │ github.com/prometheus/client_golang                                          │ 320 kB   │ 278 kB   │ -42 kB  │
│ -6.21%   │ go.mongodb.org/mongo-driver/v2                                               │ 675 kB   │ 633 kB   │ -42 kB  │
│ -12.36%  │ github.com/go-playground/validator/v10                                       │ 394 kB   │ 346 kB   │ -49 kB  │
│ -10.85%  │ github.com/json-iterator/go                                                  │ 464 kB   │ 414 kB   │ -50 kB  │
│ -16.68%  │ github.com/moby/moby/client                                                  │ 440 kB   │ 367 kB   │ -73 kB  │
│ -52.80%  │ github.com/moby/moby/api                                                     │ 149 kB   │ 70 kB    │ -79 kB  │
│ -7.76%   │ github.com/google/gnostic-models                                             │ 1.6 MB   │ 1.5 MB   │ -124 kB │
│ -6.53%   │ k8s.io/apimachinery                                                          │ 2.0 MB   │ 1.8 MB   │ -128 kB │
│ -10.18%  │ github.com/quic-go/quic-go                                                   │ 1.4 MB   │ 1.2 MB   │ -139 kB │
│ -12.48%  │ go.opentelemetry.io/otel                                                     │ 1.1 MB   │ 999 kB   │ -142 kB │
│ -12.55%  │ google.golang.org/grpc                                                       │ 1.2 MB   │ 1.1 MB   │ -153 kB │
│ -8.90%   │ google.golang.org/protobuf                                                   │ 2.0 MB   │ 1.8 MB   │ -175 kB │
│ -46.63%  │ golang.org/x/net                                                             │ 903 kB   │ 482 kB   │ -421 kB │
│ -46.07%  │ <unnamed:generated>                                                          │ 1.0 MB   │ 552 kB   │ -472 kB │
│ -4.56%   │ k8s.io/api                                                                   │ 18 MB    │ 17 MB    │ -819 kB │
│ -74.91%  │ runtime                                                                      │ 4.0 MB   │ 1.0 MB   │ -3.0 MB │
│ -14.74%  │ k8s.io/client-go                                                             │ 24 MB    │ 20 MB    │ -3.5 MB │
├──────────┼──────────────────────────────────────────────────────────────────────────────┼──────────┼──────────┼─────────┤
│ +5.95%   │ .data                                                                        │ 236 kB   │ 250 kB   │ +14 kB  │
│ +1.37%   │ .noptrdata                                                                   │ 459 kB   │ 466 kB   │ +6.3 kB │
│ +100%    │ .go.type                                                                     │          │          │ +0 B    │
│ +100%    │ .go.func                                                                     │          │          │ +0 B    │
│ -100%    │ .typelink                                                                    │          │          │ +0 B    │
│ -100%    │ .itablink                                                                    │          │          │ +0 B    │
│ -31.27%  │ .rodata                                                                      │ 3.0 MB   │ 2.0 MB   │ -923 kB │
├──────────┼──────────────────────────────────────────────────────────────────────────────┼──────────┼──────────┼─────────┤
│ +7.97%   │ sablier                                                                      │ 72 MB    │ 78 MB    │ +5.7 MB │
│          │ sablier                                                                      │          │          │         │
└──────────┴──────────────────────────────────────────────────────────────────────────────┴──────────┴──────────┴─────────┘

acouvreur and others added 3 commits September 10, 2026 23:40
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@github-actions github-actions Bot added the ci label Sep 11, 2026
@sonarqubecloud

Copy link
Copy Markdown

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci documentation Improvements or additions to documentation provider Issue related to a provider

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add ECS provider

1 participant