diff --git a/.bazelrc b/.bazelrc index 446b159..ea792e2 100644 --- a/.bazelrc +++ b/.bazelrc @@ -1,7 +1,5 @@ -run --workspace_status_command="./tools/print-workspace-status" - -build --define repo=changeme --define namespace=node-remediation -test --define repo=changeme --define namespace=node-remediation -run --define repo=changeme --define namespace=node-remediation +build --define repo=docker.io/cloudflare --define namespace=node-remediation +test --define repo=docker.io/cloudflare --define namespace=node-remediation +run --define repo=docker.io/cloudflare --define namespace=node-remediation try-import %workspace%/user.bazelrc diff --git a/.bazelversion b/.bazelversion index 1e20ec3..f9c71a5 100644 --- a/.bazelversion +++ b/.bazelversion @@ -1 +1 @@ -5.4.0 \ No newline at end of file +8.5.1 diff --git a/.github/workflows/check.yaml b/.github/workflows/check.yaml index 7dce44b..ef72402 100644 --- a/.github/workflows/check.yaml +++ b/.github/workflows/check.yaml @@ -8,7 +8,7 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v7 - uses: bazel-contrib/setup-bazel@0.14.0 with: bazelisk-cache: true @@ -17,16 +17,16 @@ jobs: lint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - uses: actions/setup-go@v5 with: go-version: stable - name: golangci-lint - uses: golangci/golangci-lint-action@v6 + uses: golangci/golangci-lint-action@v9 test: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v7 - uses: bazel-contrib/setup-bazel@0.14.0 with: bazelisk-cache: true diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 9156821..d92ef83 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -6,25 +6,34 @@ on: jobs: publish: runs-on: ubuntu-latest + env: + REPO: docker.io/cloudflare steps: - name: Login to Docker Hub - uses: docker/login-action@v1 + uses: docker/login-action@v4 with: username: ${{ secrets.DOCKER_HUB_USERNAME }} password: ${{ secrets.DOCKER_HUB_TOKEN }} - - uses: actions/checkout@v2 + - uses: actions/checkout@v7 with: fetch-depth: 0 - - run: | - git fetch --tags --force + - run: git fetch --tags --force - uses: bazel-contrib/setup-bazel@0.14.0 with: bazelisk-cache: true repository-cache: true - - run: bazel --bazelrc=tools/ci.bazelrc run //manifests:stable > stable.yaml - - run: bazel --bazelrc=tools/ci.bazelrc run //manifests:cluster > cluster.yaml + - name: Push multi-arch image + run: | + bazel --bazelrc=tools/ci.bazelrc run //cmd/sciuro:push -- \ + --repository=${REPO}/sciuro --tag=${GITHUB_REF_NAME} + - name: Render manifests + run: | + bazel --bazelrc=tools/ci.bazelrc build //manifests:stable //manifests:cluster \ + --define repo=${REPO} + cp bazel-bin/manifests/stable.yaml stable.yaml + cp bazel-bin/manifests/cluster.yaml cluster.yaml - name: Release - uses: softprops/action-gh-release@v1 + uses: softprops/action-gh-release@v2 with: files: | stable.yaml diff --git a/.golangci.yml b/.golangci.yml index 2a9bf8c..c4ed7ad 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -1,58 +1,17 @@ +version: "2" + run: timeout: 5m - modules-download-mode: readonly linters: - enable: - - bodyclose - - contextcheck - - copyloopvar - - decorder - - dogsled - - errcheck - - errorlint - - gochecknoinits - - goconst - - gocritic - - godox - - goimports - - goprintffuncname - - gosec - - gosimple - - govet - - ineffassign - - misspell - - nakedret - - prealloc - - revive - - staticcheck - - stylecheck - - typecheck - - unconvert - - unparam - - unused -linters-settings: - gocritic: - enabled-tags: - - diagnostic - - experimental - - opinionated - - performance - - style - disabled-checks: - - commentFormatting - - exitAfterDefer - - hugeParam - - ifElseChain - - rangeValCopy - - unnecessaryBlock - gofmt: - simplify: true - misspell: - locale: US - ignore-words: - - clas - godox: - keywords: - - HACK - - XXX + exclusions: + generated: lax + presets: + - comments + - common-false-positives + - legacy + - std-error-handling + +formatters: + exclusions: + generated: lax diff --git a/BUILD b/BUILD index 868b1f0..12552cb 100644 --- a/BUILD +++ b/BUILD @@ -1,4 +1,4 @@ -load("@bazel_gazelle//:def.bzl", "gazelle") +load("@gazelle//:def.bzl", "gazelle") # gazelle:prefix github.com/cloudflare/sciuro gazelle(name = "gazelle") diff --git a/MODULE.bazel b/MODULE.bazel new file mode 100644 index 0000000..7b263ea --- /dev/null +++ b/MODULE.bazel @@ -0,0 +1,32 @@ +module( + name = "sciuro", + version = "0.0.0", +) + +bazel_dep(name = "rules_go", version = "0.61.1") +bazel_dep(name = "gazelle", version = "0.51.3") +bazel_dep(name = "rules_oci", version = "2.3.0") +bazel_dep(name = "rules_pkg", version = "1.2.0") +bazel_dep(name = "aspect_bazel_lib", version = "2.22.5") +bazel_dep(name = "platforms", version = "1.1.0") +bazel_dep(name = "bazel_skylib", version = "1.9.0") + +go_sdk = use_extension("@rules_go//go:extensions.bzl", "go_sdk") +go_sdk.download(version = "1.24.13") + +include("//:go_deps.MODULE.bazel") + +oci = use_extension("@rules_oci//oci:extensions.bzl", "oci") + +# Multi-arch distroless static base, suitable for a CGO-free static Go binary. +# gcr.io/distroless/static-debian12:latest +oci.pull( + name = "distroless_static", + digest = "sha256:9c346e4be81b5ca7ff31a0d89eaeade58b0f95cfd3baed1f36083ddb47ca3160", + image = "gcr.io/distroless/static-debian12", + platforms = [ + "linux/amd64", + "linux/arm64/v8", + ], +) +use_repo(oci, "distroless_static", "distroless_static_linux_amd64", "distroless_static_linux_arm64_v8") diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock new file mode 100644 index 0000000..2baf0a0 --- /dev/null +++ b/MODULE.bazel.lock @@ -0,0 +1,597 @@ +{ + "lockFileVersion": 24, + "registryFileHashes": { + "https://bcr.bazel.build/bazel_registry.json": "8a28e4aff06ee60aed2a8c281907fb8bcbf3b753c91fb5a5c57da3215d5b3497", + "https://bcr.bazel.build/modules/abseil-cpp/20210324.2/MODULE.bazel": "7cd0312e064fde87c8d1cd79ba06c876bd23630c83466e9500321be55c96ace2", + "https://bcr.bazel.build/modules/abseil-cpp/20211102.0/MODULE.bazel": "70390338f7a5106231d20620712f7cccb659cd0e9d073d1991c038eb9fc57589", + "https://bcr.bazel.build/modules/abseil-cpp/20230125.1/MODULE.bazel": "89047429cb0207707b2dface14ba7f8df85273d484c2572755be4bab7ce9c3a0", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0.bcr.1/MODULE.bazel": "1c8cec495288dccd14fdae6e3f95f772c1c91857047a098fad772034264cc8cb", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0/MODULE.bazel": "d253ae36a8bd9ee3c5955384096ccb6baf16a1b1e93e858370da0a3b94f77c16", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.1/MODULE.bazel": "fa92e2eb41a04df73cdabeec37107316f7e5272650f81d6cc096418fe647b915", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/MODULE.bazel": "37bcdb4440fbb61df6a1c296ae01b327f19e9bb521f9b8e26ec854b6f97309ed", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/source.json": "9be551b8d4e3ef76875c0d744b5d6a504a27e3ae67bc6b28f46415fd2d2957da", + "https://bcr.bazel.build/modules/aspect_bazel_lib/2.14.0/MODULE.bazel": "2b31ffcc9bdc8295b2167e07a757dbbc9ac8906e7028e5170a3708cecaac119f", + "https://bcr.bazel.build/modules/aspect_bazel_lib/2.19.3/MODULE.bazel": "253d739ba126f62a5767d832765b12b59e9f8d2bc88cc1572f4a73e46eb298ca", + "https://bcr.bazel.build/modules/aspect_bazel_lib/2.21.1/MODULE.bazel": "07e3ce3eaaa50dbd0be7fa0094e36890478937adc780ec53e77fd9fe543af8b1", + "https://bcr.bazel.build/modules/aspect_bazel_lib/2.22.5/MODULE.bazel": "004ba890363d05372a97248c37205ae64b6fa31047629cd2c0895a9d0c7779e8", + "https://bcr.bazel.build/modules/aspect_bazel_lib/2.22.5/source.json": "ac2c3213df8f985785f1d0aeb7f0f73d5324e6e67d593d9b9470fb74a25d4a9b", + "https://bcr.bazel.build/modules/aspect_bazel_lib/2.8.1/MODULE.bazel": "812d2dd42f65dca362152101fbec418029cc8fd34cbad1a2fde905383d705838", + "https://bcr.bazel.build/modules/bazel_features/1.1.0/MODULE.bazel": "cfd42ff3b815a5f39554d97182657f8c4b9719568eb7fded2b9135f084bf760b", + "https://bcr.bazel.build/modules/bazel_features/1.1.1/MODULE.bazel": "27b8c79ef57efe08efccbd9dd6ef70d61b4798320b8d3c134fd571f78963dbcd", + "https://bcr.bazel.build/modules/bazel_features/1.10.0/MODULE.bazel": "f75e8807570484a99be90abcd52b5e1f390362c258bcb73106f4544957a48101", + "https://bcr.bazel.build/modules/bazel_features/1.11.0/MODULE.bazel": "f9382337dd5a474c3b7d334c2f83e50b6eaedc284253334cf823044a26de03e8", + "https://bcr.bazel.build/modules/bazel_features/1.15.0/MODULE.bazel": "d38ff6e517149dc509406aca0db3ad1efdd890a85e049585b7234d04238e2a4d", + "https://bcr.bazel.build/modules/bazel_features/1.17.0/MODULE.bazel": "039de32d21b816b47bd42c778e0454217e9c9caac4a3cf8e15c7231ee3ddee4d", + "https://bcr.bazel.build/modules/bazel_features/1.18.0/MODULE.bazel": "1be0ae2557ab3a72a57aeb31b29be347bcdc5d2b1eb1e70f39e3851a7e97041a", + "https://bcr.bazel.build/modules/bazel_features/1.19.0/MODULE.bazel": "59adcdf28230d220f0067b1f435b8537dd033bfff8db21335ef9217919c7fb58", + "https://bcr.bazel.build/modules/bazel_features/1.21.0/MODULE.bazel": "675642261665d8eea09989aa3b8afb5c37627f1be178382c320d1b46afba5e3b", + "https://bcr.bazel.build/modules/bazel_features/1.28.0/MODULE.bazel": "4b4200e6cbf8fa335b2c3f43e1d6ef3e240319c33d43d60cc0fbd4b87ece299d", + "https://bcr.bazel.build/modules/bazel_features/1.30.0/MODULE.bazel": "a14b62d05969a293b80257e72e597c2da7f717e1e69fa8b339703ed6731bec87", + "https://bcr.bazel.build/modules/bazel_features/1.34.0/MODULE.bazel": "e8475ad7c8965542e0c7aac8af68eb48c4af904be3d614b6aa6274c092c2ea1e", + "https://bcr.bazel.build/modules/bazel_features/1.36.0/MODULE.bazel": "596cb62090b039caf1cad1d52a8bc35cf188ca9a4e279a828005e7ee49a1bec3", + "https://bcr.bazel.build/modules/bazel_features/1.36.0/source.json": "279625cafa5b63cc0a8ee8448d93bc5ac1431f6000c50414051173fd22a6df3c", + "https://bcr.bazel.build/modules/bazel_features/1.4.1/MODULE.bazel": "e45b6bb2350aff3e442ae1111c555e27eac1d915e77775f6fdc4b351b758b5d7", + "https://bcr.bazel.build/modules/bazel_features/1.9.0/MODULE.bazel": "885151d58d90d8d9c811eb75e3288c11f850e1d6b481a8c9f766adee4712358b", + "https://bcr.bazel.build/modules/bazel_features/1.9.1/MODULE.bazel": "8f679097876a9b609ad1f60249c49d68bfab783dd9be012faf9d82547b14815a", + "https://bcr.bazel.build/modules/bazel_lib/3.0.0/MODULE.bazel": "22b70b80ac89ad3f3772526cd9feee2fa412c2b01933fea7ed13238a448d370d", + "https://bcr.bazel.build/modules/bazel_lib/3.0.0/source.json": "895f21909c6fba01d7c17914bb6c8e135982275a1b18cdaa4e62272217ef1751", + "https://bcr.bazel.build/modules/bazel_skylib/1.0.3/MODULE.bazel": "bcb0fd896384802d1ad283b4e4eb4d718eebd8cb820b0a2c3a347fb971afd9d8", + "https://bcr.bazel.build/modules/bazel_skylib/1.1.1/MODULE.bazel": "1add3e7d93ff2e6998f9e118022c84d163917d912f5afafb3058e3d2f1545b5e", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.0/MODULE.bazel": "44fe84260e454ed94ad326352a698422dbe372b21a1ac9f3eab76eb531223686", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.1/MODULE.bazel": "f35baf9da0efe45fa3da1696ae906eea3d615ad41e2e3def4aeb4e8bc0ef9a7a", + "https://bcr.bazel.build/modules/bazel_skylib/1.3.0/MODULE.bazel": "20228b92868bf5cfc41bda7afc8a8ba2a543201851de39d990ec957b513579c5", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.1/MODULE.bazel": "a0dcb779424be33100dcae821e9e27e4f2901d9dfd5333efe5ac6a8d7ab75e1d", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.2/MODULE.bazel": "3bd40978e7a1fac911d5989e6b09d8f64921865a45822d8b09e815eaa726a651", + "https://bcr.bazel.build/modules/bazel_skylib/1.5.0/MODULE.bazel": "32880f5e2945ce6a03d1fbd588e9198c0a959bb42297b2cfaf1685b7bc32e138", + "https://bcr.bazel.build/modules/bazel_skylib/1.6.1/MODULE.bazel": "8fdee2dbaace6c252131c00e1de4b165dc65af02ea278476187765e1a617b917", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.0/MODULE.bazel": "0db596f4563de7938de764cc8deeabec291f55e8ec15299718b93c4423e9796d", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.1/MODULE.bazel": "3120d80c5861aa616222ec015332e5f8d3171e062e3e804a2a0253e1be26e59b", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.1/MODULE.bazel": "88ade7293becda963e0e3ea33e7d54d3425127e0a326e0d17da085a5f1f03ff6", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.2/MODULE.bazel": "69ad6927098316848b34a9142bcc975e018ba27f08c4ff403f50c1b6e646ca67", + "https://bcr.bazel.build/modules/bazel_skylib/1.9.0/MODULE.bazel": "72997b29dfd95c3fa0d0c48322d05590418edef451f8db8db5509c57875fb4b7", + "https://bcr.bazel.build/modules/bazel_skylib/1.9.0/source.json": "7ad77c1e8c1b84222d9b3f3cae016a76639435744c19330b0b37c0a3c9da7dc0", + "https://bcr.bazel.build/modules/buildozer/7.1.2/MODULE.bazel": "2e8dd40ede9c454042645fd8d8d0cd1527966aa5c919de86661e62953cd73d84", + "https://bcr.bazel.build/modules/buildozer/7.1.2/source.json": "c9028a501d2db85793a6996205c8de120944f50a0d570438fcae0457a5f9d1f8", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.1/MODULE.bazel": "cdf8cbe5ee750db04b78878c9633cc76e80dcf4416cbe982ac3a9222f80713c8", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.1/source.json": "fa7b512dfcb5eafd90ce3959cf42a2a6fe96144ebbb4b3b3928054895f2afac2", + "https://bcr.bazel.build/modules/gazelle/0.32.0/MODULE.bazel": "b499f58a5d0d3537f3cf5b76d8ada18242f64ec474d8391247438bf04f58c7b8", + "https://bcr.bazel.build/modules/gazelle/0.33.0/MODULE.bazel": "a13a0f279b462b784fb8dd52a4074526c4a2afe70e114c7d09066097a46b3350", + "https://bcr.bazel.build/modules/gazelle/0.34.0/MODULE.bazel": "abdd8ce4d70978933209db92e436deb3a8b737859e9354fb5fd11fb5c2004c8a", + "https://bcr.bazel.build/modules/gazelle/0.36.0/MODULE.bazel": "e375d5d6e9a6ca59b0cb38b0540bc9a05b6aa926d322f2de268ad267a2ee74c0", + "https://bcr.bazel.build/modules/gazelle/0.51.3/MODULE.bazel": "618a729142f66de1e2cb776d026413763be5b80d5e3d29ffb9d3d90c5defde90", + "https://bcr.bazel.build/modules/gazelle/0.51.3/source.json": "fbe5312a01fb4a2a58caff4a0d40dcf384b6f0bda75e85546663360da1d7538a", + "https://bcr.bazel.build/modules/google_benchmark/1.8.2/MODULE.bazel": "a70cf1bba851000ba93b58ae2f6d76490a9feb74192e57ab8e8ff13c34ec50cb", + "https://bcr.bazel.build/modules/googletest/1.11.0/MODULE.bazel": "3a83f095183f66345ca86aa13c58b59f9f94a2f81999c093d4eeaa2d262d12f4", + "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/MODULE.bazel": "22c31a561553727960057361aa33bf20fb2e98584bc4fec007906e27053f80c6", + "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/source.json": "41e9e129f80d8c8bf103a7acc337b76e54fad1214ac0a7084bf24f4cd924b8b4", + "https://bcr.bazel.build/modules/googletest/1.14.0/MODULE.bazel": "cfbcbf3e6eac06ef9d85900f64424708cc08687d1b527f0ef65aa7517af8118f", + "https://bcr.bazel.build/modules/jq.bzl/0.1.0/MODULE.bazel": "2ce69b1af49952cd4121a9c3055faa679e748ce774c7f1fda9657f936cae902f", + "https://bcr.bazel.build/modules/jq.bzl/0.1.0/source.json": "746bf13cac0860f091df5e4911d0c593971cd8796b5ad4e809b2f8e133eee3d5", + "https://bcr.bazel.build/modules/jsoncpp/1.9.5/MODULE.bazel": "31271aedc59e815656f5736f282bb7509a97c7ecb43e927ac1a37966e0578075", + "https://bcr.bazel.build/modules/jsoncpp/1.9.5/source.json": "4108ee5085dd2885a341c7fab149429db457b3169b86eb081fa245eadf69169d", + "https://bcr.bazel.build/modules/libpfm/4.11.0/MODULE.bazel": "45061ff025b301940f1e30d2c16bea596c25b176c8b6b3087e92615adbd52902", + "https://bcr.bazel.build/modules/package_metadata/0.0.2/MODULE.bazel": "fb8d25550742674d63d7b250063d4580ca530499f045d70748b1b142081ebb92", + "https://bcr.bazel.build/modules/package_metadata/0.0.3/MODULE.bazel": "77890552ecea9e284b5424c9de827a58099348763a4359e975c359a83d4faa83", + "https://bcr.bazel.build/modules/package_metadata/0.0.5/MODULE.bazel": "ef4f9439e3270fdd6b9fd4dbc3d2f29d13888e44c529a1b243f7a31dfbc2e8e4", + "https://bcr.bazel.build/modules/package_metadata/0.0.6/MODULE.bazel": "341dab6f417197494517d54c8e557c0baee1de7aec83543a4fbefe57900acb7e", + "https://bcr.bazel.build/modules/package_metadata/0.0.6/source.json": "9581d8b22db43550ac75ecc314ee4fa0a33400bfdc77d1317d8af6b18dca7756", + "https://bcr.bazel.build/modules/platforms/0.0.10/MODULE.bazel": "8cb8efaf200bdeb2150d93e162c40f388529a25852b332cec879373771e48ed5", + "https://bcr.bazel.build/modules/platforms/0.0.11/MODULE.bazel": "0daefc49732e227caa8bfa834d65dc52e8cc18a2faf80df25e8caea151a9413f", + "https://bcr.bazel.build/modules/platforms/0.0.4/MODULE.bazel": "9b328e31ee156f53f3c416a64f8491f7eb731742655a47c9eec4703a71644aee", + "https://bcr.bazel.build/modules/platforms/0.0.5/MODULE.bazel": "5733b54ea419d5eaf7997054bb55f6a1d0b5ff8aedf0176fef9eea44f3acda37", + "https://bcr.bazel.build/modules/platforms/0.0.6/MODULE.bazel": "ad6eeef431dc52aefd2d77ed20a4b353f8ebf0f4ecdd26a807d2da5aa8cd0615", + "https://bcr.bazel.build/modules/platforms/0.0.7/MODULE.bazel": "72fd4a0ede9ee5c021f6a8dd92b503e089f46c227ba2813ff183b71616034814", + "https://bcr.bazel.build/modules/platforms/0.0.8/MODULE.bazel": "9f142c03e348f6d263719f5074b21ef3adf0b139ee4c5133e2aa35664da9eb2d", + "https://bcr.bazel.build/modules/platforms/1.0.0/MODULE.bazel": "f05feb42b48f1b3c225e4ccf351f367be0371411a803198ec34a389fb22aa580", + "https://bcr.bazel.build/modules/platforms/1.1.0/MODULE.bazel": "1c0c09f5bdcf4b3f924720d2478a3711cb39f4977019ca5988685e5b7e18b3d2", + "https://bcr.bazel.build/modules/platforms/1.1.0/source.json": "fcf351c47596c939140ab0d333dfdd08ed1ea6ce33c2fe70c12493a301cf1344", + "https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel": "a5a29bb89544f9b97edce05642fac225a808b5b7be74038ea3640fae2f8e66a7", + "https://bcr.bazel.build/modules/protobuf/27.0/MODULE.bazel": "7873b60be88844a0a1d8f80b9d5d20cfbd8495a689b8763e76c6372998d3f64c", + "https://bcr.bazel.build/modules/protobuf/27.1/MODULE.bazel": "703a7b614728bb06647f965264967a8ef1c39e09e8f167b3ca0bb1fd80449c0d", + "https://bcr.bazel.build/modules/protobuf/29.0-rc2.bcr.1/MODULE.bazel": "52f4126f63a2f0bbf36b99c2a87648f08467a4eaf92ba726bc7d6a500bbf770c", + "https://bcr.bazel.build/modules/protobuf/29.0-rc2/MODULE.bazel": "6241d35983510143049943fc0d57937937122baf1b287862f9dc8590fc4c37df", + "https://bcr.bazel.build/modules/protobuf/29.0-rc3/MODULE.bazel": "33c2dfa286578573afc55a7acaea3cada4122b9631007c594bf0729f41c8de92", + "https://bcr.bazel.build/modules/protobuf/29.0/MODULE.bazel": "319dc8bf4c679ff87e71b1ccfb5a6e90a6dbc4693501d471f48662ac46d04e4e", + "https://bcr.bazel.build/modules/protobuf/29.0/source.json": "b857f93c796750eef95f0d61ee378f3420d00ee1dd38627b27193aa482f4f981", + "https://bcr.bazel.build/modules/protobuf/3.19.0/MODULE.bazel": "6b5fbb433f760a99a22b18b6850ed5784ef0e9928a72668b66e4d7ccd47db9b0", + "https://bcr.bazel.build/modules/protobuf/3.19.2/MODULE.bazel": "532ffe5f2186b69fdde039efe6df13ba726ff338c6bc82275ad433013fa10573", + "https://bcr.bazel.build/modules/protobuf/3.19.6/MODULE.bazel": "9233edc5e1f2ee276a60de3eaa47ac4132302ef9643238f23128fea53ea12858", + "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/MODULE.bazel": "88af1c246226d87e65be78ed49ecd1e6f5e98648558c14ce99176da041dc378e", + "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/source.json": "be4789e951dd5301282729fe3d4938995dc4c1a81c2ff150afc9f1b0504c6022", + "https://bcr.bazel.build/modules/re2/2023-09-01/MODULE.bazel": "cb3d511531b16cfc78a225a9e2136007a48cf8a677e4264baeab57fe78a80206", + "https://bcr.bazel.build/modules/re2/2023-09-01/source.json": "e044ce89c2883cd957a2969a43e79f7752f9656f6b20050b62f90ede21ec6eb4", + "https://bcr.bazel.build/modules/rules_android/0.1.1/MODULE.bazel": "48809ab0091b07ad0182defb787c4c5328bd3a278938415c00a7b69b50c4d3a8", + "https://bcr.bazel.build/modules/rules_android/0.1.1/source.json": "e6986b41626ee10bdc864937ffb6d6bf275bb5b9c65120e6137d56e6331f089e", + "https://bcr.bazel.build/modules/rules_cc/0.0.1/MODULE.bazel": "cb2aa0747f84c6c3a78dad4e2049c154f08ab9d166b1273835a8174940365647", + "https://bcr.bazel.build/modules/rules_cc/0.0.10/MODULE.bazel": "ec1705118f7eaedd6e118508d3d26deba2a4e76476ada7e0e3965211be012002", + "https://bcr.bazel.build/modules/rules_cc/0.0.13/MODULE.bazel": "0e8529ed7b323dad0775ff924d2ae5af7640b23553dfcd4d34344c7e7a867191", + "https://bcr.bazel.build/modules/rules_cc/0.0.14/MODULE.bazel": "5e343a3aac88b8d7af3b1b6d2093b55c347b8eefc2e7d1442f7a02dc8fea48ac", + "https://bcr.bazel.build/modules/rules_cc/0.0.15/MODULE.bazel": "6704c35f7b4a72502ee81f61bf88706b54f06b3cbe5558ac17e2e14666cd5dcc", + "https://bcr.bazel.build/modules/rules_cc/0.0.16/MODULE.bazel": "7661303b8fc1b4d7f532e54e9d6565771fea666fbdf839e0a86affcd02defe87", + "https://bcr.bazel.build/modules/rules_cc/0.0.17/MODULE.bazel": "2ae1d8f4238ec67d7185d8861cb0a2cdf4bc608697c331b95bf990e69b62e64a", + "https://bcr.bazel.build/modules/rules_cc/0.0.2/MODULE.bazel": "6915987c90970493ab97393024c156ea8fb9f3bea953b2f3ec05c34f19b5695c", + "https://bcr.bazel.build/modules/rules_cc/0.0.6/MODULE.bazel": "abf360251023dfe3efcef65ab9d56beefa8394d4176dd29529750e1c57eaa33f", + "https://bcr.bazel.build/modules/rules_cc/0.0.8/MODULE.bazel": "964c85c82cfeb6f3855e6a07054fdb159aced38e99a5eecf7bce9d53990afa3e", + "https://bcr.bazel.build/modules/rules_cc/0.0.9/MODULE.bazel": "836e76439f354b89afe6a911a7adf59a6b2518fafb174483ad78a2a2fde7b1c5", + "https://bcr.bazel.build/modules/rules_cc/0.1.1/MODULE.bazel": "2f0222a6f229f0bf44cd711dc13c858dad98c62d52bd51d8fc3a764a83125513", + "https://bcr.bazel.build/modules/rules_cc/0.1.5/MODULE.bazel": "88dfc9361e8b5ae1008ac38f7cdfd45ad738e4fa676a3ad67d19204f045a1fd8", + "https://bcr.bazel.build/modules/rules_cc/0.1.5/source.json": "4bb4fed7f5499775d495739f785a5494a1f854645fa1bac5de131264f5acdf01", + "https://bcr.bazel.build/modules/rules_foreign_cc/0.9.0/MODULE.bazel": "c9e8c682bf75b0e7c704166d79b599f93b72cfca5ad7477df596947891feeef6", + "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/MODULE.bazel": "40c97d1144356f52905566c55811f13b299453a14ac7769dfba2ac38192337a8", + "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/source.json": "c8b1e2c717646f1702290959a3302a178fb639d987ab61d548105019f11e527e", + "https://bcr.bazel.build/modules/rules_go/0.41.0/MODULE.bazel": "55861d8e8bb0e62cbd2896f60ff303f62ffcb0eddb74ecb0e5c0cbe36fc292c8", + "https://bcr.bazel.build/modules/rules_go/0.42.0/MODULE.bazel": "8cfa875b9aa8c6fce2b2e5925e73c1388173ea3c32a0db4d2b4804b453c14270", + "https://bcr.bazel.build/modules/rules_go/0.46.0/MODULE.bazel": "3477df8bdcc49e698b9d25f734c4f3a9f5931ff34ee48a2c662be168f5f2d3fd", + "https://bcr.bazel.build/modules/rules_go/0.59.0/MODULE.bazel": "b7e43e7414a3139a7547d1b4909b29085fbe5182b6c58cbe1ed4c6272815aeae", + "https://bcr.bazel.build/modules/rules_go/0.61.1/MODULE.bazel": "b599cc67f98e8dbe040631129fbd23f190a557f7be506d4781619d0fd4dbbbec", + "https://bcr.bazel.build/modules/rules_go/0.61.1/source.json": "ff52d46fca8e2ac87c610c11f05c3a9f0fa08dc4294664c6a31449092409c5aa", + "https://bcr.bazel.build/modules/rules_java/4.0.0/MODULE.bazel": "5a78a7ae82cd1a33cef56dc578c7d2a46ed0dca12643ee45edbb8417899e6f74", + "https://bcr.bazel.build/modules/rules_java/5.3.5/MODULE.bazel": "a4ec4f2db570171e3e5eb753276ee4b389bae16b96207e9d3230895c99644b86", + "https://bcr.bazel.build/modules/rules_java/6.0.0/MODULE.bazel": "8a43b7df601a7ec1af61d79345c17b31ea1fedc6711fd4abfd013ea612978e39", + "https://bcr.bazel.build/modules/rules_java/6.3.0/MODULE.bazel": "a97c7678c19f236a956ad260d59c86e10a463badb7eb2eda787490f4c969b963", + "https://bcr.bazel.build/modules/rules_java/6.4.0/MODULE.bazel": "e986a9fe25aeaa84ac17ca093ef13a4637f6107375f64667a15999f77db6c8f6", + "https://bcr.bazel.build/modules/rules_java/6.5.2/MODULE.bazel": "1d440d262d0e08453fa0c4d8f699ba81609ed0e9a9a0f02cd10b3e7942e61e31", + "https://bcr.bazel.build/modules/rules_java/7.10.0/MODULE.bazel": "530c3beb3067e870561739f1144329a21c851ff771cd752a49e06e3dc9c2e71a", + "https://bcr.bazel.build/modules/rules_java/7.12.2/MODULE.bazel": "579c505165ee757a4280ef83cda0150eea193eed3bef50b1004ba88b99da6de6", + "https://bcr.bazel.build/modules/rules_java/7.2.0/MODULE.bazel": "06c0334c9be61e6cef2c8c84a7800cef502063269a5af25ceb100b192453d4ab", + "https://bcr.bazel.build/modules/rules_java/7.3.2/MODULE.bazel": "50dece891cfdf1741ea230d001aa9c14398062f2b7c066470accace78e412bc2", + "https://bcr.bazel.build/modules/rules_java/7.6.1/MODULE.bazel": "2f14b7e8a1aa2f67ae92bc69d1ec0fa8d9f827c4e17ff5e5f02e91caa3b2d0fe", + "https://bcr.bazel.build/modules/rules_java/8.14.0/MODULE.bazel": "717717ed40cc69994596a45aec6ea78135ea434b8402fb91b009b9151dd65615", + "https://bcr.bazel.build/modules/rules_java/8.14.0/source.json": "8a88c4ca9e8759da53cddc88123880565c520503321e2566b4e33d0287a3d4bc", + "https://bcr.bazel.build/modules/rules_java/8.3.2/MODULE.bazel": "7336d5511ad5af0b8615fdc7477535a2e4e723a357b6713af439fe8cf0195017", + "https://bcr.bazel.build/modules/rules_java/8.5.1/MODULE.bazel": "d8a9e38cc5228881f7055a6079f6f7821a073df3744d441978e7a43e20226939", + "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel": "a56b85e418c83eb1839819f0b515c431010160383306d13ec21959ac412d2fe7", + "https://bcr.bazel.build/modules/rules_jvm_external/5.1/MODULE.bazel": "33f6f999e03183f7d088c9be518a63467dfd0be94a11d0055fe2d210f89aa909", + "https://bcr.bazel.build/modules/rules_jvm_external/5.2/MODULE.bazel": "d9351ba35217ad0de03816ef3ed63f89d411349353077348a45348b096615036", + "https://bcr.bazel.build/modules/rules_jvm_external/5.3/MODULE.bazel": "bf93870767689637164657731849fb887ad086739bd5d360d90007a581d5527d", + "https://bcr.bazel.build/modules/rules_jvm_external/6.1/MODULE.bazel": "75b5fec090dbd46cf9b7d8ea08cf84a0472d92ba3585b476f44c326eda8059c4", + "https://bcr.bazel.build/modules/rules_jvm_external/6.3/MODULE.bazel": "c998e060b85f71e00de5ec552019347c8bca255062c990ac02d051bb80a38df0", + "https://bcr.bazel.build/modules/rules_jvm_external/6.3/source.json": "6f5f5a5a4419ae4e37c35a5bb0a6ae657ed40b7abc5a5189111b47fcebe43197", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.0/MODULE.bazel": "ef85697305025e5a61f395d4eaede272a5393cee479ace6686dba707de804d59", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/MODULE.bazel": "d269a01a18ee74d0335450b10f62c9ed81f2321d7958a2934e44272fe82dcef3", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/source.json": "2faa4794364282db7c06600b7e5e34867a564ae91bda7cae7c29c64e9466b7d5", + "https://bcr.bazel.build/modules/rules_license/0.0.3/MODULE.bazel": "627e9ab0247f7d1e05736b59dbb1b6871373de5ad31c3011880b4133cafd4bd0", + "https://bcr.bazel.build/modules/rules_license/0.0.7/MODULE.bazel": "088fbeb0b6a419005b89cf93fe62d9517c0a2b8bb56af3244af65ecfe37e7d5d", + "https://bcr.bazel.build/modules/rules_license/1.0.0/MODULE.bazel": "a7fda60eefdf3d8c827262ba499957e4df06f659330bbe6cdbdb975b768bb65c", + "https://bcr.bazel.build/modules/rules_license/1.0.0/source.json": "a52c89e54cc311196e478f8382df91c15f7a2bfdf4c6cd0e2675cc2ff0b56efb", + "https://bcr.bazel.build/modules/rules_oci/2.3.0/MODULE.bazel": "49075197960c924c0a4d759b7c765c3d00a41d2fdd4a943b42823c1d016ab4ec", + "https://bcr.bazel.build/modules/rules_oci/2.3.0/source.json": "47710c28446211b5e61a24015a4669c50c6862d5f91e6bdbc710de8d750cf613", + "https://bcr.bazel.build/modules/rules_pkg/0.7.0/MODULE.bazel": "df99f03fc7934a4737122518bb87e667e62d780b610910f0447665a7e2be62dc", + "https://bcr.bazel.build/modules/rules_pkg/1.0.1/MODULE.bazel": "5b1df97dbc29623bccdf2b0dcd0f5cb08e2f2c9050aab1092fd39a41e82686ff", + "https://bcr.bazel.build/modules/rules_pkg/1.2.0/MODULE.bazel": "c7db3c2b407e673c7a39e3625dc05dc9f12d6682cbd82a3a5924a13b491eda7e", + "https://bcr.bazel.build/modules/rules_pkg/1.2.0/source.json": "9062e00845bf91a4247465d371baa837adf9b6ff44c542f73ba084f07667e1dc", + "https://bcr.bazel.build/modules/rules_proto/4.0.0/MODULE.bazel": "a7a7b6ce9bee418c1a760b3d84f83a299ad6952f9903c67f19e4edd964894e06", + "https://bcr.bazel.build/modules/rules_proto/5.3.0-21.7/MODULE.bazel": "e8dff86b0971688790ae75528fe1813f71809b5afd57facb44dad9e8eca631b7", + "https://bcr.bazel.build/modules/rules_proto/6.0.2/MODULE.bazel": "ce916b775a62b90b61888052a416ccdda405212b6aaeb39522f7dc53431a5e73", + "https://bcr.bazel.build/modules/rules_proto/7.0.2/MODULE.bazel": "bf81793bd6d2ad89a37a40693e56c61b0ee30f7a7fdbaf3eabbf5f39de47dea2", + "https://bcr.bazel.build/modules/rules_proto/7.0.2/source.json": "1e5e7260ae32ef4f2b52fd1d0de8d03b606a44c91b694d2f1afb1d3b28a48ce1", + "https://bcr.bazel.build/modules/rules_python/0.10.2/MODULE.bazel": "cc82bc96f2997baa545ab3ce73f196d040ffb8756fd2d66125a530031cd90e5f", + "https://bcr.bazel.build/modules/rules_python/0.23.1/MODULE.bazel": "49ffccf0511cb8414de28321f5fcf2a31312b47c40cc21577144b7447f2bf300", + "https://bcr.bazel.build/modules/rules_python/0.25.0/MODULE.bazel": "72f1506841c920a1afec76975b35312410eea3aa7b63267436bfb1dd91d2d382", + "https://bcr.bazel.build/modules/rules_python/0.28.0/MODULE.bazel": "cba2573d870babc976664a912539b320cbaa7114cd3e8f053c720171cde331ed", + "https://bcr.bazel.build/modules/rules_python/0.31.0/MODULE.bazel": "93a43dc47ee570e6ec9f5779b2e64c1476a6ce921c48cc9a1678a91dd5f8fd58", + "https://bcr.bazel.build/modules/rules_python/0.4.0/MODULE.bazel": "9208ee05fd48bf09ac60ed269791cf17fb343db56c8226a720fbb1cdf467166c", + "https://bcr.bazel.build/modules/rules_python/0.40.0/MODULE.bazel": "9d1a3cd88ed7d8e39583d9ffe56ae8a244f67783ae89b60caafc9f5cf318ada7", + "https://bcr.bazel.build/modules/rules_python/1.0.0/MODULE.bazel": "898a3d999c22caa585eb062b600f88654bf92efb204fa346fb55f6f8edffca43", + "https://bcr.bazel.build/modules/rules_python/1.0.0/source.json": "b0162a65c6312e45e7912e39abd1a7f8856c2c7e41ecc9b6dc688a6f6400a917", + "https://bcr.bazel.build/modules/rules_shell/0.2.0/MODULE.bazel": "fda8a652ab3c7d8fee214de05e7a9916d8b28082234e8d2c0094505c5268ed3c", + "https://bcr.bazel.build/modules/rules_shell/0.3.0/MODULE.bazel": "de4402cd12f4cc8fda2354fce179fdb068c0b9ca1ec2d2b17b3e21b24c1a937b", + "https://bcr.bazel.build/modules/rules_shell/0.4.1/MODULE.bazel": "00e501db01bbf4e3e1dd1595959092c2fadf2087b2852d3f553b5370f5633592", + "https://bcr.bazel.build/modules/rules_shell/0.4.1/source.json": "4757bd277fe1567763991c4425b483477bb82e35e777a56fd846eb5cceda324a", + "https://bcr.bazel.build/modules/stardoc/0.5.1/MODULE.bazel": "1a05d92974d0c122f5ccf09291442580317cdd859f07a8655f1db9a60374f9f8", + "https://bcr.bazel.build/modules/stardoc/0.5.3/MODULE.bazel": "c7f6948dae6999bf0db32c1858ae345f112cacf98f174c7a8bb707e41b974f1c", + "https://bcr.bazel.build/modules/stardoc/0.5.6/MODULE.bazel": "c43dabc564990eeab55e25ed61c07a1aadafe9ece96a4efabb3f8bf9063b71ef", + "https://bcr.bazel.build/modules/stardoc/0.6.2/MODULE.bazel": "7060193196395f5dd668eda046ccbeacebfd98efc77fed418dbe2b82ffaa39fd", + "https://bcr.bazel.build/modules/stardoc/0.7.0/MODULE.bazel": "05e3d6d30c099b6770e97da986c53bd31844d7f13d41412480ea265ac9e8079c", + "https://bcr.bazel.build/modules/stardoc/0.7.1/MODULE.bazel": "3548faea4ee5dda5580f9af150e79d0f6aea934fc60c1cc50f4efdd9420759e7", + "https://bcr.bazel.build/modules/stardoc/0.7.2/MODULE.bazel": "fc152419aa2ea0f51c29583fab1e8c99ddefd5b3778421845606ee628629e0e5", + "https://bcr.bazel.build/modules/stardoc/0.7.2/source.json": "58b029e5e901d6802967754adf0a9056747e8176f017cfe3607c0851f4d42216", + "https://bcr.bazel.build/modules/tar.bzl/0.2.1/MODULE.bazel": "52d1c00a80a8cc67acbd01649e83d8dd6a9dc426a6c0b754a04fe8c219c76468", + "https://bcr.bazel.build/modules/tar.bzl/0.5.1/MODULE.bazel": "7c2eb3dcfc53b0f3d6f9acdfd911ca803eaf92aadf54f8ca6e4c1f3aee288351", + "https://bcr.bazel.build/modules/tar.bzl/0.7.0/MODULE.bazel": "cc1acd85da33c80e430b65219a620d54d114628df24a618c3a5fa0b65e988da9", + "https://bcr.bazel.build/modules/tar.bzl/0.7.0/source.json": "9becb80306f42d4810bfa16379fb48aad0b01ce5342bc12fe47dcd6af3ac4d7a", + "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43", + "https://bcr.bazel.build/modules/yq.bzl/0.1.1/MODULE.bazel": "9039681f9bcb8958ee2c87ffc74bdafba9f4369096a2b5634b88abc0eaefa072", + "https://bcr.bazel.build/modules/yq.bzl/0.1.1/source.json": "2d2bad780a9f2b9195a4a370314d2c17ae95eaa745cefc2e12fbc49759b15aa3", + "https://bcr.bazel.build/modules/zlib/1.2.11/MODULE.bazel": "07b389abc85fdbca459b69e2ec656ae5622873af3f845e1c9d80fe179f3effa0", + "https://bcr.bazel.build/modules/zlib/1.2.12/MODULE.bazel": "3b1a8834ada2a883674be8cbd36ede1b6ec481477ada359cd2d3ddc562340b27", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/MODULE.bazel": "eec517b5bbe5492629466e11dae908d043364302283de25581e3eb944326c4ca", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/source.json": "22bc55c47af97246cfc093d0acf683a7869377de362b5d1c552c2c2e16b7a806", + "https://bcr.bazel.build/modules/zlib/1.3.1/MODULE.bazel": "751c9940dcfe869f5f7274e1295422a34623555916eb98c174c1e945594bf198" + }, + "selectedYankedVersions": {}, + "moduleExtensions": { + "@@rules_kotlin+//src/main/starlark/core/repositories:bzlmod_setup.bzl%rules_kotlin_extensions": { + "general": { + "bzlTransitiveDigest": "rL/34P1aFDq2GqVC2zCFgQ8nTuOC6ziogocpvG50Qz8=", + "usagesDigest": "QI2z8ZUR+mqtbwsf2fLqYdJAkPOHdOV+tF2yVAUgRzw=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "com_github_jetbrains_kotlin_git": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_compiler_git_repository", + "attributes": { + "urls": [ + "https://github.com/JetBrains/kotlin/releases/download/v1.9.23/kotlin-compiler-1.9.23.zip" + ], + "sha256": "93137d3aab9afa9b27cb06a824c2324195c6b6f6179d8a8653f440f5bd58be88" + } + }, + "com_github_jetbrains_kotlin": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_capabilities_repository", + "attributes": { + "git_repository_name": "com_github_jetbrains_kotlin_git", + "compiler_version": "1.9.23" + } + }, + "com_github_google_ksp": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:ksp.bzl%ksp_compiler_plugin_repository", + "attributes": { + "urls": [ + "https://github.com/google/ksp/releases/download/1.9.23-1.0.20/artifacts.zip" + ], + "sha256": "ee0618755913ef7fd6511288a232e8fad24838b9af6ea73972a76e81053c8c2d", + "strip_version": "1.9.23-1.0.20" + } + }, + "com_github_pinterest_ktlint": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_file", + "attributes": { + "sha256": "01b2e0ef893383a50dbeb13970fe7fa3be36ca3e83259e01649945b09d736985", + "urls": [ + "https://github.com/pinterest/ktlint/releases/download/1.3.0/ktlint" + ], + "executable": true + } + }, + "rules_android": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "sha256": "cd06d15dd8bb59926e4d65f9003bfc20f9da4b2519985c27e190cddc8b7a7806", + "strip_prefix": "rules_android-0.1.1", + "urls": [ + "https://github.com/bazelbuild/rules_android/archive/v0.1.1.zip" + ] + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_kotlin+", + "bazel_tools", + "bazel_tools" + ] + ] + } + } + }, + "facts": { + "@@rules_go+//go:extensions.bzl%go_sdk": { + "1.24.13": { + "aix_ppc64": [ + "go1.24.13.aix-ppc64.tar.gz", + "1b35e5eef87a8125838fdd0a12790f07139aabbc40e81b66c596a0ca51569eda" + ], + "darwin_amd64": [ + "go1.24.13.darwin-amd64.tar.gz", + "6cc6549b06725220b342b740497ffd24e0ebdcef75781a77931ca199f46ad781" + ], + "darwin_arm64": [ + "go1.24.13.darwin-arm64.tar.gz", + "f282d882c3353485e2fc6c634606d85caf36e855167d59b996dbeae19fa7629a" + ], + "dragonfly_amd64": [ + "go1.24.13.dragonfly-amd64.tar.gz", + "558eeb813da2933546c3e46aefd40911261e15d2dfe01b4432744fc2661e59d3" + ], + "freebsd_386": [ + "go1.24.13.freebsd-386.tar.gz", + "1e3bd90c1d138a3d4bbc39f3990f59faab5e9d83006b51c5dec17538716d2651" + ], + "freebsd_amd64": [ + "go1.24.13.freebsd-amd64.tar.gz", + "96e3c439befbb365ecde3ae475f9319ef7693d5d66a05992e8f8d29c60a63761" + ], + "freebsd_arm": [ + "go1.24.13.freebsd-arm.tar.gz", + "3d8005886f2dff23357d5d36e7759fdadc642d5207c01bd9e761d5d9e27f3257" + ], + "freebsd_arm64": [ + "go1.24.13.freebsd-arm64.tar.gz", + "67efe294235fd85fc0fb810275dfd402a459c8522f7bf075f63c7047db474f1b" + ], + "freebsd_riscv64": [ + "go1.24.13.freebsd-riscv64.tar.gz", + "4973d786b9bc4291063ecc69546e662f18d5fa564745673c7ea39c3febc11cc3" + ], + "illumos_amd64": [ + "go1.24.13.illumos-amd64.tar.gz", + "140c87078e2570c179327cb11d515c8396f969ecc202def008b179a1a8ce8919" + ], + "linux_386": [ + "go1.24.13.linux-386.tar.gz", + "a55cb4587b1face90dc9334d8ad44ccd41fade77dcff645a74927eb0adc52272" + ], + "linux_amd64": [ + "go1.24.13.linux-amd64.tar.gz", + "1fc94b57134d51669c72173ad5d49fd62afb0f1db9bf3f798fd98ee423f8d730" + ], + "linux_arm64": [ + "go1.24.13.linux-arm64.tar.gz", + "74d97be1cc3a474129590c67ebf748a96e72d9f3a2b6fef3ed3275de591d49b3" + ], + "linux_armv6l": [ + "go1.24.13.linux-armv6l.tar.gz", + "a26b1e54c0fe7b0babc79716a89b830f1cde54f6c6f914a9995d3f0d0bdd0242" + ], + "linux_loong64": [ + "go1.24.13.linux-loong64.tar.gz", + "8fd090f77b88b9e6f3807a24fce5187163f0036a30d47abab97a1861321f62ca" + ], + "linux_mips": [ + "go1.24.13.linux-mips.tar.gz", + "b879aea34facab984856575ddc3416cfeaa4e3b87a5b23e23ad7acb850bed605" + ], + "linux_mips64": [ + "go1.24.13.linux-mips64.tar.gz", + "b652f8f1199fab0e139bd1e41596470cb104b404e829e658d571ad7566148ada" + ], + "linux_mips64le": [ + "go1.24.13.linux-mips64le.tar.gz", + "d1c233a227fd4c5be04d4e8929b4b75e7237556916b8295c0436a1301af8ea12" + ], + "linux_mipsle": [ + "go1.24.13.linux-mipsle.tar.gz", + "4685999157eafa2b731d58e93b50693c34b6efdb2a63755591e785886ca8aaf0" + ], + "linux_ppc64": [ + "go1.24.13.linux-ppc64.tar.gz", + "0ff9907f079e4f2c4d1c4a30a0acc4bb8b627a7043f49b19dc97eb4491b78fdc" + ], + "linux_ppc64le": [ + "go1.24.13.linux-ppc64le.tar.gz", + "5f0dfab58ce15a84d824363c041246c76847a69d14f9ffac16bd5342299ecc14" + ], + "linux_riscv64": [ + "go1.24.13.linux-riscv64.tar.gz", + "9a8166261489d3f38c7a568785b7012c123e3561779d282d568a72d58506754f" + ], + "linux_s390x": [ + "go1.24.13.linux-s390x.tar.gz", + "a3e3e2012f9b4d392fab85fd4596bbd798ea8e0ceba259f47023b8cb5ebfffc1" + ], + "netbsd_386": [ + "go1.24.13.netbsd-386.tar.gz", + "882bc70303155c0062076b195e18425b7b6b98299cd514c654d08d0770ef3a6a" + ], + "netbsd_amd64": [ + "go1.24.13.netbsd-amd64.tar.gz", + "e4daab492889cc14bbe24b89f586b07b64454a707dd3cc12683d2c2fbee479e6" + ], + "netbsd_arm": [ + "go1.24.13.netbsd-arm.tar.gz", + "248f29ff86c26379a03cc065185417aff7c25db15f81034535c8d49727455802" + ], + "netbsd_arm64": [ + "go1.24.13.netbsd-arm64.tar.gz", + "f402058ddc22df723025725ae5048bb707d492936e9da7c6f01cc20662f1fe33" + ], + "openbsd_386": [ + "go1.24.13.openbsd-386.tar.gz", + "64d9fa7d4c3ba47dfb89f32316c92428a4aea0be06c6e8d8a3dee31fc6d5a560" + ], + "openbsd_amd64": [ + "go1.24.13.openbsd-amd64.tar.gz", + "ed9c2c7eebd576c31599e682917b19fe6fed7afbbef57a8d86aa2f75f5b757ff" + ], + "openbsd_arm": [ + "go1.24.13.openbsd-arm.tar.gz", + "e0caefacd6f82b3b823255f6b4c9614c9cf899e6f15812f87db4fb264533b64b" + ], + "openbsd_arm64": [ + "go1.24.13.openbsd-arm64.tar.gz", + "25ae8746328c37b92fcca8f89d9c28473fb7a7f72c177cdbc35b28f25aea89e4" + ], + "openbsd_ppc64": [ + "go1.24.13.openbsd-ppc64.tar.gz", + "57086bd3469c5c18d3ab1076a31217f7c429428eef78644118d44e0bc9cc13ef" + ], + "openbsd_riscv64": [ + "go1.24.13.openbsd-riscv64.tar.gz", + "a84c8acf158778a49b71e62750a49ca0f3d2082c9952aeb115c0dd9f6eb20469" + ], + "plan9_386": [ + "go1.24.13.plan9-386.tar.gz", + "d196f31881538073fd599739e46911ffde517c7aedc0f053597de8d955aa1689" + ], + "plan9_amd64": [ + "go1.24.13.plan9-amd64.tar.gz", + "5309e57ebd44b6ab7d506e9d0aad4272ec77e694e7ea30588c2acf950d57c5d3" + ], + "plan9_arm": [ + "go1.24.13.plan9-arm.tar.gz", + "e9ea1ab4e67108b0479aab664acdb1ff0bec4e0f09949a7fab859080467664e8" + ], + "solaris_amd64": [ + "go1.24.13.solaris-amd64.tar.gz", + "e2cae0e7c1e33b772ad2b97be28098bd8b97e9b3d5777f5c6caf2793ccee9e3a" + ], + "windows_386": [ + "go1.24.13.windows-386.zip", + "3f52b77db92e1d7d03561db9ee2ef6c5f691228ed301fb2ee07390952c4cbed4" + ], + "windows_amd64": [ + "go1.24.13.windows-amd64.zip", + "40b16bc8f00540a2cb02dff4de72b73e966fdd8d65f95e33d8e4080b48a2459a" + ], + "windows_arm64": [ + "go1.24.13.windows-arm64.zip", + "e2c4e1b0c083965adecb893b97145f89bb8e39b3d745c6499fa1f8aa44bc065f" + ] + }, + "1.25.0": { + "aix_ppc64": [ + "go1.25.0.aix-ppc64.tar.gz", + "e5234a7dac67bc86c528fe9752fc9d63557918627707a733ab4cac1a6faed2d4" + ], + "darwin_amd64": [ + "go1.25.0.darwin-amd64.tar.gz", + "5bd60e823037062c2307c71e8111809865116714d6f6b410597cf5075dfd80ef" + ], + "darwin_arm64": [ + "go1.25.0.darwin-arm64.tar.gz", + "544932844156d8172f7a28f77f2ac9c15a23046698b6243f633b0a0b00c0749c" + ], + "dragonfly_amd64": [ + "go1.25.0.dragonfly-amd64.tar.gz", + "5ed3cf9a810a1483822538674f1336c06b51aa1b94d6d545a1a0319a48177120" + ], + "freebsd_386": [ + "go1.25.0.freebsd-386.tar.gz", + "abea5d5c6697e6b5c224731f2158fe87c602996a2a233ac0c4730cd57bf8374e" + ], + "freebsd_amd64": [ + "go1.25.0.freebsd-amd64.tar.gz", + "86e6fe0a29698d7601c4442052dac48bd58d532c51cccb8f1917df648138730b" + ], + "freebsd_arm": [ + "go1.25.0.freebsd-arm.tar.gz", + "d90b78e41921f72f30e8bbc81d9dec2cff7ff384a33d8d8debb24053e4336bfe" + ], + "freebsd_arm64": [ + "go1.25.0.freebsd-arm64.tar.gz", + "451d0da1affd886bfb291b7c63a6018527b269505db21ce6e14724f22ab0662e" + ], + "freebsd_riscv64": [ + "go1.25.0.freebsd-riscv64.tar.gz", + "7b565f76bd8bda46549eeaaefe0e53b251e644c230577290c0f66b1ecdb3cdbe" + ], + "illumos_amd64": [ + "go1.25.0.illumos-amd64.tar.gz", + "b1e1fdaab1ad25aa1c08d7a36c97d45d74b98b89c3f78c6d2145f77face54a2c" + ], + "linux_386": [ + "go1.25.0.linux-386.tar.gz", + "8c602dd9d99bc9453b3995d20ce4baf382cc50855900a0ece5de9929df4a993a" + ], + "linux_amd64": [ + "go1.25.0.linux-amd64.tar.gz", + "2852af0cb20a13139b3448992e69b868e50ed0f8a1e5940ee1de9e19a123b613" + ], + "linux_arm64": [ + "go1.25.0.linux-arm64.tar.gz", + "05de75d6994a2783699815ee553bd5a9327d8b79991de36e38b66862782f54ae" + ], + "linux_armv6l": [ + "go1.25.0.linux-armv6l.tar.gz", + "a5a8f8198fcf00e1e485b8ecef9ee020778bf32a408a4e8873371bfce458cd09" + ], + "linux_loong64": [ + "go1.25.0.linux-loong64.tar.gz", + "cab86b1cf761b1cb3bac86a8877cfc92e7b036fc0d3084123d77013d61432afc" + ], + "linux_mips": [ + "go1.25.0.linux-mips.tar.gz", + "d66b6fb74c3d91b9829dc95ec10ca1f047ef5e89332152f92e136cf0e2da5be1" + ], + "linux_mips64": [ + "go1.25.0.linux-mips64.tar.gz", + "4082e4381a8661bc2a839ff94ba3daf4f6cde20f8fb771b5b3d4762dc84198a2" + ], + "linux_mips64le": [ + "go1.25.0.linux-mips64le.tar.gz", + "70002c299ec7f7175ac2ef673b1b347eecfa54ae11f34416a6053c17f855afcc" + ], + "linux_mipsle": [ + "go1.25.0.linux-mipsle.tar.gz", + "b00a3a39eff099f6df9f1c7355bf28e4589d0586f42d7d4a394efb763d145a73" + ], + "linux_ppc64": [ + "go1.25.0.linux-ppc64.tar.gz", + "df166f33bd98160662560a72ff0b4ba731f969a80f088922bddcf566a88c1ec1" + ], + "linux_ppc64le": [ + "go1.25.0.linux-ppc64le.tar.gz", + "0f18a89e7576cf2c5fa0b487a1635d9bcbf843df5f110e9982c64df52a983ad0" + ], + "linux_riscv64": [ + "go1.25.0.linux-riscv64.tar.gz", + "c018ff74a2c48d55c8ca9b07c8e24163558ffec8bea08b326d6336905d956b67" + ], + "linux_s390x": [ + "go1.25.0.linux-s390x.tar.gz", + "34e5a2e19f2292fbaf8783e3a241e6e49689276aef6510a8060ea5ef54eee408" + ], + "netbsd_386": [ + "go1.25.0.netbsd-386.tar.gz", + "f8586cdb7aa855657609a5c5f6dbf523efa00c2bbd7c76d3936bec80aa6c0aba" + ], + "netbsd_amd64": [ + "go1.25.0.netbsd-amd64.tar.gz", + "ae8dc1469385b86a157a423bb56304ba45730de8a897615874f57dd096db2c2a" + ], + "netbsd_arm": [ + "go1.25.0.netbsd-arm.tar.gz", + "1ff7e4cc764425fc9dd6825eaee79d02b3c7cafffbb3691687c8d672ade76cb7" + ], + "netbsd_arm64": [ + "go1.25.0.netbsd-arm64.tar.gz", + "e1b310739f26724216aa6d7d7208c4031f9ff54c9b5b9a796ddc8bebcb4a5f16" + ], + "openbsd_386": [ + "go1.25.0.openbsd-386.tar.gz", + "4802a9b20e533da91adb84aab42e94aa56cfe3e5475d0550bed3385b182e69d8" + ], + "openbsd_amd64": [ + "go1.25.0.openbsd-amd64.tar.gz", + "c016cd984bebe317b19a4f297c4f50def120dc9788490540c89f28e42f1dabe1" + ], + "openbsd_arm": [ + "go1.25.0.openbsd-arm.tar.gz", + "a1e31d0bf22172ddde42edf5ec811ef81be43433df0948ece52fecb247ccfd8d" + ], + "openbsd_arm64": [ + "go1.25.0.openbsd-arm64.tar.gz", + "343ea8edd8c218196e15a859c6072d0dd3246fbbb168481ab665eb4c4140458d" + ], + "openbsd_ppc64": [ + "go1.25.0.openbsd-ppc64.tar.gz", + "694c14da1bcaeb5e3332d49bdc2b6d155067648f8fe1540c5de8f3cf8e157154" + ], + "openbsd_riscv64": [ + "go1.25.0.openbsd-riscv64.tar.gz", + "aa510ad25cf54c06cd9c70b6d80ded69cb20188ac6e1735655eef29ff7e7885f" + ], + "plan9_386": [ + "go1.25.0.plan9-386.tar.gz", + "46f8cef02086cf04bf186c5912776b56535178d4cb319cd19c9fdbdd29231986" + ], + "plan9_amd64": [ + "go1.25.0.plan9-amd64.tar.gz", + "29b34391d84095e44608a228f63f2f88113a37b74a79781353ec043dfbcb427b" + ], + "plan9_arm": [ + "go1.25.0.plan9-arm.tar.gz", + "0a047107d13ebe7943aaa6d54b1d7bbd2e45e68ce449b52915a818da715799c2" + ], + "solaris_amd64": [ + "go1.25.0.solaris-amd64.tar.gz", + "9977f9e4351984364a3b2b78f8b88bfd1d339812356d5237678514594b7d3611" + ], + "windows_386": [ + "go1.25.0.windows-386.zip", + "df9f39db82a803af0db639e3613a36681ab7a42866b1384b3f3a1045663961a7" + ], + "windows_amd64": [ + "go1.25.0.windows-amd64.zip", + "89efb4f9b30812eee083cc1770fdd2913c14d301064f6454851428f9707d190b" + ], + "windows_arm64": [ + "go1.25.0.windows-arm64.zip", + "27bab004c72b3d7bd05a69b6ec0fc54a309b4b78cc569dd963d8b3ec28bfdb8c" + ] + } + } + } +} diff --git a/Makefile b/Makefile index 5edc8db..8290c90 100644 --- a/Makefile +++ b/Makefile @@ -29,7 +29,7 @@ dep-fix: dep-update: go.sum @echo updating dependencies @go mod tidy - @./tools/bazel run //:gazelle -- update-repos -from_file=go.mod -prune=true -to_macro=gazelle.bzl%deps + @./tools/bazel mod tidy .PHONY: test test: diff --git a/README.md b/README.md index c1c69eb..4cad43a 100644 --- a/README.md +++ b/README.md @@ -195,9 +195,13 @@ Sciuro is built and tested with [bazel](https://bazel.build/). To run tests: make test ``` -To build and push images, define the docker repository base with the run of the -manifests targets: +To build and push the multi-arch image index, set the repository at runtime: ``` -bazel run --define repo=quay.io/myrepo //manifests:cluster > /tmp/cluster.yaml -bazel run --define repo=quay.io/myrepo //manifests:stable > /tmp/stable.yaml +bazel run //cmd/sciuro:push -- --repository=quay.io/myrepo/sciuro --tag=v1.2.3 +``` + +To render the manifests, define the docker repository base and namespace: +``` +bazel build //manifests:cluster //manifests:stable \ + --define repo=quay.io/myrepo --define namespace=node-remediation ``` diff --git a/WORKSPACE b/WORKSPACE deleted file mode 100644 index 80b9f73..0000000 --- a/WORKSPACE +++ /dev/null @@ -1,89 +0,0 @@ -load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository") -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") - -http_archive( - name = "io_bazel_rules_go", - sha256 = "d93ef02f1e72c82d8bb3d5169519b36167b33cf68c252525e3b9d3d5dd143de7", - urls = [ - "https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.49.0/rules_go-v0.49.0.zip", - "https://github.com/bazelbuild/rules_go/releases/download/v0.49.0/rules_go-v0.49.0.zip", - ], -) - -http_archive( - name = "bazel_gazelle", - integrity = "sha256-12v3pg/YsFBEQJDfooN6Tq+YKeEWVhjuNdzspcvfWNU=", - urls = [ - "https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.37.0/bazel-gazelle-v0.37.0.tar.gz", - "https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.37.0/bazel-gazelle-v0.37.0.tar.gz", - ], -) - -http_archive( - name = "io_bazel_rules_docker", - sha256 = "b1e80761a8a8243d03ebca8845e9cc1ba6c82ce7c5179ce2b295cd36f7e394bf", - urls = ["https://github.com/bazelbuild/rules_docker/releases/download/v0.25.0/rules_docker-v0.25.0.tar.gz"], -) - -http_archive( - name = "io_bazel_rules_k8s", - patch_args = ["-p1"], - patches = ["//:k8s_rules.patch"], - sha256 = "ce5b9bc0926681e2e7f2147b49096f143e6cbc783e71bc1d4f36ca76b00e6f4a", - strip_prefix = "rules_k8s-0.7", - urls = ["https://github.com/bazelbuild/rules_k8s/archive/refs/tags/v0.7.tar.gz"], -) - -load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies") - -go_rules_dependencies() - -go_register_toolchains(version = "1.23.5") - -load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies") -load("//:gazelle.bzl", "deps") - -gazelle_dependencies() - -# gazelle:repository_macro gazelle.bzl%deps -deps() - -load( - "@io_bazel_rules_docker//repositories:repositories.bzl", - container_repositories = "repositories", -) - -container_repositories() - -load( - "@io_bazel_rules_docker//go:image.bzl", - _go_image_repos = "repositories", -) - -_go_image_repos() - -load("@io_bazel_rules_docker//repositories:deps.bzl", container_deps = "deps") - -container_deps() - -load( - "@io_bazel_rules_docker//container:container.bzl", - "container_pull", -) - -# https://hub.docker.com/layers/library/alpine/3.18.3/images/sha256-c5c5fda71656f28e49ac9c5416b3643eaa6a108a8093151d6d1afc9463be8e33 -container_pull( - name = "alpinebase", - digest = "sha256:c5c5fda71656f28e49ac9c5416b3643eaa6a108a8093151d6d1afc9463be8e33", - registry = "docker.io", - repository = "alpine", -) - -load("@io_bazel_rules_k8s//k8s:k8s.bzl", "k8s_defaults", "k8s_repositories") - -k8s_repositories() - -k8s_defaults( - name = "k8s_deploy", - image_chroot = "$(repo)", -) diff --git a/cmd/sciuro/BUILD.bazel b/cmd/sciuro/BUILD.bazel index 11492cb..e5c264e 100644 --- a/cmd/sciuro/BUILD.bazel +++ b/cmd/sciuro/BUILD.bazel @@ -1,8 +1,9 @@ -load("@io_bazel_rules_docker//go:image.bzl", "go_image") -load("@io_bazel_rules_go//go:def.bzl", "go_library") +load("@rules_go//go:def.bzl", "go_binary", "go_library") +load("@rules_oci//oci:defs.bzl", "oci_image", "oci_image_index", "oci_load", "oci_push") +load("@rules_pkg//pkg:tar.bzl", "pkg_tar") go_library( - name = "sciuro", + name = "sciuro_lib", srcs = ["main.go"], importpath = "github.com/cloudflare/sciuro/cmd/sciuro", visibility = ["//visibility:private"], @@ -10,7 +11,6 @@ go_library( "//internal/alert", "//internal/node", "@com_github_caarlos0_env_v9//:env", - "@com_github_prometheus_alertmanager//cli", "@io_k8s_api//core/v1:core", "@io_k8s_sigs_controller_runtime//pkg/client/config", "@io_k8s_sigs_controller_runtime//pkg/controller", @@ -24,31 +24,80 @@ go_library( ], ) -go_image( - name = "image", - embed = [":sciuro"], +# One static, cross-compiled binary per target architecture. +go_binary( + name = "sciuro_linux_amd64", + embed = [":sciuro_lib"], + goarch = "amd64", + goos = "linux", pure = "on", - visibility = ["//visibility:public"], + visibility = ["//visibility:private"], ) -go_library( - name = "sciuro_lib", - srcs = ["main.go"], - importpath = "github.com/cloudflare/sciuro/cmd/sciuro", +go_binary( + name = "sciuro_linux_arm64", + embed = [":sciuro_lib"], + goarch = "arm64", + goos = "linux", + pure = "on", visibility = ["//visibility:private"], - deps = [ - "//internal/alert", - "//internal/node", - "@com_github_caarlos0_env_v9//:env", - "@io_k8s_api//core/v1:core", - "@io_k8s_sigs_controller_runtime//pkg/client/config", - "@io_k8s_sigs_controller_runtime//pkg/controller", - "@io_k8s_sigs_controller_runtime//pkg/handler", - "@io_k8s_sigs_controller_runtime//pkg/log", - "@io_k8s_sigs_controller_runtime//pkg/log/zap", - "@io_k8s_sigs_controller_runtime//pkg/manager", - "@io_k8s_sigs_controller_runtime//pkg/manager/signals", - "@io_k8s_sigs_controller_runtime//pkg/metrics", - "@io_k8s_sigs_controller_runtime//pkg/source", +) + +# Package each binary as a layer with a stable path of /sciuro. +pkg_tar( + name = "app_layer_amd64", + srcs = [":sciuro_linux_amd64"], + remap_paths = {"/sciuro_linux_amd64": "/sciuro"}, +) + +pkg_tar( + name = "app_layer_arm64", + srcs = [":sciuro_linux_arm64"], + remap_paths = {"/sciuro_linux_arm64": "/sciuro"}, +) + +# One image per architecture. The architecture of each image is taken from its +# base, so the matching binary must be paired with the matching base. +oci_image( + name = "image_amd64", + base = "@distroless_static_linux_amd64", + entrypoint = ["/sciuro"], + tars = [":app_layer_amd64"], + visibility = ["//visibility:public"], +) + +oci_image( + name = "image_arm64", + base = "@distroless_static_linux_arm64_v8", + entrypoint = ["/sciuro"], + tars = [":app_layer_arm64"], + visibility = ["//visibility:public"], +) + +# Multi-architecture image: a single reference that works on amd64 and arm64. +oci_image_index( + name = "image_index", + images = [ + ":image_amd64", + ":image_arm64", ], + visibility = ["//visibility:public"], +) + +# Load the amd64 image into a local Docker/Podman daemon: +# bazel run //cmd/sciuro:image_load +oci_load( + name = "image_load", + image = ":image_amd64", + repo_tags = ["sciuro:latest"], + visibility = ["//visibility:public"], +) + +# Push the multi-arch index. The repository must be supplied at runtime: +# bazel run //cmd/sciuro:push -- --repository=docker.io/cloudflare/sciuro --tag=v1.2.3 +# Without --tag the index is pushed by digest only. +oci_push( + name = "push", + image = ":image_index", + visibility = ["//visibility:public"], ) diff --git a/gazelle.bzl b/gazelle.bzl deleted file mode 100644 index 800ed24..0000000 --- a/gazelle.bzl +++ /dev/null @@ -1,1625 +0,0 @@ -load("@bazel_gazelle//:deps.bzl", "go_repository") - -def deps(): - go_repository( - name = "co_honnef_go_tools", - importpath = "honnef.co/go/tools", - sum = "h1:UoveltGrhghAA7ePc+e+QYDHXrBps2PqFZiHkGR/xK8=", - version = "v0.0.1-2020.1.4", - ) - go_repository( - name = "com_github_alecthomas_kingpin_v2", - importpath = "github.com/alecthomas/kingpin/v2", - sum = "h1:f48lwail6p8zpO1bC4TxtqACaGqHYA22qkHjHpqDjYY=", - version = "v2.4.0", - ) - go_repository( - name = "com_github_alecthomas_template", - importpath = "github.com/alecthomas/template", - sum = "h1:JYp7IbQjafoB+tBA3gMyHYHrpOtNuDiK/uB5uXxq5wM=", - version = "v0.0.0-20190718012654-fb15b899a751", - ) - go_repository( - name = "com_github_alecthomas_units", - importpath = "github.com/alecthomas/units", - sum = "h1:mimo19zliBX/vSQ6PWWSL9lK8qwHozUj03+zLoEB8O0=", - version = "v0.0.0-20240927000941-0f3dac36c52b", - ) - go_repository( - name = "com_github_antlr4_go_antlr_v4", - importpath = "github.com/antlr4-go/antlr/v4", - sum = "h1:SqQKkuVZ+zWkMMNkjy5FZe5mr5WURWnlpmOuzYWrPrQ=", - version = "v4.13.1", - ) - go_repository( - name = "com_github_armon_go_metrics", - importpath = "github.com/armon/go-metrics", - sum = "h1:hR91U9KYmb6bLBYLQjyM+3j+rcd/UhE+G78SFnF8gJA=", - version = "v0.4.1", - ) - go_repository( - name = "com_github_armon_go_radix", - importpath = "github.com/armon/go-radix", - sum = "h1:BUAU3CGlLvorLI26FmByPp2eC2qla6E1Tw+scpcg/to=", - version = "v0.0.0-20180808171621-7fddfc383310", - ) - go_repository( - name = "com_github_armon_go_socks5", - importpath = "github.com/armon/go-socks5", - sum = "h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio=", - version = "v0.0.0-20160902184237-e75332964ef5", - ) - go_repository( - name = "com_github_asaskevich_govalidator", - importpath = "github.com/asaskevich/govalidator", - sum = "h1:DklsrG3dyBCFEj5IhUbnKptjxatkF07cF2ak3yi77so=", - version = "v0.0.0-20230301143203-a9d515a09cc2", - ) - go_repository( - name = "com_github_aws_aws_sdk_go", - importpath = "github.com/aws/aws-sdk-go", - sum = "h1:cSg4pvZ3m8dgYcgqB97MrcdjUmZ1BeMYKUxMMB89IPk=", - version = "v1.55.6", - ) - go_repository( - name = "com_github_beorn7_perks", - importpath = "github.com/beorn7/perks", - sum = "h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=", - version = "v1.0.1", - ) - go_repository( - name = "com_github_bgentry_speakeasy", - importpath = "github.com/bgentry/speakeasy", - sum = "h1:ByYyxL9InA1OWqxJqqp2A5pYHUrCiAL6K3J+LKSsQkY=", - version = "v0.1.0", - ) - go_repository( - name = "com_github_blang_semver_v4", - importpath = "github.com/blang/semver/v4", - sum = "h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=", - version = "v4.0.0", - ) - go_repository( - name = "com_github_burntsushi_toml", - importpath = "github.com/BurntSushi/toml", - sum = "h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=", - version = "v0.3.1", - ) - go_repository( - name = "com_github_burntsushi_xgb", - importpath = "github.com/BurntSushi/xgb", - sum = "h1:1BDTz0u9nC3//pOCMdNH+CiXJVYJh5UQNCOBG7jbELc=", - version = "v0.0.0-20160522181843-27f122750802", - ) - go_repository( - name = "com_github_caarlos0_env_v9", - importpath = "github.com/caarlos0/env/v9", - sum = "h1:SI6JNsOA+y5gj9njpgybykATIylrRMklbs5ch6wO6pc=", - version = "v9.0.0", - ) - go_repository( - name = "com_github_cenkalti_backoff_v4", - importpath = "github.com/cenkalti/backoff/v4", - sum = "h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8=", - version = "v4.3.0", - ) - go_repository( - name = "com_github_census_instrumentation_opencensus_proto", - importpath = "github.com/census-instrumentation/opencensus-proto", - sum = "h1:glEXhBS5PSLLv4IXzLA5yPRVX4bilULVyxxbrfOtDAk=", - version = "v0.2.1", - ) - go_repository( - name = "com_github_cespare_xxhash_v2", - importpath = "github.com/cespare/xxhash/v2", - sum = "h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=", - version = "v2.3.0", - ) - go_repository( - name = "com_github_chzyer_logex", - importpath = "github.com/chzyer/logex", - sum = "h1:Swpa1K6QvQznwJRcfTfQJmTE72DqScAa40E+fbHEXEE=", - version = "v1.1.10", - ) - go_repository( - name = "com_github_chzyer_readline", - importpath = "github.com/chzyer/readline", - sum = "h1:fY5BOSpyZCqRo5OhCuC+XN+r/bBCmeuuJtjz+bCNIf8=", - version = "v0.0.0-20180603132655-2972be24d48e", - ) - go_repository( - name = "com_github_chzyer_test", - importpath = "github.com/chzyer/test", - sum = "h1:q763qf9huN11kDQavWsoZXJNW3xEE4JJyHa5Q25/sd8=", - version = "v0.0.0-20180213035817-a1ea475d72b1", - ) - go_repository( - name = "com_github_circonus_labs_circonus_gometrics", - importpath = "github.com/circonus-labs/circonus-gometrics", - sum = "h1:C29Ae4G5GtYyYMm1aztcyj/J5ckgJm2zwdDajFbx1NY=", - version = "v2.3.1+incompatible", - ) - go_repository( - name = "com_github_circonus_labs_circonusllhist", - importpath = "github.com/circonus-labs/circonusllhist", - sum = "h1:TJH+oke8D16535+jHExHj4nQvzlZrj7ug5D7I/orNUA=", - version = "v0.1.3", - ) - go_repository( - name = "com_github_client9_misspell", - importpath = "github.com/client9/misspell", - sum = "h1:ta993UF76GwbvJcIo3Y68y/M3WxlpEHPWIGDkJYwzJI=", - version = "v0.3.4", - ) - go_repository( - name = "com_github_cncf_udpa_go", - importpath = "github.com/cncf/udpa/go", - sum = "h1:WBZRG4aNOuI15bLRrCgN8fCq8E5Xuty6jGbmSNEvSsU=", - version = "v0.0.0-20191209042840-269d4d468f6f", - ) - go_repository( - name = "com_github_coder_quartz", - importpath = "github.com/coder/quartz", - sum = "h1:hA2nI8uUA2fNN9uhXv2I4xZD4aHkA7oH3g2t03v4xf8=", - version = "v0.1.3", - ) - go_repository( - name = "com_github_coreos_go_systemd_v22", - importpath = "github.com/coreos/go-systemd/v22", - sum = "h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs=", - version = "v22.5.0", - ) - go_repository( - name = "com_github_datadog_datadog_go", - importpath = "github.com/DataDog/datadog-go", - sum = "h1:qSG2N4FghB1He/r2mFrWKCaL7dXCilEuNEeAn20fdD4=", - version = "v3.2.0+incompatible", - ) - go_repository( - name = "com_github_datadog_zstd", - importpath = "github.com/DataDog/zstd", - sum = "h1:vUG4lAyuPCXO0TLbXvPv7EB7cNK1QV/luu55UHLrrn8=", - version = "v1.5.2", - ) - go_repository( - name = "com_github_davecgh_go_spew", - importpath = "github.com/davecgh/go-spew", - sum = "h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=", - version = "v1.1.2-0.20180830191138-d8f796af33cc", - ) - go_repository( - name = "com_github_davecgh_go_xdr", - importpath = "github.com/davecgh/go-xdr", - sum = "h1:qg9VbHo1TlL0KDM0vYvBG9EY0X0Yku5WYIPoFWt8f6o=", - version = "v0.0.0-20161123171359-e6a2ba005892", - ) - go_repository( - name = "com_github_docker_go_units", - importpath = "github.com/docker/go-units", - sum = "h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4=", - version = "v0.5.0", - ) - go_repository( - name = "com_github_emersion_go_sasl", - importpath = "github.com/emersion/go-sasl", - sum = "h1:OJyUGMJTzHTd1XQp98QTaHernxMYzRaOasRir9hUlFQ=", - version = "v0.0.0-20200509203442-7bfe0ed36a21", - ) - go_repository( - name = "com_github_emersion_go_smtp", - importpath = "github.com/emersion/go-smtp", - sum = "h1:7uVwagE8iPYE48WhNsng3RRpCUpFvNl39JGNSIyGVMY=", - version = "v0.21.3", - ) - go_repository( - name = "com_github_emicklei_go_restful_v3", - importpath = "github.com/emicklei/go-restful/v3", - sum = "h1:PJMDIM/ak7btuL8Ex0iYET9hxM3CI2sjZtzpL63nKAU=", - version = "v3.12.1", - ) - go_repository( - name = "com_github_envoyproxy_go_control_plane", - importpath = "github.com/envoyproxy/go-control-plane", - sum = "h1:rEvIZUSZ3fx39WIi3JkQqQBitGwpELBIYWeBVh6wn+E=", - version = "v0.9.4", - ) - go_repository( - name = "com_github_envoyproxy_protoc_gen_validate", - importpath = "github.com/envoyproxy/protoc-gen-validate", - sum = "h1:EQciDnbrYxy13PgWoY8AqoxGiPrpgBZ1R8UNe3ddc+A=", - version = "v0.1.0", - ) - go_repository( - name = "com_github_evanphx_json_patch", - importpath = "github.com/evanphx/json-patch", - sum = "h1:jBYDEEiFBPxA0v50tFdvOzQQTCvpL6mnFh5mB2/l16U=", - version = "v5.6.0+incompatible", - ) - go_repository( - name = "com_github_evanphx_json_patch_v5", - importpath = "github.com/evanphx/json-patch/v5", - sum = "h1:/8HVnzMq13/3x9TPvjG08wUGqBTmZBsCWzjTM0wiaDU=", - version = "v5.9.11", - ) - go_repository( - name = "com_github_fatih_color", - importpath = "github.com/fatih/color", - sum = "h1:DkWD4oS2D8LGGgTQ6IvwJJXSL5Vp2ffcQg58nFV38Ys=", - version = "v1.7.0", - ) - go_repository( - name = "com_github_felixge_httpsnoop", - importpath = "github.com/felixge/httpsnoop", - sum = "h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg=", - version = "v1.0.4", - ) - go_repository( - name = "com_github_fsnotify_fsnotify", - importpath = "github.com/fsnotify/fsnotify", - sum = "h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M=", - version = "v1.8.0", - ) - go_repository( - name = "com_github_fxamacker_cbor_v2", - importpath = "github.com/fxamacker/cbor/v2", - sum = "h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E=", - version = "v2.7.0", - ) - go_repository( - name = "com_github_go_gl_glfw", - importpath = "github.com/go-gl/glfw", - sum = "h1:QbL/5oDUmRBzO9/Z7Seo6zf912W/a6Sr4Eu0G/3Jho0=", - version = "v0.0.0-20190409004039-e6da0acd62b1", - ) - go_repository( - name = "com_github_go_gl_glfw_v3_3_glfw", - importpath = "github.com/go-gl/glfw/v3.3/glfw", - sum = "h1:WtGNWLvXpe6ZudgnXrq0barxBImvnnJoMEhXAzcbM0I=", - version = "v0.0.0-20200222043503-6f7a984d4dc4", - ) - go_repository( - name = "com_github_go_kit_kit", - importpath = "github.com/go-kit/kit", - sum = "h1:wDJmvq38kDhkVxi50ni9ykkdUr1PKgqKOoi01fa0Mdk=", - version = "v0.9.0", - ) - go_repository( - name = "com_github_go_kit_log", - importpath = "github.com/go-kit/log", - sum = "h1:DGJh0Sm43HbOeYDNnVZFl8BvcYVvjD5bqYJvp0REbwQ=", - version = "v0.1.0", - ) - go_repository( - name = "com_github_go_logfmt_logfmt", - importpath = "github.com/go-logfmt/logfmt", - sum = "h1:TrB8swr/68K7m9CcGut2g3UOihhbcbiMAYiuTXdEih4=", - version = "v0.5.0", - ) - go_repository( - name = "com_github_go_logr_logr", - importpath = "github.com/go-logr/logr", - sum = "h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=", - version = "v1.4.2", - ) - go_repository( - name = "com_github_go_logr_stdr", - importpath = "github.com/go-logr/stdr", - sum = "h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=", - version = "v1.2.2", - ) - go_repository( - name = "com_github_go_logr_zapr", - importpath = "github.com/go-logr/zapr", - sum = "h1:XGdV8XW8zdwFiwOA2Dryh1gj2KRQyOOoNmBy4EplIcQ=", - version = "v1.3.0", - ) - go_repository( - name = "com_github_go_openapi_analysis", - importpath = "github.com/go-openapi/analysis", - sum = "h1:aGday7OWupfMs+LbmLZG4k0MYXIANxcuBTYUC03zFCU=", - version = "v0.23.0", - ) - go_repository( - name = "com_github_go_openapi_errors", - importpath = "github.com/go-openapi/errors", - sum = "h1:c4xY/OLxUBSTiepAg3j/MHuAv5mJhnf53LLMWFB+u/w=", - version = "v0.22.0", - ) - go_repository( - name = "com_github_go_openapi_jsonpointer", - importpath = "github.com/go-openapi/jsonpointer", - sum = "h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ=", - version = "v0.21.0", - ) - go_repository( - name = "com_github_go_openapi_jsonreference", - importpath = "github.com/go-openapi/jsonreference", - sum = "h1:Rs+Y7hSXT83Jacb7kFyjn4ijOuVGSvOdF2+tg1TRrwQ=", - version = "v0.21.0", - ) - go_repository( - name = "com_github_go_openapi_loads", - importpath = "github.com/go-openapi/loads", - sum = "h1:ECPGd4jX1U6NApCGG1We+uEozOAvXvJSF4nnwHZ8Aco=", - version = "v0.22.0", - ) - go_repository( - name = "com_github_go_openapi_runtime", - importpath = "github.com/go-openapi/runtime", - sum = "h1:gpPPmWSNGo214l6n8hzdXYhPuJcGtziTOgUpvsFWGIQ=", - version = "v0.28.0", - ) - go_repository( - name = "com_github_go_openapi_spec", - importpath = "github.com/go-openapi/spec", - sum = "h1:LTVzPc3p/RzRnkQqLRndbAzjY0d0BCL72A6j3CdL9ZY=", - version = "v0.21.0", - ) - go_repository( - name = "com_github_go_openapi_strfmt", - importpath = "github.com/go-openapi/strfmt", - sum = "h1:nlUS6BCqcnAk0pyhi9Y+kdDVZdZMHfEKQiS4HaMgO/c=", - version = "v0.23.0", - ) - go_repository( - name = "com_github_go_openapi_swag", - importpath = "github.com/go-openapi/swag", - sum = "h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE=", - version = "v0.23.0", - ) - go_repository( - name = "com_github_go_openapi_validate", - importpath = "github.com/go-openapi/validate", - sum = "h1:LdfDKwNbpB6Vn40xhTdNZAnfLECL81w+VX3BumrGD58=", - version = "v0.24.0", - ) - go_repository( - name = "com_github_go_stack_stack", - importpath = "github.com/go-stack/stack", - sum = "h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk=", - version = "v1.8.0", - ) - go_repository( - name = "com_github_go_task_slim_sprig_v3", - importpath = "github.com/go-task/slim-sprig/v3", - sum = "h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI=", - version = "v3.0.0", - ) - go_repository( - name = "com_github_godbus_dbus_v5", - importpath = "github.com/godbus/dbus/v5", - sum = "h1:9349emZab16e7zQvpmsbtjc18ykshndd8y2PG3sgJbA=", - version = "v5.0.4", - ) - go_repository( - name = "com_github_gofrs_uuid", - importpath = "github.com/gofrs/uuid", - sum = "h1:3qXRTX8/NbyulANqlc0lchS1gqAVxRgsuW1YrTJupqA=", - version = "v4.4.0+incompatible", - ) - go_repository( - name = "com_github_gogo_protobuf", - importpath = "github.com/gogo/protobuf", - sum = "h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=", - version = "v1.3.2", - ) - go_repository( - name = "com_github_golang_glog", - importpath = "github.com/golang/glog", - sum = "h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58=", - version = "v0.0.0-20160126235308-23def4e6c14b", - ) - go_repository( - name = "com_github_golang_groupcache", - importpath = "github.com/golang/groupcache", - sum = "h1:1r7pUrabqp18hOBcwBwiTsbnFeTZHV9eER/QT5JVZxY=", - version = "v0.0.0-20200121045136-8c9f03a8e57e", - ) - go_repository( - name = "com_github_golang_mock", - importpath = "github.com/golang/mock", - sum = "h1:l75CXGRSwbaYNpl/Z2X1XIIAMSCquvXgpVZDhwEIJsc=", - version = "v1.4.4", - ) - go_repository( - name = "com_github_golang_protobuf", - importpath = "github.com/golang/protobuf", - sum = "h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=", - version = "v1.5.4", - ) - go_repository( - name = "com_github_golang_snappy", - importpath = "github.com/golang/snappy", - sum = "h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM=", - version = "v0.0.4", - ) - go_repository( - name = "com_github_google_btree", - importpath = "github.com/google/btree", - sum = "h1:CVpQJjYgC4VbzxeGVHfvZrv1ctoYCAI8vbl07Fcxlyg=", - version = "v1.1.3", - ) - go_repository( - name = "com_github_google_cel_go", - build_file_proto_mode = "disable_global", - # See https://github.com/bazel-contrib/bazel-gazelle/issues/890 - build_naming_convention = "go_default_library", - importpath = "github.com/google/cel-go", - sum = "h1:91ThhEZlBcE5rB2adBVXqvDoqdL8BG2oyhd0bK1I/r4=", - version = "v0.23.1", - ) - go_repository( - name = "com_github_google_gnostic_models", - build_file_proto_mode = "disable_global", - importpath = "github.com/google/gnostic-models", - sum = "h1:MU/8wDLif2qCXZmzncUQ/BOfxWfthHi63KqpoNbWqVw=", - version = "v0.6.9", - ) - go_repository( - name = "com_github_google_go_cmp", - importpath = "github.com/google/go-cmp", - sum = "h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=", - version = "v0.6.0", - ) - go_repository( - name = "com_github_google_gofuzz", - importpath = "github.com/google/gofuzz", - sum = "h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0=", - version = "v1.2.0", - ) - go_repository( - name = "com_github_google_martian", - importpath = "github.com/google/martian", - sum = "h1:/CP5g8u/VJHijgedC/Legn3BAbAaWPgecwXBIDzw5no=", - version = "v2.1.0+incompatible", - ) - go_repository( - name = "com_github_google_martian_v3", - importpath = "github.com/google/martian/v3", - sum = "h1:pMen7vLs8nvgEYhywH3KDWJIJTeEr2ULsVWHWYHQyBs=", - version = "v3.0.0", - ) - go_repository( - name = "com_github_google_pprof", - importpath = "github.com/google/pprof", - sum = "h1:097atOisP2aRj7vFgYQBbFN4U4JNXUNYpxael3UzMyo=", - version = "v0.0.0-20241029153458-d1b30febd7db", - ) - go_repository( - name = "com_github_google_renameio", - importpath = "github.com/google/renameio", - sum = "h1:GOZbcHa3HfsPKPlmyPyN2KEohoMXOhdMbHrvbpl2QaA=", - version = "v0.1.0", - ) - go_repository( - name = "com_github_google_uuid", - importpath = "github.com/google/uuid", - sum = "h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=", - version = "v1.6.0", - ) - go_repository( - name = "com_github_googleapis_gax_go_v2", - build_file_proto_mode = "disable_global", - importpath = "github.com/googleapis/gax-go/v2", - sum = "h1:sjZBwGj9Jlw33ImPtvFviGYvseOtDM7hkSKB7+Tv3SM=", - version = "v2.0.5", - ) - go_repository( - name = "com_github_gorilla_websocket", - importpath = "github.com/gorilla/websocket", - sum = "h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc=", - version = "v1.5.0", - ) - go_repository( - name = "com_github_gregjones_httpcache", - importpath = "github.com/gregjones/httpcache", - sum = "h1:+ngKgrYPPJrOjhax5N+uePQ0Fh1Z7PheYoUI/0nzkPA=", - version = "v0.0.0-20190611155906-901d90724c79", - ) - go_repository( - name = "com_github_grpc_ecosystem_grpc_gateway_v2", - importpath = "github.com/grpc-ecosystem/grpc-gateway/v2", - sum = "h1:bkypFPDjIYGfCYD5mRBvpqxfYX1YCS1PXdKYWi8FsN0=", - version = "v2.20.0", - ) - go_repository( - name = "com_github_hashicorp_errwrap", - importpath = "github.com/hashicorp/errwrap", - sum = "h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I=", - version = "v1.1.0", - ) - go_repository( - name = "com_github_hashicorp_go_cleanhttp", - importpath = "github.com/hashicorp/go-cleanhttp", - sum = "h1:wvCrVc9TjDls6+YGAF2hAifE1E5U1+b4tH6KdvN3Gig=", - version = "v0.5.0", - ) - go_repository( - name = "com_github_hashicorp_go_immutable_radix", - importpath = "github.com/hashicorp/go-immutable-radix", - sum = "h1:DKHmCUm2hRBK510BaiZlwvpD40f8bJFeZnpfm2KLowc=", - version = "v1.3.1", - ) - go_repository( - name = "com_github_hashicorp_go_metrics", - importpath = "github.com/hashicorp/go-metrics", - sum = "h1:8mmPiIJkTPPEbAiV97IxdAGNdRdaWwVap1BU6elejKY=", - version = "v0.5.4", - ) - go_repository( - name = "com_github_hashicorp_go_msgpack_v2", - importpath = "github.com/hashicorp/go-msgpack/v2", - sum = "h1:4Ee8FTp834e+ewB71RDrQ0VKpyFdrKOjvYtnQ/ltVj0=", - version = "v2.1.2", - ) - go_repository( - name = "com_github_hashicorp_go_multierror", - importpath = "github.com/hashicorp/go-multierror", - sum = "h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo=", - version = "v1.1.1", - ) - go_repository( - name = "com_github_hashicorp_go_retryablehttp", - importpath = "github.com/hashicorp/go-retryablehttp", - sum = "h1:QlWt0KvWT0lq8MFppF9tsJGF+ynG7ztc2KIPhzRGk7s=", - version = "v0.5.3", - ) - go_repository( - name = "com_github_hashicorp_go_sockaddr", - importpath = "github.com/hashicorp/go-sockaddr", - sum = "h1:G+pTkSO01HpR5qCxg7lxfsFEZaG+C0VssTy/9dbT+Fw=", - version = "v1.0.7", - ) - go_repository( - name = "com_github_hashicorp_go_uuid", - importpath = "github.com/hashicorp/go-uuid", - sum = "h1:fv1ep09latC32wFoVwnqcnKJGnMSdBanPczbHAYm1BE=", - version = "v1.0.1", - ) - go_repository( - name = "com_github_hashicorp_golang_lru", - importpath = "github.com/hashicorp/golang-lru", - sum = "h1:dV3g9Z/unq5DpblPpw+Oqcv4dU/1omnb4Ok8iPY6p1c=", - version = "v1.0.2", - ) - go_repository( - name = "com_github_hashicorp_golang_lru_v2", - importpath = "github.com/hashicorp/golang-lru/v2", - sum = "h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k=", - version = "v2.0.7", - ) - go_repository( - name = "com_github_hashicorp_memberlist", - importpath = "github.com/hashicorp/memberlist", - sum = "h1:tQ1jOCypD0WvMemw/ZhhtH+PWpzcftQvgCorLu0hndk=", - version = "v0.5.3", - ) - go_repository( - name = "com_github_huandu_xstrings", - importpath = "github.com/huandu/xstrings", - sum = "h1:L18LIDzqlW6xN2rEkpdV8+oL/IXWJ1APd+vsdYy4Wdw=", - version = "v1.3.2", - ) - go_repository( - name = "com_github_ianlancetaylor_demangle", - importpath = "github.com/ianlancetaylor/demangle", - sum = "h1:UDMh68UUwekSh5iP2OMhRRZJiiBccgV7axzUG8vi56c=", - version = "v0.0.0-20181102032728-5e5cf60278f6", - ) - go_repository( - name = "com_github_imdario_mergo", - importpath = "github.com/imdario/mergo", - sum = "h1:3tnifQM4i+fbajXKBHXWEH+KvNHqojZ778UH75j3bGA=", - version = "v0.3.11", - ) - go_repository( - name = "com_github_inconshreveable_mousetrap", - importpath = "github.com/inconshreveable/mousetrap", - sum = "h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=", - version = "v1.1.0", - ) - go_repository( - name = "com_github_jessevdk_go_flags", - importpath = "github.com/jessevdk/go-flags", - sum = "h1:Cvu5U8UGrLay1rZfv/zP7iLpSHGUZ/Ou68T0iX1bBK4=", - version = "v1.6.1", - ) - go_repository( - name = "com_github_jmespath_go_jmespath", - importpath = "github.com/jmespath/go-jmespath", - sum = "h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg=", - version = "v0.4.0", - ) - go_repository( - name = "com_github_jmespath_go_jmespath_internal_testify", - importpath = "github.com/jmespath/go-jmespath/internal/testify", - sum = "h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8=", - version = "v1.5.1", - ) - go_repository( - name = "com_github_josharian_intern", - importpath = "github.com/josharian/intern", - sum = "h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=", - version = "v1.0.0", - ) - go_repository( - name = "com_github_jpillora_backoff", - importpath = "github.com/jpillora/backoff", - sum = "h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA=", - version = "v1.0.0", - ) - go_repository( - name = "com_github_json_iterator_go", - importpath = "github.com/json-iterator/go", - sum = "h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=", - version = "v1.1.12", - ) - go_repository( - name = "com_github_jstemmer_go_junit_report", - importpath = "github.com/jstemmer/go-junit-report", - sum = "h1:6QPYqodiu3GuPL+7mfx+NwDdp2eTkp9IfEUpgAwUN0o=", - version = "v0.9.1", - ) - go_repository( - name = "com_github_julienschmidt_httprouter", - importpath = "github.com/julienschmidt/httprouter", - sum = "h1:U0609e9tgbseu3rBINet9P48AI/D3oJs4dN7jwJOQ1U=", - version = "v1.3.0", - ) - go_repository( - name = "com_github_kimmachinegun_automemlimit", - importpath = "github.com/KimMachineGun/automemlimit", - sum = "h1:7G06p/dMSf7G8E6oq+f2uOPuVncFyIlDI/pBWK49u88=", - version = "v0.7.0", - ) - go_repository( - name = "com_github_kisielk_errcheck", - importpath = "github.com/kisielk/errcheck", - sum = "h1:e8esj/e4R+SAOwFwN+n3zr0nYeCyeweozKfO23MvHzY=", - version = "v1.5.0", - ) - go_repository( - name = "com_github_kisielk_gotool", - importpath = "github.com/kisielk/gotool", - sum = "h1:AV2c/EiW3KqPNT9ZKl07ehoAGi4C5/01Cfbblndcapg=", - version = "v1.0.0", - ) - go_repository( - name = "com_github_klauspost_compress", - importpath = "github.com/klauspost/compress", - sum = "h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc=", - version = "v1.17.11", - ) - go_repository( - name = "com_github_konsorten_go_windows_terminal_sequences", - importpath = "github.com/konsorten/go-windows-terminal-sequences", - sum = "h1:CE8S1cTafDpPvMhIxNJKvHsGVBgn1xWYf1NbHQhywc8=", - version = "v1.0.3", - ) - go_repository( - name = "com_github_kr_logfmt", - importpath = "github.com/kr/logfmt", - sum = "h1:T+h1c/A9Gawja4Y9mFVWj2vyii2bbUNDw3kt9VxK2EY=", - version = "v0.0.0-20140226030751-b84e30acd515", - ) - go_repository( - name = "com_github_kr_pretty", - importpath = "github.com/kr/pretty", - sum = "h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=", - version = "v0.3.1", - ) - go_repository( - name = "com_github_kr_pty", - importpath = "github.com/kr/pty", - sum = "h1:VkoXIwSboBpnk99O/KFauAEILuNHv5DVFKZMBN/gUgw=", - version = "v1.1.1", - ) - go_repository( - name = "com_github_kr_text", - importpath = "github.com/kr/text", - sum = "h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=", - version = "v0.2.0", - ) - go_repository( - name = "com_github_kylelemons_godebug", - importpath = "github.com/kylelemons/godebug", - sum = "h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=", - version = "v1.1.0", - ) - go_repository( - name = "com_github_mailru_easyjson", - importpath = "github.com/mailru/easyjson", - sum = "h1:PrnmzHw7262yW8sTBwxi1PdJA3Iw/EKBa8psRf7d9a4=", - version = "v0.9.0", - ) - go_repository( - name = "com_github_masterminds_goutils", - importpath = "github.com/Masterminds/goutils", - sum = "h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI=", - version = "v1.1.1", - ) - go_repository( - name = "com_github_masterminds_semver_v3", - importpath = "github.com/Masterminds/semver/v3", - sum = "h1:hLg3sBzpNErnxhQtUy/mmLR2I9foDujNK030IGemrRc=", - version = "v3.1.1", - ) - go_repository( - name = "com_github_masterminds_sprig_v3", - importpath = "github.com/Masterminds/sprig/v3", - sum = "h1:n6EPaDyLSvCEa3frruQvAiHuNp2dhBlMSmkEr+HuzGc=", - version = "v3.2.1", - ) - go_repository( - name = "com_github_mattn_go_colorable", - importpath = "github.com/mattn/go-colorable", - sum = "h1:UVL0vNpWh04HeJXV0KLcaT7r06gOH2l4OW6ddYRUIY4=", - version = "v0.0.9", - ) - go_repository( - name = "com_github_mattn_go_isatty", - importpath = "github.com/mattn/go-isatty", - sum = "h1:ns/ykhmWi7G9O+8a448SecJU3nSMBXJfqQkl0upE1jI=", - version = "v0.0.3", - ) - go_repository( - name = "com_github_matttproud_golang_protobuf_extensions", - importpath = "github.com/matttproud/golang_protobuf_extensions", - sum = "h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo=", - version = "v1.0.4", - ) - go_repository( - name = "com_github_mdlayher_socket", - importpath = "github.com/mdlayher/socket", - sum = "h1:VZaqt6RkGkt2OE9l3GcC6nZkqD3xKeQLyfleW/uBcos=", - version = "v0.5.1", - ) - go_repository( - name = "com_github_mdlayher_vsock", - importpath = "github.com/mdlayher/vsock", - sum = "h1:pC1mTJTvjo1r9n9fbm7S1j04rCgCzhCOS5DY0zqHlnQ=", - version = "v1.2.1", - ) - go_repository( - name = "com_github_miekg_dns", - importpath = "github.com/miekg/dns", - sum = "h1:8M5aAw6OMZfFXTT7K5V0Eu5YiiL8l7nUAkyN6C9YwaY=", - version = "v1.1.63", - ) - go_repository( - name = "com_github_mitchellh_cli", - importpath = "github.com/mitchellh/cli", - sum = "h1:OxRIeJXpAMztws/XHlN2vu6imG5Dpq+j61AzAX5fLng=", - version = "v1.1.5", - ) - go_repository( - name = "com_github_mitchellh_copystructure", - importpath = "github.com/mitchellh/copystructure", - sum = "h1:Laisrj+bAB6b/yJwB5Bt3ITZhGJdqmxquMKeZ+mmkFQ=", - version = "v1.0.0", - ) - go_repository( - name = "com_github_mitchellh_go_wordwrap", - importpath = "github.com/mitchellh/go-wordwrap", - sum = "h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQflz0v0=", - version = "v1.0.1", - ) - go_repository( - name = "com_github_mitchellh_mapstructure", - importpath = "github.com/mitchellh/mapstructure", - sum = "h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=", - version = "v1.5.0", - ) - go_repository( - name = "com_github_mitchellh_reflectwalk", - importpath = "github.com/mitchellh/reflectwalk", - sum = "h1:9D+8oIskB4VJBN5SFlmc27fSlIBZaov1Wpk/IfikLNY=", - version = "v1.0.0", - ) - go_repository( - name = "com_github_moby_spdystream", - importpath = "github.com/moby/spdystream", - sum = "h1:7r0J1Si3QO/kjRitvSLVVFUjxMEb/YLj6S9FF62JBCU=", - version = "v0.5.0", - ) - go_repository( - name = "com_github_modern_go_concurrent", - importpath = "github.com/modern-go/concurrent", - sum = "h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=", - version = "v0.0.0-20180306012644-bacd9c7ef1dd", - ) - go_repository( - name = "com_github_modern_go_reflect2", - importpath = "github.com/modern-go/reflect2", - sum = "h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=", - version = "v1.0.2", - ) - go_repository( - name = "com_github_montanaflynn_stats", - importpath = "github.com/montanaflynn/stats", - sum = "h1:etflOAAHORrCC44V+aR6Ftzort912ZU+YLiSTuV8eaE=", - version = "v0.7.1", - ) - go_repository( - name = "com_github_munnerz_goautoneg", - importpath = "github.com/munnerz/goautoneg", - sum = "h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=", - version = "v0.0.0-20191010083416-a7dc8b61c822", - ) - go_repository( - name = "com_github_mwitkow_go_conntrack", - build_file_proto_mode = "disable_global", - importpath = "github.com/mwitkow/go-conntrack", - sum = "h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU=", - version = "v0.0.0-20190716064945-2f068394615f", - ) - go_repository( - name = "com_github_mxk_go_flowrate", - importpath = "github.com/mxk/go-flowrate", - sum = "h1:y5//uYreIhSUg3J1GEMiLbxo1LJaP8RfCpH6pymGZus=", - version = "v0.0.0-20140419014527-cca7078d478f", - ) - go_repository( - name = "com_github_niemeyer_pretty", - importpath = "github.com/niemeyer/pretty", - sum = "h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs=", - version = "v0.0.0-20200227124842-a10e7caefd8e", - ) - go_repository( - name = "com_github_nytimes_gziphandler", - importpath = "github.com/NYTimes/gziphandler", - sum = "h1:ZUDjpQae29j0ryrS0u/B8HZfJBtBQHjqw2rQ2cqUQ3I=", - version = "v1.1.1", - ) - go_repository( - name = "com_github_oklog_run", - importpath = "github.com/oklog/run", - sum = "h1:GEenZ1cK0+q0+wsJew9qUg/DyD8k3JzYsZAi5gYi2mA=", - version = "v1.1.0", - ) - go_repository( - name = "com_github_oklog_ulid", - importpath = "github.com/oklog/ulid", - sum = "h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4=", - version = "v1.3.1", - ) - go_repository( - name = "com_github_onsi_ginkgo_v2", - importpath = "github.com/onsi/ginkgo/v2", - sum = "h1:7rg/4f3rB88pb5obDgNZrNHrQ4e6WpjonchcpuBRnZM=", - version = "v2.21.0", - ) - go_repository( - name = "com_github_onsi_gomega", - importpath = "github.com/onsi/gomega", - sum = "h1:Cwbd75ZBPxFSuZ6T+rN/WCb/gOc6YgFBXLlZLhC7Ds4=", - version = "v1.35.1", - ) - go_repository( - name = "com_github_opentracing_opentracing_go", - importpath = "github.com/opentracing/opentracing-go", - sum = "h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs=", - version = "v1.2.0", - ) - go_repository( - name = "com_github_pascaldekloe_goe", - importpath = "github.com/pascaldekloe/goe", - sum = "h1:cBOtyMzM9HTpWjXfbbunk26uA6nG3a8n06Wieeh0MwY=", - version = "v0.1.0", - ) - go_repository( - name = "com_github_pbnjay_memory", - importpath = "github.com/pbnjay/memory", - sum = "h1:onHthvaw9LFnH4t2DcNVpwGmV9E1BkGknEliJkfwQj0=", - version = "v0.0.0-20210728143218-7b4eea64cf58", - ) - go_repository( - name = "com_github_peterbourgon_diskv", - importpath = "github.com/peterbourgon/diskv", - sum = "h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI=", - version = "v2.0.1+incompatible", - ) - go_repository( - name = "com_github_philhofer_fwd", - importpath = "github.com/philhofer/fwd", - sum = "h1:bnDivRJ1EWPjUIRXV5KfORO897HTbpFAQddBdE8t7Gw=", - version = "v1.1.2", - ) - go_repository( - name = "com_github_pkg_errors", - importpath = "github.com/pkg/errors", - sum = "h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=", - version = "v0.9.1", - ) - go_repository( - name = "com_github_pmezard_go_difflib", - importpath = "github.com/pmezard/go-difflib", - sum = "h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=", - version = "v1.0.1-0.20181226105442-5d4384ee4fb2", - ) - go_repository( - name = "com_github_posener_complete", - importpath = "github.com/posener/complete", - sum = "h1:ccV59UEOTzVDnDUEFdT95ZzHVZ+5+158q8+SJb2QV5w=", - version = "v1.1.1", - ) - go_repository( - name = "com_github_pquerna_ffjson", - importpath = "github.com/pquerna/ffjson", - sum = "h1:xoIK0ctDddBMnc74udxJYBqlo9Ylnsp1waqjLsnef20=", - version = "v0.0.0-20190930134022-aa0246cd15f7", - ) - go_repository( - name = "com_github_prometheus_alertmanager", - build_file_proto_mode = "disable_global", - importpath = "github.com/prometheus/alertmanager", - sum = "h1:sLN+6HhZet8hrbmGHLAHWsTXgZSVCvq9Ix3U3wvivqc=", - version = "v0.28.0", - ) - go_repository( - name = "com_github_prometheus_client_golang", - build_file_proto_mode = "disable_global", - importpath = "github.com/prometheus/client_golang", - sum = "h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y=", - version = "v1.20.5", - ) - go_repository( - name = "com_github_prometheus_client_model", - build_file_proto_mode = "disable_global", - importpath = "github.com/prometheus/client_model", - sum = "h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E=", - version = "v0.6.1", - ) - go_repository( - name = "com_github_prometheus_common", - build_file_proto_mode = "disable_global", - importpath = "github.com/prometheus/common", - sum = "h1:xasJaQlnWAeyHdUBeGjXmutelfJHWMRr+Fg4QszZ2Io=", - version = "v0.62.0", - ) - go_repository( - name = "com_github_prometheus_common_assets", - importpath = "github.com/prometheus/common/assets", - sum = "h1:0P5OrzoHrYBOSM1OigWL3mY8ZvV2N4zIE/5AahrSrfM=", - version = "v0.2.0", - ) - go_repository( - name = "com_github_prometheus_common_sigv4", - importpath = "github.com/prometheus/common/sigv4", - sum = "h1:qoVebwtwwEhS85Czm2dSROY5fTo2PAPEVdDeppTwGX4=", - version = "v0.1.0", - ) - go_repository( - name = "com_github_prometheus_exporter_toolkit", - importpath = "github.com/prometheus/exporter-toolkit", - sum = "h1:Z02fYtbqTMy2i/f+xZ+UK5jy/bl1Ex3ndzh06T/Q9DQ=", - version = "v0.13.2", - ) - go_repository( - name = "com_github_prometheus_procfs", - importpath = "github.com/prometheus/procfs", - sum = "h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc=", - version = "v0.15.1", - ) - go_repository( - name = "com_github_rogpeppe_go_internal", - importpath = "github.com/rogpeppe/go-internal", - sum = "h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII=", - version = "v1.13.1", - ) - go_repository( - name = "com_github_rs_cors", - importpath = "github.com/rs/cors", - sum = "h1:eU3gRzXLRK57F5rKMGMZURNdIG4EoAmX8k94r9wXWHA=", - version = "v1.11.1", - ) - go_repository( - name = "com_github_ryanuber_columnize", - importpath = "github.com/ryanuber/columnize", - sum = "h1:C89EOx/XBWwIXl8wm8OPJBd7kPF25UfsK2X7Ph/zCAk=", - version = "v2.1.2+incompatible", - ) - go_repository( - name = "com_github_sean_seed", - importpath = "github.com/sean-/seed", - sum = "h1:nn5Wsu0esKSJiIVhscUtVbo7ada43DJhG55ua/hjS5I=", - version = "v0.0.0-20170313163322-e2103e2c3529", - ) - go_repository( - name = "com_github_sereal_sereal_go_sereal", - importpath = "github.com/Sereal/Sereal/Go/sereal", - sum = "h1:5kUcJJAKWWI82Xnp/CaU0eu5hLlHkmm9acjowSkwCd0=", - version = "v0.0.0-20231009093132-b9187f1a92c6", - ) - go_repository( - name = "com_github_shopspring_decimal", - importpath = "github.com/shopspring/decimal", - sum = "h1:abSATXmQEYyShuxI4/vyW3tV1MrKAJzCZ/0zLUXYbsQ=", - version = "v1.2.0", - ) - go_repository( - name = "com_github_shurcool_httpfs", - importpath = "github.com/shurcooL/httpfs", - sum = "h1:aqg5Vm5dwtvL+YgDpBcK1ITf3o96N/K7/wsRXQnUTEs=", - version = "v0.0.0-20230704072500-f1e31cf0ba5c", - ) - go_repository( - name = "com_github_shurcool_vfsgen", - importpath = "github.com/shurcooL/vfsgen", - sum = "h1:OfRzdxCzDhp+rsKWXuOO2I/quKMJ/+TQwVbIP/gltZg=", - version = "v0.0.0-20230704071429-0000e147ea92", - ) - go_repository( - name = "com_github_sirupsen_logrus", - importpath = "github.com/sirupsen/logrus", - sum = "h1:UBcNElsrwanuuMsnGSlYmtmgbb23qDR5dG+6X6Oo89I=", - version = "v1.6.0", - ) - go_repository( - name = "com_github_spf13_cast", - importpath = "github.com/spf13/cast", - sum = "h1:nFm6S0SMdyzrzcmThSipiEubIDy8WEXKNZ0UOgiRpng=", - version = "v1.3.1", - ) - go_repository( - name = "com_github_spf13_cobra", - importpath = "github.com/spf13/cobra", - sum = "h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM=", - version = "v1.8.1", - ) - go_repository( - name = "com_github_spf13_pflag", - importpath = "github.com/spf13/pflag", - sum = "h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o=", - version = "v1.0.6", - ) - go_repository( - name = "com_github_stoewer_go_strcase", - importpath = "github.com/stoewer/go-strcase", - sum = "h1:g0eASXYtp+yvN9fK8sH94oCIk0fau9uV1/ZdJ0AVEzs=", - version = "v1.3.0", - ) - go_repository( - name = "com_github_stretchr_objx", - importpath = "github.com/stretchr/objx", - sum = "h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY=", - version = "v0.5.2", - ) - go_repository( - name = "com_github_stretchr_testify", - importpath = "github.com/stretchr/testify", - sum = "h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=", - version = "v1.10.0", - ) - go_repository( - name = "com_github_tinylib_msgp", - importpath = "github.com/tinylib/msgp", - sum = "h1:FCXC1xanKO4I8plpHGH2P7koL/RzZs12l/+r7vakfm0=", - version = "v1.1.8", - ) - go_repository( - name = "com_github_trivago_tgo", - importpath = "github.com/trivago/tgo", - sum = "h1:uaWH/XIy9aWYWpjm2CU3RpcqZXmX2ysQ9/Go+d9gyrM=", - version = "v1.0.7", - ) - go_repository( - name = "com_github_tv42_httpunix", - importpath = "github.com/tv42/httpunix", - sum = "h1:G3dpKMzFDjgEh2q1Z7zUUtKa8ViPtH+ocF0bE0g00O8=", - version = "v0.0.0-20150427012821-b75d8614f926", - ) - go_repository( - name = "com_github_x448_float16", - importpath = "github.com/x448/float16", - sum = "h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM=", - version = "v0.8.4", - ) - go_repository( - name = "com_github_xdg_go_pbkdf2", - importpath = "github.com/xdg-go/pbkdf2", - sum = "h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c=", - version = "v1.0.0", - ) - go_repository( - name = "com_github_xdg_go_scram", - importpath = "github.com/xdg-go/scram", - sum = "h1:FHX5I5B4i4hKRVRBCFRxq1iQRej7WO3hhBuJf+UUySY=", - version = "v1.1.2", - ) - go_repository( - name = "com_github_xdg_go_stringprep", - importpath = "github.com/xdg-go/stringprep", - sum = "h1:XLI/Ng3O1Atzq0oBs3TWm+5ZVgkq2aqdlvP9JtoZ6c8=", - version = "v1.0.4", - ) - go_repository( - name = "com_github_xhit_go_str2duration_v2", - importpath = "github.com/xhit/go-str2duration/v2", - sum = "h1:lxklc02Drh6ynqX+DdPyp5pCKLUQpRT8bp8Ydu2Bstc=", - version = "v2.1.0", - ) - go_repository( - name = "com_github_xlab_treeprint", - importpath = "github.com/xlab/treeprint", - sum = "h1:HzHnuAF1plUN2zGlAFHbSQP2qJ0ZAD3XF5XD7OesXRQ=", - version = "v1.2.0", - ) - go_repository( - name = "com_github_youmark_pkcs8", - importpath = "github.com/youmark/pkcs8", - sum = "h1:ilQV1hzziu+LLM3zUTJ0trRztfwgjqKnBWNtSRkbmwM=", - version = "v0.0.0-20240726163527-a2c0da244d78", - ) - go_repository( - name = "com_github_yuin_goldmark", - importpath = "github.com/yuin/goldmark", - sum = "h1:fVcFKWvrslecOb/tg+Cc05dkeYx540o0FuFt3nUVDoE=", - version = "v1.4.13", - ) - go_repository( - name = "com_google_cloud_go", - importpath = "cloud.google.com/go", - sum = "h1:Dg9iHVQfrhq82rUNu9ZxUDrJLaxFUe/HlCVaLyRruq8=", - version = "v0.65.0", - ) - go_repository( - name = "com_google_cloud_go_bigquery", - importpath = "cloud.google.com/go/bigquery", - sum = "h1:PQcPefKFdaIzjQFbiyOgAqyx8q5djaE7x9Sqe712DPA=", - version = "v1.8.0", - ) - go_repository( - name = "com_google_cloud_go_compute_metadata", - importpath = "cloud.google.com/go/compute/metadata", - sum = "h1:Tz+eQXMEqDIKRsmY3cHTL6FVaynIjX2QxYC4trgAKZc=", - version = "v0.3.0", - ) - go_repository( - name = "com_google_cloud_go_datastore", - importpath = "cloud.google.com/go/datastore", - sum = "h1:/May9ojXjRkPBNVrq+oWLqmWCkr4OU5uRY29bu0mRyQ=", - version = "v1.1.0", - ) - go_repository( - name = "com_google_cloud_go_pubsub", - importpath = "cloud.google.com/go/pubsub", - sum = "h1:ukjixP1wl0LpnZ6LWtZJ0mX5tBmjp1f8Sqer8Z2OMUU=", - version = "v1.3.1", - ) - go_repository( - name = "com_google_cloud_go_storage", - importpath = "cloud.google.com/go/storage", - sum = "h1:STgFzyU5/8miMl0//zKh2aQeTyeaUH3WN9bSUiJ09bA=", - version = "v1.10.0", - ) - go_repository( - name = "com_shuralyov_dmitri_gpu_mtl", - importpath = "dmitri.shuralyov.com/gpu/mtl", - sum = "h1:VpgP7xuJadIUuKccphEpTJnWhS2jkQyMt6Y7pJCD7fY=", - version = "v0.0.0-20190408044501-666a987793e9", - ) - go_repository( - name = "dev_cel_expr", - importpath = "cel.dev/expr", - sum = "h1:V354PbqIXr9IQdwy4SYA4xa0HXaWq1BUPAGzugBY5V4=", - version = "v0.19.2", - ) - go_repository( - name = "in_gopkg_alecthomas_kingpin_v2", - importpath = "gopkg.in/alecthomas/kingpin.v2", - sum = "h1:jMFz6MfLP0/4fUyZle81rXUoxOBFi19VUFKVDOQfozc=", - version = "v2.2.6", - ) - go_repository( - name = "in_gopkg_check_v1", - importpath = "gopkg.in/check.v1", - sum = "h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=", - version = "v1.0.0-20201130134442-10cb98267c6c", - ) - go_repository( - name = "in_gopkg_errgo_v2", - importpath = "gopkg.in/errgo.v2", - sum = "h1:0vLT13EuvQ0hNvakwLuFZ/jYrLp5F3kcWHXdRggjCE8=", - version = "v2.1.0", - ) - go_repository( - name = "in_gopkg_evanphx_json_patch_v4", - importpath = "gopkg.in/evanphx/json-patch.v4", - sum = "h1:n6jtcsulIzXPJaxegRbvFNNrZDjbij7ny3gmSPG+6V4=", - version = "v4.12.0", - ) - go_repository( - name = "in_gopkg_inf_v0", - importpath = "gopkg.in/inf.v0", - sum = "h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=", - version = "v0.9.1", - ) - go_repository( - name = "in_gopkg_mgo_v2", - importpath = "gopkg.in/mgo.v2", - sum = "h1:VpOs+IwYnYBaFnrNAeB8UUWtL3vEUnzSCL1nVjPhqrw=", - version = "v2.0.0-20190816093944-a6b53ec6cb22", - ) - go_repository( - name = "in_gopkg_telebot_v3", - importpath = "gopkg.in/telebot.v3", - sum = "h1:uVDGjak9l824FN9YARWUHMsiNZnlohAVwUycw21k6t8=", - version = "v3.3.8", - ) - go_repository( - name = "in_gopkg_vmihailenco_msgpack_v2", - importpath = "gopkg.in/vmihailenco/msgpack.v2", - sum = "h1:gjPqo9orRVlSAH/065qw3MsFCDpH7fa1KpiizXyllY4=", - version = "v2.9.2", - ) - go_repository( - name = "in_gopkg_yaml_v2", - importpath = "gopkg.in/yaml.v2", - sum = "h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=", - version = "v2.4.0", - ) - go_repository( - name = "in_gopkg_yaml_v3", - importpath = "gopkg.in/yaml.v3", - sum = "h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=", - version = "v3.0.1", - ) - go_repository( - name = "io_k8s_api", - build_file_proto_mode = "disable_global", - importpath = "k8s.io/api", - sum = "h1:f562zw9cy+GvXzXf0CKlVQ7yHJVYzLfL6JAS4kOAaOc=", - version = "v0.32.1", - ) - go_repository( - name = "io_k8s_apiextensions_apiserver", - importpath = "k8s.io/apiextensions-apiserver", - sum = "h1:S0Xlqt51qzzqjKPxfgX1xh4HBZE+p8KKBq+k2SWNOE0=", - version = "v0.32.0", - ) - go_repository( - name = "io_k8s_apimachinery", - build_file_proto_mode = "disable_global", - importpath = "k8s.io/apimachinery", - sum = "h1:683ENpaCBjma4CYqsmZyhEzrGz6cjn1MY/X2jB2hkZs=", - version = "v0.32.1", - ) - go_repository( - name = "io_k8s_apiserver", - importpath = "k8s.io/apiserver", - sum = "h1:VJ89ZvQZ8p1sLeiWdRJpRD6oLozNZD2+qVSLi+ft5Qs=", - version = "v0.32.0", - ) - go_repository( - name = "io_k8s_client_go", - build_file_proto_mode = "disable_global", - importpath = "k8s.io/client-go", - sum = "h1:otM0AxdhdBIaQh7l1Q0jQpmo7WOFIk5FFa4bg6YMdUU=", - version = "v0.32.1", - ) - go_repository( - name = "io_k8s_component_base", - importpath = "k8s.io/component-base", - sum = "h1:d6cWHZkCiiep41ObYQS6IcgzOUQUNpywm39KVYaUqzU=", - version = "v0.32.0", - ) - go_repository( - name = "io_k8s_gengo_v2", - importpath = "k8s.io/gengo/v2", - sum = "h1:cErOOTkQ3JW19o4lo91fFurouhP8NcoBvb7CkvhZZpk=", - version = "v2.0.0-20240826214909-a7b603a56eb7", - ) - go_repository( - name = "io_k8s_klog_v2", - importpath = "k8s.io/klog/v2", - sum = "h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk=", - version = "v2.130.1", - ) - go_repository( - name = "io_k8s_kube_openapi", - importpath = "k8s.io/kube-openapi", - sum = "h1:hcha5B1kVACrLujCKLbr8XWMxCxzQx42DY8QKYJrDLg=", - version = "v0.0.0-20241212222426-2c72e554b1e7", - ) - go_repository( - name = "io_k8s_sigs_apiserver_network_proxy_konnectivity_client", - importpath = "sigs.k8s.io/apiserver-network-proxy/konnectivity-client", - sum = "h1:CPT0ExVicCzcpeN4baWEV2ko2Z/AsiZgEdwgcfwLgMo=", - version = "v0.31.0", - ) - go_repository( - name = "io_k8s_sigs_controller_runtime", - build_file_proto_mode = "disable_global", - importpath = "sigs.k8s.io/controller-runtime", - sum = "h1:JbGMAG/X94NeM3xvjenVUaBjy6Ui4Ogd/J5ZtjZnHaE=", - version = "v0.20.1", - ) - go_repository( - name = "io_k8s_sigs_json", - importpath = "sigs.k8s.io/json", - sum = "h1:gBQPwqORJ8d8/YNZWEjoZs7npUVDpVXUUOFfW6CgAqE=", - version = "v0.0.0-20241014173422-cfa47c3a1cc8", - ) - go_repository( - name = "io_k8s_sigs_structured_merge_diff_v4", - importpath = "sigs.k8s.io/structured-merge-diff/v4", - sum = "h1:nbCitCK2hfnhyiKo6uf2HxUPTCodY6Qaf85SbDIaMBk=", - version = "v4.5.0", - ) - go_repository( - name = "io_k8s_sigs_yaml", - importpath = "sigs.k8s.io/yaml", - sum = "h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E=", - version = "v1.4.0", - ) - go_repository( - name = "io_k8s_utils", - importpath = "k8s.io/utils", - sum = "h1:sdbE21q2nlQtFh65saZY+rRM6x6aJJI8IUa1AmH/qa0=", - version = "v0.0.0-20241210054802-24370beab758", - ) - go_repository( - name = "io_opencensus_go", - importpath = "go.opencensus.io", - sum = "h1:LYy1Hy3MJdrCdMwwzxA/dRok4ejH+RwNGbuoD9fCjto=", - version = "v0.22.4", - ) - go_repository( - name = "io_opentelemetry_go_auto_sdk", - importpath = "go.opentelemetry.io/auto/sdk", - sum = "h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA=", - version = "v1.1.0", - ) - go_repository( - name = "io_opentelemetry_go_contrib_instrumentation_net_http_otelhttp", - importpath = "go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp", - sum = "h1:4K4tsIXefpVJtvA/8srF4V4y0akAoPHkIslgAkjixJA=", - version = "v0.53.0", - ) - go_repository( - name = "io_opentelemetry_go_otel", - importpath = "go.opentelemetry.io/otel", - sum = "h1:zRLXxLCgL1WyKsPVrgbSdMN4c0FMkDAskSTQP+0hdUY=", - version = "v1.34.0", - ) - go_repository( - name = "io_opentelemetry_go_otel_exporters_otlp_otlptrace", - importpath = "go.opentelemetry.io/otel/exporters/otlp/otlptrace", - sum = "h1:3Q/xZUyC1BBkualc9ROb4G8qkH90LXEIICcs5zv1OYY=", - version = "v1.28.0", - ) - go_repository( - name = "io_opentelemetry_go_otel_exporters_otlp_otlptrace_otlptracegrpc", - importpath = "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc", - sum = "h1:qFffATk0X+HD+f1Z8lswGiOQYKHRlzfmdJm0wEaVrFA=", - version = "v1.27.0", - ) - go_repository( - name = "io_opentelemetry_go_otel_metric", - importpath = "go.opentelemetry.io/otel/metric", - sum = "h1:+eTR3U0MyfWjRDhmFMxe2SsW64QrZ84AOhvqS7Y+PoQ=", - version = "v1.34.0", - ) - go_repository( - name = "io_opentelemetry_go_otel_sdk", - importpath = "go.opentelemetry.io/otel/sdk", - sum = "h1:b9d7hIry8yZsgtbmM0DKyPWMMUMlK9NEKuIG4aBqWyE=", - version = "v1.28.0", - ) - go_repository( - name = "io_opentelemetry_go_otel_trace", - importpath = "go.opentelemetry.io/otel/trace", - sum = "h1:+ouXS2V8Rd4hp4580a8q23bg0azF2nI8cqLYnC8mh/k=", - version = "v1.34.0", - ) - go_repository( - name = "io_opentelemetry_go_proto_otlp", - importpath = "go.opentelemetry.io/proto/otlp", - sum = "h1:TrMUixzpM0yuc/znrFTP9MMRh8trP93mkCiDVeXrui0=", - version = "v1.3.1", - ) - go_repository( - name = "io_rsc_binaryregexp", - importpath = "rsc.io/binaryregexp", - sum = "h1:HfqmD5MEmC0zvwBuF187nq9mdnXjXsSivRiXN7SmRkE=", - version = "v0.2.0", - ) - go_repository( - name = "io_rsc_quote_v3", - importpath = "rsc.io/quote/v3", - sum = "h1:9JKUTTIUgS6kzR9mK1YuGKv6Nl+DijDNIc0ghT58FaY=", - version = "v3.1.0", - ) - go_repository( - name = "io_rsc_sampler", - importpath = "rsc.io/sampler", - sum = "h1:7uVkIFmeBqHfdjD+gZwtXXI+RODJ2Wc4O7MPEh/QiW4=", - version = "v1.3.0", - ) - go_repository( - name = "org_golang_google_api", - importpath = "google.golang.org/api", - sum = "h1:yfrXXP61wVuLb0vBcG6qaOoIoqYEzOQS8jum51jkv2w=", - version = "v0.30.0", - ) - go_repository( - name = "org_golang_google_appengine", - importpath = "google.golang.org/appengine", - sum = "h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c=", - version = "v1.6.7", - ) - go_repository( - name = "org_golang_google_genproto", - importpath = "google.golang.org/genproto", - sum = "h1:PDIOdWxZ8eRizhKa1AAvY53xsvLB1cWorMjslvY3VA8=", - version = "v0.0.0-20200825200019-8632dd797987", - ) - go_repository( - name = "org_golang_google_genproto_googleapis_api", - importpath = "google.golang.org/genproto/googleapis/api", - sum = "h1:A2ni10G3UlplFrWdCDJTl7D7mJ7GSRm37S+PDimaKRw=", - version = "v0.0.0-20250127172529-29210b9bc287", - ) - go_repository( - name = "org_golang_google_genproto_googleapis_rpc", - importpath = "google.golang.org/genproto/googleapis/rpc", - sum = "h1:J1H9f+LEdWAfHcez/4cvaVBox7cOYT+IU6rgqj5x++8=", - version = "v0.0.0-20250127172529-29210b9bc287", - ) - go_repository( - name = "org_golang_google_grpc", - importpath = "google.golang.org/grpc", - sum = "h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E=", - version = "v1.67.1", - ) - go_repository( - name = "org_golang_google_protobuf", - importpath = "google.golang.org/protobuf", - sum = "h1:6A3ZDJHn/eNqc1i+IdefRzy/9PokBTPvcqMySR7NNIM=", - version = "v1.36.4", - ) - go_repository( - name = "org_golang_x_crypto", - importpath = "golang.org/x/crypto", - sum = "h1:euUpcYgM8WcP71gNpTqQCn6rC2t6ULUPiOzfWaXVVfc=", - version = "v0.32.0", - ) - go_repository( - name = "org_golang_x_exp", - importpath = "golang.org/x/exp", - sum = "h1:KL/ZBHXgKGVmuZBZ01Lt57yE5ws8ZPSkkihmEyq7FXc=", - version = "v0.0.0-20250128182459-e0ece0dbea4c", - ) - go_repository( - name = "org_golang_x_image", - importpath = "golang.org/x/image", - sum = "h1:+qEpEAPhDZ1o0x3tHzZTQDArnOixOzGD9HUJfcg0mb4=", - version = "v0.0.0-20190802002840-cff245a6509b", - ) - go_repository( - name = "org_golang_x_lint", - importpath = "golang.org/x/lint", - sum = "h1:Wh+f8QHJXR411sJR8/vRBTZ7YapZaRvUcLFFJhusH0k=", - version = "v0.0.0-20200302205851-738671d3881b", - ) - go_repository( - name = "org_golang_x_mobile", - importpath = "golang.org/x/mobile", - sum = "h1:4+4C/Iv2U4fMZBiMCc98MG1In4gJY5YRhtpDNeDeHWs=", - version = "v0.0.0-20190719004257-d2bd2a29d028", - ) - go_repository( - name = "org_golang_x_mod", - importpath = "golang.org/x/mod", - sum = "h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4=", - version = "v0.22.0", - ) - go_repository( - name = "org_golang_x_net", - importpath = "golang.org/x/net", - sum = "h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0=", - version = "v0.34.0", - ) - go_repository( - name = "org_golang_x_oauth2", - importpath = "golang.org/x/oauth2", - sum = "h1:CY4y7XT9v0cRI9oupztF8AgiIu99L/ksR/Xp/6jrZ70=", - version = "v0.25.0", - ) - go_repository( - name = "org_golang_x_sync", - importpath = "golang.org/x/sync", - sum = "h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ=", - version = "v0.10.0", - ) - go_repository( - name = "org_golang_x_sys", - importpath = "golang.org/x/sys", - sum = "h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU=", - version = "v0.29.0", - ) - go_repository( - name = "org_golang_x_telemetry", - importpath = "golang.org/x/telemetry", - sum = "h1:zf5N6UOrA487eEFacMePxjXAJctxKmyjKUsjA11Uzuk=", - version = "v0.0.0-20240521205824-bda55230c457", - ) - go_repository( - name = "org_golang_x_term", - importpath = "golang.org/x/term", - sum = "h1:/Ts8HFuMR2E6IP/jlo7QVLZHggjKQbhu/7H0LJFr3Gg=", - version = "v0.28.0", - ) - go_repository( - name = "org_golang_x_text", - importpath = "golang.org/x/text", - sum = "h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=", - version = "v0.21.0", - ) - go_repository( - name = "org_golang_x_time", - importpath = "golang.org/x/time", - sum = "h1:EsRrnYcQiGH+5FfbgvV4AP7qEZstoyrHB0DzarOQ4ZY=", - version = "v0.9.0", - ) - go_repository( - name = "org_golang_x_tools", - importpath = "golang.org/x/tools", - sum = "h1:Xx0h3TtM9rzQpQuR4dKLrdglAmCEN5Oi+P74JdhdzXE=", - version = "v0.29.0", - ) - go_repository( - name = "org_golang_x_xerrors", - importpath = "golang.org/x/xerrors", - sum = "h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=", - version = "v0.0.0-20200804184101-5ec99f83aff1", - ) - go_repository( - name = "org_mongodb_go_mongo_driver", - importpath = "go.mongodb.org/mongo-driver", - sum = "h1:gvZyk8352qSfzyZ2UMWcpDpMSGEr1eqE4T793SqyhzM=", - version = "v1.17.2", - ) - go_repository( - name = "org_uber_go_atomic", - importpath = "go.uber.org/atomic", - sum = "h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE=", - version = "v1.11.0", - ) - go_repository( - name = "org_uber_go_automaxprocs", - importpath = "go.uber.org/automaxprocs", - sum = "h1:O3y2/QNTOdbF+e/dpXNNW7Rx2hZ4sTIPyybbxyNqTUs=", - version = "v1.6.0", - ) - go_repository( - name = "org_uber_go_goleak", - importpath = "go.uber.org/goleak", - sum = "h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=", - version = "v1.3.0", - ) - go_repository( - name = "org_uber_go_multierr", - importpath = "go.uber.org/multierr", - sum = "h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=", - version = "v1.11.0", - ) - go_repository( - name = "org_uber_go_zap", - importpath = "go.uber.org/zap", - sum = "h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8=", - version = "v1.27.0", - ) - go_repository( - name = "tools_gotest_v3", - importpath = "gotest.tools/v3", - sum = "h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU=", - version = "v3.5.1", - ) - go_repository( - name = "xyz_gomodules_jsonpatch_v2", - importpath = "gomodules.xyz/jsonpatch/v2", - sum = "h1:Ci3iUJyx9UeRx7CeFN8ARgGbkESwJK+KB9lLcWxY/Zw=", - version = "v2.4.0", - ) diff --git a/go_deps.MODULE.bazel b/go_deps.MODULE.bazel new file mode 100644 index 0000000..3c06271 --- /dev/null +++ b/go_deps.MODULE.bazel @@ -0,0 +1,18 @@ +# This file is maintained by `bazel mod tidy`. Do not edit the use_repo call by hand. +go_deps = use_extension("@gazelle//:extensions.bzl", "go_deps") +go_deps.from_file(go_mod = "//:go.mod") +use_repo( + go_deps, + "com_github_caarlos0_env_v9", + "com_github_go_logr_logr", + "com_github_google_cel_go", + "com_github_google_go_cmp", + "com_github_prometheus_alertmanager", + "com_github_prometheus_client_golang", + "com_github_prometheus_common", + "com_github_stretchr_testify", + "io_k8s_api", + "io_k8s_apimachinery", + "io_k8s_sigs_controller_runtime", + "tools_gotest_v3", +) diff --git a/internal/alert/BUILD.bazel b/internal/alert/BUILD.bazel index cc51e03..cbe2aaa 100644 --- a/internal/alert/BUILD.bazel +++ b/internal/alert/BUILD.bazel @@ -1,4 +1,4 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") +load("@rules_go//go:def.bzl", "go_library", "go_test") go_library( name = "alert", @@ -31,9 +31,9 @@ go_test( deps = [ "@com_github_go_logr_logr//:logr", "@com_github_prometheus_client_golang//api/prometheus/v1:prometheus", + "@com_github_prometheus_client_golang//prometheus", "@com_github_prometheus_common//model", "@com_github_stretchr_testify//assert", "@com_github_stretchr_testify//mock", - "@io_k8s_sigs_controller_runtime//pkg/metrics", ], ) diff --git a/internal/node/BUILD.bazel b/internal/node/BUILD.bazel index 8693d2b..c47be74 100644 --- a/internal/node/BUILD.bazel +++ b/internal/node/BUILD.bazel @@ -1,4 +1,4 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test") +load("@rules_go//go:def.bzl", "go_library", "go_test") go_library( name = "node", diff --git a/internal/node/reconciler_test.go b/internal/node/reconciler_test.go index e1aa890..25fed66 100644 --- a/internal/node/reconciler_test.go +++ b/internal/node/reconciler_test.go @@ -191,7 +191,7 @@ func Test_Reconcile(t *testing.T) { } mock.AssertExpectationsForObjects(t, ac) actual := &corev1.Node{} - assert.NilError(t, c.Get(context.TODO(), types.NamespacedName{Name: tt.expected.ObjectMeta.Name}, actual)) + assert.NilError(t, c.Get(context.TODO(), types.NamespacedName{Name: tt.expected.Name}, actual)) assert.DeepEqual(t, tt.expected, actual, cmpopts.IgnoreFields(v1.ObjectMeta{}, "ResourceVersion"), cmpopts.IgnoreTypes(v1.TypeMeta{})) diff --git a/k8s_rules.patch b/k8s_rules.patch deleted file mode 100644 index 83a47ba..0000000 --- a/k8s_rules.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff --git a/k8s/objects.bzl b/k8s/objects.bzl -index dda6dc1..8fa920e 100644 ---- a/k8s/objects.bzl -+++ b/k8s/objects.bzl -@@ -106,9 +106,3 @@ def k8s_objects(name, objects, **kwargs): - # TODO(mattmoor): We may have to normalize the labels that come - # in through objects. - _run_all(name = name, objects = _cmd_objects("", objects), delimiter = "echo ---\n", **kwargs) -- _run_all(name = name + ".resolve", objects = _cmd_objects("", objects), delimiter = "echo ---\n", **kwargs) -- _run_all(name = name + ".create", objects = _cmd_objects(".create", objects), **kwargs) -- _run_all(name = name + ".delete", objects = _cmd_objects(".delete", objects, True), **kwargs) -- _run_all(name = name + ".replace", objects = _cmd_objects(".replace", objects), **kwargs) -- _run_all(name = name + ".apply", objects = _cmd_objects(".apply", objects), **kwargs) -- _run_all(name = name + ".diff", objects = _cmd_objects(".diff", objects), wrap_exits = True, **kwargs) \ No newline at end of file diff --git a/manifests/BUILD.bazel b/manifests/BUILD.bazel index 62e9648..9910f51 100644 --- a/manifests/BUILD.bazel +++ b/manifests/BUILD.bazel @@ -1,22 +1,16 @@ -load("@io_bazel_rules_k8s//k8s:objects.bzl", "k8s_objects") - -k8s_objects( +# Concatenate the rendered objects into a single applyable manifest. +genrule( name = "stable", - objects = [ - "//manifests/namespaced:sciuro-configmap", - "//manifests/namespaced:sciuro-serviceaccount", - "//manifests/namespaced:sciuro-deployment", - "//manifests/namespaced:sciuro-leader", - "//manifests/namespaced:sciuro-role", - "//manifests/namespaced:sciuro-rolebinding", - ], + srcs = ["//manifests/namespaced:objects"], + outs = ["stable.yaml"], + cmd = "for f in $$(printf '%s\\n' $(locations //manifests/namespaced:objects) | sort); do echo '---'; cat $$f; done > $@", + visibility = ["//visibility:public"], ) -k8s_objects( +genrule( name = "cluster", - objects = [ - "//manifests/non-namespaced:sciuro-namespace", - "//manifests/non-namespaced:sciuro-clusterrole", - "//manifests/non-namespaced:sciuro-clusterrolebinding", - ], + srcs = ["//manifests/non-namespaced:objects"], + outs = ["cluster.yaml"], + cmd = "for f in $$(printf '%s\\n' $(locations //manifests/non-namespaced:objects) | sort); do echo '---'; cat $$f; done > $@", + visibility = ["//visibility:public"], ) diff --git a/manifests/namespaced/BUILD.bazel b/manifests/namespaced/BUILD.bazel index 984cc5c..348fd87 100644 --- a/manifests/namespaced/BUILD.bazel +++ b/manifests/namespaced/BUILD.bazel @@ -1,43 +1,30 @@ -load("@io_bazel_rules_k8s//k8s:object.bzl", "k8s_object") -load("@k8s_deploy//:defaults.bzl", "k8s_deploy") +package(default_visibility = ["//manifests:__subpackages__"]) -package(default_visibility = ["//manifests:__pkg__"]) - -k8s_deploy( - name = "sciuro-configmap", - kind = "configmap", - template = ":configmap.yaml", -) - -k8s_deploy( - name = "sciuro-deployment", - images = { - "sciuro:{STABLE_GIT_TAG}": "//cmd/sciuro:image", - }, - kind = "deployment", - template = ":deployment.yaml", -) - -k8s_deploy( - name = "sciuro-serviceaccount", - kind = "serviceaccount", - template = ":serviceaccount.yaml", -) - -k8s_deploy( - name = "sciuro-role", - kind = "role", - template = ":role.yaml", -) - -k8s_deploy( - name = "sciuro-rolebinding", - kind = "rolebinding", - template = ":rolebinding.yaml", +# Pin the image by the digest of the built multi-arch index so the rendered +# deployment is immutable. The registry prefix comes from --define repo=... +genrule( + name = "deployment", + srcs = [ + "deployment.yaml", + "//cmd/sciuro:image_index", + ], + outs = ["deployment.rendered.yaml"], + cmd = """\ +set -eu +digest=$$(grep -oE -m1 'sha256:[a-f0-9]{64}' "$(location //cmd/sciuro:image_index)/index.json" || true) +if [ -z "$$digest" ]; then echo "deployment: no sha256 digest found in index.json" >&2; exit 1; fi +sed -e "s|docker\\.io/cloudflare/sciuro:latest|$(repo)/sciuro@$$digest|g" "$(location deployment.yaml)" > "$@" +""", ) -k8s_deploy( - name = "sciuro-leader", - kind = "configmap", - template = ":sciuro-leader.yaml", +filegroup( + name = "objects", + srcs = [ + "configmap.yaml", + "role.yaml", + "rolebinding.yaml", + "sciuro-leader.yaml", + "serviceaccount.yaml", + ":deployment.rendered.yaml", + ], ) diff --git a/manifests/namespaced/deployment.yaml b/manifests/namespaced/deployment.yaml index b24a64b..22d416a 100644 --- a/manifests/namespaced/deployment.yaml +++ b/manifests/namespaced/deployment.yaml @@ -18,7 +18,7 @@ spec: restartPolicy: Always containers: - name: sciuro - image: sciuro:{STABLE_GIT_TAG} + image: docker.io/cloudflare/sciuro:latest imagePullPolicy: IfNotPresent resources: limits: diff --git a/manifests/non-namespaced/BUILD.bazel b/manifests/non-namespaced/BUILD.bazel index a575c9a..115913c 100644 --- a/manifests/non-namespaced/BUILD.bazel +++ b/manifests/non-namespaced/BUILD.bazel @@ -1,25 +1,19 @@ -load("@io_bazel_rules_k8s//k8s:object.bzl", "k8s_object") -load("@k8s_deploy//:defaults.bzl", "k8s_deploy") +package(default_visibility = ["//manifests:__subpackages__"]) -package(default_visibility = ["//manifests:__pkg__"]) - -k8s_deploy( - name = "sciuro-namespace", - kind = "namespace", - template = ":namespace.yaml", -) - -k8s_deploy( - name = "sciuro-clusterrole", - kind = "clusterrole", - template = ":clusterrole.yaml", +# Bind the ServiceAccount subject to the configured namespace, e.g. +# --define namespace=node-remediation +genrule( + name = "clusterrolebinding", + srcs = ["clusterrolebinding.yaml"], + outs = ["clusterrolebinding.rendered.yaml"], + cmd = "sed -e 's|^\\( *namespace: \\)kube-system$$|\\1$(namespace)|' $< > $@", ) -k8s_deploy( - name = "sciuro-clusterrolebinding", - kind = "clusterrolebinding", - substitutions = { - "kube-system": "$(namespace)", - }, - template = ":clusterrolebinding.yaml", +filegroup( + name = "objects", + srcs = [ + "clusterrole.yaml", + "namespace.yaml", + ":clusterrolebinding.rendered.yaml", + ], ) diff --git a/tools/ci.bazelrc b/tools/ci.bazelrc index 3f30e90..8f04c7d 100644 --- a/tools/ci.bazelrc +++ b/tools/ci.bazelrc @@ -1,4 +1,3 @@ -startup --batch build --noshow_progress --noshow_loading_progress build --verbose_failures test --test_output=errors diff --git a/tools/print-workspace-status b/tools/print-workspace-status deleted file mode 100755 index 7901ca4..0000000 --- a/tools/print-workspace-status +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env sh - -echo STABLE_GIT_TAG $(git describe --always --tags --match "v[0-9].*" --dirty)