]> git.feebdaed.xyz Git - 0xmirror/cilium.git/commitdiff
fix(deps): update all go dependencies main
authorcilium-renovate[bot] <134692979+cilium-renovate[bot]@users.noreply.github.com>
Mon, 22 Dec 2025 00:21:41 +0000 (00:21 +0000)
committerJulian Wiedmann <julianwiedmann@users.noreply.github.com>
Mon, 22 Dec 2025 08:16:04 +0000 (08:16 +0000)
Signed-off-by: cilium-renovate[bot] <134692979+cilium-renovate[bot]@users.noreply.github.com>
115 files changed:
Documentation/cmdref/cilium_install.md
Documentation/cmdref/cilium_upgrade.md
go.mod
go.sum
vendor/github.com/aws/aws-sdk-go-v2/aws/go_module_metadata.go
vendor/github.com/aws/aws-sdk-go-v2/aws/transport/http/client.go
vendor/github.com/aws/aws-sdk-go-v2/config/CHANGELOG.md
vendor/github.com/aws/aws-sdk-go-v2/config/go_module_metadata.go
vendor/github.com/aws/aws-sdk-go-v2/credentials/CHANGELOG.md
vendor/github.com/aws/aws-sdk-go-v2/credentials/go_module_metadata.go
vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/CHANGELOG.md
vendor/github.com/aws/aws-sdk-go-v2/feature/ec2/imds/go_module_metadata.go
vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/CHANGELOG.md
vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/go_module_metadata.go
vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/CHANGELOG.md
vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/go_module_metadata.go
vendor/github.com/aws/aws-sdk-go-v2/service/ec2/CHANGELOG.md
vendor/github.com/aws/aws-sdk-go-v2/service/ec2/api_op_DescribeInstanceStatus.go
vendor/github.com/aws/aws-sdk-go-v2/service/ec2/api_op_DescribeInstances.go
vendor/github.com/aws/aws-sdk-go-v2/service/ec2/deserializers.go
vendor/github.com/aws/aws-sdk-go-v2/service/ec2/go_module_metadata.go
vendor/github.com/aws/aws-sdk-go-v2/service/ec2/internal/endpoints/endpoints.go
vendor/github.com/aws/aws-sdk-go-v2/service/ec2/serializers.go
vendor/github.com/aws/aws-sdk-go-v2/service/ec2/types/enums.go
vendor/github.com/aws/aws-sdk-go-v2/service/ec2/types/types.go
vendor/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url/CHANGELOG.md
vendor/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url/go_module_metadata.go
vendor/github.com/aws/aws-sdk-go-v2/service/signin/CHANGELOG.md
vendor/github.com/aws/aws-sdk-go-v2/service/signin/go_module_metadata.go
vendor/github.com/aws/aws-sdk-go-v2/service/sso/CHANGELOG.md
vendor/github.com/aws/aws-sdk-go-v2/service/sso/go_module_metadata.go
vendor/github.com/aws/aws-sdk-go-v2/service/sso/internal/endpoints/endpoints.go
vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/CHANGELOG.md
vendor/github.com/aws/aws-sdk-go-v2/service/ssooidc/go_module_metadata.go
vendor/github.com/aws/aws-sdk-go-v2/service/sts/CHANGELOG.md
vendor/github.com/aws/aws-sdk-go-v2/service/sts/go_module_metadata.go
vendor/github.com/aws/aws-sdk-go-v2/service/sts/internal/endpoints/endpoints.go
vendor/github.com/cilium/charts/README.md
vendor/github.com/cilium/charts/cilium-1.16.18.tgz [new file with mode: 0644]
vendor/github.com/cilium/charts/cilium-1.17.11.tgz [new file with mode: 0644]
vendor/github.com/cilium/charts/cilium-1.18.5.tgz [new file with mode: 0644]
vendor/github.com/cilium/charts/index.yaml
vendor/github.com/cilium/hive/shell/client.go
vendor/github.com/cilium/hive/shell/const.go
vendor/github.com/cilium/hive/shell/server.go
vendor/github.com/go-openapi/errors/.gitignore
vendor/github.com/go-openapi/errors/CONTRIBUTORS.md [new file with mode: 0644]
vendor/github.com/go-openapi/errors/README.md
vendor/github.com/go-openapi/errors/api.go
vendor/github.com/go-openapi/errors/headers.go
vendor/github.com/go-openapi/errors/middleware.go
vendor/github.com/go-openapi/errors/parsing.go
vendor/github.com/go-openapi/errors/schema.go
vendor/github.com/go-openapi/jsonpointer/.cliff.toml [new file with mode: 0644]
vendor/github.com/go-openapi/jsonpointer/.gitignore
vendor/github.com/go-openapi/jsonpointer/.golangci.yml
vendor/github.com/go-openapi/jsonpointer/CONTRIBUTORS.md [new file with mode: 0644]
vendor/github.com/go-openapi/jsonpointer/LICENSE
vendor/github.com/go-openapi/jsonpointer/NOTICE [new file with mode: 0644]
vendor/github.com/go-openapi/jsonpointer/README.md
vendor/github.com/go-openapi/jsonpointer/SECURITY.md [new file with mode: 0644]
vendor/github.com/go-openapi/jsonpointer/errors.go
vendor/github.com/go-openapi/jsonpointer/pointer.go
vendor/github.com/go-openapi/jsonreference/.cliff.toml [new file with mode: 0644]
vendor/github.com/go-openapi/jsonreference/.editorconfig [new file with mode: 0644]
vendor/github.com/go-openapi/jsonreference/.golangci.yml
vendor/github.com/go-openapi/jsonreference/CONTRIBUTORS.md [new file with mode: 0644]
vendor/github.com/go-openapi/jsonreference/NOTICE
vendor/github.com/go-openapi/jsonreference/README.md
vendor/github.com/go-openapi/jsonreference/SECURITY.md [new file with mode: 0644]
vendor/github.com/go-openapi/jsonreference/internal/normalize_url.go
vendor/github.com/go-openapi/jsonreference/reference.go
vendor/github.com/go-openapi/spec/.cliff.toml [new file with mode: 0644]
vendor/github.com/go-openapi/spec/.golangci.yml
vendor/github.com/go-openapi/spec/CONTRIBUTORS.md [new file with mode: 0644]
vendor/github.com/go-openapi/spec/README.md
vendor/github.com/go-openapi/spec/SECURITY.md [new file with mode: 0644]
vendor/github.com/go-openapi/spec/expander.go
vendor/github.com/go-openapi/spec/normalizer.go
vendor/github.com/go-openapi/spec/operation.go
vendor/github.com/go-openapi/spec/ref.go
vendor/github.com/go-openapi/spec/resolver.go
vendor/github.com/go-openapi/spec/spec.go
vendor/github.com/go-openapi/spec/validations.go
vendor/go.etcd.io/etcd/api/v3/version/version.go
vendor/go.opentelemetry.io/otel/.codespellignore
vendor/go.opentelemetry.io/otel/.golangci.yml
vendor/go.opentelemetry.io/otel/.lycheeignore
vendor/go.opentelemetry.io/otel/CHANGELOG.md
vendor/go.opentelemetry.io/otel/CONTRIBUTING.md
vendor/go.opentelemetry.io/otel/Makefile
vendor/go.opentelemetry.io/otel/README.md
vendor/go.opentelemetry.io/otel/RELEASING.md
vendor/go.opentelemetry.io/otel/VERSIONING.md
vendor/go.opentelemetry.io/otel/attribute/encoder.go
vendor/go.opentelemetry.io/otel/attribute/hash.go [new file with mode: 0644]
vendor/go.opentelemetry.io/otel/attribute/internal/xxhash/xxhash.go [new file with mode: 0644]
vendor/go.opentelemetry.io/otel/attribute/set.go
vendor/go.opentelemetry.io/otel/attribute/type_string.go
vendor/go.opentelemetry.io/otel/baggage/baggage.go
vendor/go.opentelemetry.io/otel/dependencies.Dockerfile
vendor/go.opentelemetry.io/otel/internal/global/meter.go
vendor/go.opentelemetry.io/otel/metric.go
vendor/go.opentelemetry.io/otel/metric/config.go
vendor/go.opentelemetry.io/otel/propagation/trace_context.go
vendor/go.opentelemetry.io/otel/semconv/v1.37.0/error_type.go
vendor/go.opentelemetry.io/otel/trace/config.go
vendor/go.opentelemetry.io/otel/trace/span.go
vendor/go.opentelemetry.io/otel/version.go
vendor/go.opentelemetry.io/otel/versions.yaml
vendor/k8s.io/utils/buffer/ring_fixed.go [new file with mode: 0644]
vendor/k8s.io/utils/exec/exec.go
vendor/k8s.io/utils/exec/fixup_go118.go [deleted file]
vendor/k8s.io/utils/exec/fixup_go119.go [deleted file]
vendor/modules.txt

index 5d1b5ea31c4e6cc3dceeaecea40711ecd9db72d8..64d0101a45583a340e1ac2c0b1a53f162b76d230 100644 (file)
@@ -40,7 +40,7 @@ cilium install [flags]
       --set-file stringArray     Set helm values from respective files specified via the command line (can specify multiple or separate values with commas: key1=path1,key2=path2)
       --set-string stringArray   Set helm STRING values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)
   -f, --values strings           Specify helm values in a YAML file or a URL (can specify multiple)
-      --version string           Cilium version to install (default "v1.18.4")
+      --version string           Cilium version to install (default "v1.18.5")
       --wait                     Wait for helm install to finish
       --wait-duration duration   Maximum time to wait for status (default 5m0s)
 ```
index c7d91d735b36edcfb3a9b0c994cf2f6aa6be4972..53252e72d7c13039a192a657da7389f18ccaf5db 100644 (file)
@@ -43,7 +43,7 @@ cilium upgrade [flags]
       --set-file stringArray      Set helm values from respective files specified via the command line (can specify multiple or separate values with commas: key1=path1,key2=path2)
       --set-string stringArray    Set helm STRING values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)
   -f, --values strings            Specify helm values in a YAML file or a URL (can specify multiple)
-      --version string            Cilium version to install (default "v1.18.4")
+      --version string            Cilium version to install (default "v1.18.5")
       --wait                      Wait for helm install to finish
       --wait-duration duration    Maximum time to wait for status (default 5m0s)
 ```
diff --git a/go.mod b/go.mod
index 973fc89ce25e4917be5fa9ca4615d13439a6a4c1..e64a4c83d8fde493f64c0a177e0e949cc306b42f 100644 (file)
--- a/go.mod
+++ b/go.mod
@@ -9,20 +9,20 @@ require (
        github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v7 v7.2.0
        github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v7 v7.2.0
        github.com/aliyun/alibaba-cloud-sdk-go v1.63.107
-       github.com/aws/aws-sdk-go-v2 v1.40.1
-       github.com/aws/aws-sdk-go-v2/config v1.32.3
-       github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.15
-       github.com/aws/aws-sdk-go-v2/service/ec2 v1.275.1
+       github.com/aws/aws-sdk-go-v2 v1.41.0
+       github.com/aws/aws-sdk-go-v2/config v1.32.6
+       github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.16
+       github.com/aws/aws-sdk-go-v2/service/ec2 v1.278.0
        github.com/aws/smithy-go v1.24.0
        github.com/blang/semver/v4 v4.0.0
        github.com/cespare/xxhash/v2 v2.3.0
-       github.com/cilium/charts v0.0.0-20251203153012-ac76b7522d1a
+       github.com/cilium/charts v0.0.0-20251217104012-70fd91a32619
        github.com/cilium/coverbee v0.3.3-0.20240723084546-664438750fce
        github.com/cilium/dns v1.1.51-0.20240603182237-af788769786a
-       github.com/cilium/ebpf v0.20.1-0.20251204155832-f150ced93791
+       github.com/cilium/ebpf v0.20.1-0.20251215101449-df5c3096bd8c
        github.com/cilium/endpointslice-controller v0.0.0-20250410163339-ffb33e27879c
        github.com/cilium/fake v0.7.0
-       github.com/cilium/hive v0.0.0-20251021073839-03494cb6c4de
+       github.com/cilium/hive v0.0.0-20251219070844-89ccf807d9fb
        github.com/cilium/lumberjack/v2 v2.4.1
        github.com/cilium/proxy v0.0.0-20250623105955-2136f59a4ea1
        github.com/cilium/statedb v0.5.6
@@ -41,10 +41,10 @@ require (
        github.com/fatih/color v1.18.0
        github.com/fsnotify/fsnotify v1.9.0
        github.com/go-logr/logr v1.4.3
-       github.com/go-openapi/errors v0.22.5
+       github.com/go-openapi/errors v0.22.6
        github.com/go-openapi/loads v0.23.2
        github.com/go-openapi/runtime v0.29.2
-       github.com/go-openapi/spec v0.22.1
+       github.com/go-openapi/spec v0.22.2
        github.com/go-openapi/strfmt v0.25.0
        github.com/go-openapi/swag v0.25.4
        github.com/go-openapi/validate v0.25.1
@@ -99,17 +99,17 @@ require (
        github.com/tidwall/sjson v1.2.5
        github.com/vishvananda/netlink v1.3.2-0.20251101063711-6e61cd407d1d
        github.com/vishvananda/netns v0.0.5
-       go.etcd.io/etcd/api/v3 v3.6.6
-       go.etcd.io/etcd/client/pkg/v3 v3.6.6
-       go.etcd.io/etcd/client/v3 v3.6.6
-       go.opentelemetry.io/otel v1.38.0
-       go.opentelemetry.io/otel/trace v1.38.0
+       go.etcd.io/etcd/api/v3 v3.6.7
+       go.etcd.io/etcd/client/pkg/v3 v3.6.7
+       go.etcd.io/etcd/client/v3 v3.6.7
+       go.opentelemetry.io/otel v1.39.0
+       go.opentelemetry.io/otel/trace v1.39.0
        go.uber.org/goleak v1.3.0
        go.uber.org/zap v1.27.1
        go.yaml.in/yaml/v3 v3.0.4
        go4.org/netipx v0.0.0-20231129151722-fdeea329fbba
        golang.org/x/crypto v0.46.0
-       golang.org/x/exp v0.0.0-20251209150349-8475f28825e9
+       golang.org/x/exp v0.0.0-20251219203646-944ab1f22d93
        golang.org/x/mod v0.31.0
        golang.org/x/net v0.48.0
        golang.org/x/oauth2 v0.34.0
@@ -134,11 +134,11 @@ require (
        k8s.io/klog/v2 v2.130.1
        k8s.io/kubectl v0.35.0
        k8s.io/metrics v0.35.0
-       k8s.io/utils v0.0.0-20251002143259-bc988d571ff4
+       k8s.io/utils v0.0.0-20251220205832-9d40a56c1308
        sigs.k8s.io/controller-runtime v0.22.4
        sigs.k8s.io/gateway-api v1.4.0-rc.2
        sigs.k8s.io/mcs-api v0.3.1-0.20251217171610-79faa199f7dd
-       sigs.k8s.io/mcs-api/controllers v0.0.0-20251209180531-e481ae73a51f
+       sigs.k8s.io/mcs-api/controllers v0.0.0-20251217171610-79faa199f7dd
        sigs.k8s.io/yaml v1.6.0
 )
 
@@ -158,16 +158,16 @@ require (
        github.com/alecthomas/participle/v2 v2.1.0 // indirect
        github.com/antlr4-go/antlr/v4 v4.13.0 // indirect
        github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect
-       github.com/aws/aws-sdk-go-v2/credentials v1.19.3 // indirect
-       github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.15 // indirect
-       github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.15 // indirect
+       github.com/aws/aws-sdk-go-v2/credentials v1.19.6 // indirect
+       github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.16 // indirect
+       github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.16 // indirect
        github.com/aws/aws-sdk-go-v2/internal/ini v1.8.4 // indirect
        github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.4 // indirect
-       github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.15 // indirect
-       github.com/aws/aws-sdk-go-v2/service/signin v1.0.3 // indirect
-       github.com/aws/aws-sdk-go-v2/service/sso v1.30.6 // indirect
-       github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.11 // indirect
-       github.com/aws/aws-sdk-go-v2/service/sts v1.41.3 // indirect
+       github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.16 // indirect
+       github.com/aws/aws-sdk-go-v2/service/signin v1.0.4 // indirect
+       github.com/aws/aws-sdk-go-v2/service/sso v1.30.8 // indirect
+       github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.12 // indirect
+       github.com/aws/aws-sdk-go-v2/service/sts v1.41.5 // indirect
        github.com/beorn7/perks v1.0.1 // indirect
        github.com/chai2010/gettext-go v1.0.2 // indirect
        github.com/cilium/deepequal-gen v0.0.0-20241016021505-f57df2fe2e62 // indirect
@@ -200,8 +200,8 @@ require (
        github.com/go-logr/stdr v1.2.2 // indirect
        github.com/go-logr/zapr v1.3.0 // indirect
        github.com/go-openapi/analysis v0.24.1 // indirect
-       github.com/go-openapi/jsonpointer v0.22.1 // indirect
-       github.com/go-openapi/jsonreference v0.21.3 // indirect
+       github.com/go-openapi/jsonpointer v0.22.4 // indirect
+       github.com/go-openapi/jsonreference v0.21.4 // indirect
        github.com/go-openapi/swag/cmdutils v0.25.4 // indirect
        github.com/go-openapi/swag/conv v0.25.4 // indirect
        github.com/go-openapi/swag/fileutils v0.25.4 // indirect
@@ -298,7 +298,7 @@ require (
        go.opencensus.io v0.24.0 // indirect
        go.opentelemetry.io/auto/sdk v1.2.1 // indirect
        go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 // indirect
-       go.opentelemetry.io/otel/metric v1.38.0 // indirect
+       go.opentelemetry.io/otel/metric v1.39.0 // indirect
        go.opentelemetry.io/proto/otlp v1.7.1 // indirect
        go.uber.org/atomic v1.11.0 // indirect
        go.uber.org/dig v1.17.1 // indirect
diff --git a/go.sum b/go.sum
index db612475fa8fd451ed3ef0614e315a78c2038fac..e2a188b90f863b3cba7026a87ce11c4bf7107d3e 100644 (file)
--- a/go.sum
+++ b/go.sum
@@ -68,34 +68,34 @@ github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPd
 github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
 github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 h1:DklsrG3dyBCFEj5IhUbnKptjxatkF07cF2ak3yi77so=
 github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw=
-github.com/aws/aws-sdk-go-v2 v1.40.1 h1:difXb4maDZkRH0x//Qkwcfpdg1XQVXEAEs2DdXldFFc=
-github.com/aws/aws-sdk-go-v2 v1.40.1/go.mod h1:MayyLB8y+buD9hZqkCW3kX1AKq07Y5pXxtgB+rRFhz0=
-github.com/aws/aws-sdk-go-v2/config v1.32.3 h1:cpz7H2uMNTDa0h/5CYL5dLUEzPSLo2g0NkbxTRJtSSU=
-github.com/aws/aws-sdk-go-v2/config v1.32.3/go.mod h1:srtPKaJJe3McW6T/+GMBZyIPc+SeqJsNPJsd4mOYZ6s=
-github.com/aws/aws-sdk-go-v2/credentials v1.19.3 h1:01Ym72hK43hjwDeJUfi1l2oYLXBAOR8gNSZNmXmvuas=
-github.com/aws/aws-sdk-go-v2/credentials v1.19.3/go.mod h1:55nWF/Sr9Zvls0bGnWkRxUdhzKqj9uRNlPvgV1vgxKc=
-github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.15 h1:utxLraaifrSBkeyII9mIbVwXXWrZdlPO7FIKmyLCEcY=
-github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.15/go.mod h1:hW6zjYUDQwfz3icf4g2O41PHi77u10oAzJ84iSzR/lo=
-github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.15 h1:Y5YXgygXwDI5P4RkteB5yF7v35neH7LfJKBG+hzIons=
-github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.15/go.mod h1:K+/1EpG42dFSY7CBj+Fruzm8PsCGWTXJ3jdeJ659oGQ=
-github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.15 h1:AvltKnW9ewxX2hFmQS0FyJH93aSvJVUEFvXfU+HWtSE=
-github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.15/go.mod h1:3I4oCdZdmgrREhU74qS1dK9yZ62yumob+58AbFR4cQA=
+github.com/aws/aws-sdk-go-v2 v1.41.0 h1:tNvqh1s+v0vFYdA1xq0aOJH+Y5cRyZ5upu6roPgPKd4=
+github.com/aws/aws-sdk-go-v2 v1.41.0/go.mod h1:MayyLB8y+buD9hZqkCW3kX1AKq07Y5pXxtgB+rRFhz0=
+github.com/aws/aws-sdk-go-v2/config v1.32.6 h1:hFLBGUKjmLAekvi1evLi5hVvFQtSo3GYwi+Bx4lpJf8=
+github.com/aws/aws-sdk-go-v2/config v1.32.6/go.mod h1:lcUL/gcd8WyjCrMnxez5OXkO3/rwcNmvfno62tnXNcI=
+github.com/aws/aws-sdk-go-v2/credentials v1.19.6 h1:F9vWao2TwjV2MyiyVS+duza0NIRtAslgLUM0vTA1ZaE=
+github.com/aws/aws-sdk-go-v2/credentials v1.19.6/go.mod h1:SgHzKjEVsdQr6Opor0ihgWtkWdfRAIwxYzSJ8O85VHY=
+github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.16 h1:80+uETIWS1BqjnN9uJ0dBUaETh+P1XwFy5vwHwK5r9k=
+github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.16/go.mod h1:wOOsYuxYuB/7FlnVtzeBYRcjSRtQpAW0hCP7tIULMwo=
+github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.16 h1:rgGwPzb82iBYSvHMHXc8h9mRoOUBZIGFgKb9qniaZZc=
+github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.16/go.mod h1:L/UxsGeKpGoIj6DxfhOWHWQ/kGKcd4I1VncE4++IyKA=
+github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.16 h1:1jtGzuV7c82xnqOVfx2F0xmJcOw5374L7N6juGW6x6U=
+github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.16/go.mod h1:M2E5OQf+XLe+SZGmmpaI2yy+J326aFf6/+54PoxSANc=
 github.com/aws/aws-sdk-go-v2/internal/ini v1.8.4 h1:WKuaxf++XKWlHWu9ECbMlha8WOEGm0OUEZqm4K/Gcfk=
 github.com/aws/aws-sdk-go-v2/internal/ini v1.8.4/go.mod h1:ZWy7j6v1vWGmPReu0iSGvRiise4YI5SkR3OHKTZ6Wuc=
-github.com/aws/aws-sdk-go-v2/service/ec2 v1.275.1 h1:nEpHPUp2UKzxiLBoaLLTnIrWBmb1OL0vf8KHDHjNqcQ=
-github.com/aws/aws-sdk-go-v2/service/ec2 v1.275.1/go.mod h1:6xabBAflTTz4OO5f/P4QJrjzZ0WTYjRka+ZWXFqWw8U=
+github.com/aws/aws-sdk-go-v2/service/ec2 v1.278.0 h1:Cx/Rs2zaG30Dn4QMvUGC5rCAZagA8heta0TWAdBE/Xc=
+github.com/aws/aws-sdk-go-v2/service/ec2 v1.278.0/go.mod h1:Wg68QRgy2gEGGdmTPU/UbVpdv8sM14bUZmF64KFwAsY=
 github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.4 h1:0ryTNEdJbzUCEWkVXEXoqlXV72J5keC1GvILMOuD00E=
 github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.4/go.mod h1:HQ4qwNZh32C3CBeO6iJLQlgtMzqeG17ziAA/3KDJFow=
-github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.15 h1:3/u/4yZOffg5jdNk1sDpOQ4Y+R6Xbh+GzpDrSZjuy3U=
-github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.15/go.mod h1:4Zkjq0FKjE78NKjabuM4tRXKFzUJWXgP0ItEZK8l7JU=
-github.com/aws/aws-sdk-go-v2/service/signin v1.0.3 h1:d/6xOGIllc/XW1lzG9a4AUBMmpLA9PXcQnVPTuHHcik=
-github.com/aws/aws-sdk-go-v2/service/signin v1.0.3/go.mod h1:fQ7E7Qj9GiW8y0ClD7cUJk3Bz5Iw8wZkWDHsTe8vDKs=
-github.com/aws/aws-sdk-go-v2/service/sso v1.30.6 h1:8sTTiw+9yuNXcfWeqKF2x01GqCF49CpP4Z9nKrrk/ts=
-github.com/aws/aws-sdk-go-v2/service/sso v1.30.6/go.mod h1:8WYg+Y40Sn3X2hioaaWAAIngndR8n1XFdRPPX+7QBaM=
-github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.11 h1:E+KqWoVsSrj1tJ6I/fjDIu5xoS2Zacuu1zT+H7KtiIk=
-github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.11/go.mod h1:qyWHz+4lvkXcr3+PoGlGHEI+3DLLiU6/GdrFfMaAhB0=
-github.com/aws/aws-sdk-go-v2/service/sts v1.41.3 h1:tzMkjh0yTChUqJDgGkcDdxvZDSrJ/WB6R6ymI5ehqJI=
-github.com/aws/aws-sdk-go-v2/service/sts v1.41.3/go.mod h1:T270C0R5sZNLbWUe8ueiAF42XSZxxPocTaGSgs5c/60=
+github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.16 h1:oHjJHeUy0ImIV0bsrX0X91GkV5nJAyv1l1CC9lnO0TI=
+github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.16/go.mod h1:iRSNGgOYmiYwSCXxXaKb9HfOEj40+oTKn8pTxMlYkRM=
+github.com/aws/aws-sdk-go-v2/service/signin v1.0.4 h1:HpI7aMmJ+mm1wkSHIA2t5EaFFv5EFYXePW30p1EIrbQ=
+github.com/aws/aws-sdk-go-v2/service/signin v1.0.4/go.mod h1:C5RdGMYGlfM0gYq/tifqgn4EbyX99V15P2V3R+VHbQU=
+github.com/aws/aws-sdk-go-v2/service/sso v1.30.8 h1:aM/Q24rIlS3bRAhTyFurowU8A0SMyGDtEOY/l/s/1Uw=
+github.com/aws/aws-sdk-go-v2/service/sso v1.30.8/go.mod h1:+fWt2UHSb4kS7Pu8y+BMBvJF0EWx+4H0hzNwtDNRTrg=
+github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.12 h1:AHDr0DaHIAo8c9t1emrzAlVDFp+iMMKnPdYy6XO4MCE=
+github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.12/go.mod h1:GQ73XawFFiWxyWXMHWfhiomvP3tXtdNar/fi8z18sx0=
+github.com/aws/aws-sdk-go-v2/service/sts v1.41.5 h1:SciGFVNZ4mHdm7gpD1dgZYnCuVdX1s+lFTg4+4DOy70=
+github.com/aws/aws-sdk-go-v2/service/sts v1.41.5/go.mod h1:iW40X4QBmUxdP+fZNOpfmkdMZqsovezbAeO+Ubiv2pk=
 github.com/aws/smithy-go v1.24.0 h1:LpilSUItNPFr1eY85RYgTIg5eIEPtvFbskaFcmmIUnk=
 github.com/aws/smithy-go v1.24.0/go.mod h1:LEj2LM3rBRQJxPZTB4KuzZkaZYnZPnvgIhb4pu07mx0=
 github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
@@ -111,8 +111,8 @@ github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UF
 github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
 github.com/chai2010/gettext-go v1.0.2 h1:1Lwwip6Q2QGsAdl/ZKPCwTe9fe0CjlUbqj5bFNSjIRk=
 github.com/chai2010/gettext-go v1.0.2/go.mod h1:y+wnP2cHYaVj19NZhYKAwEMH2CI1gNHeQQ+5AjwawxA=
-github.com/cilium/charts v0.0.0-20251203153012-ac76b7522d1a h1:5u17cHgUL79jtF1Pm7rugnnjgjTjMZssv4wVBIfZhpU=
-github.com/cilium/charts v0.0.0-20251203153012-ac76b7522d1a/go.mod h1:M3C9VOlFvRzuV+a01t07Tw4uFLSfkCH3L542IWjf6BU=
+github.com/cilium/charts v0.0.0-20251217104012-70fd91a32619 h1:+fVBYaQuC+ReQmH1K4FbT+xUB3DAKA62gtVznd8V6pc=
+github.com/cilium/charts v0.0.0-20251217104012-70fd91a32619/go.mod h1:M3C9VOlFvRzuV+a01t07Tw4uFLSfkCH3L542IWjf6BU=
 github.com/cilium/controller-tools v0.16.5-1 h1:aJLd2riNwIP+qVwA9bFBu2GDk6fQVecJt/0bZF2IYOw=
 github.com/cilium/controller-tools v0.16.5-1/go.mod h1:8vztuRVzs8IuuJqKqbXCSlXcw+lkAv/M2sTpg55qjMY=
 github.com/cilium/coverbee v0.3.3-0.20240723084546-664438750fce h1:gqzXY3NuHllVVDw9vD49mlXx+9bYFPlg23rdrkQNFDM=
@@ -121,8 +121,8 @@ github.com/cilium/deepequal-gen v0.0.0-20241016021505-f57df2fe2e62 h1:MOWY9eqnrr
 github.com/cilium/deepequal-gen v0.0.0-20241016021505-f57df2fe2e62/go.mod h1:9EU8oWNwEP6f98xJz/YjWw7yOLHK7p90MKmaPu1wBcE=
 github.com/cilium/dns v1.1.51-0.20240603182237-af788769786a h1:PRGN7B+72mj3OtLL2DM3F/9jp+ItgqgNS7mecgCmwsQ=
 github.com/cilium/dns v1.1.51-0.20240603182237-af788769786a/go.mod h1:/7LC2GOgyXJ7maupZlaVIumYQiGPIgllSf6mA9sg6RU=
-github.com/cilium/ebpf v0.20.1-0.20251204155832-f150ced93791 h1:ZdcDKqh1c+drwvyCjz5o7pe3AGNRo1z1EZh4MVgixAk=
-github.com/cilium/ebpf v0.20.1-0.20251204155832-f150ced93791/go.mod h1:dM+AMI6FkW5LOkzikdefUmzK0z81o7GqiKXon7D1F58=
+github.com/cilium/ebpf v0.20.1-0.20251215101449-df5c3096bd8c h1:oC8e6Vac5mOCKfGtbozmBY7wUvKV0aekCUYeFJ9ffCM=
+github.com/cilium/ebpf v0.20.1-0.20251215101449-df5c3096bd8c/go.mod h1:dM+AMI6FkW5LOkzikdefUmzK0z81o7GqiKXon7D1F58=
 github.com/cilium/endpointslice v0.29.4-0.20240409195643-982ad68ab7ba h1:Ddc5e+pz0/nY0XiAEW/UcIlvnaHACSuF77ePyMNX510=
 github.com/cilium/endpointslice v0.29.4-0.20240409195643-982ad68ab7ba/go.mod h1:9MPoeojWVEBLFnioKXTvRoqGWTs9Dt252r1ACFsi8K8=
 github.com/cilium/endpointslice-controller v0.0.0-20250410163339-ffb33e27879c h1:+/SPdDam5Mha4QzOByEoBE7hfq8aUxnioItyKM48U6M=
@@ -131,8 +131,8 @@ github.com/cilium/fake v0.7.0 h1:4EKBtTweQrJoD4q45qDGu8udulmYMo48Y0BhEbrB1jc=
 github.com/cilium/fake v0.7.0/go.mod h1:hA1YsEjgIs5Gdeq/DVrDWGuhLCoVok7THTvQaGDO5bc=
 github.com/cilium/gobgp/v3 v3.0.0-20251113221723-3540251c0674 h1:RPXlDz/YCj2qscehc5oVFwHgUTDQGYHIgTxlN65F8R8=
 github.com/cilium/gobgp/v3 v3.0.0-20251113221723-3540251c0674/go.mod h1:kVHVFy1/fyZHJ8P32+ctvPeJogn9qKwa1YCeMRXXrP0=
-github.com/cilium/hive v0.0.0-20251021073839-03494cb6c4de h1:Kvp7XGVwH6zoLZx2As7ufnFohE94WwcU+WDJWzloOK8=
-github.com/cilium/hive v0.0.0-20251021073839-03494cb6c4de/go.mod h1:6qtm9+eQD8D1SsqGFgNE63lNeys9PZswouh37X5ZhWU=
+github.com/cilium/hive v0.0.0-20251219070844-89ccf807d9fb h1:4liozOPul/ER4VH2q8KJXTot1rfYxZbYyAyZzBcvP/M=
+github.com/cilium/hive v0.0.0-20251219070844-89ccf807d9fb/go.mod h1:6qtm9+eQD8D1SsqGFgNE63lNeys9PZswouh37X5ZhWU=
 github.com/cilium/linters v0.3.0 h1:XZzur3mcyM04YSnDeoKSb1l+9W7k3kvUoL0yF8ICCQA=
 github.com/cilium/linters v0.3.0/go.mod h1:CBcLwepTO5u+EwoN4X01HN9Pb1ru4Tn0vh68VnUrXuA=
 github.com/cilium/lumberjack/v2 v2.4.1 h1:tU92KFJmLQ4Uls5vTgok5b5RbfxpawRia7L14y2qDBs=
@@ -258,18 +258,18 @@ github.com/go-logr/zapr v1.3.0 h1:XGdV8XW8zdwFiwOA2Dryh1gj2KRQyOOoNmBy4EplIcQ=
 github.com/go-logr/zapr v1.3.0/go.mod h1:YKepepNBd1u/oyhd/yQmtjVXmm9uML4IXUgMOwR8/Gg=
 github.com/go-openapi/analysis v0.24.1 h1:Xp+7Yn/KOnVWYG8d+hPksOYnCYImE3TieBa7rBOesYM=
 github.com/go-openapi/analysis v0.24.1/go.mod h1:dU+qxX7QGU1rl7IYhBC8bIfmWQdX4Buoea4TGtxXY84=
-github.com/go-openapi/errors v0.22.5 h1:Yfv4O/PRYpNF3BNmVkEizcHb3uLVVsrDt3LNdgAKRY4=
-github.com/go-openapi/errors v0.22.5/go.mod h1:z9S8ASTUqx7+CP1Q8dD8ewGH/1JWFFLX/2PmAYNQLgk=
-github.com/go-openapi/jsonpointer v0.22.1 h1:sHYI1He3b9NqJ4wXLoJDKmUmHkWy/L7rtEo92JUxBNk=
-github.com/go-openapi/jsonpointer v0.22.1/go.mod h1:pQT9OsLkfz1yWoMgYFy4x3U5GY5nUlsOn1qSBH5MkCM=
-github.com/go-openapi/jsonreference v0.21.3 h1:96Dn+MRPa0nYAR8DR1E03SblB5FJvh7W6krPI0Z7qMc=
-github.com/go-openapi/jsonreference v0.21.3/go.mod h1:RqkUP0MrLf37HqxZxrIAtTWW4ZJIK1VzduhXYBEeGc4=
+github.com/go-openapi/errors v0.22.6 h1:eDxcf89O8odEnohIXwEjY1IB4ph5vmbUsBMsFNwXWPo=
+github.com/go-openapi/errors v0.22.6/go.mod h1:z9S8ASTUqx7+CP1Q8dD8ewGH/1JWFFLX/2PmAYNQLgk=
+github.com/go-openapi/jsonpointer v0.22.4 h1:dZtK82WlNpVLDW2jlA1YCiVJFVqkED1MegOUy9kR5T4=
+github.com/go-openapi/jsonpointer v0.22.4/go.mod h1:elX9+UgznpFhgBuaMQ7iu4lvvX1nvNsesQ3oxmYTw80=
+github.com/go-openapi/jsonreference v0.21.4 h1:24qaE2y9bx/q3uRK/qN+TDwbok1NhbSmGjjySRCHtC8=
+github.com/go-openapi/jsonreference v0.21.4/go.mod h1:rIENPTjDbLpzQmQWCj5kKj3ZlmEh+EFVbz3RTUh30/4=
 github.com/go-openapi/loads v0.23.2 h1:rJXAcP7g1+lWyBHC7iTY+WAF0rprtM+pm8Jxv1uQJp4=
 github.com/go-openapi/loads v0.23.2/go.mod h1:IEVw1GfRt/P2Pplkelxzj9BYFajiWOtY2nHZNj4UnWY=
 github.com/go-openapi/runtime v0.29.2 h1:UmwSGWNmWQqKm1c2MGgXVpC2FTGwPDQeUsBMufc5Yj0=
 github.com/go-openapi/runtime v0.29.2/go.mod h1:biq5kJXRJKBJxTDJXAa00DOTa/anflQPhT0/wmjuy+0=
-github.com/go-openapi/spec v0.22.1 h1:beZMa5AVQzRspNjvhe5aG1/XyBSMeX1eEOs7dMoXh/k=
-github.com/go-openapi/spec v0.22.1/go.mod h1:c7aeIQT175dVowfp7FeCvXXnjN/MrpaONStibD2WtDA=
+github.com/go-openapi/spec v0.22.2 h1:KEU4Fb+Lp1qg0V4MxrSCPv403ZjBl8Lx1a83gIPU8Qc=
+github.com/go-openapi/spec v0.22.2/go.mod h1:iIImLODL2loCh3Vnox8TY2YWYJZjMAKYyLH2Mu8lOZs=
 github.com/go-openapi/strfmt v0.25.0 h1:7R0RX7mbKLa9EYCTHRcCuIPcaqlyQiWNPTXwClK0saQ=
 github.com/go-openapi/strfmt v0.25.0/go.mod h1:nNXct7OzbwrMY9+5tLX4I21pzcmE6ccMGXl3jFdPfn8=
 github.com/go-openapi/swag v0.25.4 h1:OyUPUFYDPDBMkqyxOTkqDYFnrhuhi9NR6QVUvIochMU=
@@ -722,12 +722,12 @@ github.com/zmap/zcrypto v0.0.0-20230310154051-c8b263fd8300/go.mod h1:mOd4yUMgn2f
 github.com/zmap/zlint/v3 v3.0.0/go.mod h1:paGwFySdHIBEMJ61YjoqT4h7Ge+fdYG4sUQhnTb1lJ8=
 github.com/zmap/zlint/v3 v3.5.0 h1:Eh2B5t6VKgVH0DFmTwOqE50POvyDhUaU9T2mJOe1vfQ=
 github.com/zmap/zlint/v3 v3.5.0/go.mod h1:JkNSrsDJ8F4VRtBZcYUQSvnWFL7utcjDIn+FE64mlBI=
-go.etcd.io/etcd/api/v3 v3.6.6 h1:mcaMp3+7JawWv69p6QShYWS8cIWUOl32bFLb6qf8pOQ=
-go.etcd.io/etcd/api/v3 v3.6.6/go.mod h1:f/om26iXl2wSkcTA1zGQv8reJRSLVdoEBsi4JdfMrx4=
-go.etcd.io/etcd/client/pkg/v3 v3.6.6 h1:uoqgzSOv2H9KlIF5O1Lsd8sW+eMLuV6wzE3q5GJGQNs=
-go.etcd.io/etcd/client/pkg/v3 v3.6.6/go.mod h1:YngfUVmvsvOJ2rRgStIyHsKtOt9SZI2aBJrZiWJhCbI=
-go.etcd.io/etcd/client/v3 v3.6.6 h1:G5z1wMf5B9SNexoxOHUGBaULurOZPIgGPsW6CN492ec=
-go.etcd.io/etcd/client/v3 v3.6.6/go.mod h1:36Qv6baQ07znPR3+n7t+Rk5VHEzVYPvFfGmfF4wBHV8=
+go.etcd.io/etcd/api/v3 v3.6.7 h1:7BNJ2gQmc3DNM+9cRkv7KkGQDayElg8x3X+tFDYS+E0=
+go.etcd.io/etcd/api/v3 v3.6.7/go.mod h1:xJ81TLj9hxrYYEDmXTeKURMeY3qEDN24hqe+q7KhbnI=
+go.etcd.io/etcd/client/pkg/v3 v3.6.7 h1:vvzgyozz46q+TyeGBuFzVuI53/yd133CHceNb/AhBVs=
+go.etcd.io/etcd/client/pkg/v3 v3.6.7/go.mod h1:2IVulJ3FZ/czIGl9T4lMF1uxzrhRahLqe+hSgy+Kh7Q=
+go.etcd.io/etcd/client/v3 v3.6.7 h1:9WqA5RpIBtdMxAy1ukXLAdtg2pAxNqW5NUoO2wQrE6U=
+go.etcd.io/etcd/client/v3 v3.6.7/go.mod h1:2XfROY56AXnUqGsvl+6k29wrwsSbEh1lAouQB1vHpeE=
 go.mongodb.org/mongo-driver v1.17.6 h1:87JUG1wZfWsr6rIz3ZmpH90rL5tea7O3IHuSwHUpsss=
 go.mongodb.org/mongo-driver v1.17.6/go.mod h1:Hy04i7O2kC4RS06ZrhPRqj/u4DTYkFDAAccj+rVKqgQ=
 go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0=
@@ -742,8 +742,8 @@ go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.6
 go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0/go.mod h1:rg+RlpR5dKwaS95IyyZqj5Wd4E13lk/msnTS0Xl9lJM=
 go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 h1:F7Jx+6hwnZ41NSFTO5q4LYDtJRXBf2PD0rNBkeB/lus=
 go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0/go.mod h1:UHB22Z8QsdRDrnAtX4PntOl36ajSxcdUMt1sF7Y6E7Q=
-go.opentelemetry.io/otel v1.38.0 h1:RkfdswUDRimDg0m2Az18RKOsnI8UDzppJAtj01/Ymk8=
-go.opentelemetry.io/otel v1.38.0/go.mod h1:zcmtmQ1+YmQM9wrNsTGV/q/uyusom3P8RxwExxkZhjM=
+go.opentelemetry.io/otel v1.39.0 h1:8yPrr/S0ND9QEfTfdP9V+SiwT4E0G7Y5MO7p85nis48=
+go.opentelemetry.io/otel v1.39.0/go.mod h1:kLlFTywNWrFyEdH0oj2xK0bFYZtHRYUdv1NklR/tgc8=
 go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.8.0 h1:WzNab7hOOLzdDF/EoWCt4glhrbMPVMOO5JYTmpz36Ls=
 go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.8.0/go.mod h1:hKvJwTzJdp90Vh7p6q/9PAOd55dI6WA6sWj62a/JvSs=
 go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.8.0 h1:S+LdBGiQXtJdowoJoQPEtI52syEP/JYBUpjO49EQhV8=
@@ -768,16 +768,16 @@ go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.32.0 h1:cC2yDI3IQd0Udsu
 go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.32.0/go.mod h1:2PD5Ex6z8CFzDbTdOlwyNIUywRr1DN0ospafJM1wJ+s=
 go.opentelemetry.io/otel/log v0.8.0 h1:egZ8vV5atrUWUbnSsHn6vB8R21G2wrKqNiDt3iWertk=
 go.opentelemetry.io/otel/log v0.8.0/go.mod h1:M9qvDdUTRCopJcGRKg57+JSQ9LgLBrwwfC32epk5NX8=
-go.opentelemetry.io/otel/metric v1.38.0 h1:Kl6lzIYGAh5M159u9NgiRkmoMKjvbsKtYRwgfrA6WpA=
-go.opentelemetry.io/otel/metric v1.38.0/go.mod h1:kB5n/QoRM8YwmUahxvI3bO34eVtQf2i4utNVLr9gEmI=
+go.opentelemetry.io/otel/metric v1.39.0 h1:d1UzonvEZriVfpNKEVmHXbdf909uGTOQjA0HF0Ls5Q0=
+go.opentelemetry.io/otel/metric v1.39.0/go.mod h1:jrZSWL33sD7bBxg1xjrqyDjnuzTUB0x1nBERXd7Ftcs=
 go.opentelemetry.io/otel/sdk v1.38.0 h1:l48sr5YbNf2hpCUj/FoGhW9yDkl+Ma+LrVl8qaM5b+E=
 go.opentelemetry.io/otel/sdk v1.38.0/go.mod h1:ghmNdGlVemJI3+ZB5iDEuk4bWA3GkTpW+DOoZMYBVVg=
 go.opentelemetry.io/otel/sdk/log v0.8.0 h1:zg7GUYXqxk1jnGF/dTdLPrK06xJdrXgqgFLnI4Crxvs=
 go.opentelemetry.io/otel/sdk/log v0.8.0/go.mod h1:50iXr0UVwQrYS45KbruFrEt4LvAdCaWWgIrsN3ZQggo=
 go.opentelemetry.io/otel/sdk/metric v1.38.0 h1:aSH66iL0aZqo//xXzQLYozmWrXxyFkBJ6qT5wthqPoM=
 go.opentelemetry.io/otel/sdk/metric v1.38.0/go.mod h1:dg9PBnW9XdQ1Hd6ZnRz689CbtrUp0wMMs9iPcgT9EZA=
-go.opentelemetry.io/otel/trace v1.38.0 h1:Fxk5bKrDZJUH+AMyyIXGcFAPah0oRcT+LuNtJrmcNLE=
-go.opentelemetry.io/otel/trace v1.38.0/go.mod h1:j1P9ivuFsTceSWe1oY+EeW3sc+Pp42sO++GHkg4wwhs=
+go.opentelemetry.io/otel/trace v1.39.0 h1:2d2vfpEDmCJ5zVYz7ijaJdOF59xLomrvj7bjt6/qCJI=
+go.opentelemetry.io/otel/trace v1.39.0/go.mod h1:88w4/PnZSazkGzz/w84VHpQafiU4EtqqlVdxWy+rNOA=
 go.opentelemetry.io/proto/otlp v1.7.1 h1:gTOMpGDb0WTBOP8JaO72iL3auEZhVmAQg4ipjOVAtj4=
 go.opentelemetry.io/proto/otlp v1.7.1/go.mod h1:b2rVh6rfI/s2pHWNlB7ILJcRALpcNDzKhACevjI+ZnE=
 go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
@@ -814,8 +814,8 @@ golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL
 golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY=
-golang.org/x/exp v0.0.0-20251209150349-8475f28825e9 h1:MDfG8Cvcqlt9XXrmEiD4epKn7VJHZO84hejP9Jmp0MM=
-golang.org/x/exp v0.0.0-20251209150349-8475f28825e9/go.mod h1:EPRbTFwzwjXj9NpYyyrvenVh9Y+GFeEvMNh7Xuz7xgU=
+golang.org/x/exp v0.0.0-20251219203646-944ab1f22d93 h1:fQsdNF2N+/YewlRZiricy4P1iimyPKZ/xwniHj8Q2a0=
+golang.org/x/exp v0.0.0-20251219203646-944ab1f22d93/go.mod h1:EPRbTFwzwjXj9NpYyyrvenVh9Y+GFeEvMNh7Xuz7xgU=
 golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs=
 golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
 golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
@@ -1038,8 +1038,8 @@ k8s.io/kubectl v0.35.0 h1:cL/wJKHDe8E8+rP3G7avnymcMg6bH6JEcR5w5uo06wc=
 k8s.io/kubectl v0.35.0/go.mod h1:VR5/TSkYyxZwrRwY5I5dDq6l5KXmiCb+9w8IKplk3Qo=
 k8s.io/metrics v0.35.0 h1:xVFoqtAGm2dMNJAcB5TFZJPCen0uEqqNt52wW7ABbX8=
 k8s.io/metrics v0.35.0/go.mod h1:g2Up4dcBygZi2kQSEQVDByFs+VUwepJMzzQLJJLpq4M=
-k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 h1:SjGebBtkBqHFOli+05xYbK8YF1Dzkbzn+gDM4X9T4Ck=
-k8s.io/utils v0.0.0-20251002143259-bc988d571ff4/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
+k8s.io/utils v0.0.0-20251220205832-9d40a56c1308 h1:rk+D2uTO79bbNsICltOdVoA6mcJb0NpvBcts+ACymBQ=
+k8s.io/utils v0.0.0-20251220205832-9d40a56c1308/go.mod h1:xDxuJ0whA3d0I4mf/C4ppKHxXynQ+fxnkmQH0vTHnuk=
 oras.land/oras-go/v2 v2.6.0 h1:X4ELRsiGkrbeox69+9tzTu492FMUu7zJQW6eJU+I2oc=
 oras.land/oras-go/v2 v2.6.0/go.mod h1:magiQDfG6H1O9APp+rOsvCPcW1GD2MM7vgnKY0Y+u1o=
 rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4=
@@ -1059,8 +1059,8 @@ sigs.k8s.io/kustomize/kyaml v0.20.1 h1:PCMnA2mrVbRP3NIB6v9kYCAc38uvFLVs8j/CD567A
 sigs.k8s.io/kustomize/kyaml v0.20.1/go.mod h1:0EmkQHRUsJxY8Ug9Niig1pUMSCGHxQ5RklbpV/Ri6po=
 sigs.k8s.io/mcs-api v0.3.1-0.20251217171610-79faa199f7dd h1:s5E2X2Y7W2M2KxV731CBCWAEOsbvqgNsjUSLL4vHXLg=
 sigs.k8s.io/mcs-api v0.3.1-0.20251217171610-79faa199f7dd/go.mod h1:zZ5CK8uS6HaLkxY4HqsmcBHfzHuNMrY2uJy8T7jffK4=
-sigs.k8s.io/mcs-api/controllers v0.0.0-20251209180531-e481ae73a51f h1:TqhC0fHcxg9wEpHkMMmV95JXssNHPMFsl/LvhieB8wA=
-sigs.k8s.io/mcs-api/controllers v0.0.0-20251209180531-e481ae73a51f/go.mod h1:IEVANHiCGLNsCWuPsZCJhCVzeWavUmxpJ8XgpTt9MpM=
+sigs.k8s.io/mcs-api/controllers v0.0.0-20251217171610-79faa199f7dd h1:pTMgSLnHwHtn5t9uPmxYpyEkBbbH/Lsueo6nSEaCFjc=
+sigs.k8s.io/mcs-api/controllers v0.0.0-20251217171610-79faa199f7dd/go.mod h1:IEVANHiCGLNsCWuPsZCJhCVzeWavUmxpJ8XgpTt9MpM=
 sigs.k8s.io/randfill v1.0.0 h1:JfjMILfT8A6RbawdsK2JXGBR5AQVfd+9TbzrlneTyrU=
 sigs.k8s.io/randfill v1.0.0/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY=
 sigs.k8s.io/structured-merge-diff/v6 v6.3.0 h1:jTijUJbW353oVOd9oTlifJqOGEkUw2jB/fXCbTiQEco=
index 0e2e96d50094deda47f603be658ae40b52ad6ff5..c9d0bdc4cd02cb3c7646bff6b449321670fbf9b8 100644 (file)
@@ -3,4 +3,4 @@
 package aws
 
 // goModuleVersion is the tagged release for this module
-const goModuleVersion = "1.40.1"
+const goModuleVersion = "1.41.0"
index 8d7c35a9ec817ebc0eb349204f2caee723bfcf31..c7ef0acc4d2a58ce16d7693e19854f1312c779bd 100644 (file)
@@ -18,6 +18,7 @@ var (
        // Default connection pool options
        DefaultHTTPTransportMaxIdleConns        = 100
        DefaultHTTPTransportMaxIdleConnsPerHost = 10
+       DefaultHTTPTransportMaxConnsPerHost     = 2048
 
        // Default connection timeouts
        DefaultHTTPTransportIdleConnTimeout       = 90 * time.Second
@@ -186,6 +187,7 @@ func defaultHTTPTransport() *http.Transport {
                TLSHandshakeTimeout:   DefaultHTTPTransportTLSHandleshakeTimeout,
                MaxIdleConns:          DefaultHTTPTransportMaxIdleConns,
                MaxIdleConnsPerHost:   DefaultHTTPTransportMaxIdleConnsPerHost,
+               MaxConnsPerHost:       DefaultHTTPTransportMaxConnsPerHost,
                IdleConnTimeout:       DefaultHTTPTransportIdleConnTimeout,
                ExpectContinueTimeout: DefaultHTTPTransportExpectContinueTimeout,
                ForceAttemptHTTP2:     true,
index 96241169ab18fc3dc22f427686c64d4005074d1a..ba568ed25bb2ce3269bc24ba86072ed2d656f434 100644 (file)
@@ -1,3 +1,15 @@
+# v1.32.6 (2025-12-16)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.32.5 (2025-12-09)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.32.4 (2025-12-08)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
 # v1.32.3 (2025-12-02)
 
 * **Dependency Update**: Updated to the latest SDK module versions
index f746b9038448360f268b0b6add749f393821a847..effc38ea6d3fd0b17537a43addff0bd1e433967c 100644 (file)
@@ -3,4 +3,4 @@
 package config
 
 // goModuleVersion is the tagged release for this module
-const goModuleVersion = "1.32.3"
+const goModuleVersion = "1.32.6"
index d9cf2f26b7658e130f674940fc6e2efc3ca41d1f..210fb2e5bd21e2141e2b90a36d0dd10ab26f8a7b 100644 (file)
@@ -1,3 +1,15 @@
+# v1.19.6 (2025-12-16)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.19.5 (2025-12-09)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
+# v1.19.4 (2025-12-08)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
 # v1.19.3 (2025-12-02)
 
 * **Dependency Update**: Updated to the latest SDK module versions
index 84c1d0298ff636a82eafa269515cf4c803ca75e7..4e620d43dd3d59b0a7bad0e1d9cffca98345423e 100644 (file)
@@ -3,4 +3,4 @@
 package credentials
 
 // goModuleVersion is the tagged release for this module
-const goModuleVersion = "1.19.3"
+const goModuleVersion = "1.19.6"
index a7a537774c745b4a04a9ca5e4db6b966a2494175..5b9f6cc16a79058135a830f74a3269e7887836b7 100644 (file)
@@ -1,3 +1,7 @@
+# v1.18.16 (2025-12-08)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
 # v1.18.15 (2025-12-02)
 
 * **Dependency Update**: Updated to the latest SDK module versions
index 8ad9afa8f84fd851e0ad0d4c8f3d40810dd5dc37..630ccb34d1552bfa5cd87ad9bf05b4aca761dc47 100644 (file)
@@ -3,4 +3,4 @@
 package imds
 
 // goModuleVersion is the tagged release for this module
-const goModuleVersion = "1.18.15"
+const goModuleVersion = "1.18.16"
index f4a5edd69aa901657f9ce43dd6423126bd8ac545..6ffdf06108695c1d8f0dda1bab9f2494b5c902b5 100644 (file)
@@ -1,3 +1,7 @@
+# v1.4.16 (2025-12-08)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
 # v1.4.15 (2025-12-02)
 
 * **Dependency Update**: Updated to the latest SDK module versions
index f9790cb5dc9cd16f128da8b10b2fd5d300f93522..72df7b81bf00dda369714aa93ed267156ba2783e 100644 (file)
@@ -3,4 +3,4 @@
 package configsources
 
 // goModuleVersion is the tagged release for this module
-const goModuleVersion = "1.4.15"
+const goModuleVersion = "1.4.16"
index f5d88c32d01e23783d98066a0301ebc28bfa1d61..b2d34779110a9651e93576d7bfa495d2d2c28131 100644 (file)
@@ -1,3 +1,7 @@
+# v2.7.16 (2025-12-08)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
 # v2.7.15 (2025-12-02)
 
 * **Dependency Update**: Updated to the latest SDK module versions
index d9929521e55a45f1f511d3b4afc006d2e523171f..1a524ae2e572b704ed261a5de742c0cadc01a282 100644 (file)
@@ -3,4 +3,4 @@
 package endpoints
 
 // goModuleVersion is the tagged release for this module
-const goModuleVersion = "2.7.15"
+const goModuleVersion = "2.7.16"
index 0fc1695820cd0bc80efe7d34229b177f8331cbae..7660ee65e7681ce26b4d6ae31b2bc88e5adc40a4 100644 (file)
@@ -1,3 +1,20 @@
+# v1.278.0 (2025-12-18)
+
+* **Feature**: This release adds AvailabilityZoneId support for CreateFleet, ModifyFleet, DescribeFleets, RequestSpotFleet, ModifySpotFleetRequests and DescribeSpotFleetRequests APIs.
+
+# v1.277.0 (2025-12-15)
+
+* **Feature**: EC2 Capacity Manager now supports SpotTotalCount, SpotTotalInterruptions and SpotInterruptionRate metrics for both vCPU and instance units.
+
+# v1.276.1 (2025-12-09)
+
+* No change notes available for this release.
+
+# v1.276.0 (2025-12-08)
+
+* **Feature**: Amazon EC2 P6-B300 instances provide 8x NVIDIA Blackwell Ultra GPUs with 2.1 TB high bandwidth GPU memory, 6.4 Tbps EFA networking, 300 Gbps dedicated ENA throughput, and 4 TB of system memory. Amazon EC2 C8a instances are powered by 5th Gen AMD EPYC processors with a maximum frequency of 4.5 GHz.
+* **Dependency Update**: Updated to the latest SDK module versions
+
 # v1.275.1 (2025-12-02)
 
 * **Dependency Update**: Updated to the latest SDK module versions
index 81ff970c4f925795f27f15fbbf47f0f6c908d08f..44b749896f414a6536d0a185d855aa1a9b020628 100644 (file)
@@ -34,10 +34,6 @@ import (
 //     them through their termination. For more information, see [Instance lifecycle]in the Amazon EC2
 //     User Guide.
 //
-//   - SQL license exemption monitoring - For instances registered with the SQL LE
-//     service, status includes SQL license exemption monitoring health and processing
-//     status to provide operational visibility into license exemption functionality.
-//
 // The Amazon EC2 API follows an eventual consistency model. This means that the
 // result of an API command you run that creates or modifies resources might not be
 // immediately available to all subsequent commands you run. For guidance on how to
index 74d39afed59eb266d0b41905b7e4e874d3c5a0f8..cb062484e2f659a71fe848bda2f0f599d7589487 100644 (file)
@@ -423,8 +423,8 @@ type DescribeInstancesInput struct {
        //   to the state-reason-code filter.
        //
        //   - requester-id - The ID of the entity that launched the instance on your
-       //   behalf (for example, Amazon Web Services Management Console, Amazon EC2 Auto
-       //   Scaling, and so on).
+       //   behalf (for example, Amazon Web Services Management Console, Auto Scaling, and
+       //   so on).
        //
        //   - reservation-id - The ID of the instance's reservation. A reservation ID is
        //   created any time you launch an instance. A reservation ID has a one-to-one
index 16dcc32f9e8d2d88d88947d415b074359d4ddab4..6b521a5407a9db62d12279734ecee725a3ad45bb 100644 (file)
@@ -95300,6 +95300,19 @@ func awsEc2query_deserializeDocumentFleetLaunchTemplateOverrides(v **types.Fleet
                                sv.AvailabilityZone = ptr.String(xtv)
                        }
 
+               case strings.EqualFold("availabilityZoneId", t.Name.Local):
+                       val, err := decoder.Value()
+                       if err != nil {
+                               return err
+                       }
+                       if val == nil {
+                               break
+                       }
+                       {
+                               xtv := string(val)
+                               sv.AvailabilityZoneId = ptr.String(xtv)
+                       }
+
                case strings.EqualFold("blockDeviceMappingSet", t.Name.Local):
                        nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t)
                        if err := awsEc2query_deserializeDocumentBlockDeviceMappingResponseList(&sv.BlockDeviceMappings, nodeDecoder); err != nil {
@@ -120869,6 +120882,19 @@ func awsEc2query_deserializeDocumentLaunchTemplateOverrides(v **types.LaunchTemp
                                sv.AvailabilityZone = ptr.String(xtv)
                        }
 
+               case strings.EqualFold("availabilityZoneId", t.Name.Local):
+                       val, err := decoder.Value()
+                       if err != nil {
+                               return err
+                       }
+                       if val == nil {
+                               break
+                       }
+                       {
+                               xtv := string(val)
+                               sv.AvailabilityZoneId = ptr.String(xtv)
+                       }
+
                case strings.EqualFold("instanceRequirements", t.Name.Local):
                        nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t)
                        if err := awsEc2query_deserializeDocumentInstanceRequirements(&sv.InstanceRequirements, nodeDecoder); err != nil {
@@ -150019,6 +150045,19 @@ func awsEc2query_deserializeDocumentSpotPlacement(v **types.SpotPlacement, decod
                                sv.AvailabilityZone = ptr.String(xtv)
                        }
 
+               case strings.EqualFold("availabilityZoneId", t.Name.Local):
+                       val, err := decoder.Value()
+                       if err != nil {
+                               return err
+                       }
+                       if val == nil {
+                               break
+                       }
+                       {
+                               xtv := string(val)
+                               sv.AvailabilityZoneId = ptr.String(xtv)
+                       }
+
                case strings.EqualFold("groupName", t.Name.Local):
                        val, err := decoder.Value()
                        if err != nil {
index 06f43bc64ab692c5e83e7ba0952350e24cfb429f..8977b70d48366a74d0e6fe58073690030f92af3e 100644 (file)
@@ -3,4 +3,4 @@
 package ec2
 
 // goModuleVersion is the tagged release for this module
-const goModuleVersion = "1.275.1"
+const goModuleVersion = "1.278.0"
index 1b3004e32de26d39d207fdc24ab5d108ae9ad215..c3c0c60bc9a2b933cc80ad79692f27178b048810 100644 (file)
@@ -532,6 +532,11 @@ var defaultPartitions = endpoints.Partitions{
                },
                RegionRegex:    partitionRegexp.AwsEusc,
                IsRegionalized: true,
+               Endpoints: endpoints.Endpoints{
+                       endpoints.EndpointKey{
+                               Region: "eusc-de-east-1",
+                       }: endpoints.Endpoint{},
+               },
        },
        {
                ID: "aws-iso",
index cca51151be89185733dd7f2a5feffd572a621871..c25b3509e71f233b80618574fdb66152b544c7de 100644 (file)
@@ -55105,6 +55105,11 @@ func awsEc2query_serializeDocumentFleetLaunchTemplateOverridesRequest(v *types.F
                objectKey.String(*v.AvailabilityZone)
        }
 
+       if v.AvailabilityZoneId != nil {
+               objectKey := object.Key("AvailabilityZoneId")
+               objectKey.String(*v.AvailabilityZoneId)
+       }
+
        if v.BlockDeviceMappings != nil {
                objectKey := object.FlatKey("BlockDeviceMapping")
                if err := awsEc2query_serializeDocumentFleetBlockDeviceMappingRequestList(v.BlockDeviceMappings, objectKey); err != nil {
@@ -57954,6 +57959,11 @@ func awsEc2query_serializeDocumentLaunchTemplateOverrides(v *types.LaunchTemplat
                objectKey.String(*v.AvailabilityZone)
        }
 
+       if v.AvailabilityZoneId != nil {
+               objectKey := object.Key("AvailabilityZoneId")
+               objectKey.String(*v.AvailabilityZoneId)
+       }
+
        if v.InstanceRequirements != nil {
                objectKey := object.Key("InstanceRequirements")
                if err := awsEc2query_serializeDocumentInstanceRequirements(v.InstanceRequirements, objectKey); err != nil {
@@ -62443,6 +62453,11 @@ func awsEc2query_serializeDocumentSpotPlacement(v *types.SpotPlacement, value qu
                objectKey.String(*v.AvailabilityZone)
        }
 
+       if v.AvailabilityZoneId != nil {
+               objectKey := object.Key("AvailabilityZoneId")
+               objectKey.String(*v.AvailabilityZoneId)
+       }
+
        if v.GroupName != nil {
                objectKey := object.Key("GroupName")
                objectKey.String(*v.GroupName)
index 1cf63cd64e2532db365208a2dae47c3ea8aa146c..64c4cbea3af2aa97300b73b12c2e1f921df00fa0 100644 (file)
@@ -4982,6 +4982,19 @@ const (
        InstanceTypeR8a48xlarge        InstanceType = "r8a.48xlarge"
        InstanceTypeR8aMetal24xl       InstanceType = "r8a.metal-24xl"
        InstanceTypeR8aMetal48xl       InstanceType = "r8a.metal-48xl"
+       InstanceTypeP6B30048xlarge     InstanceType = "p6-b300.48xlarge"
+       InstanceTypeC8aMedium          InstanceType = "c8a.medium"
+       InstanceTypeC8aLarge           InstanceType = "c8a.large"
+       InstanceTypeC8aXlarge          InstanceType = "c8a.xlarge"
+       InstanceTypeC8a2xlarge         InstanceType = "c8a.2xlarge"
+       InstanceTypeC8a4xlarge         InstanceType = "c8a.4xlarge"
+       InstanceTypeC8a8xlarge         InstanceType = "c8a.8xlarge"
+       InstanceTypeC8a12xlarge        InstanceType = "c8a.12xlarge"
+       InstanceTypeC8a16xlarge        InstanceType = "c8a.16xlarge"
+       InstanceTypeC8a24xlarge        InstanceType = "c8a.24xlarge"
+       InstanceTypeC8a48xlarge        InstanceType = "c8a.48xlarge"
+       InstanceTypeC8aMetal24xl       InstanceType = "c8a.metal-24xl"
+       InstanceTypeC8aMetal48xl       InstanceType = "c8a.metal-48xl"
 )
 
 // Values returns all known values for InstanceType. Note that this can be
@@ -6075,6 +6088,19 @@ func (InstanceType) Values() []InstanceType {
                "r8a.48xlarge",
                "r8a.metal-24xl",
                "r8a.metal-48xl",
+               "p6-b300.48xlarge",
+               "c8a.medium",
+               "c8a.large",
+               "c8a.xlarge",
+               "c8a.2xlarge",
+               "c8a.4xlarge",
+               "c8a.8xlarge",
+               "c8a.12xlarge",
+               "c8a.16xlarge",
+               "c8a.24xlarge",
+               "c8a.48xlarge",
+               "c8a.metal-24xl",
+               "c8a.metal-48xl",
        }
 }
 
@@ -7907,6 +7933,12 @@ const (
        MetricSpotAvgRunTimeBeforeInterruptionInst  Metric = "spot-avg-run-time-before-interruption-inst"
        MetricSpotMaxRunTimeBeforeInterruptionInst  Metric = "spot-max-run-time-before-interruption-inst"
        MetricSpotMinRunTimeBeforeInterruptionInst  Metric = "spot-min-run-time-before-interruption-inst"
+       MetricSpotTotalInterruptionsInst            Metric = "spot-total-interruptions-inst"
+       MetricSpotTotalInterruptionsVcpu            Metric = "spot-total-interruptions-vcpu"
+       MetricSpotTotalCountInst                    Metric = "spot-total-count-inst"
+       MetricSpotTotalCountVcpu                    Metric = "spot-total-count-vcpu"
+       MetricSpotInterruptionRateInst              Metric = "spot-interruption-rate-inst"
+       MetricSpotInterruptionRateVcpu              Metric = "spot-interruption-rate-vcpu"
 )
 
 // Values returns all known values for Metric. Note that this can be expanded in
@@ -7958,6 +7990,12 @@ func (Metric) Values() []Metric {
                "spot-avg-run-time-before-interruption-inst",
                "spot-max-run-time-before-interruption-inst",
                "spot-min-run-time-before-interruption-inst",
+               "spot-total-interruptions-inst",
+               "spot-total-interruptions-vcpu",
+               "spot-total-count-inst",
+               "spot-total-count-vcpu",
+               "spot-interruption-rate-inst",
+               "spot-interruption-rate-vcpu",
        }
 }
 
index b16660883615d9fd030c1393f939636b912fd008..dd1100f7f956742e84cc27ffe933adf4b3145d7f 100644 (file)
@@ -6254,9 +6254,19 @@ type FleetLaunchTemplateConfigRequest struct {
 // Describes overrides for a launch template.
 type FleetLaunchTemplateOverrides struct {
 
-       // The Availability Zone in which to launch the instances.
+       // The Availability Zone in which to launch the instances. For example, us-east-2a .
+       //
+       // Either AvailabilityZone or AvailabilityZoneId must be specified in the request,
+       // but not both.
        AvailabilityZone *string
 
+       // The ID of the Availability Zone in which to launch the instances. For example,
+       // use2-az1 .
+       //
+       // Either AvailabilityZone or AvailabilityZoneId must be specified in the request,
+       // but not both.
+       AvailabilityZoneId *string
+
        // The block device mappings, which define the EBS volumes and instance store
        // volumes to attach to the instance at launch.
        //
@@ -6369,9 +6379,19 @@ type FleetLaunchTemplateOverrides struct {
 // Describes overrides for a launch template.
 type FleetLaunchTemplateOverridesRequest struct {
 
-       // The Availability Zone in which to launch the instances.
+       // The Availability Zone in which to launch the instances. For example, us-east-2a .
+       //
+       // Either AvailabilityZone or AvailabilityZoneId must be specified in the request,
+       // but not both.
        AvailabilityZone *string
 
+       // The ID of the Availability Zone in which to launch the instances. For example,
+       // use2-az1 .
+       //
+       // Either AvailabilityZone or AvailabilityZoneId must be specified in the request,
+       // but not both.
+       AvailabilityZoneId *string
+
        // The block device mappings, which define the EBS volumes and instance store
        // volumes to attach to the instance at launch.
        //
@@ -13439,9 +13459,19 @@ type LaunchTemplateNetworkPerformanceOptionsRequest struct {
 // Describes overrides for a launch template.
 type LaunchTemplateOverrides struct {
 
-       // The Availability Zone in which to launch the instances.
+       // The Availability Zone in which to launch the instances. For example, us-east-2a .
+       //
+       // Either AvailabilityZone or AvailabilityZoneId must be specified in the request,
+       // but not both.
        AvailabilityZone *string
 
+       // The ID of the Availability Zone in which to launch the instances. For example,
+       // use2-az1 .
+       //
+       // Either AvailabilityZone or AvailabilityZoneId must be specified in the request,
+       // but not both.
+       AvailabilityZoneId *string
+
        // The instance requirements. When you specify instance requirements, Amazon EC2
        // will identify instance types with the provided requirements, and then use your
        // On-Demand and Spot allocation strategies to launch instances from these instance
@@ -21119,12 +21149,24 @@ type SpotOptionsRequest struct {
 // Describes Spot Instance placement.
 type SpotPlacement struct {
 
-       // The Availability Zone.
+       // The Availability Zone. For example, us-east-2a .
        //
        // [Spot Fleet only] To specify multiple Availability Zones, separate them using
-       // commas; for example, "us-west-2a, us-west-2b".
+       // commas; for example, " us-east-2a , us-east-2b ".
+       //
+       // Either AvailabilityZone or AvailabilityZoneId must be specified in the request,
+       // but not both.
        AvailabilityZone *string
 
+       // The ID of the Availability Zone. For example, use2-az1 .
+       //
+       // [Spot Fleet only] To specify multiple Availability Zones, separate them using
+       // commas; for example, " use2-az1 , use2-bz1 ".
+       //
+       // Either AvailabilityZone or AvailabilityZoneId must be specified in the request,
+       // but not both.
+       AvailabilityZoneId *string
+
        // The name of the placement group.
        GroupName *string
 
index 402a4e7d20de08d5b551868b1a23c92c2368f4de..743183c8df6e6aae2035f80378a9d456669d900f 100644 (file)
@@ -1,3 +1,7 @@
+# v1.13.16 (2025-12-08)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
 # v1.13.15 (2025-12-02)
 
 * **Dependency Update**: Updated to the latest SDK module versions
index 148feaf95918d51af87042c8b05365ecac9cc728..a8a2e692bfc5ef14f4746a36078099cb0cbab853 100644 (file)
@@ -3,4 +3,4 @@
 package presignedurl
 
 // goModuleVersion is the tagged release for this module
-const goModuleVersion = "1.13.15"
+const goModuleVersion = "1.13.16"
index 39a8a2cd75e65aedc424cd8da398be633ca205f8..4d6c08996e5609e7fbcd05437b354e86bc4f0eca 100644 (file)
@@ -1,3 +1,7 @@
+# v1.0.4 (2025-12-08)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
 # v1.0.3 (2025-12-02)
 
 * **Dependency Update**: Updated to the latest SDK module versions
index 2510f960050dd3c9b4f9db9612fa4103ad6d410d..2424c057e8e4e5fda64ce4943706fb3af5c6e487 100644 (file)
@@ -3,4 +3,4 @@
 package signin
 
 // goModuleVersion is the tagged release for this module
-const goModuleVersion = "1.0.3"
+const goModuleVersion = "1.0.4"
index f108ccc8c42e516582738bf54dbb95ee2c59d023..f73d6253edd2f985a8a937089f198bda8bd1f919 100644 (file)
@@ -1,3 +1,11 @@
+# v1.30.8 (2025-12-16)
+
+* No change notes available for this release.
+
+# v1.30.7 (2025-12-08)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
 # v1.30.6 (2025-12-02)
 
 * **Dependency Update**: Updated to the latest SDK module versions
index 747cb9e8221d7f17d727f7c410f77c2498867b08..5d9e65e303fd8da5880e93ae69dcefde919fd2f1 100644 (file)
@@ -3,4 +3,4 @@
 package sso
 
 // goModuleVersion is the tagged release for this module
-const goModuleVersion = "1.30.6"
+const goModuleVersion = "1.30.8"
index bbac359645dbee81f64931934230a02fc23417c6..182423b4e6ca00105cbb6b3da6e7c17fa3f6a13d 100644 (file)
@@ -157,6 +157,9 @@ var defaultPartitions = endpoints.Partitions{
                                        Region: "ap-east-1",
                                },
                        },
+                       endpoints.EndpointKey{
+                               Region: "ap-east-2",
+                       }: endpoints.Endpoint{},
                        endpoints.EndpointKey{
                                Region: "ap-northeast-1",
                        }: endpoints.Endpoint{
index e70dd5ea76abb72ef4b1e82e286ef230aff51873..0ac3f8cc4c989d5015071617731785b447cc83e1 100644 (file)
@@ -1,3 +1,7 @@
+# v1.35.12 (2025-12-08)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
 # v1.35.11 (2025-12-02)
 
 * **Dependency Update**: Updated to the latest SDK module versions
index 32d58763d43dec451b348e9a2f25feee811a8dda..1399651002065a217b0198fa9410f3165f00db07 100644 (file)
@@ -3,4 +3,4 @@
 package ssooidc
 
 // goModuleVersion is the tagged release for this module
-const goModuleVersion = "1.35.11"
+const goModuleVersion = "1.35.12"
index 9b70885cc4dfff111e9334c3996eaad161e05b1d..42c252ba1fad6a4175245059a97ae5b37bac1207 100644 (file)
@@ -1,3 +1,11 @@
+# v1.41.5 (2025-12-09)
+
+* No change notes available for this release.
+
+# v1.41.4 (2025-12-08)
+
+* **Dependency Update**: Updated to the latest SDK module versions
+
 # v1.41.3 (2025-12-02)
 
 * **Dependency Update**: Updated to the latest SDK module versions
index 22d9a94a02c6e236a5590e9f1714b63a2c64ebf2..c081cdeb307ff00586f879114a0d73088166c320 100644 (file)
@@ -3,4 +3,4 @@
 package sts
 
 // goModuleVersion is the tagged release for this module
-const goModuleVersion = "1.41.3"
+const goModuleVersion = "1.41.5"
index b2b933c566a6ea03de0ae4daee0ce1c840834c09..be72d93dccd52ad6bb2f2721cf7ebde4537d6eaf 100644 (file)
@@ -390,6 +390,11 @@ var defaultPartitions = endpoints.Partitions{
                },
                RegionRegex:    partitionRegexp.AwsEusc,
                IsRegionalized: true,
+               Endpoints: endpoints.Endpoints{
+                       endpoints.EndpointKey{
+                               Region: "eusc-de-east-1",
+                       }: endpoints.Endpoint{},
+               },
        },
        {
                ID: "aws-iso",
index 0610a9de269b5f966e19d8acf682bb9f118f5974..a1e0b017623093e8fb3c85337db3706fc419bcf7 100644 (file)
@@ -2,604 +2,309 @@ This repository holds helm templates for the following Cilium releases:
 
 * [v1.19.0-pre.3](https://github.com/cilium/cilium/releases/tag/v1.19.0-pre.3) (_[source](https://github.com/cilium/cilium/tree/v1.19.0-pre.3/install/kubernetes/cilium)_)
 * [v1.19.0-pre.2](https://github.com/cilium/cilium/releases/tag/v1.19.0-pre.2) (_[source](https://github.com/cilium/cilium/tree/v1.19.0-pre.2/install/kubernetes/cilium)_)
-* [v1.19.0-pre.2](https://github.com/cilium/cilium/releases/tag/v1.19.0-pre.2) (_[source](https://github.com/cilium/cilium/tree/v1.19.0-pre.2/install/kubernetes/cilium)_)
-* [v1.19.0-pre.1](https://github.com/cilium/cilium/releases/tag/v1.19.0-pre.1) (_[source](https://github.com/cilium/cilium/tree/v1.19.0-pre.1/install/kubernetes/cilium)_)
 * [v1.19.0-pre.1](https://github.com/cilium/cilium/releases/tag/v1.19.0-pre.1) (_[source](https://github.com/cilium/cilium/tree/v1.19.0-pre.1/install/kubernetes/cilium)_)
 * [v1.19.0-pre.0](https://github.com/cilium/cilium/releases/tag/v1.19.0-pre.0) (_[source](https://github.com/cilium/cilium/tree/v1.19.0-pre.0/install/kubernetes/cilium)_)
-* [v1.19.0-pre.0](https://github.com/cilium/cilium/releases/tag/v1.19.0-pre.0) (_[source](https://github.com/cilium/cilium/tree/v1.19.0-pre.0/install/kubernetes/cilium)_)
+* [v1.18.5](https://github.com/cilium/cilium/releases/tag/v1.18.5) (_[source](https://github.com/cilium/cilium/tree/v1.18.5/install/kubernetes/cilium)_)
 * [v1.18.4](https://github.com/cilium/cilium/releases/tag/v1.18.4) (_[source](https://github.com/cilium/cilium/tree/v1.18.4/install/kubernetes/cilium)_)
 * [v1.18.3](https://github.com/cilium/cilium/releases/tag/v1.18.3) (_[source](https://github.com/cilium/cilium/tree/v1.18.3/install/kubernetes/cilium)_)
-* [v1.18.3](https://github.com/cilium/cilium/releases/tag/v1.18.3) (_[source](https://github.com/cilium/cilium/tree/v1.18.3/install/kubernetes/cilium)_)
-* [v1.18.2](https://github.com/cilium/cilium/releases/tag/v1.18.2) (_[source](https://github.com/cilium/cilium/tree/v1.18.2/install/kubernetes/cilium)_)
 * [v1.18.2](https://github.com/cilium/cilium/releases/tag/v1.18.2) (_[source](https://github.com/cilium/cilium/tree/v1.18.2/install/kubernetes/cilium)_)
 * [v1.18.1](https://github.com/cilium/cilium/releases/tag/v1.18.1) (_[source](https://github.com/cilium/cilium/tree/v1.18.1/install/kubernetes/cilium)_)
-* [v1.18.1](https://github.com/cilium/cilium/releases/tag/v1.18.1) (_[source](https://github.com/cilium/cilium/tree/v1.18.1/install/kubernetes/cilium)_)
-* [v1.18.0](https://github.com/cilium/cilium/releases/tag/v1.18.0) (_[source](https://github.com/cilium/cilium/tree/v1.18.0/install/kubernetes/cilium)_)
 * [v1.18.0](https://github.com/cilium/cilium/releases/tag/v1.18.0) (_[source](https://github.com/cilium/cilium/tree/v1.18.0/install/kubernetes/cilium)_)
 * [v1.18.0-rc.1](https://github.com/cilium/cilium/releases/tag/v1.18.0-rc.1) (_[source](https://github.com/cilium/cilium/tree/v1.18.0-rc.1/install/kubernetes/cilium)_)
-* [v1.18.0-rc.1](https://github.com/cilium/cilium/releases/tag/v1.18.0-rc.1) (_[source](https://github.com/cilium/cilium/tree/v1.18.0-rc.1/install/kubernetes/cilium)_)
 * [v1.18.0-rc.0](https://github.com/cilium/cilium/releases/tag/v1.18.0-rc.0) (_[source](https://github.com/cilium/cilium/tree/v1.18.0-rc.0/install/kubernetes/cilium)_)
-* [v1.18.0-rc.0](https://github.com/cilium/cilium/releases/tag/v1.18.0-rc.0) (_[source](https://github.com/cilium/cilium/tree/v1.18.0-rc.0/install/kubernetes/cilium)_)
-* [v1.18.0-pre.3](https://github.com/cilium/cilium/releases/tag/v1.18.0-pre.3) (_[source](https://github.com/cilium/cilium/tree/v1.18.0-pre.3/install/kubernetes/cilium)_)
 * [v1.18.0-pre.3](https://github.com/cilium/cilium/releases/tag/v1.18.0-pre.3) (_[source](https://github.com/cilium/cilium/tree/v1.18.0-pre.3/install/kubernetes/cilium)_)
 * [v1.18.0-pre.2](https://github.com/cilium/cilium/releases/tag/v1.18.0-pre.2) (_[source](https://github.com/cilium/cilium/tree/v1.18.0-pre.2/install/kubernetes/cilium)_)
-* [v1.18.0-pre.2](https://github.com/cilium/cilium/releases/tag/v1.18.0-pre.2) (_[source](https://github.com/cilium/cilium/tree/v1.18.0-pre.2/install/kubernetes/cilium)_)
-* [v1.18.0-pre.1](https://github.com/cilium/cilium/releases/tag/v1.18.0-pre.1) (_[source](https://github.com/cilium/cilium/tree/v1.18.0-pre.1/install/kubernetes/cilium)_)
 * [v1.18.0-pre.1](https://github.com/cilium/cilium/releases/tag/v1.18.0-pre.1) (_[source](https://github.com/cilium/cilium/tree/v1.18.0-pre.1/install/kubernetes/cilium)_)
 * [v1.18.0-pre.0](https://github.com/cilium/cilium/releases/tag/v1.18.0-pre.0) (_[source](https://github.com/cilium/cilium/tree/v1.18.0-pre.0/install/kubernetes/cilium)_)
-* [v1.18.0-pre.0](https://github.com/cilium/cilium/releases/tag/v1.18.0-pre.0) (_[source](https://github.com/cilium/cilium/tree/v1.18.0-pre.0/install/kubernetes/cilium)_)
+* [v1.17.11](https://github.com/cilium/cilium/releases/tag/v1.17.11) (_[source](https://github.com/cilium/cilium/tree/v1.17.11/install/kubernetes/cilium)_)
 * [v1.17.10](https://github.com/cilium/cilium/releases/tag/v1.17.10) (_[source](https://github.com/cilium/cilium/tree/v1.17.10/install/kubernetes/cilium)_)
 * [v1.17.9](https://github.com/cilium/cilium/releases/tag/v1.17.9) (_[source](https://github.com/cilium/cilium/tree/v1.17.9/install/kubernetes/cilium)_)
-* [v1.17.9](https://github.com/cilium/cilium/releases/tag/v1.17.9) (_[source](https://github.com/cilium/cilium/tree/v1.17.9/install/kubernetes/cilium)_)
-* [v1.17.8](https://github.com/cilium/cilium/releases/tag/v1.17.8) (_[source](https://github.com/cilium/cilium/tree/v1.17.8/install/kubernetes/cilium)_)
 * [v1.17.8](https://github.com/cilium/cilium/releases/tag/v1.17.8) (_[source](https://github.com/cilium/cilium/tree/v1.17.8/install/kubernetes/cilium)_)
 * [v1.17.7](https://github.com/cilium/cilium/releases/tag/v1.17.7) (_[source](https://github.com/cilium/cilium/tree/v1.17.7/install/kubernetes/cilium)_)
-* [v1.17.7](https://github.com/cilium/cilium/releases/tag/v1.17.7) (_[source](https://github.com/cilium/cilium/tree/v1.17.7/install/kubernetes/cilium)_)
-* [v1.17.6](https://github.com/cilium/cilium/releases/tag/v1.17.6) (_[source](https://github.com/cilium/cilium/tree/v1.17.6/install/kubernetes/cilium)_)
 * [v1.17.6](https://github.com/cilium/cilium/releases/tag/v1.17.6) (_[source](https://github.com/cilium/cilium/tree/v1.17.6/install/kubernetes/cilium)_)
 * [v1.17.5](https://github.com/cilium/cilium/releases/tag/v1.17.5) (_[source](https://github.com/cilium/cilium/tree/v1.17.5/install/kubernetes/cilium)_)
-* [v1.17.5](https://github.com/cilium/cilium/releases/tag/v1.17.5) (_[source](https://github.com/cilium/cilium/tree/v1.17.5/install/kubernetes/cilium)_)
-* [v1.17.4](https://github.com/cilium/cilium/releases/tag/v1.17.4) (_[source](https://github.com/cilium/cilium/tree/v1.17.4/install/kubernetes/cilium)_)
 * [v1.17.4](https://github.com/cilium/cilium/releases/tag/v1.17.4) (_[source](https://github.com/cilium/cilium/tree/v1.17.4/install/kubernetes/cilium)_)
 * [v1.17.3](https://github.com/cilium/cilium/releases/tag/v1.17.3) (_[source](https://github.com/cilium/cilium/tree/v1.17.3/install/kubernetes/cilium)_)
-* [v1.17.3](https://github.com/cilium/cilium/releases/tag/v1.17.3) (_[source](https://github.com/cilium/cilium/tree/v1.17.3/install/kubernetes/cilium)_)
-* [v1.17.2](https://github.com/cilium/cilium/releases/tag/v1.17.2) (_[source](https://github.com/cilium/cilium/tree/v1.17.2/install/kubernetes/cilium)_)
 * [v1.17.2](https://github.com/cilium/cilium/releases/tag/v1.17.2) (_[source](https://github.com/cilium/cilium/tree/v1.17.2/install/kubernetes/cilium)_)
 * [v1.17.1](https://github.com/cilium/cilium/releases/tag/v1.17.1) (_[source](https://github.com/cilium/cilium/tree/v1.17.1/install/kubernetes/cilium)_)
-* [v1.17.1](https://github.com/cilium/cilium/releases/tag/v1.17.1) (_[source](https://github.com/cilium/cilium/tree/v1.17.1/install/kubernetes/cilium)_)
 * [v1.17.0](https://github.com/cilium/cilium/releases/tag/v1.17.0) (_[source](https://github.com/cilium/cilium/tree/v1.17.0/install/kubernetes/cilium)_)
-* [v1.17.0](https://github.com/cilium/cilium/releases/tag/v1.17.0) (_[source](https://github.com/cilium/cilium/tree/v1.17.0/install/kubernetes/cilium)_)
-* [v1.17.0-rc.2](https://github.com/cilium/cilium/releases/tag/v1.17.0-rc.2) (_[source](https://github.com/cilium/cilium/tree/v1.17.0-rc.2/install/kubernetes/cilium)_)
 * [v1.17.0-rc.2](https://github.com/cilium/cilium/releases/tag/v1.17.0-rc.2) (_[source](https://github.com/cilium/cilium/tree/v1.17.0-rc.2/install/kubernetes/cilium)_)
 * [v1.17.0-rc.1](https://github.com/cilium/cilium/releases/tag/v1.17.0-rc.1) (_[source](https://github.com/cilium/cilium/tree/v1.17.0-rc.1/install/kubernetes/cilium)_)
-* [v1.17.0-rc.1](https://github.com/cilium/cilium/releases/tag/v1.17.0-rc.1) (_[source](https://github.com/cilium/cilium/tree/v1.17.0-rc.1/install/kubernetes/cilium)_)
-* [v1.17.0-rc.0](https://github.com/cilium/cilium/releases/tag/v1.17.0-rc.0) (_[source](https://github.com/cilium/cilium/tree/v1.17.0-rc.0/install/kubernetes/cilium)_)
 * [v1.17.0-rc.0](https://github.com/cilium/cilium/releases/tag/v1.17.0-rc.0) (_[source](https://github.com/cilium/cilium/tree/v1.17.0-rc.0/install/kubernetes/cilium)_)
 * [v1.17.0-pre.3](https://github.com/cilium/cilium/releases/tag/v1.17.0-pre.3) (_[source](https://github.com/cilium/cilium/tree/v1.17.0-pre.3/install/kubernetes/cilium)_)
-* [v1.17.0-pre.3](https://github.com/cilium/cilium/releases/tag/v1.17.0-pre.3) (_[source](https://github.com/cilium/cilium/tree/v1.17.0-pre.3/install/kubernetes/cilium)_)
 * [v1.17.0-pre.2](https://github.com/cilium/cilium/releases/tag/v1.17.0-pre.2) (_[source](https://github.com/cilium/cilium/tree/v1.17.0-pre.2/install/kubernetes/cilium)_)
-* [v1.17.0-pre.2](https://github.com/cilium/cilium/releases/tag/v1.17.0-pre.2) (_[source](https://github.com/cilium/cilium/tree/v1.17.0-pre.2/install/kubernetes/cilium)_)
-* [v1.17.0-pre.1](https://github.com/cilium/cilium/releases/tag/v1.17.0-pre.1) (_[source](https://github.com/cilium/cilium/tree/v1.17.0-pre.1/install/kubernetes/cilium)_)
 * [v1.17.0-pre.1](https://github.com/cilium/cilium/releases/tag/v1.17.0-pre.1) (_[source](https://github.com/cilium/cilium/tree/v1.17.0-pre.1/install/kubernetes/cilium)_)
 * [v1.17.0-pre.0](https://github.com/cilium/cilium/releases/tag/v1.17.0-pre.0) (_[source](https://github.com/cilium/cilium/tree/v1.17.0-pre.0/install/kubernetes/cilium)_)
-* [v1.17.0-pre.0](https://github.com/cilium/cilium/releases/tag/v1.17.0-pre.0) (_[source](https://github.com/cilium/cilium/tree/v1.17.0-pre.0/install/kubernetes/cilium)_)
+* [v1.16.18](https://github.com/cilium/cilium/releases/tag/v1.16.18) (_[source](https://github.com/cilium/cilium/tree/v1.16.18/install/kubernetes/cilium)_)
 * [v1.16.17](https://github.com/cilium/cilium/releases/tag/v1.16.17) (_[source](https://github.com/cilium/cilium/tree/v1.16.17/install/kubernetes/cilium)_)
 * [v1.16.16](https://github.com/cilium/cilium/releases/tag/v1.16.16) (_[source](https://github.com/cilium/cilium/tree/v1.16.16/install/kubernetes/cilium)_)
-* [v1.16.16](https://github.com/cilium/cilium/releases/tag/v1.16.16) (_[source](https://github.com/cilium/cilium/tree/v1.16.16/install/kubernetes/cilium)_)
-* [v1.16.15](https://github.com/cilium/cilium/releases/tag/v1.16.15) (_[source](https://github.com/cilium/cilium/tree/v1.16.15/install/kubernetes/cilium)_)
 * [v1.16.15](https://github.com/cilium/cilium/releases/tag/v1.16.15) (_[source](https://github.com/cilium/cilium/tree/v1.16.15/install/kubernetes/cilium)_)
 * [v1.16.13](https://github.com/cilium/cilium/releases/tag/v1.16.13) (_[source](https://github.com/cilium/cilium/tree/v1.16.13/install/kubernetes/cilium)_)
-* [v1.16.13](https://github.com/cilium/cilium/releases/tag/v1.16.13) (_[source](https://github.com/cilium/cilium/tree/v1.16.13/install/kubernetes/cilium)_)
-* [v1.16.12](https://github.com/cilium/cilium/releases/tag/v1.16.12) (_[source](https://github.com/cilium/cilium/tree/v1.16.12/install/kubernetes/cilium)_)
 * [v1.16.12](https://github.com/cilium/cilium/releases/tag/v1.16.12) (_[source](https://github.com/cilium/cilium/tree/v1.16.12/install/kubernetes/cilium)_)
 * [v1.16.11](https://github.com/cilium/cilium/releases/tag/v1.16.11) (_[source](https://github.com/cilium/cilium/tree/v1.16.11/install/kubernetes/cilium)_)
-* [v1.16.11](https://github.com/cilium/cilium/releases/tag/v1.16.11) (_[source](https://github.com/cilium/cilium/tree/v1.16.11/install/kubernetes/cilium)_)
-* [v1.16.10](https://github.com/cilium/cilium/releases/tag/v1.16.10) (_[source](https://github.com/cilium/cilium/tree/v1.16.10/install/kubernetes/cilium)_)
 * [v1.16.10](https://github.com/cilium/cilium/releases/tag/v1.16.10) (_[source](https://github.com/cilium/cilium/tree/v1.16.10/install/kubernetes/cilium)_)
 * [v1.16.9](https://github.com/cilium/cilium/releases/tag/v1.16.9) (_[source](https://github.com/cilium/cilium/tree/v1.16.9/install/kubernetes/cilium)_)
-* [v1.16.9](https://github.com/cilium/cilium/releases/tag/v1.16.9) (_[source](https://github.com/cilium/cilium/tree/v1.16.9/install/kubernetes/cilium)_)
-* [v1.16.8](https://github.com/cilium/cilium/releases/tag/v1.16.8) (_[source](https://github.com/cilium/cilium/tree/v1.16.8/install/kubernetes/cilium)_)
 * [v1.16.8](https://github.com/cilium/cilium/releases/tag/v1.16.8) (_[source](https://github.com/cilium/cilium/tree/v1.16.8/install/kubernetes/cilium)_)
 * [v1.16.7](https://github.com/cilium/cilium/releases/tag/v1.16.7) (_[source](https://github.com/cilium/cilium/tree/v1.16.7/install/kubernetes/cilium)_)
-* [v1.16.7](https://github.com/cilium/cilium/releases/tag/v1.16.7) (_[source](https://github.com/cilium/cilium/tree/v1.16.7/install/kubernetes/cilium)_)
-* [v1.16.6](https://github.com/cilium/cilium/releases/tag/v1.16.6) (_[source](https://github.com/cilium/cilium/tree/v1.16.6/install/kubernetes/cilium)_)
 * [v1.16.6](https://github.com/cilium/cilium/releases/tag/v1.16.6) (_[source](https://github.com/cilium/cilium/tree/v1.16.6/install/kubernetes/cilium)_)
 * [v1.16.5](https://github.com/cilium/cilium/releases/tag/v1.16.5) (_[source](https://github.com/cilium/cilium/tree/v1.16.5/install/kubernetes/cilium)_)
-* [v1.16.5](https://github.com/cilium/cilium/releases/tag/v1.16.5) (_[source](https://github.com/cilium/cilium/tree/v1.16.5/install/kubernetes/cilium)_)
 * [v1.16.4](https://github.com/cilium/cilium/releases/tag/v1.16.4) (_[source](https://github.com/cilium/cilium/tree/v1.16.4/install/kubernetes/cilium)_)
-* [v1.16.4](https://github.com/cilium/cilium/releases/tag/v1.16.4) (_[source](https://github.com/cilium/cilium/tree/v1.16.4/install/kubernetes/cilium)_)
-* [v1.16.3](https://github.com/cilium/cilium/releases/tag/v1.16.3) (_[source](https://github.com/cilium/cilium/tree/v1.16.3/install/kubernetes/cilium)_)
 * [v1.16.3](https://github.com/cilium/cilium/releases/tag/v1.16.3) (_[source](https://github.com/cilium/cilium/tree/v1.16.3/install/kubernetes/cilium)_)
 * [v1.16.2](https://github.com/cilium/cilium/releases/tag/v1.16.2) (_[source](https://github.com/cilium/cilium/tree/v1.16.2/install/kubernetes/cilium)_)
-* [v1.16.2](https://github.com/cilium/cilium/releases/tag/v1.16.2) (_[source](https://github.com/cilium/cilium/tree/v1.16.2/install/kubernetes/cilium)_)
-* [v1.16.1](https://github.com/cilium/cilium/releases/tag/v1.16.1) (_[source](https://github.com/cilium/cilium/tree/v1.16.1/install/kubernetes/cilium)_)
 * [v1.16.1](https://github.com/cilium/cilium/releases/tag/v1.16.1) (_[source](https://github.com/cilium/cilium/tree/v1.16.1/install/kubernetes/cilium)_)
 * [v1.16.0](https://github.com/cilium/cilium/releases/tag/v1.16.0) (_[source](https://github.com/cilium/cilium/tree/v1.16.0/install/kubernetes/cilium)_)
-* [v1.16.0](https://github.com/cilium/cilium/releases/tag/v1.16.0) (_[source](https://github.com/cilium/cilium/tree/v1.16.0/install/kubernetes/cilium)_)
 * [v1.16.0-rc.2](https://github.com/cilium/cilium/releases/tag/v1.16.0-rc.2) (_[source](https://github.com/cilium/cilium/tree/v1.16.0-rc.2/install/kubernetes/cilium)_)
-* [v1.16.0-rc.2](https://github.com/cilium/cilium/releases/tag/v1.16.0-rc.2) (_[source](https://github.com/cilium/cilium/tree/v1.16.0-rc.2/install/kubernetes/cilium)_)
-* [v1.16.0-rc.1](https://github.com/cilium/cilium/releases/tag/v1.16.0-rc.1) (_[source](https://github.com/cilium/cilium/tree/v1.16.0-rc.1/install/kubernetes/cilium)_)
 * [v1.16.0-rc.1](https://github.com/cilium/cilium/releases/tag/v1.16.0-rc.1) (_[source](https://github.com/cilium/cilium/tree/v1.16.0-rc.1/install/kubernetes/cilium)_)
 * [v1.16.0-rc.0](https://github.com/cilium/cilium/releases/tag/v1.16.0-rc.0) (_[source](https://github.com/cilium/cilium/tree/v1.16.0-rc.0/install/kubernetes/cilium)_)
-* [v1.16.0-rc.0](https://github.com/cilium/cilium/releases/tag/v1.16.0-rc.0) (_[source](https://github.com/cilium/cilium/tree/v1.16.0-rc.0/install/kubernetes/cilium)_)
-* [v1.16.0-pre.3](https://github.com/cilium/cilium/releases/tag/v1.16.0-pre.3) (_[source](https://github.com/cilium/cilium/tree/v1.16.0-pre.3/install/kubernetes/cilium)_)
 * [v1.16.0-pre.3](https://github.com/cilium/cilium/releases/tag/v1.16.0-pre.3) (_[source](https://github.com/cilium/cilium/tree/v1.16.0-pre.3/install/kubernetes/cilium)_)
 * [v1.16.0-pre.2](https://github.com/cilium/cilium/releases/tag/v1.16.0-pre.2) (_[source](https://github.com/cilium/cilium/tree/v1.16.0-pre.2/install/kubernetes/cilium)_)
-* [v1.16.0-pre.2](https://github.com/cilium/cilium/releases/tag/v1.16.0-pre.2) (_[source](https://github.com/cilium/cilium/tree/v1.16.0-pre.2/install/kubernetes/cilium)_)
 * [v1.16.0-pre.1](https://github.com/cilium/cilium/releases/tag/v1.16.0-pre.1) (_[source](https://github.com/cilium/cilium/tree/v1.16.0-pre.1/install/kubernetes/cilium)_)
-* [v1.16.0-pre.1](https://github.com/cilium/cilium/releases/tag/v1.16.0-pre.1) (_[source](https://github.com/cilium/cilium/tree/v1.16.0-pre.1/install/kubernetes/cilium)_)
-* [v1.16.0-pre.0](https://github.com/cilium/cilium/releases/tag/v1.16.0-pre.0) (_[source](https://github.com/cilium/cilium/tree/v1.16.0-pre.0/install/kubernetes/cilium)_)
 * [v1.16.0-pre.0](https://github.com/cilium/cilium/releases/tag/v1.16.0-pre.0) (_[source](https://github.com/cilium/cilium/tree/v1.16.0-pre.0/install/kubernetes/cilium)_)
 * [v1.15.19](https://github.com/cilium/cilium/releases/tag/v1.15.19) (_[source](https://github.com/cilium/cilium/tree/v1.15.19/install/kubernetes/cilium)_)
-* [v1.15.19](https://github.com/cilium/cilium/releases/tag/v1.15.19) (_[source](https://github.com/cilium/cilium/tree/v1.15.19/install/kubernetes/cilium)_)
-* [v1.15.18](https://github.com/cilium/cilium/releases/tag/v1.15.18) (_[source](https://github.com/cilium/cilium/tree/v1.15.18/install/kubernetes/cilium)_)
 * [v1.15.18](https://github.com/cilium/cilium/releases/tag/v1.15.18) (_[source](https://github.com/cilium/cilium/tree/v1.15.18/install/kubernetes/cilium)_)
 * [v1.15.17](https://github.com/cilium/cilium/releases/tag/v1.15.17) (_[source](https://github.com/cilium/cilium/tree/v1.15.17/install/kubernetes/cilium)_)
-* [v1.15.17](https://github.com/cilium/cilium/releases/tag/v1.15.17) (_[source](https://github.com/cilium/cilium/tree/v1.15.17/install/kubernetes/cilium)_)
-* [v1.15.16](https://github.com/cilium/cilium/releases/tag/v1.15.16) (_[source](https://github.com/cilium/cilium/tree/v1.15.16/install/kubernetes/cilium)_)
 * [v1.15.16](https://github.com/cilium/cilium/releases/tag/v1.15.16) (_[source](https://github.com/cilium/cilium/tree/v1.15.16/install/kubernetes/cilium)_)
 * [v1.15.15](https://github.com/cilium/cilium/releases/tag/v1.15.15) (_[source](https://github.com/cilium/cilium/tree/v1.15.15/install/kubernetes/cilium)_)
-* [v1.15.15](https://github.com/cilium/cilium/releases/tag/v1.15.15) (_[source](https://github.com/cilium/cilium/tree/v1.15.15/install/kubernetes/cilium)_)
-* [v1.15.14](https://github.com/cilium/cilium/releases/tag/v1.15.14) (_[source](https://github.com/cilium/cilium/tree/v1.15.14/install/kubernetes/cilium)_)
 * [v1.15.14](https://github.com/cilium/cilium/releases/tag/v1.15.14) (_[source](https://github.com/cilium/cilium/tree/v1.15.14/install/kubernetes/cilium)_)
 * [v1.15.13](https://github.com/cilium/cilium/releases/tag/v1.15.13) (_[source](https://github.com/cilium/cilium/tree/v1.15.13/install/kubernetes/cilium)_)
-* [v1.15.13](https://github.com/cilium/cilium/releases/tag/v1.15.13) (_[source](https://github.com/cilium/cilium/tree/v1.15.13/install/kubernetes/cilium)_)
 * [v1.15.12](https://github.com/cilium/cilium/releases/tag/v1.15.12) (_[source](https://github.com/cilium/cilium/tree/v1.15.12/install/kubernetes/cilium)_)
-* [v1.15.12](https://github.com/cilium/cilium/releases/tag/v1.15.12) (_[source](https://github.com/cilium/cilium/tree/v1.15.12/install/kubernetes/cilium)_)
-* [v1.15.11](https://github.com/cilium/cilium/releases/tag/v1.15.11) (_[source](https://github.com/cilium/cilium/tree/v1.15.11/install/kubernetes/cilium)_)
 * [v1.15.11](https://github.com/cilium/cilium/releases/tag/v1.15.11) (_[source](https://github.com/cilium/cilium/tree/v1.15.11/install/kubernetes/cilium)_)
 * [v1.15.10](https://github.com/cilium/cilium/releases/tag/v1.15.10) (_[source](https://github.com/cilium/cilium/tree/v1.15.10/install/kubernetes/cilium)_)
-* [v1.15.10](https://github.com/cilium/cilium/releases/tag/v1.15.10) (_[source](https://github.com/cilium/cilium/tree/v1.15.10/install/kubernetes/cilium)_)
-* [v1.15.9](https://github.com/cilium/cilium/releases/tag/v1.15.9) (_[source](https://github.com/cilium/cilium/tree/v1.15.9/install/kubernetes/cilium)_)
 * [v1.15.9](https://github.com/cilium/cilium/releases/tag/v1.15.9) (_[source](https://github.com/cilium/cilium/tree/v1.15.9/install/kubernetes/cilium)_)
 * [v1.15.8](https://github.com/cilium/cilium/releases/tag/v1.15.8) (_[source](https://github.com/cilium/cilium/tree/v1.15.8/install/kubernetes/cilium)_)
-* [v1.15.8](https://github.com/cilium/cilium/releases/tag/v1.15.8) (_[source](https://github.com/cilium/cilium/tree/v1.15.8/install/kubernetes/cilium)_)
-* [v1.15.7](https://github.com/cilium/cilium/releases/tag/v1.15.7) (_[source](https://github.com/cilium/cilium/tree/v1.15.7/install/kubernetes/cilium)_)
 * [v1.15.7](https://github.com/cilium/cilium/releases/tag/v1.15.7) (_[source](https://github.com/cilium/cilium/tree/v1.15.7/install/kubernetes/cilium)_)
 * [v1.15.6](https://github.com/cilium/cilium/releases/tag/v1.15.6) (_[source](https://github.com/cilium/cilium/tree/v1.15.6/install/kubernetes/cilium)_)
-* [v1.15.6](https://github.com/cilium/cilium/releases/tag/v1.15.6) (_[source](https://github.com/cilium/cilium/tree/v1.15.6/install/kubernetes/cilium)_)
-* [v1.15.5](https://github.com/cilium/cilium/releases/tag/v1.15.5) (_[source](https://github.com/cilium/cilium/tree/v1.15.5/install/kubernetes/cilium)_)
 * [v1.15.5](https://github.com/cilium/cilium/releases/tag/v1.15.5) (_[source](https://github.com/cilium/cilium/tree/v1.15.5/install/kubernetes/cilium)_)
 * [v1.15.4](https://github.com/cilium/cilium/releases/tag/v1.15.4) (_[source](https://github.com/cilium/cilium/tree/v1.15.4/install/kubernetes/cilium)_)
-* [v1.15.4](https://github.com/cilium/cilium/releases/tag/v1.15.4) (_[source](https://github.com/cilium/cilium/tree/v1.15.4/install/kubernetes/cilium)_)
 * [v1.15.3](https://github.com/cilium/cilium/releases/tag/v1.15.3) (_[source](https://github.com/cilium/cilium/tree/v1.15.3/install/kubernetes/cilium)_)
-* [v1.15.3](https://github.com/cilium/cilium/releases/tag/v1.15.3) (_[source](https://github.com/cilium/cilium/tree/v1.15.3/install/kubernetes/cilium)_)
-* [v1.15.2](https://github.com/cilium/cilium/releases/tag/v1.15.2) (_[source](https://github.com/cilium/cilium/tree/v1.15.2/install/kubernetes/cilium)_)
 * [v1.15.2](https://github.com/cilium/cilium/releases/tag/v1.15.2) (_[source](https://github.com/cilium/cilium/tree/v1.15.2/install/kubernetes/cilium)_)
 * [v1.15.1](https://github.com/cilium/cilium/releases/tag/v1.15.1) (_[source](https://github.com/cilium/cilium/tree/v1.15.1/install/kubernetes/cilium)_)
-* [v1.15.1](https://github.com/cilium/cilium/releases/tag/v1.15.1) (_[source](https://github.com/cilium/cilium/tree/v1.15.1/install/kubernetes/cilium)_)
-* [v1.15.0](https://github.com/cilium/cilium/releases/tag/v1.15.0) (_[source](https://github.com/cilium/cilium/tree/v1.15.0/install/kubernetes/cilium)_)
 * [v1.15.0](https://github.com/cilium/cilium/releases/tag/v1.15.0) (_[source](https://github.com/cilium/cilium/tree/v1.15.0/install/kubernetes/cilium)_)
 * [v1.15.0-rc.1](https://github.com/cilium/cilium/releases/tag/v1.15.0-rc.1) (_[source](https://github.com/cilium/cilium/tree/v1.15.0-rc.1/install/kubernetes/cilium)_)
-* [v1.15.0-rc.1](https://github.com/cilium/cilium/releases/tag/v1.15.0-rc.1) (_[source](https://github.com/cilium/cilium/tree/v1.15.0-rc.1/install/kubernetes/cilium)_)
-* [v1.15.0-rc.0](https://github.com/cilium/cilium/releases/tag/v1.15.0-rc.0) (_[source](https://github.com/cilium/cilium/tree/v1.15.0-rc.0/install/kubernetes/cilium)_)
 * [v1.15.0-rc.0](https://github.com/cilium/cilium/releases/tag/v1.15.0-rc.0) (_[source](https://github.com/cilium/cilium/tree/v1.15.0-rc.0/install/kubernetes/cilium)_)
 * [v1.15.0-pre.3](https://github.com/cilium/cilium/releases/tag/v1.15.0-pre.3) (_[source](https://github.com/cilium/cilium/tree/v1.15.0-pre.3/install/kubernetes/cilium)_)
-* [v1.15.0-pre.3](https://github.com/cilium/cilium/releases/tag/v1.15.0-pre.3) (_[source](https://github.com/cilium/cilium/tree/v1.15.0-pre.3/install/kubernetes/cilium)_)
-* [v1.15.0-pre.2](https://github.com/cilium/cilium/releases/tag/v1.15.0-pre.2) (_[source](https://github.com/cilium/cilium/tree/v1.15.0-pre.2/install/kubernetes/cilium)_)
 * [v1.15.0-pre.2](https://github.com/cilium/cilium/releases/tag/v1.15.0-pre.2) (_[source](https://github.com/cilium/cilium/tree/v1.15.0-pre.2/install/kubernetes/cilium)_)
 * [v1.15.0-pre.1](https://github.com/cilium/cilium/releases/tag/v1.15.0-pre.1) (_[source](https://github.com/cilium/cilium/tree/v1.15.0-pre.1/install/kubernetes/cilium)_)
-* [v1.15.0-pre.1](https://github.com/cilium/cilium/releases/tag/v1.15.0-pre.1) (_[source](https://github.com/cilium/cilium/tree/v1.15.0-pre.1/install/kubernetes/cilium)_)
 * [v1.15.0-pre.0](https://github.com/cilium/cilium/releases/tag/v1.15.0-pre.0) (_[source](https://github.com/cilium/cilium/tree/v1.15.0-pre.0/install/kubernetes/cilium)_)
-* [v1.15.0-pre.0](https://github.com/cilium/cilium/releases/tag/v1.15.0-pre.0) (_[source](https://github.com/cilium/cilium/tree/v1.15.0-pre.0/install/kubernetes/cilium)_)
-* [v1.14.19](https://github.com/cilium/cilium/releases/tag/v1.14.19) (_[source](https://github.com/cilium/cilium/tree/v1.14.19/install/kubernetes/cilium)_)
 * [v1.14.19](https://github.com/cilium/cilium/releases/tag/v1.14.19) (_[source](https://github.com/cilium/cilium/tree/v1.14.19/install/kubernetes/cilium)_)
 * [v1.14.18](https://github.com/cilium/cilium/releases/tag/v1.14.18) (_[source](https://github.com/cilium/cilium/tree/v1.14.18/install/kubernetes/cilium)_)
-* [v1.14.18](https://github.com/cilium/cilium/releases/tag/v1.14.18) (_[source](https://github.com/cilium/cilium/tree/v1.14.18/install/kubernetes/cilium)_)
-* [v1.14.17](https://github.com/cilium/cilium/releases/tag/v1.14.17) (_[source](https://github.com/cilium/cilium/tree/v1.14.17/install/kubernetes/cilium)_)
 * [v1.14.17](https://github.com/cilium/cilium/releases/tag/v1.14.17) (_[source](https://github.com/cilium/cilium/tree/v1.14.17/install/kubernetes/cilium)_)
 * [v1.14.16](https://github.com/cilium/cilium/releases/tag/v1.14.16) (_[source](https://github.com/cilium/cilium/tree/v1.14.16/install/kubernetes/cilium)_)
-* [v1.14.16](https://github.com/cilium/cilium/releases/tag/v1.14.16) (_[source](https://github.com/cilium/cilium/tree/v1.14.16/install/kubernetes/cilium)_)
 * [v1.14.15](https://github.com/cilium/cilium/releases/tag/v1.14.15) (_[source](https://github.com/cilium/cilium/tree/v1.14.15/install/kubernetes/cilium)_)
-* [v1.14.15](https://github.com/cilium/cilium/releases/tag/v1.14.15) (_[source](https://github.com/cilium/cilium/tree/v1.14.15/install/kubernetes/cilium)_)
-* [v1.14.14](https://github.com/cilium/cilium/releases/tag/v1.14.14) (_[source](https://github.com/cilium/cilium/tree/v1.14.14/install/kubernetes/cilium)_)
 * [v1.14.14](https://github.com/cilium/cilium/releases/tag/v1.14.14) (_[source](https://github.com/cilium/cilium/tree/v1.14.14/install/kubernetes/cilium)_)
 * [v1.14.13](https://github.com/cilium/cilium/releases/tag/v1.14.13) (_[source](https://github.com/cilium/cilium/tree/v1.14.13/install/kubernetes/cilium)_)
-* [v1.14.13](https://github.com/cilium/cilium/releases/tag/v1.14.13) (_[source](https://github.com/cilium/cilium/tree/v1.14.13/install/kubernetes/cilium)_)
-* [v1.14.12](https://github.com/cilium/cilium/releases/tag/v1.14.12) (_[source](https://github.com/cilium/cilium/tree/v1.14.12/install/kubernetes/cilium)_)
 * [v1.14.12](https://github.com/cilium/cilium/releases/tag/v1.14.12) (_[source](https://github.com/cilium/cilium/tree/v1.14.12/install/kubernetes/cilium)_)
 * [v1.14.11](https://github.com/cilium/cilium/releases/tag/v1.14.11) (_[source](https://github.com/cilium/cilium/tree/v1.14.11/install/kubernetes/cilium)_)
-* [v1.14.11](https://github.com/cilium/cilium/releases/tag/v1.14.11) (_[source](https://github.com/cilium/cilium/tree/v1.14.11/install/kubernetes/cilium)_)
 * [v1.14.10](https://github.com/cilium/cilium/releases/tag/v1.14.10) (_[source](https://github.com/cilium/cilium/tree/v1.14.10/install/kubernetes/cilium)_)
-* [v1.14.10](https://github.com/cilium/cilium/releases/tag/v1.14.10) (_[source](https://github.com/cilium/cilium/tree/v1.14.10/install/kubernetes/cilium)_)
-* [v1.14.9](https://github.com/cilium/cilium/releases/tag/v1.14.9) (_[source](https://github.com/cilium/cilium/tree/v1.14.9/install/kubernetes/cilium)_)
 * [v1.14.9](https://github.com/cilium/cilium/releases/tag/v1.14.9) (_[source](https://github.com/cilium/cilium/tree/v1.14.9/install/kubernetes/cilium)_)
 * [v1.14.8](https://github.com/cilium/cilium/releases/tag/v1.14.8) (_[source](https://github.com/cilium/cilium/tree/v1.14.8/install/kubernetes/cilium)_)
-* [v1.14.8](https://github.com/cilium/cilium/releases/tag/v1.14.8) (_[source](https://github.com/cilium/cilium/tree/v1.14.8/install/kubernetes/cilium)_)
-* [v1.14.7](https://github.com/cilium/cilium/releases/tag/v1.14.7) (_[source](https://github.com/cilium/cilium/tree/v1.14.7/install/kubernetes/cilium)_)
 * [v1.14.7](https://github.com/cilium/cilium/releases/tag/v1.14.7) (_[source](https://github.com/cilium/cilium/tree/v1.14.7/install/kubernetes/cilium)_)
 * [v1.14.6](https://github.com/cilium/cilium/releases/tag/v1.14.6) (_[source](https://github.com/cilium/cilium/tree/v1.14.6/install/kubernetes/cilium)_)
-* [v1.14.6](https://github.com/cilium/cilium/releases/tag/v1.14.6) (_[source](https://github.com/cilium/cilium/tree/v1.14.6/install/kubernetes/cilium)_)
-* [v1.14.5](https://github.com/cilium/cilium/releases/tag/v1.14.5) (_[source](https://github.com/cilium/cilium/tree/v1.14.5/install/kubernetes/cilium)_)
 * [v1.14.5](https://github.com/cilium/cilium/releases/tag/v1.14.5) (_[source](https://github.com/cilium/cilium/tree/v1.14.5/install/kubernetes/cilium)_)
 * [v1.14.4](https://github.com/cilium/cilium/releases/tag/v1.14.4) (_[source](https://github.com/cilium/cilium/tree/v1.14.4/install/kubernetes/cilium)_)
-* [v1.14.4](https://github.com/cilium/cilium/releases/tag/v1.14.4) (_[source](https://github.com/cilium/cilium/tree/v1.14.4/install/kubernetes/cilium)_)
-* [v1.14.3](https://github.com/cilium/cilium/releases/tag/v1.14.3) (_[source](https://github.com/cilium/cilium/tree/v1.14.3/install/kubernetes/cilium)_)
 * [v1.14.3](https://github.com/cilium/cilium/releases/tag/v1.14.3) (_[source](https://github.com/cilium/cilium/tree/v1.14.3/install/kubernetes/cilium)_)
 * [v1.14.2](https://github.com/cilium/cilium/releases/tag/v1.14.2) (_[source](https://github.com/cilium/cilium/tree/v1.14.2/install/kubernetes/cilium)_)
-* [v1.14.2](https://github.com/cilium/cilium/releases/tag/v1.14.2) (_[source](https://github.com/cilium/cilium/tree/v1.14.2/install/kubernetes/cilium)_)
 * [v1.14.1](https://github.com/cilium/cilium/releases/tag/v1.14.1) (_[source](https://github.com/cilium/cilium/tree/v1.14.1/install/kubernetes/cilium)_)
-* [v1.14.1](https://github.com/cilium/cilium/releases/tag/v1.14.1) (_[source](https://github.com/cilium/cilium/tree/v1.14.1/install/kubernetes/cilium)_)
-* [v1.14.0](https://github.com/cilium/cilium/releases/tag/v1.14.0) (_[source](https://github.com/cilium/cilium/tree/v1.14.0/install/kubernetes/cilium)_)
 * [v1.14.0](https://github.com/cilium/cilium/releases/tag/v1.14.0) (_[source](https://github.com/cilium/cilium/tree/v1.14.0/install/kubernetes/cilium)_)
 * [v1.14.0-snapshot.4](https://github.com/cilium/cilium/releases/tag/v1.14.0-snapshot.4) (_[source](https://github.com/cilium/cilium/tree/v1.14.0-snapshot.4/install/kubernetes/cilium)_)
-* [v1.14.0-snapshot.4](https://github.com/cilium/cilium/releases/tag/v1.14.0-snapshot.4) (_[source](https://github.com/cilium/cilium/tree/v1.14.0-snapshot.4/install/kubernetes/cilium)_)
-* [v1.14.0-snapshot.3](https://github.com/cilium/cilium/releases/tag/v1.14.0-snapshot.3) (_[source](https://github.com/cilium/cilium/tree/v1.14.0-snapshot.3/install/kubernetes/cilium)_)
 * [v1.14.0-snapshot.3](https://github.com/cilium/cilium/releases/tag/v1.14.0-snapshot.3) (_[source](https://github.com/cilium/cilium/tree/v1.14.0-snapshot.3/install/kubernetes/cilium)_)
 * [v1.14.0-snapshot.2](https://github.com/cilium/cilium/releases/tag/v1.14.0-snapshot.2) (_[source](https://github.com/cilium/cilium/tree/v1.14.0-snapshot.2/install/kubernetes/cilium)_)
-* [v1.14.0-snapshot.2](https://github.com/cilium/cilium/releases/tag/v1.14.0-snapshot.2) (_[source](https://github.com/cilium/cilium/tree/v1.14.0-snapshot.2/install/kubernetes/cilium)_)
-* [v1.14.0-snapshot.1](https://github.com/cilium/cilium/releases/tag/v1.14.0-snapshot.1) (_[source](https://github.com/cilium/cilium/tree/v1.14.0-snapshot.1/install/kubernetes/cilium)_)
 * [v1.14.0-snapshot.1](https://github.com/cilium/cilium/releases/tag/v1.14.0-snapshot.1) (_[source](https://github.com/cilium/cilium/tree/v1.14.0-snapshot.1/install/kubernetes/cilium)_)
 * [v1.14.0-snapshot.0](https://github.com/cilium/cilium/releases/tag/v1.14.0-snapshot.0) (_[source](https://github.com/cilium/cilium/tree/v1.14.0-snapshot.0/install/kubernetes/cilium)_)
-* [v1.14.0-snapshot.0](https://github.com/cilium/cilium/releases/tag/v1.14.0-snapshot.0) (_[source](https://github.com/cilium/cilium/tree/v1.14.0-snapshot.0/install/kubernetes/cilium)_)
-* [v1.14.0-rc.1](https://github.com/cilium/cilium/releases/tag/v1.14.0-rc.1) (_[source](https://github.com/cilium/cilium/tree/v1.14.0-rc.1/install/kubernetes/cilium)_)
 * [v1.14.0-rc.1](https://github.com/cilium/cilium/releases/tag/v1.14.0-rc.1) (_[source](https://github.com/cilium/cilium/tree/v1.14.0-rc.1/install/kubernetes/cilium)_)
 * [v1.14.0-rc.0](https://github.com/cilium/cilium/releases/tag/v1.14.0-rc.0) (_[source](https://github.com/cilium/cilium/tree/v1.14.0-rc.0/install/kubernetes/cilium)_)
-* [v1.14.0-rc.0](https://github.com/cilium/cilium/releases/tag/v1.14.0-rc.0) (_[source](https://github.com/cilium/cilium/tree/v1.14.0-rc.0/install/kubernetes/cilium)_)
 * [v1.13.18](https://github.com/cilium/cilium/releases/tag/v1.13.18) (_[source](https://github.com/cilium/cilium/tree/v1.13.18/install/kubernetes/cilium)_)
-* [v1.13.18](https://github.com/cilium/cilium/releases/tag/v1.13.18) (_[source](https://github.com/cilium/cilium/tree/v1.13.18/install/kubernetes/cilium)_)
-* [v1.13.17](https://github.com/cilium/cilium/releases/tag/v1.13.17) (_[source](https://github.com/cilium/cilium/tree/v1.13.17/install/kubernetes/cilium)_)
 * [v1.13.17](https://github.com/cilium/cilium/releases/tag/v1.13.17) (_[source](https://github.com/cilium/cilium/tree/v1.13.17/install/kubernetes/cilium)_)
 * [v1.13.16](https://github.com/cilium/cilium/releases/tag/v1.13.16) (_[source](https://github.com/cilium/cilium/tree/v1.13.16/install/kubernetes/cilium)_)
-* [v1.13.16](https://github.com/cilium/cilium/releases/tag/v1.13.16) (_[source](https://github.com/cilium/cilium/tree/v1.13.16/install/kubernetes/cilium)_)
-* [v1.13.15](https://github.com/cilium/cilium/releases/tag/v1.13.15) (_[source](https://github.com/cilium/cilium/tree/v1.13.15/install/kubernetes/cilium)_)
 * [v1.13.15](https://github.com/cilium/cilium/releases/tag/v1.13.15) (_[source](https://github.com/cilium/cilium/tree/v1.13.15/install/kubernetes/cilium)_)
 * [v1.13.14](https://github.com/cilium/cilium/releases/tag/v1.13.14) (_[source](https://github.com/cilium/cilium/tree/v1.13.14/install/kubernetes/cilium)_)
-* [v1.13.14](https://github.com/cilium/cilium/releases/tag/v1.13.14) (_[source](https://github.com/cilium/cilium/tree/v1.13.14/install/kubernetes/cilium)_)
-* [v1.13.13](https://github.com/cilium/cilium/releases/tag/v1.13.13) (_[source](https://github.com/cilium/cilium/tree/v1.13.13/install/kubernetes/cilium)_)
 * [v1.13.13](https://github.com/cilium/cilium/releases/tag/v1.13.13) (_[source](https://github.com/cilium/cilium/tree/v1.13.13/install/kubernetes/cilium)_)
 * [v1.13.12](https://github.com/cilium/cilium/releases/tag/v1.13.12) (_[source](https://github.com/cilium/cilium/tree/v1.13.12/install/kubernetes/cilium)_)
-* [v1.13.12](https://github.com/cilium/cilium/releases/tag/v1.13.12) (_[source](https://github.com/cilium/cilium/tree/v1.13.12/install/kubernetes/cilium)_)
-* [v1.13.11](https://github.com/cilium/cilium/releases/tag/v1.13.11) (_[source](https://github.com/cilium/cilium/tree/v1.13.11/install/kubernetes/cilium)_)
 * [v1.13.11](https://github.com/cilium/cilium/releases/tag/v1.13.11) (_[source](https://github.com/cilium/cilium/tree/v1.13.11/install/kubernetes/cilium)_)
 * [v1.13.10](https://github.com/cilium/cilium/releases/tag/v1.13.10) (_[source](https://github.com/cilium/cilium/tree/v1.13.10/install/kubernetes/cilium)_)
-* [v1.13.10](https://github.com/cilium/cilium/releases/tag/v1.13.10) (_[source](https://github.com/cilium/cilium/tree/v1.13.10/install/kubernetes/cilium)_)
 * [v1.13.9](https://github.com/cilium/cilium/releases/tag/v1.13.9) (_[source](https://github.com/cilium/cilium/tree/v1.13.9/install/kubernetes/cilium)_)
-* [v1.13.9](https://github.com/cilium/cilium/releases/tag/v1.13.9) (_[source](https://github.com/cilium/cilium/tree/v1.13.9/install/kubernetes/cilium)_)
-* [v1.13.8](https://github.com/cilium/cilium/releases/tag/v1.13.8) (_[source](https://github.com/cilium/cilium/tree/v1.13.8/install/kubernetes/cilium)_)
 * [v1.13.8](https://github.com/cilium/cilium/releases/tag/v1.13.8) (_[source](https://github.com/cilium/cilium/tree/v1.13.8/install/kubernetes/cilium)_)
 * [v1.13.7](https://github.com/cilium/cilium/releases/tag/v1.13.7) (_[source](https://github.com/cilium/cilium/tree/v1.13.7/install/kubernetes/cilium)_)
-* [v1.13.7](https://github.com/cilium/cilium/releases/tag/v1.13.7) (_[source](https://github.com/cilium/cilium/tree/v1.13.7/install/kubernetes/cilium)_)
-* [v1.13.6](https://github.com/cilium/cilium/releases/tag/v1.13.6) (_[source](https://github.com/cilium/cilium/tree/v1.13.6/install/kubernetes/cilium)_)
 * [v1.13.6](https://github.com/cilium/cilium/releases/tag/v1.13.6) (_[source](https://github.com/cilium/cilium/tree/v1.13.6/install/kubernetes/cilium)_)
 * [v1.13.5](https://github.com/cilium/cilium/releases/tag/v1.13.5) (_[source](https://github.com/cilium/cilium/tree/v1.13.5/install/kubernetes/cilium)_)
-* [v1.13.5](https://github.com/cilium/cilium/releases/tag/v1.13.5) (_[source](https://github.com/cilium/cilium/tree/v1.13.5/install/kubernetes/cilium)_)
 * [v1.13.4](https://github.com/cilium/cilium/releases/tag/v1.13.4) (_[source](https://github.com/cilium/cilium/tree/v1.13.4/install/kubernetes/cilium)_)
-* [v1.13.4](https://github.com/cilium/cilium/releases/tag/v1.13.4) (_[source](https://github.com/cilium/cilium/tree/v1.13.4/install/kubernetes/cilium)_)
-* [v1.13.3](https://github.com/cilium/cilium/releases/tag/v1.13.3) (_[source](https://github.com/cilium/cilium/tree/v1.13.3/install/kubernetes/cilium)_)
 * [v1.13.3](https://github.com/cilium/cilium/releases/tag/v1.13.3) (_[source](https://github.com/cilium/cilium/tree/v1.13.3/install/kubernetes/cilium)_)
 * [v1.13.2](https://github.com/cilium/cilium/releases/tag/v1.13.2) (_[source](https://github.com/cilium/cilium/tree/v1.13.2/install/kubernetes/cilium)_)
-* [v1.13.2](https://github.com/cilium/cilium/releases/tag/v1.13.2) (_[source](https://github.com/cilium/cilium/tree/v1.13.2/install/kubernetes/cilium)_)
-* [v1.13.1](https://github.com/cilium/cilium/releases/tag/v1.13.1) (_[source](https://github.com/cilium/cilium/tree/v1.13.1/install/kubernetes/cilium)_)
 * [v1.13.1](https://github.com/cilium/cilium/releases/tag/v1.13.1) (_[source](https://github.com/cilium/cilium/tree/v1.13.1/install/kubernetes/cilium)_)
 * [v1.13.0](https://github.com/cilium/cilium/releases/tag/v1.13.0) (_[source](https://github.com/cilium/cilium/tree/v1.13.0/install/kubernetes/cilium)_)
-* [v1.13.0](https://github.com/cilium/cilium/releases/tag/v1.13.0) (_[source](https://github.com/cilium/cilium/tree/v1.13.0/install/kubernetes/cilium)_)
 * [v1.13.0-rc5](https://github.com/cilium/cilium/releases/tag/v1.13.0-rc5) (_[source](https://github.com/cilium/cilium/tree/v1.13.0-rc5/install/kubernetes/cilium)_)
-* [v1.13.0-rc5](https://github.com/cilium/cilium/releases/tag/v1.13.0-rc5) (_[source](https://github.com/cilium/cilium/tree/v1.13.0-rc5/install/kubernetes/cilium)_)
-* [v1.13.0-rc4](https://github.com/cilium/cilium/releases/tag/v1.13.0-rc4) (_[source](https://github.com/cilium/cilium/tree/v1.13.0-rc4/install/kubernetes/cilium)_)
 * [v1.13.0-rc4](https://github.com/cilium/cilium/releases/tag/v1.13.0-rc4) (_[source](https://github.com/cilium/cilium/tree/v1.13.0-rc4/install/kubernetes/cilium)_)
 * [v1.13.0-rc3](https://github.com/cilium/cilium/releases/tag/v1.13.0-rc3) (_[source](https://github.com/cilium/cilium/tree/v1.13.0-rc3/install/kubernetes/cilium)_)
-* [v1.13.0-rc3](https://github.com/cilium/cilium/releases/tag/v1.13.0-rc3) (_[source](https://github.com/cilium/cilium/tree/v1.13.0-rc3/install/kubernetes/cilium)_)
-* [v1.13.0-rc2](https://github.com/cilium/cilium/releases/tag/v1.13.0-rc2) (_[source](https://github.com/cilium/cilium/tree/v1.13.0-rc2/install/kubernetes/cilium)_)
 * [v1.13.0-rc2](https://github.com/cilium/cilium/releases/tag/v1.13.0-rc2) (_[source](https://github.com/cilium/cilium/tree/v1.13.0-rc2/install/kubernetes/cilium)_)
 * [v1.13.0-rc1](https://github.com/cilium/cilium/releases/tag/v1.13.0-rc1) (_[source](https://github.com/cilium/cilium/tree/v1.13.0-rc1/install/kubernetes/cilium)_)
-* [v1.13.0-rc1](https://github.com/cilium/cilium/releases/tag/v1.13.0-rc1) (_[source](https://github.com/cilium/cilium/tree/v1.13.0-rc1/install/kubernetes/cilium)_)
-* [v1.13.0-rc0](https://github.com/cilium/cilium/releases/tag/v1.13.0-rc0) (_[source](https://github.com/cilium/cilium/tree/v1.13.0-rc0/install/kubernetes/cilium)_)
 * [v1.13.0-rc0](https://github.com/cilium/cilium/releases/tag/v1.13.0-rc0) (_[source](https://github.com/cilium/cilium/tree/v1.13.0-rc0/install/kubernetes/cilium)_)
 * [v1.12.19](https://github.com/cilium/cilium/releases/tag/v1.12.19) (_[source](https://github.com/cilium/cilium/tree/v1.12.19/install/kubernetes/cilium)_)
-* [v1.12.19](https://github.com/cilium/cilium/releases/tag/v1.12.19) (_[source](https://github.com/cilium/cilium/tree/v1.12.19/install/kubernetes/cilium)_)
-* [v1.12.18](https://github.com/cilium/cilium/releases/tag/v1.12.18) (_[source](https://github.com/cilium/cilium/tree/v1.12.18/install/kubernetes/cilium)_)
 * [v1.12.18](https://github.com/cilium/cilium/releases/tag/v1.12.18) (_[source](https://github.com/cilium/cilium/tree/v1.12.18/install/kubernetes/cilium)_)
 * [v1.12.17](https://github.com/cilium/cilium/releases/tag/v1.12.17) (_[source](https://github.com/cilium/cilium/tree/v1.12.17/install/kubernetes/cilium)_)
-* [v1.12.17](https://github.com/cilium/cilium/releases/tag/v1.12.17) (_[source](https://github.com/cilium/cilium/tree/v1.12.17/install/kubernetes/cilium)_)
 * [v1.12.16](https://github.com/cilium/cilium/releases/tag/v1.12.16) (_[source](https://github.com/cilium/cilium/tree/v1.12.16/install/kubernetes/cilium)_)
-* [v1.12.16](https://github.com/cilium/cilium/releases/tag/v1.12.16) (_[source](https://github.com/cilium/cilium/tree/v1.12.16/install/kubernetes/cilium)_)
-* [v1.12.15](https://github.com/cilium/cilium/releases/tag/v1.12.15) (_[source](https://github.com/cilium/cilium/tree/v1.12.15/install/kubernetes/cilium)_)
 * [v1.12.15](https://github.com/cilium/cilium/releases/tag/v1.12.15) (_[source](https://github.com/cilium/cilium/tree/v1.12.15/install/kubernetes/cilium)_)
 * [v1.12.14](https://github.com/cilium/cilium/releases/tag/v1.12.14) (_[source](https://github.com/cilium/cilium/tree/v1.12.14/install/kubernetes/cilium)_)
-* [v1.12.14](https://github.com/cilium/cilium/releases/tag/v1.12.14) (_[source](https://github.com/cilium/cilium/tree/v1.12.14/install/kubernetes/cilium)_)
-* [v1.12.13](https://github.com/cilium/cilium/releases/tag/v1.12.13) (_[source](https://github.com/cilium/cilium/tree/v1.12.13/install/kubernetes/cilium)_)
 * [v1.12.13](https://github.com/cilium/cilium/releases/tag/v1.12.13) (_[source](https://github.com/cilium/cilium/tree/v1.12.13/install/kubernetes/cilium)_)
 * [v1.12.12](https://github.com/cilium/cilium/releases/tag/v1.12.12) (_[source](https://github.com/cilium/cilium/tree/v1.12.12/install/kubernetes/cilium)_)
-* [v1.12.12](https://github.com/cilium/cilium/releases/tag/v1.12.12) (_[source](https://github.com/cilium/cilium/tree/v1.12.12/install/kubernetes/cilium)_)
-* [v1.12.11](https://github.com/cilium/cilium/releases/tag/v1.12.11) (_[source](https://github.com/cilium/cilium/tree/v1.12.11/install/kubernetes/cilium)_)
 * [v1.12.11](https://github.com/cilium/cilium/releases/tag/v1.12.11) (_[source](https://github.com/cilium/cilium/tree/v1.12.11/install/kubernetes/cilium)_)
 * [v1.12.10](https://github.com/cilium/cilium/releases/tag/v1.12.10) (_[source](https://github.com/cilium/cilium/tree/v1.12.10/install/kubernetes/cilium)_)
-* [v1.12.10](https://github.com/cilium/cilium/releases/tag/v1.12.10) (_[source](https://github.com/cilium/cilium/tree/v1.12.10/install/kubernetes/cilium)_)
-* [v1.12.9](https://github.com/cilium/cilium/releases/tag/v1.12.9) (_[source](https://github.com/cilium/cilium/tree/v1.12.9/install/kubernetes/cilium)_)
 * [v1.12.9](https://github.com/cilium/cilium/releases/tag/v1.12.9) (_[source](https://github.com/cilium/cilium/tree/v1.12.9/install/kubernetes/cilium)_)
 * [v1.12.8](https://github.com/cilium/cilium/releases/tag/v1.12.8) (_[source](https://github.com/cilium/cilium/tree/v1.12.8/install/kubernetes/cilium)_)
-* [v1.12.8](https://github.com/cilium/cilium/releases/tag/v1.12.8) (_[source](https://github.com/cilium/cilium/tree/v1.12.8/install/kubernetes/cilium)_)
 * [v1.12.7](https://github.com/cilium/cilium/releases/tag/v1.12.7) (_[source](https://github.com/cilium/cilium/tree/v1.12.7/install/kubernetes/cilium)_)
-* [v1.12.7](https://github.com/cilium/cilium/releases/tag/v1.12.7) (_[source](https://github.com/cilium/cilium/tree/v1.12.7/install/kubernetes/cilium)_)
-* [v1.12.6](https://github.com/cilium/cilium/releases/tag/v1.12.6) (_[source](https://github.com/cilium/cilium/tree/v1.12.6/install/kubernetes/cilium)_)
 * [v1.12.6](https://github.com/cilium/cilium/releases/tag/v1.12.6) (_[source](https://github.com/cilium/cilium/tree/v1.12.6/install/kubernetes/cilium)_)
 * [v1.12.5](https://github.com/cilium/cilium/releases/tag/v1.12.5) (_[source](https://github.com/cilium/cilium/tree/v1.12.5/install/kubernetes/cilium)_)
-* [v1.12.5](https://github.com/cilium/cilium/releases/tag/v1.12.5) (_[source](https://github.com/cilium/cilium/tree/v1.12.5/install/kubernetes/cilium)_)
-* [v1.12.4](https://github.com/cilium/cilium/releases/tag/v1.12.4) (_[source](https://github.com/cilium/cilium/tree/v1.12.4/install/kubernetes/cilium)_)
 * [v1.12.4](https://github.com/cilium/cilium/releases/tag/v1.12.4) (_[source](https://github.com/cilium/cilium/tree/v1.12.4/install/kubernetes/cilium)_)
 * [v1.12.3](https://github.com/cilium/cilium/releases/tag/v1.12.3) (_[source](https://github.com/cilium/cilium/tree/v1.12.3/install/kubernetes/cilium)_)
-* [v1.12.3](https://github.com/cilium/cilium/releases/tag/v1.12.3) (_[source](https://github.com/cilium/cilium/tree/v1.12.3/install/kubernetes/cilium)_)
-* [v1.12.2](https://github.com/cilium/cilium/releases/tag/v1.12.2) (_[source](https://github.com/cilium/cilium/tree/v1.12.2/install/kubernetes/cilium)_)
 * [v1.12.2](https://github.com/cilium/cilium/releases/tag/v1.12.2) (_[source](https://github.com/cilium/cilium/tree/v1.12.2/install/kubernetes/cilium)_)
 * [v1.12.1](https://github.com/cilium/cilium/releases/tag/v1.12.1) (_[source](https://github.com/cilium/cilium/tree/v1.12.1/install/kubernetes/cilium)_)
-* [v1.12.1](https://github.com/cilium/cilium/releases/tag/v1.12.1) (_[source](https://github.com/cilium/cilium/tree/v1.12.1/install/kubernetes/cilium)_)
-* [v1.12.0](https://github.com/cilium/cilium/releases/tag/v1.12.0) (_[source](https://github.com/cilium/cilium/tree/v1.12.0/install/kubernetes/cilium)_)
 * [v1.12.0](https://github.com/cilium/cilium/releases/tag/v1.12.0) (_[source](https://github.com/cilium/cilium/tree/v1.12.0/install/kubernetes/cilium)_)
 * [v1.12.0-rc3](https://github.com/cilium/cilium/releases/tag/v1.12.0-rc3) (_[source](https://github.com/cilium/cilium/tree/v1.12.0-rc3/install/kubernetes/cilium)_)
-* [v1.12.0-rc3](https://github.com/cilium/cilium/releases/tag/v1.12.0-rc3) (_[source](https://github.com/cilium/cilium/tree/v1.12.0-rc3/install/kubernetes/cilium)_)
 * [v1.12.0-rc2](https://github.com/cilium/cilium/releases/tag/v1.12.0-rc2) (_[source](https://github.com/cilium/cilium/tree/v1.12.0-rc2/install/kubernetes/cilium)_)
-* [v1.12.0-rc2](https://github.com/cilium/cilium/releases/tag/v1.12.0-rc2) (_[source](https://github.com/cilium/cilium/tree/v1.12.0-rc2/install/kubernetes/cilium)_)
-* [v1.12.0-rc1](https://github.com/cilium/cilium/releases/tag/v1.12.0-rc1) (_[source](https://github.com/cilium/cilium/tree/v1.12.0-rc1/install/kubernetes/cilium)_)
 * [v1.12.0-rc1](https://github.com/cilium/cilium/releases/tag/v1.12.0-rc1) (_[source](https://github.com/cilium/cilium/tree/v1.12.0-rc1/install/kubernetes/cilium)_)
 * [v1.12.0-rc0](https://github.com/cilium/cilium/releases/tag/v1.12.0-rc0) (_[source](https://github.com/cilium/cilium/tree/v1.12.0-rc0/install/kubernetes/cilium)_)
-* [v1.12.0-rc0](https://github.com/cilium/cilium/releases/tag/v1.12.0-rc0) (_[source](https://github.com/cilium/cilium/tree/v1.12.0-rc0/install/kubernetes/cilium)_)
-* [v1.11.20](https://github.com/cilium/cilium/releases/tag/v1.11.20) (_[source](https://github.com/cilium/cilium/tree/v1.11.20/install/kubernetes/cilium)_)
 * [v1.11.20](https://github.com/cilium/cilium/releases/tag/v1.11.20) (_[source](https://github.com/cilium/cilium/tree/v1.11.20/install/kubernetes/cilium)_)
 * [v1.11.19](https://github.com/cilium/cilium/releases/tag/v1.11.19) (_[source](https://github.com/cilium/cilium/tree/v1.11.19/install/kubernetes/cilium)_)
-* [v1.11.19](https://github.com/cilium/cilium/releases/tag/v1.11.19) (_[source](https://github.com/cilium/cilium/tree/v1.11.19/install/kubernetes/cilium)_)
 * [v1.11.18](https://github.com/cilium/cilium/releases/tag/v1.11.18) (_[source](https://github.com/cilium/cilium/tree/v1.11.18/install/kubernetes/cilium)_)
-* [v1.11.18](https://github.com/cilium/cilium/releases/tag/v1.11.18) (_[source](https://github.com/cilium/cilium/tree/v1.11.18/install/kubernetes/cilium)_)
-* [v1.11.17](https://github.com/cilium/cilium/releases/tag/v1.11.17) (_[source](https://github.com/cilium/cilium/tree/v1.11.17/install/kubernetes/cilium)_)
 * [v1.11.17](https://github.com/cilium/cilium/releases/tag/v1.11.17) (_[source](https://github.com/cilium/cilium/tree/v1.11.17/install/kubernetes/cilium)_)
 * [v1.11.16](https://github.com/cilium/cilium/releases/tag/v1.11.16) (_[source](https://github.com/cilium/cilium/tree/v1.11.16/install/kubernetes/cilium)_)
-* [v1.11.16](https://github.com/cilium/cilium/releases/tag/v1.11.16) (_[source](https://github.com/cilium/cilium/tree/v1.11.16/install/kubernetes/cilium)_)
-* [v1.11.15](https://github.com/cilium/cilium/releases/tag/v1.11.15) (_[source](https://github.com/cilium/cilium/tree/v1.11.15/install/kubernetes/cilium)_)
 * [v1.11.15](https://github.com/cilium/cilium/releases/tag/v1.11.15) (_[source](https://github.com/cilium/cilium/tree/v1.11.15/install/kubernetes/cilium)_)
 * [v1.11.14](https://github.com/cilium/cilium/releases/tag/v1.11.14) (_[source](https://github.com/cilium/cilium/tree/v1.11.14/install/kubernetes/cilium)_)
-* [v1.11.14](https://github.com/cilium/cilium/releases/tag/v1.11.14) (_[source](https://github.com/cilium/cilium/tree/v1.11.14/install/kubernetes/cilium)_)
 * [v1.11.13](https://github.com/cilium/cilium/releases/tag/v1.11.13) (_[source](https://github.com/cilium/cilium/tree/v1.11.13/install/kubernetes/cilium)_)
-* [v1.11.13](https://github.com/cilium/cilium/releases/tag/v1.11.13) (_[source](https://github.com/cilium/cilium/tree/v1.11.13/install/kubernetes/cilium)_)
-* [v1.11.12](https://github.com/cilium/cilium/releases/tag/v1.11.12) (_[source](https://github.com/cilium/cilium/tree/v1.11.12/install/kubernetes/cilium)_)
 * [v1.11.12](https://github.com/cilium/cilium/releases/tag/v1.11.12) (_[source](https://github.com/cilium/cilium/tree/v1.11.12/install/kubernetes/cilium)_)
 * [v1.11.11](https://github.com/cilium/cilium/releases/tag/v1.11.11) (_[source](https://github.com/cilium/cilium/tree/v1.11.11/install/kubernetes/cilium)_)
-* [v1.11.11](https://github.com/cilium/cilium/releases/tag/v1.11.11) (_[source](https://github.com/cilium/cilium/tree/v1.11.11/install/kubernetes/cilium)_)
-* [v1.11.10](https://github.com/cilium/cilium/releases/tag/v1.11.10) (_[source](https://github.com/cilium/cilium/tree/v1.11.10/install/kubernetes/cilium)_)
 * [v1.11.10](https://github.com/cilium/cilium/releases/tag/v1.11.10) (_[source](https://github.com/cilium/cilium/tree/v1.11.10/install/kubernetes/cilium)_)
 * [v1.11.9](https://github.com/cilium/cilium/releases/tag/v1.11.9) (_[source](https://github.com/cilium/cilium/tree/v1.11.9/install/kubernetes/cilium)_)
-* [v1.11.9](https://github.com/cilium/cilium/releases/tag/v1.11.9) (_[source](https://github.com/cilium/cilium/tree/v1.11.9/install/kubernetes/cilium)_)
-* [v1.11.8](https://github.com/cilium/cilium/releases/tag/v1.11.8) (_[source](https://github.com/cilium/cilium/tree/v1.11.8/install/kubernetes/cilium)_)
 * [v1.11.8](https://github.com/cilium/cilium/releases/tag/v1.11.8) (_[source](https://github.com/cilium/cilium/tree/v1.11.8/install/kubernetes/cilium)_)
 * [v1.11.7](https://github.com/cilium/cilium/releases/tag/v1.11.7) (_[source](https://github.com/cilium/cilium/tree/v1.11.7/install/kubernetes/cilium)_)
-* [v1.11.7](https://github.com/cilium/cilium/releases/tag/v1.11.7) (_[source](https://github.com/cilium/cilium/tree/v1.11.7/install/kubernetes/cilium)_)
-* [v1.11.6](https://github.com/cilium/cilium/releases/tag/v1.11.6) (_[source](https://github.com/cilium/cilium/tree/v1.11.6/install/kubernetes/cilium)_)
 * [v1.11.6](https://github.com/cilium/cilium/releases/tag/v1.11.6) (_[source](https://github.com/cilium/cilium/tree/v1.11.6/install/kubernetes/cilium)_)
 * [v1.11.5](https://github.com/cilium/cilium/releases/tag/v1.11.5) (_[source](https://github.com/cilium/cilium/tree/v1.11.5/install/kubernetes/cilium)_)
-* [v1.11.5](https://github.com/cilium/cilium/releases/tag/v1.11.5) (_[source](https://github.com/cilium/cilium/tree/v1.11.5/install/kubernetes/cilium)_)
 * [v1.11.4](https://github.com/cilium/cilium/releases/tag/v1.11.4) (_[source](https://github.com/cilium/cilium/tree/v1.11.4/install/kubernetes/cilium)_)
-* [v1.11.4](https://github.com/cilium/cilium/releases/tag/v1.11.4) (_[source](https://github.com/cilium/cilium/tree/v1.11.4/install/kubernetes/cilium)_)
-* [v1.11.3](https://github.com/cilium/cilium/releases/tag/v1.11.3) (_[source](https://github.com/cilium/cilium/tree/v1.11.3/install/kubernetes/cilium)_)
 * [v1.11.3](https://github.com/cilium/cilium/releases/tag/v1.11.3) (_[source](https://github.com/cilium/cilium/tree/v1.11.3/install/kubernetes/cilium)_)
 * [v1.11.2](https://github.com/cilium/cilium/releases/tag/v1.11.2) (_[source](https://github.com/cilium/cilium/tree/v1.11.2/install/kubernetes/cilium)_)
-* [v1.11.2](https://github.com/cilium/cilium/releases/tag/v1.11.2) (_[source](https://github.com/cilium/cilium/tree/v1.11.2/install/kubernetes/cilium)_)
-* [v1.11.1](https://github.com/cilium/cilium/releases/tag/v1.11.1) (_[source](https://github.com/cilium/cilium/tree/v1.11.1/install/kubernetes/cilium)_)
 * [v1.11.1](https://github.com/cilium/cilium/releases/tag/v1.11.1) (_[source](https://github.com/cilium/cilium/tree/v1.11.1/install/kubernetes/cilium)_)
 * [v1.11.0](https://github.com/cilium/cilium/releases/tag/v1.11.0) (_[source](https://github.com/cilium/cilium/tree/v1.11.0/install/kubernetes/cilium)_)
-* [v1.11.0](https://github.com/cilium/cilium/releases/tag/v1.11.0) (_[source](https://github.com/cilium/cilium/tree/v1.11.0/install/kubernetes/cilium)_)
 * [v1.11.0-rc3](https://github.com/cilium/cilium/releases/tag/v1.11.0-rc3) (_[source](https://github.com/cilium/cilium/tree/v1.11.0-rc3/install/kubernetes/cilium)_)
-* [v1.11.0-rc3](https://github.com/cilium/cilium/releases/tag/v1.11.0-rc3) (_[source](https://github.com/cilium/cilium/tree/v1.11.0-rc3/install/kubernetes/cilium)_)
-* [v1.11.0-rc2](https://github.com/cilium/cilium/releases/tag/v1.11.0-rc2) (_[source](https://github.com/cilium/cilium/tree/v1.11.0-rc2/install/kubernetes/cilium)_)
 * [v1.11.0-rc2](https://github.com/cilium/cilium/releases/tag/v1.11.0-rc2) (_[source](https://github.com/cilium/cilium/tree/v1.11.0-rc2/install/kubernetes/cilium)_)
 * [v1.11.0-rc1](https://github.com/cilium/cilium/releases/tag/v1.11.0-rc1) (_[source](https://github.com/cilium/cilium/tree/v1.11.0-rc1/install/kubernetes/cilium)_)
-* [v1.11.0-rc1](https://github.com/cilium/cilium/releases/tag/v1.11.0-rc1) (_[source](https://github.com/cilium/cilium/tree/v1.11.0-rc1/install/kubernetes/cilium)_)
-* [v1.11.0-rc0](https://github.com/cilium/cilium/releases/tag/v1.11.0-rc0) (_[source](https://github.com/cilium/cilium/tree/v1.11.0-rc0/install/kubernetes/cilium)_)
 * [v1.11.0-rc0](https://github.com/cilium/cilium/releases/tag/v1.11.0-rc0) (_[source](https://github.com/cilium/cilium/tree/v1.11.0-rc0/install/kubernetes/cilium)_)
 * [v1.10.20](https://github.com/cilium/cilium/releases/tag/v1.10.20) (_[source](https://github.com/cilium/cilium/tree/v1.10.20/install/kubernetes/cilium)_)
-* [v1.10.20](https://github.com/cilium/cilium/releases/tag/v1.10.20) (_[source](https://github.com/cilium/cilium/tree/v1.10.20/install/kubernetes/cilium)_)
 * [v1.10.19](https://github.com/cilium/cilium/releases/tag/v1.10.19) (_[source](https://github.com/cilium/cilium/tree/v1.10.19/install/kubernetes/cilium)_)
-* [v1.10.19](https://github.com/cilium/cilium/releases/tag/v1.10.19) (_[source](https://github.com/cilium/cilium/tree/v1.10.19/install/kubernetes/cilium)_)
-* [v1.10.18](https://github.com/cilium/cilium/releases/tag/v1.10.18) (_[source](https://github.com/cilium/cilium/tree/v1.10.18/install/kubernetes/cilium)_)
 * [v1.10.18](https://github.com/cilium/cilium/releases/tag/v1.10.18) (_[source](https://github.com/cilium/cilium/tree/v1.10.18/install/kubernetes/cilium)_)
 * [v1.10.17](https://github.com/cilium/cilium/releases/tag/v1.10.17) (_[source](https://github.com/cilium/cilium/tree/v1.10.17/install/kubernetes/cilium)_)
-* [v1.10.17](https://github.com/cilium/cilium/releases/tag/v1.10.17) (_[source](https://github.com/cilium/cilium/tree/v1.10.17/install/kubernetes/cilium)_)
-* [v1.10.16](https://github.com/cilium/cilium/releases/tag/v1.10.16) (_[source](https://github.com/cilium/cilium/tree/v1.10.16/install/kubernetes/cilium)_)
 * [v1.10.16](https://github.com/cilium/cilium/releases/tag/v1.10.16) (_[source](https://github.com/cilium/cilium/tree/v1.10.16/install/kubernetes/cilium)_)
 * [v1.10.15](https://github.com/cilium/cilium/releases/tag/v1.10.15) (_[source](https://github.com/cilium/cilium/tree/v1.10.15/install/kubernetes/cilium)_)
-* [v1.10.15](https://github.com/cilium/cilium/releases/tag/v1.10.15) (_[source](https://github.com/cilium/cilium/tree/v1.10.15/install/kubernetes/cilium)_)
-* [v1.10.14](https://github.com/cilium/cilium/releases/tag/v1.10.14) (_[source](https://github.com/cilium/cilium/tree/v1.10.14/install/kubernetes/cilium)_)
 * [v1.10.14](https://github.com/cilium/cilium/releases/tag/v1.10.14) (_[source](https://github.com/cilium/cilium/tree/v1.10.14/install/kubernetes/cilium)_)
 * [v1.10.13](https://github.com/cilium/cilium/releases/tag/v1.10.13) (_[source](https://github.com/cilium/cilium/tree/v1.10.13/install/kubernetes/cilium)_)
-* [v1.10.13](https://github.com/cilium/cilium/releases/tag/v1.10.13) (_[source](https://github.com/cilium/cilium/tree/v1.10.13/install/kubernetes/cilium)_)
-* [v1.10.12](https://github.com/cilium/cilium/releases/tag/v1.10.12) (_[source](https://github.com/cilium/cilium/tree/v1.10.12/install/kubernetes/cilium)_)
 * [v1.10.12](https://github.com/cilium/cilium/releases/tag/v1.10.12) (_[source](https://github.com/cilium/cilium/tree/v1.10.12/install/kubernetes/cilium)_)
 * [v1.10.11](https://github.com/cilium/cilium/releases/tag/v1.10.11) (_[source](https://github.com/cilium/cilium/tree/v1.10.11/install/kubernetes/cilium)_)
-* [v1.10.11](https://github.com/cilium/cilium/releases/tag/v1.10.11) (_[source](https://github.com/cilium/cilium/tree/v1.10.11/install/kubernetes/cilium)_)
 * [v1.10.10](https://github.com/cilium/cilium/releases/tag/v1.10.10) (_[source](https://github.com/cilium/cilium/tree/v1.10.10/install/kubernetes/cilium)_)
-* [v1.10.10](https://github.com/cilium/cilium/releases/tag/v1.10.10) (_[source](https://github.com/cilium/cilium/tree/v1.10.10/install/kubernetes/cilium)_)
-* [v1.10.9](https://github.com/cilium/cilium/releases/tag/v1.10.9) (_[source](https://github.com/cilium/cilium/tree/v1.10.9/install/kubernetes/cilium)_)
 * [v1.10.9](https://github.com/cilium/cilium/releases/tag/v1.10.9) (_[source](https://github.com/cilium/cilium/tree/v1.10.9/install/kubernetes/cilium)_)
 * [v1.10.8](https://github.com/cilium/cilium/releases/tag/v1.10.8) (_[source](https://github.com/cilium/cilium/tree/v1.10.8/install/kubernetes/cilium)_)
-* [v1.10.8](https://github.com/cilium/cilium/releases/tag/v1.10.8) (_[source](https://github.com/cilium/cilium/tree/v1.10.8/install/kubernetes/cilium)_)
-* [v1.10.7](https://github.com/cilium/cilium/releases/tag/v1.10.7) (_[source](https://github.com/cilium/cilium/tree/v1.10.7/install/kubernetes/cilium)_)
 * [v1.10.7](https://github.com/cilium/cilium/releases/tag/v1.10.7) (_[source](https://github.com/cilium/cilium/tree/v1.10.7/install/kubernetes/cilium)_)
 * [v1.10.6](https://github.com/cilium/cilium/releases/tag/v1.10.6) (_[source](https://github.com/cilium/cilium/tree/v1.10.6/install/kubernetes/cilium)_)
-* [v1.10.6](https://github.com/cilium/cilium/releases/tag/v1.10.6) (_[source](https://github.com/cilium/cilium/tree/v1.10.6/install/kubernetes/cilium)_)
 * [v1.10.5](https://github.com/cilium/cilium/releases/tag/v1.10.5) (_[source](https://github.com/cilium/cilium/tree/v1.10.5/install/kubernetes/cilium)_)
-* [v1.10.5](https://github.com/cilium/cilium/releases/tag/v1.10.5) (_[source](https://github.com/cilium/cilium/tree/v1.10.5/install/kubernetes/cilium)_)
-* [v1.10.4](https://github.com/cilium/cilium/releases/tag/v1.10.4) (_[source](https://github.com/cilium/cilium/tree/v1.10.4/install/kubernetes/cilium)_)
 * [v1.10.4](https://github.com/cilium/cilium/releases/tag/v1.10.4) (_[source](https://github.com/cilium/cilium/tree/v1.10.4/install/kubernetes/cilium)_)
 * [v1.10.3](https://github.com/cilium/cilium/releases/tag/v1.10.3) (_[source](https://github.com/cilium/cilium/tree/v1.10.3/install/kubernetes/cilium)_)
-* [v1.10.3](https://github.com/cilium/cilium/releases/tag/v1.10.3) (_[source](https://github.com/cilium/cilium/tree/v1.10.3/install/kubernetes/cilium)_)
-* [v1.10.2](https://github.com/cilium/cilium/releases/tag/v1.10.2) (_[source](https://github.com/cilium/cilium/tree/v1.10.2/install/kubernetes/cilium)_)
 * [v1.10.2](https://github.com/cilium/cilium/releases/tag/v1.10.2) (_[source](https://github.com/cilium/cilium/tree/v1.10.2/install/kubernetes/cilium)_)
 * [v1.10.1](https://github.com/cilium/cilium/releases/tag/v1.10.1) (_[source](https://github.com/cilium/cilium/tree/v1.10.1/install/kubernetes/cilium)_)
-* [v1.10.1](https://github.com/cilium/cilium/releases/tag/v1.10.1) (_[source](https://github.com/cilium/cilium/tree/v1.10.1/install/kubernetes/cilium)_)
 * [v1.10.0](https://github.com/cilium/cilium/releases/tag/v1.10.0) (_[source](https://github.com/cilium/cilium/tree/v1.10.0/install/kubernetes/cilium)_)
-* [v1.10.0](https://github.com/cilium/cilium/releases/tag/v1.10.0) (_[source](https://github.com/cilium/cilium/tree/v1.10.0/install/kubernetes/cilium)_)
-* [v1.10.0-rc2](https://github.com/cilium/cilium/releases/tag/v1.10.0-rc2) (_[source](https://github.com/cilium/cilium/tree/v1.10.0-rc2/install/kubernetes/cilium)_)
 * [v1.10.0-rc2](https://github.com/cilium/cilium/releases/tag/v1.10.0-rc2) (_[source](https://github.com/cilium/cilium/tree/v1.10.0-rc2/install/kubernetes/cilium)_)
 * [v1.10.0-rc1](https://github.com/cilium/cilium/releases/tag/v1.10.0-rc1) (_[source](https://github.com/cilium/cilium/tree/v1.10.0-rc1/install/kubernetes/cilium)_)
-* [v1.10.0-rc1](https://github.com/cilium/cilium/releases/tag/v1.10.0-rc1) (_[source](https://github.com/cilium/cilium/tree/v1.10.0-rc1/install/kubernetes/cilium)_)
-* [v1.10.0-rc0](https://github.com/cilium/cilium/releases/tag/v1.10.0-rc0) (_[source](https://github.com/cilium/cilium/tree/v1.10.0-rc0/install/kubernetes/cilium)_)
 * [v1.10.0-rc0](https://github.com/cilium/cilium/releases/tag/v1.10.0-rc0) (_[source](https://github.com/cilium/cilium/tree/v1.10.0-rc0/install/kubernetes/cilium)_)
 * [v1.9.18](https://github.com/cilium/cilium/releases/tag/v1.9.18) (_[source](https://github.com/cilium/cilium/tree/v1.9.18/install/kubernetes/cilium)_)
-* [v1.9.18](https://github.com/cilium/cilium/releases/tag/v1.9.18) (_[source](https://github.com/cilium/cilium/tree/v1.9.18/install/kubernetes/cilium)_)
-* [v1.9.17](https://github.com/cilium/cilium/releases/tag/v1.9.17) (_[source](https://github.com/cilium/cilium/tree/v1.9.17/install/kubernetes/cilium)_)
 * [v1.9.17](https://github.com/cilium/cilium/releases/tag/v1.9.17) (_[source](https://github.com/cilium/cilium/tree/v1.9.17/install/kubernetes/cilium)_)
 * [v1.9.16](https://github.com/cilium/cilium/releases/tag/v1.9.16) (_[source](https://github.com/cilium/cilium/tree/v1.9.16/install/kubernetes/cilium)_)
-* [v1.9.16](https://github.com/cilium/cilium/releases/tag/v1.9.16) (_[source](https://github.com/cilium/cilium/tree/v1.9.16/install/kubernetes/cilium)_)
-* [v1.9.15](https://github.com/cilium/cilium/releases/tag/v1.9.15) (_[source](https://github.com/cilium/cilium/tree/v1.9.15/install/kubernetes/cilium)_)
 * [v1.9.15](https://github.com/cilium/cilium/releases/tag/v1.9.15) (_[source](https://github.com/cilium/cilium/tree/v1.9.15/install/kubernetes/cilium)_)
 * [v1.9.14](https://github.com/cilium/cilium/releases/tag/v1.9.14) (_[source](https://github.com/cilium/cilium/tree/v1.9.14/install/kubernetes/cilium)_)
-* [v1.9.14](https://github.com/cilium/cilium/releases/tag/v1.9.14) (_[source](https://github.com/cilium/cilium/tree/v1.9.14/install/kubernetes/cilium)_)
 * [v1.9.13](https://github.com/cilium/cilium/releases/tag/v1.9.13) (_[source](https://github.com/cilium/cilium/tree/v1.9.13/install/kubernetes/cilium)_)
-* [v1.9.13](https://github.com/cilium/cilium/releases/tag/v1.9.13) (_[source](https://github.com/cilium/cilium/tree/v1.9.13/install/kubernetes/cilium)_)
-* [v1.9.12](https://github.com/cilium/cilium/releases/tag/v1.9.12) (_[source](https://github.com/cilium/cilium/tree/v1.9.12/install/kubernetes/cilium)_)
 * [v1.9.12](https://github.com/cilium/cilium/releases/tag/v1.9.12) (_[source](https://github.com/cilium/cilium/tree/v1.9.12/install/kubernetes/cilium)_)
 * [v1.9.11](https://github.com/cilium/cilium/releases/tag/v1.9.11) (_[source](https://github.com/cilium/cilium/tree/v1.9.11/install/kubernetes/cilium)_)
-* [v1.9.11](https://github.com/cilium/cilium/releases/tag/v1.9.11) (_[source](https://github.com/cilium/cilium/tree/v1.9.11/install/kubernetes/cilium)_)
-* [v1.9.10](https://github.com/cilium/cilium/releases/tag/v1.9.10) (_[source](https://github.com/cilium/cilium/tree/v1.9.10/install/kubernetes/cilium)_)
 * [v1.9.10](https://github.com/cilium/cilium/releases/tag/v1.9.10) (_[source](https://github.com/cilium/cilium/tree/v1.9.10/install/kubernetes/cilium)_)
 * [v1.9.9](https://github.com/cilium/cilium/releases/tag/v1.9.9) (_[source](https://github.com/cilium/cilium/tree/v1.9.9/install/kubernetes/cilium)_)
-* [v1.9.9](https://github.com/cilium/cilium/releases/tag/v1.9.9) (_[source](https://github.com/cilium/cilium/tree/v1.9.9/install/kubernetes/cilium)_)
-* [v1.9.8](https://github.com/cilium/cilium/releases/tag/v1.9.8) (_[source](https://github.com/cilium/cilium/tree/v1.9.8/install/kubernetes/cilium)_)
 * [v1.9.8](https://github.com/cilium/cilium/releases/tag/v1.9.8) (_[source](https://github.com/cilium/cilium/tree/v1.9.8/install/kubernetes/cilium)_)
 * [v1.9.7](https://github.com/cilium/cilium/releases/tag/v1.9.7) (_[source](https://github.com/cilium/cilium/tree/v1.9.7/install/kubernetes/cilium)_)
-* [v1.9.7](https://github.com/cilium/cilium/releases/tag/v1.9.7) (_[source](https://github.com/cilium/cilium/tree/v1.9.7/install/kubernetes/cilium)_)
-* [v1.9.6](https://github.com/cilium/cilium/releases/tag/v1.9.6) (_[source](https://github.com/cilium/cilium/tree/v1.9.6/install/kubernetes/cilium)_)
 * [v1.9.6](https://github.com/cilium/cilium/releases/tag/v1.9.6) (_[source](https://github.com/cilium/cilium/tree/v1.9.6/install/kubernetes/cilium)_)
 * [v1.9.5](https://github.com/cilium/cilium/releases/tag/v1.9.5) (_[source](https://github.com/cilium/cilium/tree/v1.9.5/install/kubernetes/cilium)_)
-* [v1.9.5](https://github.com/cilium/cilium/releases/tag/v1.9.5) (_[source](https://github.com/cilium/cilium/tree/v1.9.5/install/kubernetes/cilium)_)
 * [v1.9.4](https://github.com/cilium/cilium/releases/tag/v1.9.4) (_[source](https://github.com/cilium/cilium/tree/v1.9.4/install/kubernetes/cilium)_)
-* [v1.9.4](https://github.com/cilium/cilium/releases/tag/v1.9.4) (_[source](https://github.com/cilium/cilium/tree/v1.9.4/install/kubernetes/cilium)_)
-* [v1.9.3](https://github.com/cilium/cilium/releases/tag/v1.9.3) (_[source](https://github.com/cilium/cilium/tree/v1.9.3/install/kubernetes/cilium)_)
 * [v1.9.3](https://github.com/cilium/cilium/releases/tag/v1.9.3) (_[source](https://github.com/cilium/cilium/tree/v1.9.3/install/kubernetes/cilium)_)
 * [v1.9.2](https://github.com/cilium/cilium/releases/tag/v1.9.2) (_[source](https://github.com/cilium/cilium/tree/v1.9.2/install/kubernetes/cilium)_)
-* [v1.9.2](https://github.com/cilium/cilium/releases/tag/v1.9.2) (_[source](https://github.com/cilium/cilium/tree/v1.9.2/install/kubernetes/cilium)_)
-* [v1.9.1](https://github.com/cilium/cilium/releases/tag/v1.9.1) (_[source](https://github.com/cilium/cilium/tree/v1.9.1/install/kubernetes/cilium)_)
 * [v1.9.1](https://github.com/cilium/cilium/releases/tag/v1.9.1) (_[source](https://github.com/cilium/cilium/tree/v1.9.1/install/kubernetes/cilium)_)
 * [v1.9.0](https://github.com/cilium/cilium/releases/tag/v1.9.0) (_[source](https://github.com/cilium/cilium/tree/v1.9.0/install/kubernetes/cilium)_)
-* [v1.9.0](https://github.com/cilium/cilium/releases/tag/v1.9.0) (_[source](https://github.com/cilium/cilium/tree/v1.9.0/install/kubernetes/cilium)_)
-* [v1.9.0-rc3](https://github.com/cilium/cilium/releases/tag/v1.9.0-rc3) (_[source](https://github.com/cilium/cilium/tree/v1.9.0-rc3/install/kubernetes/cilium)_)
 * [v1.9.0-rc3](https://github.com/cilium/cilium/releases/tag/v1.9.0-rc3) (_[source](https://github.com/cilium/cilium/tree/v1.9.0-rc3/install/kubernetes/cilium)_)
 * [v1.9.0-rc2](https://github.com/cilium/cilium/releases/tag/v1.9.0-rc2) (_[source](https://github.com/cilium/cilium/tree/v1.9.0-rc2/install/kubernetes/cilium)_)
-* [v1.9.0-rc2](https://github.com/cilium/cilium/releases/tag/v1.9.0-rc2) (_[source](https://github.com/cilium/cilium/tree/v1.9.0-rc2/install/kubernetes/cilium)_)
-* [v1.9.0-rc1](https://github.com/cilium/cilium/releases/tag/v1.9.0-rc1) (_[source](https://github.com/cilium/cilium/tree/v1.9.0-rc1/install/kubernetes/cilium)_)
 * [v1.9.0-rc1](https://github.com/cilium/cilium/releases/tag/v1.9.0-rc1) (_[source](https://github.com/cilium/cilium/tree/v1.9.0-rc1/install/kubernetes/cilium)_)
 * [v1.9.0-rc0](https://github.com/cilium/cilium/releases/tag/v1.9.0-rc0) (_[source](https://github.com/cilium/cilium/tree/v1.9.0-rc0/install/kubernetes/cilium)_)
-* [v1.9.0-rc0](https://github.com/cilium/cilium/releases/tag/v1.9.0-rc0) (_[source](https://github.com/cilium/cilium/tree/v1.9.0-rc0/install/kubernetes/cilium)_)
 * [v1.8.13](https://github.com/cilium/cilium/releases/tag/v1.8.13) (_[source](https://github.com/cilium/cilium/tree/v1.8.13/install/kubernetes/cilium)_)
-* [v1.8.13](https://github.com/cilium/cilium/releases/tag/v1.8.13) (_[source](https://github.com/cilium/cilium/tree/v1.8.13/install/kubernetes/cilium)_)
-* [v1.8.12](https://github.com/cilium/cilium/releases/tag/v1.8.12) (_[source](https://github.com/cilium/cilium/tree/v1.8.12/install/kubernetes/cilium)_)
 * [v1.8.12](https://github.com/cilium/cilium/releases/tag/v1.8.12) (_[source](https://github.com/cilium/cilium/tree/v1.8.12/install/kubernetes/cilium)_)
 * [v1.8.11](https://github.com/cilium/cilium/releases/tag/v1.8.11) (_[source](https://github.com/cilium/cilium/tree/v1.8.11/install/kubernetes/cilium)_)
-* [v1.8.11](https://github.com/cilium/cilium/releases/tag/v1.8.11) (_[source](https://github.com/cilium/cilium/tree/v1.8.11/install/kubernetes/cilium)_)
-* [v1.8.10](https://github.com/cilium/cilium/releases/tag/v1.8.10) (_[source](https://github.com/cilium/cilium/tree/v1.8.10/install/kubernetes/cilium)_)
 * [v1.8.10](https://github.com/cilium/cilium/releases/tag/v1.8.10) (_[source](https://github.com/cilium/cilium/tree/v1.8.10/install/kubernetes/cilium)_)
 * [v1.8.9](https://github.com/cilium/cilium/releases/tag/v1.8.9) (_[source](https://github.com/cilium/cilium/tree/v1.8.9/install/kubernetes/cilium)_)
-* [v1.8.9](https://github.com/cilium/cilium/releases/tag/v1.8.9) (_[source](https://github.com/cilium/cilium/tree/v1.8.9/install/kubernetes/cilium)_)
 * [v1.8.8](https://github.com/cilium/cilium/releases/tag/v1.8.8) (_[source](https://github.com/cilium/cilium/tree/v1.8.8/install/kubernetes/cilium)_)
-* [v1.8.8](https://github.com/cilium/cilium/releases/tag/v1.8.8) (_[source](https://github.com/cilium/cilium/tree/v1.8.8/install/kubernetes/cilium)_)
-* [v1.8.7](https://github.com/cilium/cilium/releases/tag/v1.8.7) (_[source](https://github.com/cilium/cilium/tree/v1.8.7/install/kubernetes/cilium)_)
 * [v1.8.7](https://github.com/cilium/cilium/releases/tag/v1.8.7) (_[source](https://github.com/cilium/cilium/tree/v1.8.7/install/kubernetes/cilium)_)
 * [v1.8.6](https://github.com/cilium/cilium/releases/tag/v1.8.6) (_[source](https://github.com/cilium/cilium/tree/v1.8.6/install/kubernetes/cilium)_)
-* [v1.8.6](https://github.com/cilium/cilium/releases/tag/v1.8.6) (_[source](https://github.com/cilium/cilium/tree/v1.8.6/install/kubernetes/cilium)_)
-* [v1.8.5](https://github.com/cilium/cilium/releases/tag/v1.8.5) (_[source](https://github.com/cilium/cilium/tree/v1.8.5/install/kubernetes/cilium)_)
 * [v1.8.5](https://github.com/cilium/cilium/releases/tag/v1.8.5) (_[source](https://github.com/cilium/cilium/tree/v1.8.5/install/kubernetes/cilium)_)
 * [v1.8.4](https://github.com/cilium/cilium/releases/tag/v1.8.4) (_[source](https://github.com/cilium/cilium/tree/v1.8.4/install/kubernetes/cilium)_)
-* [v1.8.4](https://github.com/cilium/cilium/releases/tag/v1.8.4) (_[source](https://github.com/cilium/cilium/tree/v1.8.4/install/kubernetes/cilium)_)
 * [v1.8.3](https://github.com/cilium/cilium/releases/tag/v1.8.3) (_[source](https://github.com/cilium/cilium/tree/v1.8.3/install/kubernetes/cilium)_)
-* [v1.8.3](https://github.com/cilium/cilium/releases/tag/v1.8.3) (_[source](https://github.com/cilium/cilium/tree/v1.8.3/install/kubernetes/cilium)_)
-* [v1.8.2](https://github.com/cilium/cilium/releases/tag/v1.8.2) (_[source](https://github.com/cilium/cilium/tree/v1.8.2/install/kubernetes/cilium)_)
 * [v1.8.2](https://github.com/cilium/cilium/releases/tag/v1.8.2) (_[source](https://github.com/cilium/cilium/tree/v1.8.2/install/kubernetes/cilium)_)
 * [v1.8.1](https://github.com/cilium/cilium/releases/tag/v1.8.1) (_[source](https://github.com/cilium/cilium/tree/v1.8.1/install/kubernetes/cilium)_)
-* [v1.8.1](https://github.com/cilium/cilium/releases/tag/v1.8.1) (_[source](https://github.com/cilium/cilium/tree/v1.8.1/install/kubernetes/cilium)_)
-* [v1.8.0](https://github.com/cilium/cilium/releases/tag/v1.8.0) (_[source](https://github.com/cilium/cilium/tree/v1.8.0/install/kubernetes/cilium)_)
 * [v1.8.0](https://github.com/cilium/cilium/releases/tag/v1.8.0) (_[source](https://github.com/cilium/cilium/tree/v1.8.0/install/kubernetes/cilium)_)
 * [v1.8.0-rc4](https://github.com/cilium/cilium/releases/tag/v1.8.0-rc4) (_[source](https://github.com/cilium/cilium/tree/v1.8.0-rc4/install/kubernetes/cilium)_)
-* [v1.8.0-rc4](https://github.com/cilium/cilium/releases/tag/v1.8.0-rc4) (_[source](https://github.com/cilium/cilium/tree/v1.8.0-rc4/install/kubernetes/cilium)_)
-* [v1.8.0-rc3](https://github.com/cilium/cilium/releases/tag/v1.8.0-rc3) (_[source](https://github.com/cilium/cilium/tree/v1.8.0-rc3/install/kubernetes/cilium)_)
 * [v1.8.0-rc3](https://github.com/cilium/cilium/releases/tag/v1.8.0-rc3) (_[source](https://github.com/cilium/cilium/tree/v1.8.0-rc3/install/kubernetes/cilium)_)
 * [v1.8.0-rc2](https://github.com/cilium/cilium/releases/tag/v1.8.0-rc2) (_[source](https://github.com/cilium/cilium/tree/v1.8.0-rc2/install/kubernetes/cilium)_)
-* [v1.8.0-rc2](https://github.com/cilium/cilium/releases/tag/v1.8.0-rc2) (_[source](https://github.com/cilium/cilium/tree/v1.8.0-rc2/install/kubernetes/cilium)_)
-* [v1.8.0-rc1](https://github.com/cilium/cilium/releases/tag/v1.8.0-rc1) (_[source](https://github.com/cilium/cilium/tree/v1.8.0-rc1/install/kubernetes/cilium)_)
 * [v1.8.0-rc1](https://github.com/cilium/cilium/releases/tag/v1.8.0-rc1) (_[source](https://github.com/cilium/cilium/tree/v1.8.0-rc1/install/kubernetes/cilium)_)
 * [v1.7.16](https://github.com/cilium/cilium/releases/tag/v1.7.16) (_[source](https://github.com/cilium/cilium/tree/v1.7.16/install/kubernetes/cilium)_)
-* [v1.7.16](https://github.com/cilium/cilium/releases/tag/v1.7.16) (_[source](https://github.com/cilium/cilium/tree/v1.7.16/install/kubernetes/cilium)_)
 * [v1.7.15](https://github.com/cilium/cilium/releases/tag/v1.7.15) (_[source](https://github.com/cilium/cilium/tree/v1.7.15/install/kubernetes/cilium)_)
-* [v1.7.15](https://github.com/cilium/cilium/releases/tag/v1.7.15) (_[source](https://github.com/cilium/cilium/tree/v1.7.15/install/kubernetes/cilium)_)
-* [v1.7.14](https://github.com/cilium/cilium/releases/tag/v1.7.14) (_[source](https://github.com/cilium/cilium/tree/v1.7.14/install/kubernetes/cilium)_)
 * [v1.7.14](https://github.com/cilium/cilium/releases/tag/v1.7.14) (_[source](https://github.com/cilium/cilium/tree/v1.7.14/install/kubernetes/cilium)_)
 * [v1.7.13](https://github.com/cilium/cilium/releases/tag/v1.7.13) (_[source](https://github.com/cilium/cilium/tree/v1.7.13/install/kubernetes/cilium)_)
-* [v1.7.13](https://github.com/cilium/cilium/releases/tag/v1.7.13) (_[source](https://github.com/cilium/cilium/tree/v1.7.13/install/kubernetes/cilium)_)
-* [v1.7.12](https://github.com/cilium/cilium/releases/tag/v1.7.12) (_[source](https://github.com/cilium/cilium/tree/v1.7.12/install/kubernetes/cilium)_)
 * [v1.7.12](https://github.com/cilium/cilium/releases/tag/v1.7.12) (_[source](https://github.com/cilium/cilium/tree/v1.7.12/install/kubernetes/cilium)_)
 * [v1.7.11](https://github.com/cilium/cilium/releases/tag/v1.7.11) (_[source](https://github.com/cilium/cilium/tree/v1.7.11/install/kubernetes/cilium)_)
-* [v1.7.11](https://github.com/cilium/cilium/releases/tag/v1.7.11) (_[source](https://github.com/cilium/cilium/tree/v1.7.11/install/kubernetes/cilium)_)
-* [v1.7.10](https://github.com/cilium/cilium/releases/tag/v1.7.10) (_[source](https://github.com/cilium/cilium/tree/v1.7.10/install/kubernetes/cilium)_)
 * [v1.7.10](https://github.com/cilium/cilium/releases/tag/v1.7.10) (_[source](https://github.com/cilium/cilium/tree/v1.7.10/install/kubernetes/cilium)_)
 * [v1.7.9](https://github.com/cilium/cilium/releases/tag/v1.7.9) (_[source](https://github.com/cilium/cilium/tree/v1.7.9/install/kubernetes/cilium)_)
-* [v1.7.9](https://github.com/cilium/cilium/releases/tag/v1.7.9) (_[source](https://github.com/cilium/cilium/tree/v1.7.9/install/kubernetes/cilium)_)
-* [v1.7.8](https://github.com/cilium/cilium/releases/tag/v1.7.8) (_[source](https://github.com/cilium/cilium/tree/v1.7.8/install/kubernetes/cilium)_)
 * [v1.7.8](https://github.com/cilium/cilium/releases/tag/v1.7.8) (_[source](https://github.com/cilium/cilium/tree/v1.7.8/install/kubernetes/cilium)_)
 * [v1.7.7](https://github.com/cilium/cilium/releases/tag/v1.7.7) (_[source](https://github.com/cilium/cilium/tree/v1.7.7/install/kubernetes/cilium)_)
-* [v1.7.7](https://github.com/cilium/cilium/releases/tag/v1.7.7) (_[source](https://github.com/cilium/cilium/tree/v1.7.7/install/kubernetes/cilium)_)
 * [v1.7.6](https://github.com/cilium/cilium/releases/tag/v1.7.6) (_[source](https://github.com/cilium/cilium/tree/v1.7.6/install/kubernetes/cilium)_)
-* [v1.7.6](https://github.com/cilium/cilium/releases/tag/v1.7.6) (_[source](https://github.com/cilium/cilium/tree/v1.7.6/install/kubernetes/cilium)_)
-* [v1.7.5](https://github.com/cilium/cilium/releases/tag/v1.7.5) (_[source](https://github.com/cilium/cilium/tree/v1.7.5/install/kubernetes/cilium)_)
 * [v1.7.5](https://github.com/cilium/cilium/releases/tag/v1.7.5) (_[source](https://github.com/cilium/cilium/tree/v1.7.5/install/kubernetes/cilium)_)
 * [v1.7.4](https://github.com/cilium/cilium/releases/tag/v1.7.4) (_[source](https://github.com/cilium/cilium/tree/v1.7.4/install/kubernetes/cilium)_)
-* [v1.7.4](https://github.com/cilium/cilium/releases/tag/v1.7.4) (_[source](https://github.com/cilium/cilium/tree/v1.7.4/install/kubernetes/cilium)_)
-* [v1.7.3](https://github.com/cilium/cilium/releases/tag/v1.7.3) (_[source](https://github.com/cilium/cilium/tree/v1.7.3/install/kubernetes/cilium)_)
 * [v1.7.3](https://github.com/cilium/cilium/releases/tag/v1.7.3) (_[source](https://github.com/cilium/cilium/tree/v1.7.3/install/kubernetes/cilium)_)
 * [v1.7.2](https://github.com/cilium/cilium/releases/tag/v1.7.2) (_[source](https://github.com/cilium/cilium/tree/v1.7.2/install/kubernetes/cilium)_)
-* [v1.7.2](https://github.com/cilium/cilium/releases/tag/v1.7.2) (_[source](https://github.com/cilium/cilium/tree/v1.7.2/install/kubernetes/cilium)_)
-* [v1.7.1](https://github.com/cilium/cilium/releases/tag/v1.7.1) (_[source](https://github.com/cilium/cilium/tree/v1.7.1/install/kubernetes/cilium)_)
 * [v1.7.1](https://github.com/cilium/cilium/releases/tag/v1.7.1) (_[source](https://github.com/cilium/cilium/tree/v1.7.1/install/kubernetes/cilium)_)
 * [v1.7.0](https://github.com/cilium/cilium/releases/tag/v1.7.0) (_[source](https://github.com/cilium/cilium/tree/v1.7.0/install/kubernetes/cilium)_)
-* [v1.7.0](https://github.com/cilium/cilium/releases/tag/v1.7.0) (_[source](https://github.com/cilium/cilium/tree/v1.7.0/install/kubernetes/cilium)_)
-* [v1.7.0-rc4](https://github.com/cilium/cilium/releases/tag/v1.7.0-rc4) (_[source](https://github.com/cilium/cilium/tree/v1.7.0-rc4/install/kubernetes/cilium)_)
 * [v1.7.0-rc4](https://github.com/cilium/cilium/releases/tag/v1.7.0-rc4) (_[source](https://github.com/cilium/cilium/tree/v1.7.0-rc4/install/kubernetes/cilium)_)
 * [v1.7.0-rc3](https://github.com/cilium/cilium/releases/tag/v1.7.0-rc3) (_[source](https://github.com/cilium/cilium/tree/v1.7.0-rc3/install/kubernetes/cilium)_)
-* [v1.7.0-rc3](https://github.com/cilium/cilium/releases/tag/v1.7.0-rc3) (_[source](https://github.com/cilium/cilium/tree/v1.7.0-rc3/install/kubernetes/cilium)_)
 * [v1.6.12](https://github.com/cilium/cilium/releases/tag/v1.6.12) (_[source](https://github.com/cilium/cilium/tree/v1.6.12/install/kubernetes/cilium)_)
-* [v1.6.12](https://github.com/cilium/cilium/releases/tag/v1.6.12) (_[source](https://github.com/cilium/cilium/tree/v1.6.12/install/kubernetes/cilium)_)
-* [v1.6.11](https://github.com/cilium/cilium/releases/tag/v1.6.11) (_[source](https://github.com/cilium/cilium/tree/v1.6.11/install/kubernetes/cilium)_)
 * [v1.6.11](https://github.com/cilium/cilium/releases/tag/v1.6.11) (_[source](https://github.com/cilium/cilium/tree/v1.6.11/install/kubernetes/cilium)_)
 * [v1.6.10](https://github.com/cilium/cilium/releases/tag/v1.6.10) (_[source](https://github.com/cilium/cilium/tree/v1.6.10/install/kubernetes/cilium)_)
-* [v1.6.10](https://github.com/cilium/cilium/releases/tag/v1.6.10) (_[source](https://github.com/cilium/cilium/tree/v1.6.10/install/kubernetes/cilium)_)
-* [v1.6.9](https://github.com/cilium/cilium/releases/tag/v1.6.9) (_[source](https://github.com/cilium/cilium/tree/v1.6.9/install/kubernetes/cilium)_)
 * [v1.6.9](https://github.com/cilium/cilium/releases/tag/v1.6.9) (_[source](https://github.com/cilium/cilium/tree/v1.6.9/install/kubernetes/cilium)_)
 * [v1.6.8](https://github.com/cilium/cilium/releases/tag/v1.6.8) (_[source](https://github.com/cilium/cilium/tree/v1.6.8/install/kubernetes/cilium)_)
-* [v1.6.8](https://github.com/cilium/cilium/releases/tag/v1.6.8) (_[source](https://github.com/cilium/cilium/tree/v1.6.8/install/kubernetes/cilium)_)
 * [v1.6.7](https://github.com/cilium/cilium/releases/tag/v1.6.7) (_[source](https://github.com/cilium/cilium/tree/v1.6.7/install/kubernetes/cilium)_)
-* [v1.6.7](https://github.com/cilium/cilium/releases/tag/v1.6.7) (_[source](https://github.com/cilium/cilium/tree/v1.6.7/install/kubernetes/cilium)_)
-* [v1.6.6](https://github.com/cilium/cilium/releases/tag/v1.6.6) (_[source](https://github.com/cilium/cilium/tree/v1.6.6/install/kubernetes/cilium)_)
 * [v1.6.6](https://github.com/cilium/cilium/releases/tag/v1.6.6) (_[source](https://github.com/cilium/cilium/tree/v1.6.6/install/kubernetes/cilium)_)
 * [v1.6.5](https://github.com/cilium/cilium/releases/tag/v1.6.5) (_[source](https://github.com/cilium/cilium/tree/v1.6.5/install/kubernetes/cilium)_)
-* [v1.6.5](https://github.com/cilium/cilium/releases/tag/v1.6.5) (_[source](https://github.com/cilium/cilium/tree/v1.6.5/install/kubernetes/cilium)_)
 
 This repository holds helm templates for the following Tetragon releases:
 
 * [v1.6.0](https://github.com/cilium/tetragon/releases/tag/v1.6.0) (_[source](https://github.com/cilium/tetragon/tree/v1.6.0/install/kubernetes/tetragon)_)
-* [v1.6.0](https://github.com/cilium/tetragon/releases/tag/v1.6.0) (_[source](https://github.com/cilium/tetragon/tree/v1.6.0/install/kubernetes/tetragon)_)
-* [v1.6.0-rc.1](https://github.com/cilium/tetragon/releases/tag/v1.6.0-rc.1) (_[source](https://github.com/cilium/tetragon/tree/v1.6.0-rc.1/install/kubernetes/tetragon)_)
 * [v1.6.0-rc.1](https://github.com/cilium/tetragon/releases/tag/v1.6.0-rc.1) (_[source](https://github.com/cilium/tetragon/tree/v1.6.0-rc.1/install/kubernetes/tetragon)_)
 * [v1.5.0](https://github.com/cilium/tetragon/releases/tag/v1.5.0) (_[source](https://github.com/cilium/tetragon/tree/v1.5.0/install/kubernetes/tetragon)_)
-* [v1.5.0](https://github.com/cilium/tetragon/releases/tag/v1.5.0) (_[source](https://github.com/cilium/tetragon/tree/v1.5.0/install/kubernetes/tetragon)_)
-* [v1.4.1](https://github.com/cilium/tetragon/releases/tag/v1.4.1) (_[source](https://github.com/cilium/tetragon/tree/v1.4.1/install/kubernetes/tetragon)_)
 * [v1.4.1](https://github.com/cilium/tetragon/releases/tag/v1.4.1) (_[source](https://github.com/cilium/tetragon/tree/v1.4.1/install/kubernetes/tetragon)_)
 * [v1.4.0](https://github.com/cilium/tetragon/releases/tag/v1.4.0) (_[source](https://github.com/cilium/tetragon/tree/v1.4.0/install/kubernetes/tetragon)_)
-* [v1.4.0](https://github.com/cilium/tetragon/releases/tag/v1.4.0) (_[source](https://github.com/cilium/tetragon/tree/v1.4.0/install/kubernetes/tetragon)_)
-* [v1.3.0](https://github.com/cilium/tetragon/releases/tag/v1.3.0) (_[source](https://github.com/cilium/tetragon/tree/v1.3.0/install/kubernetes/tetragon)_)
 * [v1.3.0](https://github.com/cilium/tetragon/releases/tag/v1.3.0) (_[source](https://github.com/cilium/tetragon/tree/v1.3.0/install/kubernetes/tetragon)_)
 * [v1.2.1](https://github.com/cilium/tetragon/releases/tag/v1.2.1) (_[source](https://github.com/cilium/tetragon/tree/v1.2.1/install/kubernetes/tetragon)_)
-* [v1.2.1](https://github.com/cilium/tetragon/releases/tag/v1.2.1) (_[source](https://github.com/cilium/tetragon/tree/v1.2.1/install/kubernetes/tetragon)_)
-* [v1.2.0](https://github.com/cilium/tetragon/releases/tag/v1.2.0) (_[source](https://github.com/cilium/tetragon/tree/v1.2.0/install/kubernetes/tetragon)_)
 * [v1.2.0](https://github.com/cilium/tetragon/releases/tag/v1.2.0) (_[source](https://github.com/cilium/tetragon/tree/v1.2.0/install/kubernetes/tetragon)_)
 * [v1.1.2](https://github.com/cilium/tetragon/releases/tag/v1.1.2) (_[source](https://github.com/cilium/tetragon/tree/v1.1.2/install/kubernetes/tetragon)_)
-* [v1.1.2](https://github.com/cilium/tetragon/releases/tag/v1.1.2) (_[source](https://github.com/cilium/tetragon/tree/v1.1.2/install/kubernetes/tetragon)_)
-* [v1.1.0](https://github.com/cilium/tetragon/releases/tag/v1.1.0) (_[source](https://github.com/cilium/tetragon/tree/v1.1.0/install/kubernetes/tetragon)_)
 * [v1.1.0](https://github.com/cilium/tetragon/releases/tag/v1.1.0) (_[source](https://github.com/cilium/tetragon/tree/v1.1.0/install/kubernetes/tetragon)_)
 * [v1.0.3](https://github.com/cilium/tetragon/releases/tag/v1.0.3) (_[source](https://github.com/cilium/tetragon/tree/v1.0.3/install/kubernetes)_)
-* [v1.0.3](https://github.com/cilium/tetragon/releases/tag/v1.0.3) (_[source](https://github.com/cilium/tetragon/tree/v1.0.3/install/kubernetes)_)
 * [v1.0.2](https://github.com/cilium/tetragon/releases/tag/v1.0.2) (_[source](https://github.com/cilium/tetragon/tree/v1.0.2/install/kubernetes)_)
-* [v1.0.2](https://github.com/cilium/tetragon/releases/tag/v1.0.2) (_[source](https://github.com/cilium/tetragon/tree/v1.0.2/install/kubernetes)_)
-* [v1.0.1](https://github.com/cilium/tetragon/releases/tag/v1.0.1) (_[source](https://github.com/cilium/tetragon/tree/v1.0.1/install/kubernetes)_)
 * [v1.0.1](https://github.com/cilium/tetragon/releases/tag/v1.0.1) (_[source](https://github.com/cilium/tetragon/tree/v1.0.1/install/kubernetes)_)
 * [v1.0.0](https://github.com/cilium/tetragon/releases/tag/v1.0.0) (_[source](https://github.com/cilium/tetragon/tree/v1.0.0/install/kubernetes)_)
-* [v1.0.0](https://github.com/cilium/tetragon/releases/tag/v1.0.0) (_[source](https://github.com/cilium/tetragon/tree/v1.0.0/install/kubernetes)_)
-* [v1.0.0-rc.5](https://github.com/cilium/tetragon/releases/tag/v1.0.0-rc.5) (_[source](https://github.com/cilium/tetragon/tree/v1.0.0-rc.5/install/kubernetes)_)
 * [v1.0.0-rc.5](https://github.com/cilium/tetragon/releases/tag/v1.0.0-rc.5) (_[source](https://github.com/cilium/tetragon/tree/v1.0.0-rc.5/install/kubernetes)_)
 * [v1.0.0-rc.3](https://github.com/cilium/tetragon/releases/tag/v1.0.0-rc.3) (_[source](https://github.com/cilium/tetragon/tree/v1.0.0-rc.3/install/kubernetes)_)
-* [v1.0.0-rc.3](https://github.com/cilium/tetragon/releases/tag/v1.0.0-rc.3) (_[source](https://github.com/cilium/tetragon/tree/v1.0.0-rc.3/install/kubernetes)_)
-* [v1.0.0-rc.2](https://github.com/cilium/tetragon/releases/tag/v1.0.0-rc.2) (_[source](https://github.com/cilium/tetragon/tree/v1.0.0-rc.2/install/kubernetes)_)
 * [v1.0.0-rc.2](https://github.com/cilium/tetragon/releases/tag/v1.0.0-rc.2) (_[source](https://github.com/cilium/tetragon/tree/v1.0.0-rc.2/install/kubernetes)_)
 * [v1.0.0-rc.1](https://github.com/cilium/tetragon/releases/tag/v1.0.0-rc.1) (_[source](https://github.com/cilium/tetragon/tree/v1.0.0-rc.1/install/kubernetes)_)
-* [v1.0.0-rc.1](https://github.com/cilium/tetragon/releases/tag/v1.0.0-rc.1) (_[source](https://github.com/cilium/tetragon/tree/v1.0.0-rc.1/install/kubernetes)_)
-* [v0.11.0](https://github.com/cilium/tetragon/releases/tag/v0.11.0) (_[source](https://github.com/cilium/tetragon/tree/v0.11.0/install/kubernetes)_)
 * [v0.11.0](https://github.com/cilium/tetragon/releases/tag/v0.11.0) (_[source](https://github.com/cilium/tetragon/tree/v0.11.0/install/kubernetes)_)
 * [v0.10.0](https://github.com/cilium/tetragon/releases/tag/v0.10.0) (_[source](https://github.com/cilium/tetragon/tree/v0.10.0/install/kubernetes)_)
-* [v0.10.0](https://github.com/cilium/tetragon/releases/tag/v0.10.0) (_[source](https://github.com/cilium/tetragon/tree/v0.10.0/install/kubernetes)_)
 * [v0.9.0](https://github.com/cilium/tetragon/releases/tag/v0.9.0) (_[source](https://github.com/cilium/tetragon/tree/v0.9.0/install/kubernetes)_)
-* [v0.9.0](https://github.com/cilium/tetragon/releases/tag/v0.9.0) (_[source](https://github.com/cilium/tetragon/tree/v0.9.0/install/kubernetes)_)
-* [v0.8.4](https://github.com/cilium/tetragon/releases/tag/v0.8.4) (_[source](https://github.com/cilium/tetragon/tree/v0.8.4/install/kubernetes)_)
 * [v0.8.4](https://github.com/cilium/tetragon/releases/tag/v0.8.4) (_[source](https://github.com/cilium/tetragon/tree/v0.8.4/install/kubernetes)_)
 * [v0.8.3](https://github.com/cilium/tetragon/releases/tag/v0.8.3) (_[source](https://github.com/cilium/tetragon/tree/v0.8.3/install/kubernetes)_)
-* [v0.8.3](https://github.com/cilium/tetragon/releases/tag/v0.8.3) (_[source](https://github.com/cilium/tetragon/tree/v0.8.3/install/kubernetes)_)
-* [v0.8.2](https://github.com/cilium/tetragon/releases/tag/v0.8.2) (_[source](https://github.com/cilium/tetragon/tree/v0.8.2/install/kubernetes)_)
 * [v0.8.2](https://github.com/cilium/tetragon/releases/tag/v0.8.2) (_[source](https://github.com/cilium/tetragon/tree/v0.8.2/install/kubernetes)_)
 * [v0.8.1](https://github.com/cilium/tetragon/releases/tag/v0.8.1) (_[source](https://github.com/cilium/tetragon/tree/v0.8.1/install/kubernetes)_)
-* [v0.8.1](https://github.com/cilium/tetragon/releases/tag/v0.8.1) (_[source](https://github.com/cilium/tetragon/tree/v0.8.1/install/kubernetes)_)
-* [v0.8.0](https://github.com/cilium/tetragon/releases/tag/v0.8.0) (_[source](https://github.com/cilium/tetragon/tree/v0.8.0/install/kubernetes)_)
 * [v0.8.0](https://github.com/cilium/tetragon/releases/tag/v0.8.0) (_[source](https://github.com/cilium/tetragon/tree/v0.8.0/install/kubernetes)_)
diff --git a/vendor/github.com/cilium/charts/cilium-1.16.18.tgz b/vendor/github.com/cilium/charts/cilium-1.16.18.tgz
new file mode 100644 (file)
index 0000000..a547c6a
Binary files /dev/null and b/vendor/github.com/cilium/charts/cilium-1.16.18.tgz differ
diff --git a/vendor/github.com/cilium/charts/cilium-1.17.11.tgz b/vendor/github.com/cilium/charts/cilium-1.17.11.tgz
new file mode 100644 (file)
index 0000000..b7a778a
Binary files /dev/null and b/vendor/github.com/cilium/charts/cilium-1.17.11.tgz differ
diff --git a/vendor/github.com/cilium/charts/cilium-1.18.5.tgz b/vendor/github.com/cilium/charts/cilium-1.18.5.tgz
new file mode 100644 (file)
index 0000000..5c83285
Binary files /dev/null and b/vendor/github.com/cilium/charts/cilium-1.18.5.tgz differ
index caae1444af21a8d007e30071f061cbfe36a2f289..f8b2d0dc785b9fb35809e8d6ed0bfa6cd2473fef 100644 (file)
@@ -415,6 +415,111 @@ entries:
     urls:
     - cilium-1.19.0-pre.0.tgz
     version: 1.19.0-pre.0
+  - annotations:
+      artifacthub.io/crds: "- kind: CiliumNetworkPolicy\n  version: v2\n  name: ciliumnetworkpolicies.cilium.io\n
+        \ displayName: Cilium Network Policy\n  description: |\n    Cilium Network
+        Policies provide additional functionality beyond what\n    is provided by
+        standard Kubernetes NetworkPolicy such as the ability\n    to allow traffic
+        based on FQDNs, or to filter at Layer 7.\n- kind: CiliumClusterwideNetworkPolicy\n
+        \ version: v2\n  name: ciliumclusterwidenetworkpolicies.cilium.io\n  displayName:
+        Cilium Clusterwide Network Policy\n  description: |\n    Cilium Clusterwide
+        Network Policies support configuring network traffic\n    policiies across
+        the entire cluster, including applying node firewalls.\n- kind: CiliumLocalRedirectPolicy\n
+        \ version: v2\n  name: ciliumlocalredirectpolicies.cilium.io\n  displayName:
+        Cilium Local Redirect Policy\n  description: |\n    Cilium Local Redirect
+        Policy allows local redirects to be configured\n    within a node to support
+        use cases like Node-Local DNS.\n- kind: CiliumNode\n  version: v2\n  name:
+        ciliumnodes.cilium.io\n  displayName: Cilium Node\n  description: |\n    Cilium
+        Node represents a node managed by Cilium. It contains a\n    specification
+        to control various node specific configuration aspects\n    and a status section
+        to represent the status of the node.\n- kind: CiliumIdentity\n  version: v2\n
+        \ name: ciliumidentities.cilium.io\n  displayName: Cilium Identity\n  description:
+        |\n    Cilium Identity allows introspection into security identities that\n
+        \   Cilium allocates which identify sets of labels that are assigned to\n
+        \   individual endpoints in the cluster.\n- kind: CiliumEndpoint\n  version:
+        v2\n  name: ciliumendpoints.cilium.io\n  displayName: Cilium Endpoint\n  description:
+        |\n    Cilium Endpoint represents the status of individual pods or nodes in\n
+        \   the cluster which are managed by Cilium, including enforcement status,\n
+        \   IP addressing and whether the networking is successfully operational.\n-
+        kind: CiliumEndpointSlice\n  version: v2alpha1\n  name: ciliumendpointslices.cilium.io\n
+        \ displayName: Cilium Endpoint Slice\n  description: |\n    Cilium Endpoint
+        Slice represents the status of groups of pods or nodes\n    in the cluster
+        which are managed by Cilium, including enforcement status,\n    IP addressing
+        and whether the networking is successfully operational.\n- kind: CiliumEgressGatewayPolicy\n
+        \ version: v2\n  name: ciliumegressgatewaypolicies.cilium.io\n  displayName:
+        Cilium Egress Gateway Policy\n  description: |\n    Cilium Egress Gateway
+        Policy provides control over the way that traffic\n    leaves the cluster
+        and which source addresses to use for that traffic.\n- kind: CiliumClusterwideEnvoyConfig\n
+        \ version: v2\n  name: ciliumclusterwideenvoyconfigs.cilium.io\n  displayName:
+        Cilium Clusterwide Envoy Config\n  description: |\n    Cilium Clusterwide
+        Envoy Config specifies Envoy resources and K8s service mappings\n    to be
+        provisioned into Cilium host proxy instances in cluster context.\n- kind:
+        CiliumEnvoyConfig\n  version: v2\n  name: ciliumenvoyconfigs.cilium.io\n  displayName:
+        Cilium Envoy Config\n  description: |\n    Cilium Envoy Config specifies Envoy
+        resources and K8s service mappings\n    to be provisioned into Cilium host
+        proxy instances in namespace context.\n- kind: CiliumNodeConfig\n  version:
+        v2\n  name: ciliumnodeconfigs.cilium.io\n  displayName: Cilium Node Configuration\n
+        \ description: |\n    CiliumNodeConfig is a list of configuration key-value
+        pairs. It is applied to\n    nodes indicated by a label selector.\n- kind:
+        CiliumBGPPeeringPolicy\n  version: v2alpha1\n  name: ciliumbgppeeringpolicies.cilium.io\n
+        \ displayName: Cilium BGP Peering Policy\n  description: |\n    Cilium BGP
+        Peering Policy instructs Cilium to create specific BGP peering\n    configurations.\n-
+        kind: CiliumBGPClusterConfig\n  version: v2alpha1\n  name: ciliumbgpclusterconfigs.cilium.io\n
+        \ displayName: Cilium BGP Cluster Config\n  description: |\n    Cilium BGP
+        Cluster Config instructs Cilium operator to create specific BGP cluster\n
+        \   configurations.\n- kind: CiliumBGPPeerConfig\n  version: v2alpha1\n  name:
+        ciliumbgppeerconfigs.cilium.io\n  displayName: Cilium BGP Peer Config\n  description:
+        |\n    CiliumBGPPeerConfig is a common set of BGP peer configurations. It
+        can be referenced \n    by multiple peers from CiliumBGPClusterConfig.\n-
+        kind: CiliumBGPAdvertisement\n  version: v2alpha1\n  name: ciliumbgpadvertisements.cilium.io\n
+        \ displayName: Cilium BGP Advertisement\n  description: |\n    CiliumBGPAdvertisement
+        is used to define source of BGP advertisement as well as BGP attributes \n
+        \   to be advertised with those prefixes.\n- kind: CiliumBGPNodeConfig\n  version:
+        v2alpha1\n  name: ciliumbgpnodeconfigs.cilium.io\n  displayName: Cilium BGP
+        Node Config\n  description: |\n    CiliumBGPNodeConfig is read only node specific
+        BGP configuration. It is constructed by Cilium operator.\n    It will also
+        contain node local BGP state information.\n- kind: CiliumBGPNodeConfigOverride\n
+        \ version: v2alpha1\n  name: ciliumbgpnodeconfigoverrides.cilium.io\n  displayName:
+        Cilium BGP Node Config Override\n  description: |\n    CiliumBGPNodeConfigOverride
+        can be used to override node specific BGP configuration.\n- kind: CiliumLoadBalancerIPPool\n
+        \ version: v2\n  name: ciliumloadbalancerippools.cilium.io\n  displayName:
+        Cilium Load Balancer IP Pool\n  description: |\n    Defining a Cilium Load
+        Balancer IP Pool instructs Cilium to assign IPs to LoadBalancer Services.\n-
+        kind: CiliumCIDRGroup\n  version: v2alpha1\n  name: ciliumcidrgroups.cilium.io\n
+        \ displayName: Cilium CIDR Group\n  description: |\n    CiliumCIDRGroup is
+        a list of CIDRs that can be referenced as a single entity from CiliumNetworkPolicies.\n-
+        kind: CiliumL2AnnouncementPolicy\n  version: v2alpha1\n  name: ciliuml2announcementpolicies.cilium.io\n
+        \ displayName: Cilium L2 Announcement Policy\n  description: |\n    CiliumL2AnnouncementPolicy
+        is a policy which determines which service IPs will be announced to\n    the
+        local area network, by which nodes, and via which interfaces.\n- kind: CiliumPodIPPool\n
+        \ version: v2alpha1\n  name: ciliumpodippools.cilium.io\n  displayName: Cilium
+        Pod IP Pool\n  description: |\n    CiliumPodIPPool defines an IP pool that
+        can be used for pooled IPAM (i.e. the multi-pool IPAM mode).\n- kind: CiliumGatewayClassConfig\n
+        \ version: v2alpha1\n  name: ciliumgatewayclassconfigs.cilium.io\n  displayName:
+        Cilium Gateway Class Config\n  description: |\n    CiliumGatewayClassConfig
+        defines a configuration for Gateway API GatewayClass.\n"
+    apiVersion: v2
+    appVersion: 1.18.5
+    created: "2025-12-17T10:24:52.321001762Z"
+    description: eBPF-based Networking, Security, and Observability
+    digest: 7eaf545fe0b152da6c33f93621e4c965ec04bdee37003b5da35041e9680f3244
+    home: https://cilium.io/
+    icon: https://cdn.jsdelivr.net/gh/cilium/cilium@main/Documentation/images/logo-solo.svg
+    keywords:
+    - BPF
+    - eBPF
+    - Kubernetes
+    - Networking
+    - Security
+    - Observability
+    - Troubleshooting
+    kubeVersion: '>= 1.21.0-0'
+    name: cilium
+    sources:
+    - https://github.com/cilium/cilium
+    urls:
+    - cilium-1.18.5.tgz
+    version: 1.18.5
   - annotations:
       artifacthub.io/crds: "- kind: CiliumNetworkPolicy\n  version: v2\n  name: ciliumnetworkpolicies.cilium.io\n
         \ displayName: Cilium Network Policy\n  description: |\n    Cilium Network
@@ -1570,6 +1675,111 @@ entries:
     urls:
     - cilium-1.18.0-pre.0.tgz
     version: 1.18.0-pre.0
+  - annotations:
+      artifacthub.io/crds: "- kind: CiliumNetworkPolicy\n  version: v2\n  name: ciliumnetworkpolicies.cilium.io\n
+        \ displayName: Cilium Network Policy\n  description: |\n    Cilium Network
+        Policies provide additional functionality beyond what\n    is provided by
+        standard Kubernetes NetworkPolicy such as the ability\n    to allow traffic
+        based on FQDNs, or to filter at Layer 7.\n- kind: CiliumClusterwideNetworkPolicy\n
+        \ version: v2\n  name: ciliumclusterwidenetworkpolicies.cilium.io\n  displayName:
+        Cilium Clusterwide Network Policy\n  description: |\n    Cilium Clusterwide
+        Network Policies support configuring network traffic\n    policiies across
+        the entire cluster, including applying node firewalls.\n- kind: CiliumExternalWorkload\n
+        \ version: v2\n  name: ciliumexternalworkloads.cilium.io\n  displayName: Cilium
+        External Workload\n  description: |\n    Cilium External Workload supports
+        configuring the ability for external\n    non-Kubernetes workloads to join
+        the cluster.\n- kind: CiliumLocalRedirectPolicy\n  version: v2\n  name: ciliumlocalredirectpolicies.cilium.io\n
+        \ displayName: Cilium Local Redirect Policy\n  description: |\n    Cilium
+        Local Redirect Policy allows local redirects to be configured\n    within
+        a node to support use cases like Node-Local DNS or KIAM.\n- kind: CiliumNode\n
+        \ version: v2\n  name: ciliumnodes.cilium.io\n  displayName: Cilium Node\n
+        \ description: |\n    Cilium Node represents a node managed by Cilium. It
+        contains a\n    specification to control various node specific configuration
+        aspects\n    and a status section to represent the status of the node.\n-
+        kind: CiliumIdentity\n  version: v2\n  name: ciliumidentities.cilium.io\n
+        \ displayName: Cilium Identity\n  description: |\n    Cilium Identity allows
+        introspection into security identities that\n    Cilium allocates which identify
+        sets of labels that are assigned to\n    individual endpoints in the cluster.\n-
+        kind: CiliumEndpoint\n  version: v2\n  name: ciliumendpoints.cilium.io\n  displayName:
+        Cilium Endpoint\n  description: |\n    Cilium Endpoint represents the status
+        of individual pods or nodes in\n    the cluster which are managed by Cilium,
+        including enforcement status,\n    IP addressing and whether the networking
+        is successfully operational.\n- kind: CiliumEndpointSlice\n  version: v2alpha1\n
+        \ name: ciliumendpointslices.cilium.io\n  displayName: Cilium Endpoint Slice\n
+        \ description: |\n    Cilium Endpoint Slice represents the status of groups
+        of pods or nodes\n    in the cluster which are managed by Cilium, including
+        enforcement status,\n    IP addressing and whether the networking is successfully
+        operational.\n- kind: CiliumEgressGatewayPolicy\n  version: v2\n  name: ciliumegressgatewaypolicies.cilium.io\n
+        \ displayName: Cilium Egress Gateway Policy\n  description: |\n    Cilium
+        Egress Gateway Policy provides control over the way that traffic\n    leaves
+        the cluster and which source addresses to use for that traffic.\n- kind: CiliumClusterwideEnvoyConfig\n
+        \ version: v2\n  name: ciliumclusterwideenvoyconfigs.cilium.io\n  displayName:
+        Cilium Clusterwide Envoy Config\n  description: |\n    Cilium Clusterwide
+        Envoy Config specifies Envoy resources and K8s service mappings\n    to be
+        provisioned into Cilium host proxy instances in cluster context.\n- kind:
+        CiliumEnvoyConfig\n  version: v2\n  name: ciliumenvoyconfigs.cilium.io\n  displayName:
+        Cilium Envoy Config\n  description: |\n    Cilium Envoy Config specifies Envoy
+        resources and K8s service mappings\n    to be provisioned into Cilium host
+        proxy instances in namespace context.\n- kind: CiliumNodeConfig\n  version:
+        v2\n  name: ciliumnodeconfigs.cilium.io\n  displayName: Cilium Node Configuration\n
+        \ description: |\n    CiliumNodeConfig is a list of configuration key-value
+        pairs. It is applied to\n    nodes indicated by a label selector.\n- kind:
+        CiliumBGPPeeringPolicy\n  version: v2alpha1\n  name: ciliumbgppeeringpolicies.cilium.io\n
+        \ displayName: Cilium BGP Peering Policy\n  description: |\n    Cilium BGP
+        Peering Policy instructs Cilium to create specific BGP peering\n    configurations.\n-
+        kind: CiliumBGPClusterConfig\n  version: v2alpha1\n  name: ciliumbgpclusterconfigs.cilium.io\n
+        \ displayName: Cilium BGP Cluster Config\n  description: |\n    Cilium BGP
+        Cluster Config instructs Cilium operator to create specific BGP cluster\n
+        \   configurations.\n- kind: CiliumBGPPeerConfig\n  version: v2alpha1\n  name:
+        ciliumbgppeerconfigs.cilium.io\n  displayName: Cilium BGP Peer Config\n  description:
+        |\n    CiliumBGPPeerConfig is a common set of BGP peer configurations. It
+        can be referenced \n    by multiple peers from CiliumBGPClusterConfig.\n-
+        kind: CiliumBGPAdvertisement\n  version: v2alpha1\n  name: ciliumbgpadvertisements.cilium.io\n
+        \ displayName: Cilium BGP Advertisement\n  description: |\n    CiliumBGPAdvertisement
+        is used to define source of BGP advertisement as well as BGP attributes \n
+        \   to be advertised with those prefixes.\n- kind: CiliumBGPNodeConfig\n  version:
+        v2alpha1\n  name: ciliumbgpnodeconfigs.cilium.io\n  displayName: Cilium BGP
+        Node Config\n  description: |\n    CiliumBGPNodeConfig is read only node specific
+        BGP configuration. It is constructed by Cilium operator.\n    It will also
+        contain node local BGP state information.\n- kind: CiliumBGPNodeConfigOverride\n
+        \ version: v2alpha1\n  name: ciliumbgpnodeconfigoverrides.cilium.io\n  displayName:
+        Cilium BGP Node Config Override\n  description: |\n    CiliumBGPNodeConfigOverride
+        can be used to override node specific BGP configuration.\n- kind: CiliumLoadBalancerIPPool\n
+        \ version: v2alpha1\n  name: ciliumloadbalancerippools.cilium.io\n  displayName:
+        Cilium Load Balancer IP Pool\n  description: |\n    Defining a Cilium Load
+        Balancer IP Pool instructs Cilium to assign IPs to LoadBalancer Services.\n-
+        kind: CiliumCIDRGroup\n  version: v2alpha1\n  name: ciliumcidrgroups.cilium.io\n
+        \ displayName: Cilium CIDR Group\n  description: |\n    CiliumCIDRGroup is
+        a list of CIDRs that can be referenced as a single entity from CiliumNetworkPolicies.\n-
+        kind: CiliumL2AnnouncementPolicy\n  version: v2alpha1\n  name: ciliuml2announcementpolicies.cilium.io\n
+        \ displayName: Cilium L2 Announcement Policy\n  description: |\n    CiliumL2AnnouncementPolicy
+        is a policy which determines which service IPs will be announced to\n    the
+        local area network, by which nodes, and via which interfaces.\n- kind: CiliumPodIPPool\n
+        \ version: v2alpha1\n  name: ciliumpodippools.cilium.io\n  displayName: Cilium
+        Pod IP Pool\n  description: |\n    CiliumPodIPPool defines an IP pool that
+        can be used for pooled IPAM (i.e. the multi-pool IPAM mode).\n"
+    apiVersion: v2
+    appVersion: 1.17.11
+    created: "2025-12-17T10:13:42.3922474Z"
+    description: eBPF-based Networking, Security, and Observability
+    digest: 8211f48dc346a6da04106310356910bff620b5812aeb538c365331dce0dc0bfc
+    home: https://cilium.io/
+    icon: https://cdn.jsdelivr.net/gh/cilium/cilium@main/Documentation/images/logo-solo.svg
+    keywords:
+    - BPF
+    - eBPF
+    - Kubernetes
+    - Networking
+    - Security
+    - Observability
+    - Troubleshooting
+    kubeVersion: '>= 1.21.0-0'
+    name: cilium
+    sources:
+    - https://github.com/cilium/cilium
+    urls:
+    - cilium-1.17.11.tgz
+    version: 1.17.11
   - annotations:
       artifacthub.io/crds: "- kind: CiliumNetworkPolicy\n  version: v2\n  name: ciliumnetworkpolicies.cilium.io\n
         \ displayName: Cilium Network Policy\n  description: |\n    Cilium Network
@@ -3468,6 +3678,112 @@ entries:
     urls:
     - cilium-1.17.0-pre.0.tgz
     version: 1.17.0-pre.0
+  - annotations:
+      artifacthub.io/crds: "- kind: CiliumNetworkPolicy\n  version: v2\n  name: ciliumnetworkpolicies.cilium.io\n
+        \ displayName: Cilium Network Policy\n  description: |\n    Cilium Network
+        Policies provide additional functionality beyond what\n    is provided by
+        standard Kubernetes NetworkPolicy such as the ability\n    to allow traffic
+        based on FQDNs, or to filter at Layer 7.\n- kind: CiliumClusterwideNetworkPolicy\n
+        \ version: v2\n  name: ciliumclusterwidenetworkpolicies.cilium.io\n  displayName:
+        Cilium Clusterwide Network Policy\n  description: |\n    Cilium Clusterwide
+        Network Policies support configuring network traffic\n    policiies across
+        the entire cluster, including applying node firewalls.\n- kind: CiliumExternalWorkload\n
+        \ version: v2\n  name: ciliumexternalworkloads.cilium.io\n  displayName: Cilium
+        External Workload\n  description: |\n    Cilium External Workload supports
+        configuring the ability for external\n    non-Kubernetes workloads to join
+        the cluster.\n- kind: CiliumLocalRedirectPolicy\n  version: v2\n  name: ciliumlocalredirectpolicies.cilium.io\n
+        \ displayName: Cilium Local Redirect Policy\n  description: |\n    Cilium
+        Local Redirect Policy allows local redirects to be configured\n    within
+        a node to support use cases like Node-Local DNS or KIAM.\n- kind: CiliumNode\n
+        \ version: v2\n  name: ciliumnodes.cilium.io\n  displayName: Cilium Node\n
+        \ description: |\n    Cilium Node represents a node managed by Cilium. It
+        contains a\n    specification to control various node specific configuration
+        aspects\n    and a status section to represent the status of the node.\n-
+        kind: CiliumIdentity\n  version: v2\n  name: ciliumidentities.cilium.io\n
+        \ displayName: Cilium Identity\n  description: |\n    Cilium Identity allows
+        introspection into security identities that\n    Cilium allocates which identify
+        sets of labels that are assigned to\n    individual endpoints in the cluster.\n-
+        kind: CiliumEndpoint\n  version: v2\n  name: ciliumendpoints.cilium.io\n  displayName:
+        Cilium Endpoint\n  description: |\n    Cilium Endpoint represents the status
+        of individual pods or nodes in\n    the cluster which are managed by Cilium,
+        including enforcement status,\n    IP addressing and whether the networking
+        is successfully operational.\n- kind: CiliumEndpointSlice\n  version: v2alpha1\n
+        \ name: ciliumendpointslices.cilium.io\n  displayName: Cilium Endpoint Slice\n
+        \ description: |\n    Cilium Endpoint Slice represents the status of groups
+        of pods or nodes\n    in the cluster which are managed by Cilium, including
+        enforcement status,\n    IP addressing and whether the networking is successfully
+        operational.\n- kind: CiliumEgressGatewayPolicy\n  version: v2\n  name: ciliumegressgatewaypolicies.cilium.io\n
+        \ displayName: Cilium Egress Gateway Policy\n  description: |\n    Cilium
+        Egress Gateway Policy provides control over the way that traffic\n    leaves
+        the cluster and which source addresses to use for that traffic.\n- kind: CiliumClusterwideEnvoyConfig\n
+        \ version: v2\n  name: ciliumclusterwideenvoyconfigs.cilium.io\n  displayName:
+        Cilium Clusterwide Envoy Config\n  description: |\n    Cilium Clusterwide
+        Envoy Config specifies Envoy resources and K8s service mappings\n    to be
+        provisioned into Cilium host proxy instances in cluster context.\n- kind:
+        CiliumEnvoyConfig\n  version: v2\n  name: ciliumenvoyconfigs.cilium.io\n  displayName:
+        Cilium Envoy Config\n  description: |\n    Cilium Envoy Config specifies Envoy
+        resources and K8s service mappings\n    to be provisioned into Cilium host
+        proxy instances in namespace context.\n- kind: CiliumBGPPeeringPolicy\n  version:
+        v2alpha1\n  name: ciliumbgppeeringpolicies.cilium.io\n  displayName: Cilium
+        BGP Peering Policy\n  description: |\n    Cilium BGP Peering Policy instructs
+        Cilium to create specific BGP peering\n    configurations.\n- kind: CiliumBGPClusterConfig\n
+        \ version: v2alpha1\n  name: ciliumbgpclusterconfigs.cilium.io\n  displayName:
+        Cilium BGP Cluster Config\n  description: |\n    Cilium BGP Cluster Config
+        instructs Cilium operator to create specific BGP cluster\n    configurations.\n-
+        kind: CiliumBGPPeerConfig\n  version: v2alpha1\n  name: ciliumbgppeerconfigs.cilium.io\n
+        \ displayName: Cilium BGP Peer Config\n  description: |\n    CiliumBGPPeerConfig
+        is a common set of BGP peer configurations. It can be referenced \n    by
+        multiple peers from CiliumBGPClusterConfig.\n- kind: CiliumBGPAdvertisement\n
+        \ version: v2alpha1\n  name: ciliumbgpadvertisements.cilium.io\n  displayName:
+        Cilium BGP Advertisement\n  description: |\n    CiliumBGPAdvertisement is
+        used to define source of BGP advertisement as well as BGP attributes \n    to
+        be advertised with those prefixes.\n- kind: CiliumBGPNodeConfig\n  version:
+        v2alpha1\n  name: ciliumbgpnodeconfigs.cilium.io\n  displayName: Cilium BGP
+        Node Config\n  description: |\n    CiliumBGPNodeConfig is read only node specific
+        BGP configuration. It is constructed by Cilium operator.\n    It will also
+        contain node local BGP state information.\n- kind: CiliumBGPNodeConfigOverride\n
+        \ version: v2alpha1\n  name: ciliumbgpnodeconfigoverrides.cilium.io\n  displayName:
+        Cilium BGP Node Config Override\n  description: |\n    CiliumBGPNodeConfigOverride
+        can be used to override node specific BGP configuration.\n- kind: CiliumLoadBalancerIPPool\n
+        \ version: v2alpha1\n  name: ciliumloadbalancerippools.cilium.io\n  displayName:
+        Cilium Load Balancer IP Pool\n  description: |\n    Defining a Cilium Load
+        Balancer IP Pool instructs Cilium to assign IPs to LoadBalancer Services.\n-
+        kind: CiliumNodeConfig\n  version: v2alpha1\n  name: ciliumnodeconfigs.cilium.io\n
+        \ displayName: Cilium Node Configuration\n  description: |\n    CiliumNodeConfig
+        is a list of configuration key-value pairs. It is applied to\n    nodes indicated
+        by a label selector.\n- kind: CiliumCIDRGroup\n  version: v2alpha1\n  name:
+        ciliumcidrgroups.cilium.io\n  displayName: Cilium CIDR Group\n  description:
+        |\n    CiliumCIDRGroup is a list of CIDRs that can be referenced as a single
+        entity from CiliumNetworkPolicies.\n- kind: CiliumL2AnnouncementPolicy\n  version:
+        v2alpha1\n  name: ciliuml2announcementpolicies.cilium.io\n  displayName: Cilium
+        L2 Announcement Policy\n  description: |\n    CiliumL2AnnouncementPolicy is
+        a policy which determines which service IPs will be announced to\n    the
+        local area network, by which nodes, and via which interfaces.\n- kind: CiliumPodIPPool\n
+        \ version: v2alpha1\n  name: ciliumpodippools.cilium.io\n  displayName: Cilium
+        Pod IP Pool\n  description: |\n    CiliumPodIPPool defines an IP pool that
+        can be used for pooled IPAM (i.e. the multi-pool IPAM mode).\n"
+    apiVersion: v2
+    appVersion: 1.16.18
+    created: "2025-12-17T10:37:25.982563684Z"
+    description: eBPF-based Networking, Security, and Observability
+    digest: b6ac1c7f20e60e58f20e3288c4a5016d5de869e20affd88efce38efb1eacd863
+    home: https://cilium.io/
+    icon: https://cdn.jsdelivr.net/gh/cilium/cilium@main/Documentation/images/logo-solo.svg
+    keywords:
+    - BPF
+    - eBPF
+    - Kubernetes
+    - Networking
+    - Security
+    - Observability
+    - Troubleshooting
+    kubeVersion: '>= 1.21.0-0'
+    name: cilium
+    sources:
+    - https://github.com/cilium/cilium
+    urls:
+    - cilium-1.16.18.tgz
+    version: 1.16.18
   - annotations:
       artifacthub.io/crds: "- kind: CiliumNetworkPolicy\n  version: v2\n  name: ciliumnetworkpolicies.cilium.io\n
         \ displayName: Cilium Network Policy\n  description: |\n    Cilium Network
@@ -26649,4 +26965,4 @@ entries:
     urls:
     - tetragon-0.8.0.tgz
     version: 0.8.0
-generated: "2025-12-01T14:40:15.855828194Z"
+generated: "2025-12-17T10:37:25.971821556Z"
index d6b42323cd821ef341f2e5946f4b34a1455239de..5fd084950c50216e2a415d3f2806426ab26a4fab 100644 (file)
@@ -97,6 +97,7 @@ func ShellExchange(c Config, w io.Writer, format string, args ...any) error {
                        continue
                }
                line, ended := strings.CutSuffix(line, endMarker)
+               line, errored := strings.CutSuffix(line, errorMarker)
                if isPrefix {
                        // Partial line, don't print \n yet.
                        _, err = fmt.Fprint(w, line)
@@ -109,6 +110,9 @@ func ShellExchange(c Config, w io.Writer, format string, args ...any) error {
                if ended {
                        return nil
                }
+               if errored {
+                       return errors.New(line)
+               }
        }
 }
 
@@ -117,6 +121,7 @@ func executeShell(cfg Config, prompt string, printGreeting func(io.Writer), args
                err := ShellExchange(cfg, os.Stdout, "%s", strings.Join(args, " "))
                if err != nil {
                        fmt.Fprintf(os.Stdout, "error: %s\n", err)
+                       os.Exit(1)
                }
        } else {
                os.Exit(interactiveShell(cfg, prompt, printGreeting))
index 595298fe636fbae0989494f72f03997e934e4ffd..d8b12a0df57010a20d68a2cf2319a75305c70a2d 100644 (file)
@@ -7,6 +7,10 @@ const (
        // endMarker marks the end of output from a command.
        endMarker = "<<end>>"
 
+       // errorMarker marks the command as failed. If the command
+       // fails this acts as the end of output mark.
+       errorMarker = "<<error>>"
+
        // stdoutMarker marks the output to be from the stdout buffer.
        stdoutMarker = "[stdout]"
 
index 48a4cb22179423b25c9463ef2a06b8b2c93b6ca7..38941066a6872233c51b7c1df5f90948b71ca3b2 100644 (file)
@@ -110,8 +110,8 @@ func (sh shell) listener(ctx context.Context, health cell.Health) error {
 }
 
 func (sh shell) handleConn(ctx context.Context, clientID int, conn net.Conn) {
-       sh.log.Info("Client connected", "id", clientID)
-       defer sh.log.Info("client disconnected", "id", clientID)
+       sh.log.Debug("Client connected", "id", clientID)
+       defer sh.log.Debug("client disconnected", "id", clientID)
 
        ctx, cancel := context.WithCancel(ctx)
 
@@ -173,15 +173,17 @@ func (sh shell) handleConn(ctx context.Context, clientID int, conn net.Conn) {
                }
                err = sh.engine.ExecuteLine(s, line, writer)
                if err != nil {
-                       _, err = fmt.Fprintln(writer, err)
+                       // Send the error and the error marker
+                       _, err = fmt.Fprintf(writer, "%s%s\n", err, errorMarker)
+                       if err != nil {
+                               break
+                       }
+               } else {
+                       // Send the "end of command output" marker
+                       _, err = fmt.Fprintln(writer, endMarker)
                        if err != nil {
                                break
                        }
-               }
-               // Send the "end of command output" marker
-               _, err = fmt.Fprintln(writer, endMarker)
-               if err != nil {
-                       break
                }
        }
 }
index dd91ed6a04e6fde7271d43fbfdf89aa0cfc540de..9a8da7e506438e17f8c4d25ba8c855b743808c17 100644 (file)
@@ -1,2 +1,3 @@
 secrets.yml
-coverage.out
+*.out
+settings.local.json
diff --git a/vendor/github.com/go-openapi/errors/CONTRIBUTORS.md b/vendor/github.com/go-openapi/errors/CONTRIBUTORS.md
new file mode 100644 (file)
index 0000000..eb018f8
--- /dev/null
@@ -0,0 +1,24 @@
+# Contributors
+
+- Repository: ['go-openapi/errors']
+
+| Total Contributors | Total Contributions |
+| --- | --- |
+| 12  | 105  |
+
+| Username | All Time Contribution Count | All Commits |
+| --- | --- | --- |
+| @casualjim | 58 | https://github.com/go-openapi/errors/commits?author=casualjim |
+| @fredbi | 32 | https://github.com/go-openapi/errors/commits?author=fredbi |
+| @youyuanwu | 5 | https://github.com/go-openapi/errors/commits?author=youyuanwu |
+| @alexandear | 2 | https://github.com/go-openapi/errors/commits?author=alexandear |
+| @fiorix | 1 | https://github.com/go-openapi/errors/commits?author=fiorix |
+| @ligustah | 1 | https://github.com/go-openapi/errors/commits?author=ligustah |
+| @artemseleznev | 1 | https://github.com/go-openapi/errors/commits?author=artemseleznev |
+| @gautierdelorme | 1 | https://github.com/go-openapi/errors/commits?author=gautierdelorme |
+| @guillemj | 1 | https://github.com/go-openapi/errors/commits?author=guillemj |
+| @maxatome | 1 | https://github.com/go-openapi/errors/commits?author=maxatome |
+| @Simon-Li | 1 | https://github.com/go-openapi/errors/commits?author=Simon-Li |
+| @ujjwalsh | 1 | https://github.com/go-openapi/errors/commits?author=ujjwalsh |
+
+ _this file was generated by the [Contributors GitHub Action](https://github.com/github/contributors)_
index 48737e01c407b6622052331dff03f24b4aefe6bf..6102c6b5277bd383d65429eba292b1a4694b1665 100644 (file)
@@ -8,12 +8,22 @@
 [![Release][release-badge]][release-url] [![Go Report Card][gocard-badge]][gocard-url] [![CodeFactor Grade][codefactor-badge]][codefactor-url] [![License][license-badge]][license-url]
 <!-- Badges: documentation & support -->
 <!-- Badges: others & stats -->
-[![GoDoc][godoc-badge]][godoc-url] [![Slack Channel][slack-logo]![slack-badge]][slack-url] [![go version][goversion-badge]][goversion-url] ![Top language][top-badge] ![Commits since latest release][commits-badge]
+[![GoDoc][godoc-badge]][godoc-url] [![Discord Channel][discord-badge]][discord-url] [![go version][goversion-badge]][goversion-url] ![Top language][top-badge] ![Commits since latest release][commits-badge]
 
 ---
 
 Shared errors and error interface used throughout the various libraries found in the go-openapi toolkit.
 
+## Announcements
+
+* **2025-12-19** : new community chat on discord
+  * a new discord community channel is available to be notified of changes and support users
+  * our venerable Slack channel remains open, and will be eventually discontinued on **2026-03-31**
+
+You may join the discord community by clicking the invite link on the discord badge (also above). [![Discord Channel][discord-badge]][discord-url]
+
+Or join our Slack channel: [![Slack Channel][slack-logo]![slack-badge]][slack-url]
+
 ## Status
 
 API is stable.
@@ -27,6 +37,13 @@ go get github.com/go-openapi/errors
 ## Basic usage
 
 ```go
+const url = "https://www.example.com/#"
+
+errGeneric := New(401,"onvalid argument: %s", url)
+
+errNotFound := NotFound("resource not found: %s", url)
+
+errNotImplemented := NotImplemented("method: %s", url)
 ```
 
 ## Change log
@@ -93,6 +110,9 @@ Maintainers can cut a new release by either:
 [slack-logo]: https://a.slack-edge.com/e6a93c1/img/icons/favicon-32.png
 [slack-badge]: https://img.shields.io/badge/slack-blue?link=https%3A%2F%2Fgoswagger.slack.com%2Farchives%2FC04R30YM
 [slack-url]: https://goswagger.slack.com/archives/C04R30YMU
+[discord-badge]: https://img.shields.io/discord/1446918742398341256?logo=discord&label=discord&color=blue
+[discord-url]: https://discord.gg/DrafRmZx
+
 <!-- Badges: license & compliance -->
 [license-badge]: http://img.shields.io/badge/license-Apache%20v2-orange.svg
 [license-url]: https://github.com/go-openapi/errors/?tab=Apache-2.0-1-ov-file#readme
index d16988244305634625333ee965d16b86aa9f00ed..cb139416af879a0a94a472eeafbe236a1ab0f3c1 100644 (file)
@@ -28,10 +28,12 @@ type apiError struct {
        message string
 }
 
+// Error implements the standard error interface.
 func (a *apiError) Error() string {
        return a.message
 }
 
+// Code returns the HTTP status code associated with this error.
 func (a *apiError) Code() int32 {
        return a.code
 }
@@ -78,11 +80,12 @@ type MethodNotAllowedError struct {
        message string
 }
 
+// Error implements the standard error interface.
 func (m *MethodNotAllowedError) Error() string {
        return m.message
 }
 
-// Code the error code.
+// Code returns 405 (Method Not Allowed) as the HTTP status code.
 func (m *MethodNotAllowedError) Code() int32 {
        return m.code
 }
index 0f0b1db5e011b1b027c9a49478848ffe7d00cf35..717a51ac43446d08820fef7f660b9b1d03e58e73 100644 (file)
@@ -19,11 +19,13 @@ type Validation struct { //nolint: errname // changing the name to abide by the
        Values  []any
 }
 
+// Error implements the standard error interface.
 func (e *Validation) Error() string {
        return e.message
 }
 
-// Code the error code.
+// Code returns the HTTP status code for this validation error.
+// Returns 422 (Unprocessable Entity) by default.
 func (e *Validation) Code() int32 {
        return e.code
 }
index 9bd2c0386fe6b373757315117431366360313abc..f89275f9c1d1c70e1523e361fdb1b524dbbc7a87 100644 (file)
@@ -17,6 +17,7 @@ type APIVerificationFailed struct { //nolint: errname
        MissingRegistration  []string `json:"missingRegistration,omitempty"`
 }
 
+// Error implements the standard error interface.
 func (v *APIVerificationFailed) Error() string {
        buf := bytes.NewBuffer(nil)
 
index 25e5ac4aa24d725709efcba3ebb39b94d171523b..46e6612cdfa729875645fcec60772677ceb81d79 100644 (file)
@@ -37,11 +37,12 @@ func NewParseError(name, in, value string, reason error) *ParseError {
        }
 }
 
+// Error implements the standard error interface.
 func (e *ParseError) Error() string {
        return e.message
 }
 
-// Code returns the http status code for this error.
+// Code returns 400 (Bad Request) as the HTTP status code for parsing errors.
 func (e *ParseError) Code() int32 {
        return e.code
 }
index ede3f6fa89b748104a944f8abe08fb8268968363..2378bae67f3c617c5016e127f1c57c20bc20eb3a 100644 (file)
@@ -71,6 +71,7 @@ const (
 
        // InvalidTypeCode is used for any subclass of invalid types.
        InvalidTypeCode = maximumValidHTTPCode + iota
+       // RequiredFailCode indicates a required field is missing.
        RequiredFailCode
        TooLongFailCode
        TooShortFailCode
@@ -98,11 +99,12 @@ type CompositeError struct {
        message string
 }
 
-// Code for this error.
+// Code returns the HTTP status code for this composite error.
 func (c *CompositeError) Code() int32 {
        return c.code
 }
 
+// Error implements the standard error interface.
 func (c *CompositeError) Error() string {
        if len(c.Errors) > 0 {
                msgs := []string{c.message + ":"}
@@ -117,6 +119,7 @@ func (c *CompositeError) Error() string {
        return c.message
 }
 
+// Unwrap implements the [errors.Unwrap] interface.
 func (c *CompositeError) Unwrap() []error {
        return c.Errors
 }
@@ -337,7 +340,7 @@ func TooFewItems(name, in string, minimum int64, value any) *Validation {
        }
 }
 
-// ExceedsMaximumInt error for when maximumimum validation fails.
+// ExceedsMaximumInt error for when maximum validation fails.
 func ExceedsMaximumInt(name, in string, maximum int64, exclusive bool, value any) *Validation {
        var message string
        if in == "" {
@@ -362,7 +365,7 @@ func ExceedsMaximumInt(name, in string, maximum int64, exclusive bool, value any
        }
 }
 
-// ExceedsMaximumUint error for when maximumimum validation fails.
+// ExceedsMaximumUint error for when maximum validation fails.
 func ExceedsMaximumUint(name, in string, maximum uint64, exclusive bool, value any) *Validation {
        var message string
        if in == "" {
@@ -387,7 +390,7 @@ func ExceedsMaximumUint(name, in string, maximum uint64, exclusive bool, value a
        }
 }
 
-// ExceedsMaximum error for when maximumimum validation fails.
+// ExceedsMaximum error for when maximum validation fails.
 func ExceedsMaximum(name, in string, maximum float64, exclusive bool, value any) *Validation {
        var message string
        if in == "" {
diff --git a/vendor/github.com/go-openapi/jsonpointer/.cliff.toml b/vendor/github.com/go-openapi/jsonpointer/.cliff.toml
new file mode 100644 (file)
index 0000000..702629f
--- /dev/null
@@ -0,0 +1,181 @@
+# git-cliff ~ configuration file
+# https://git-cliff.org/docs/configuration
+
+[changelog]
+header = """
+"""
+
+footer = """
+
+-----
+
+**[{{ remote.github.repo }}]({{ self::remote_url() }}) license terms**
+
+[![License][license-badge]][license-url]
+
+[license-badge]: http://img.shields.io/badge/license-Apache%20v2-orange.svg
+[license-url]: {{ self::remote_url() }}/?tab=Apache-2.0-1-ov-file#readme
+
+{%- macro remote_url() -%}
+  https://github.com/{{ remote.github.owner }}/{{ remote.github.repo }}
+{%- endmacro -%}
+"""
+
+body = """
+{%- if version %}
+## [{{ version | trim_start_matches(pat="v") }}]({{ self::remote_url() }}/tree/{{ version }}) - {{ timestamp | date(format="%Y-%m-%d") }}
+{%- else %}
+## [unreleased]
+{%- endif %}
+{%- if message %}
+  {%- raw %}\n{% endraw %}
+{{ message }}
+  {%- raw %}\n{% endraw %}
+{%- endif %}
+{%- if version %}
+  {%- if previous.version %}
+
+**Full Changelog**: <{{ self::remote_url() }}/compare/{{ previous.version }}...{{ version }}>
+  {%- endif %}
+{%- else %}
+  {%- raw %}\n{% endraw %}
+{%- endif %}
+
+{%- if statistics %}{% if statistics.commit_count %}
+  {%- raw %}\n{% endraw %}
+{{ statistics.commit_count }} commits in this release.
+  {%- raw %}\n{% endraw %}
+{%- endif %}{% endif %}
+-----
+
+{%- for group, commits in commits | group_by(attribute="group") %}
+  {%- raw %}\n{% endraw %}
+### {{ group | upper_first }}
+    {%- raw %}\n{% endraw %}
+    {%- for commit in commits %}
+      {%- if commit.remote.pr_title %}
+        {%- set commit_message = commit.remote.pr_title %}
+      {%- else %}
+        {%- set commit_message = commit.message %}
+      {%- endif %}
+* {{ commit_message | split(pat="\n") | first | trim }}
+      {%- if commit.remote.username %}
+{%- raw %} {% endraw %}by [@{{ commit.remote.username }}](https://github.com/{{ commit.remote.username }})
+      {%- endif %}
+      {%- if commit.remote.pr_number %}
+{%- raw %} {% endraw %}in [#{{ commit.remote.pr_number }}]({{ self::remote_url() }}/pull/{{ commit.remote.pr_number }})
+      {%- endif %}
+{%- raw %} {% endraw %}[...]({{ self::remote_url() }}/commit/{{ commit.id }})
+  {%- endfor %}
+{%- endfor %}
+
+{%- if github %}
+{%- raw %}\n{% endraw -%}
+  {%- set all_contributors = github.contributors | length %}
+  {%- if github.contributors | filter(attribute="username", value="dependabot[bot]") | length < all_contributors %}
+-----
+
+### People who contributed to this release
+  {% endif %}
+  {%- for contributor in github.contributors | filter(attribute="username") | sort(attribute="username") %}
+    {%- if contributor.username != "dependabot[bot]" and contributor.username != "github-actions[bot]" %}
+* [@{{ contributor.username }}](https://github.com/{{ contributor.username }})
+    {%- endif %}
+  {%- endfor %}
+
+  {% if github.contributors | filter(attribute="is_first_time", value=true) | length != 0 %}
+-----
+    {%- raw %}\n{% endraw %}
+
+### New Contributors
+  {%- endif %}
+
+  {%- for contributor in github.contributors | filter(attribute="is_first_time", value=true) %}
+    {%- if contributor.username != "dependabot[bot]" and contributor.username != "github-actions[bot]" %}
+* @{{ contributor.username }} made their first contribution
+      {%- if contributor.pr_number %}
+  in [#{{ contributor.pr_number }}]({{ self::remote_url() }}/pull/{{ contributor.pr_number }}) \
+      {%- endif %}
+    {%- endif %}
+  {%- endfor %}
+{%- endif %}
+
+{%- raw %}\n{% endraw %}
+
+{%- macro remote_url() -%}
+  https://github.com/{{ remote.github.owner }}/{{ remote.github.repo }}
+{%- endmacro -%}
+"""
+# Remove leading and trailing whitespaces from the changelog's body.
+trim = true
+# Render body even when there are no releases to process.
+render_always = true
+# An array of regex based postprocessors to modify the changelog.
+postprocessors = [
+    # Replace the placeholder <REPO> with a URL.
+    #{ pattern = '<REPO>', replace = "https://github.com/orhun/git-cliff" },
+]
+# output file path
+# output = "test.md"
+
+[git]
+# Parse commits according to the conventional commits specification.
+# See https://www.conventionalcommits.org
+conventional_commits = false
+# Exclude commits that do not match the conventional commits specification.
+filter_unconventional = false
+# Require all commits to be conventional.
+# Takes precedence over filter_unconventional.
+require_conventional = false
+# Split commits on newlines, treating each line as an individual commit.
+split_commits = false
+# An array of regex based parsers to modify commit messages prior to further processing.
+commit_preprocessors = [
+    # Replace issue numbers with link templates to be updated in `changelog.postprocessors`.
+    #{ pattern = '\((\w+\s)?#([0-9]+)\)', replace = "([#${2}](<REPO>/issues/${2}))"},
+    # Check spelling of the commit message using https://github.com/crate-ci/typos.
+    # If the spelling is incorrect, it will be fixed automatically.
+    #{ pattern = '.*', replace_command = 'typos --write-changes -' }
+]
+# Prevent commits that are breaking from being excluded by commit parsers.
+protect_breaking_commits = false
+# An array of regex based parsers for extracting data from the commit message.
+# Assigns commits to groups.
+# Optionally sets the commit's scope and can decide to exclude commits from further processing.
+commit_parsers = [
+    { message = "^[Cc]hore\\([Rr]elease\\): prepare for", skip = true },
+    { message = "(^[Mm]erge)|([Mm]erge conflict)", skip = true },
+    { field = "author.name", pattern = "dependabot*", group = "<!-- 0A -->Updates" },
+    { message = "([Ss]ecurity)|([Vv]uln)", group = "<!-- 08 -->Security" },
+    { body = "(.*[Ss]ecurity)|([Vv]uln)", group = "<!-- 08 -->Security" },
+    { message = "([Cc]hore\\(lint\\))|(style)|(lint)|(codeql)|(golangci)", group = "<!-- 05 -->Code quality" },
+    { message = "(^[Dd]oc)|((?i)readme)|(badge)|(typo)|(documentation)", group = "<!-- 03 -->Documentation" },
+    { message = "(^[Ff]eat)|(^[Ee]nhancement)", group = "<!-- 00 -->Implemented enhancements" },
+    { message = "(^ci)|(\\(ci\\))|(fixup\\s+ci)|(fix\\s+ci)|(license)|(example)", group = "<!-- 07 -->Miscellaneous tasks" },
+    { message = "^test", group = "<!-- 06 -->Testing" },
+    { message = "(^fix)|(panic)", group = "<!-- 01 -->Fixed bugs" },
+    { message = "(^refact)|(rework)", group = "<!-- 02 -->Refactor" },
+    { message = "(^[Pp]erf)|(performance)", group = "<!-- 04 -->Performance" },
+    { message = "(^[Cc]hore)", group = "<!-- 07 -->Miscellaneous tasks" },
+    { message = "^[Rr]evert", group = "<!-- 09 -->Reverted changes" },
+    { message = "(upgrade.*?go)|(go\\s+version)", group = "<!-- 0A -->Updates" },
+    { message = ".*", group = "<!-- 0B -->Other" },
+]
+# Exclude commits that are not matched by any commit parser.
+filter_commits = false
+# An array of link parsers for extracting external references, and turning them into URLs, using regex.
+link_parsers = []
+# Include only the tags that belong to the current branch.
+use_branch_tags = false
+# Order releases topologically instead of chronologically.
+topo_order = false
+# Order releases topologically instead of chronologically.
+topo_order_commits = true
+# Order of commits in each group/release within the changelog.
+# Allowed values: newest, oldest
+sort_commits = "newest"
+# Process submodules commits
+recurse_submodules = false
+
+#[remote.github]
+#owner = "go-openapi"
index 769c244007b535dcc2b2368ab2a6266720aa85c3..59cd29489150b9c8d2283fb2e376ee7bc963cb77 100644 (file)
@@ -1 +1,4 @@
-secrets.yml
+*.out
+*.cov
+.idea
+.env
index 7cea1af8b52904ab68d9da536c8af1c94b7af303..fdae591bce71b29cbb86d80e542fcd875783a034 100644 (file)
@@ -2,34 +2,17 @@ version: "2"
 linters:
   default: all
   disable:
-    - cyclop
     - depguard
-    - errchkjson
-    - errorlint
-    - exhaustruct
-    - forcetypeassert
     - funlen
-    - gochecknoglobals
-    - gochecknoinits
-    - gocognit
-    - godot
     - godox
-    - gosmopolitan
-    - inamedparam
-    #- intrange # disabled while < go1.22
-    - ireturn
-    - lll
-    - musttag
-    - nestif
+    - exhaustruct
     - nlreturn
     - nonamedreturns
     - noinlineerr
     - paralleltest
     - recvcheck
     - testpackage
-    - thelper
     - tparallel
-    - unparam
     - varnamelen
     - whitespace
     - wrapcheck
@@ -41,8 +24,15 @@ linters:
     goconst:
       min-len: 2
       min-occurrences: 3
+    cyclop:
+      max-complexity: 20
     gocyclo:
-      min-complexity: 45
+      min-complexity: 20
+    exhaustive:
+      default-signifies-exhaustive: true
+      default-case-required: true
+    lll:
+      line-length: 180
   exclusions:
     generated: lax
     presets:
@@ -58,6 +48,7 @@ formatters:
   enable:
     - gofmt
     - goimports
+    - gofumpt
   exclusions:
     generated: lax
     paths:
diff --git a/vendor/github.com/go-openapi/jsonpointer/CONTRIBUTORS.md b/vendor/github.com/go-openapi/jsonpointer/CONTRIBUTORS.md
new file mode 100644 (file)
index 0000000..03c0983
--- /dev/null
@@ -0,0 +1,24 @@
+# Contributors
+
+- Repository: ['go-openapi/jsonpointer']
+
+| Total Contributors | Total Contributions |
+| --- | --- |
+| 12  | 95  |
+
+| Username | All Time Contribution Count | All Commits |
+| --- | --- | --- |
+| @fredbi | 48 | https://github.com/go-openapi/jsonpointer/commits?author=fredbi |
+| @casualjim | 33 | https://github.com/go-openapi/jsonpointer/commits?author=casualjim |
+| @magodo | 3 | https://github.com/go-openapi/jsonpointer/commits?author=magodo |
+| @youyuanwu | 3 | https://github.com/go-openapi/jsonpointer/commits?author=youyuanwu |
+| @gaiaz-iusipov | 1 | https://github.com/go-openapi/jsonpointer/commits?author=gaiaz-iusipov |
+| @gbjk | 1 | https://github.com/go-openapi/jsonpointer/commits?author=gbjk |
+| @gordallott | 1 | https://github.com/go-openapi/jsonpointer/commits?author=gordallott |
+| @ianlancetaylor | 1 | https://github.com/go-openapi/jsonpointer/commits?author=ianlancetaylor |
+| @mfleader | 1 | https://github.com/go-openapi/jsonpointer/commits?author=mfleader |
+| @Neo2308 | 1 | https://github.com/go-openapi/jsonpointer/commits?author=Neo2308 |
+| @olivierlemasle | 1 | https://github.com/go-openapi/jsonpointer/commits?author=olivierlemasle |
+| @testwill | 1 | https://github.com/go-openapi/jsonpointer/commits?author=testwill |
+
+ _this file was generated by the [Contributors GitHub Action](https://github.com/github/contributors)_
index d645695673349e3947e8e5ae42332d0ac3164cd7..261eeb9e9f8b2b4b0d119366dda99c6fd7d35c64 100644 (file)
@@ -1,4 +1,3 @@
-
                                  Apache License
                            Version 2.0, January 2004
                         http://www.apache.org/licenses/
diff --git a/vendor/github.com/go-openapi/jsonpointer/NOTICE b/vendor/github.com/go-openapi/jsonpointer/NOTICE
new file mode 100644 (file)
index 0000000..f3b5193
--- /dev/null
@@ -0,0 +1,39 @@
+Copyright 2015-2025 go-swagger maintainers
+
+// SPDX-FileCopyrightText: Copyright 2015-2025 go-swagger maintainers
+// SPDX-License-Identifier: Apache-2.0
+
+This software library, github.com/go-openapi/jsonpointer, includes software developed
+by the go-swagger and go-openapi maintainers ("go-swagger maintainers").
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this software except in compliance with the License.
+
+You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0.
+
+This software is copied from, derived from, and inspired by other original software products.
+It ships with copies of other software which license terms are recalled below.
+
+The original software was authored on 25-02-2013 by sigu-399 (https://github.com/sigu-399, sigu.399@gmail.com).
+
+github.com/sigh-399/jsonpointer
+===========================
+
+// SPDX-FileCopyrightText: Copyright 2013 sigu-399 ( https://github.com/sigu-399 )
+// SPDX-License-Identifier: Apache-2.0
+
+Copyright 2013 sigu-399 ( https://github.com/sigu-399 )
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
index 45bd31b14fc02dc1002f5f101c72f837b76ccc21..b61b63fd9af8632866708de7dfff6225981f2902 100644 (file)
@@ -1,16 +1,78 @@
-# gojsonpointer [![Build Status](https://github.com/go-openapi/jsonpointer/actions/workflows/go-test.yml/badge.svg)](https://github.com/go-openapi/jsonpointer/actions?query=workflow%3A"go+test") [![codecov](https://codecov.io/gh/go-openapi/jsonpointer/branch/master/graph/badge.svg)](https://codecov.io/gh/go-openapi/jsonpointer)
+# jsonpointer
 
-[![Slack Status](https://slackin.goswagger.io/badge.svg)](https://slackin.goswagger.io)
-[![license](http://img.shields.io/badge/license-Apache%20v2-orange.svg)](https://raw.githubusercontent.com/go-openapi/jsonpointer/master/LICENSE)
-[![Go Reference](https://pkg.go.dev/badge/github.com/go-openapi/jsonpointer.svg)](https://pkg.go.dev/github.com/go-openapi/jsonpointer)
-[![Go Report Card](https://goreportcard.com/badge/github.com/go-openapi/jsonpointer)](https://goreportcard.com/report/github.com/go-openapi/jsonpointer)
+<!-- Badges: status  -->
+[![Tests][test-badge]][test-url] [![Coverage][cov-badge]][cov-url] [![CI vuln scan][vuln-scan-badge]][vuln-scan-url] [![CodeQL][codeql-badge]][codeql-url]
+<!-- Badges: release & docker images  -->
+<!-- Badges: code quality  -->
+<!-- Badges: license & compliance -->
+[![Release][release-badge]][release-url] [![Go Report Card][gocard-badge]][gocard-url] [![CodeFactor Grade][codefactor-badge]][codefactor-url] [![License][license-badge]][license-url]
+<!-- Badges: documentation & support -->
+<!-- Badges: others & stats -->
+[![GoDoc][godoc-badge]][godoc-url] [![Slack Channel][slack-logo]![slack-badge]][slack-url] [![go version][goversion-badge]][goversion-url] ![Top language][top-badge] ![Commits since latest release][commits-badge]
 
-An implementation of JSON Pointer - Go language
+---
+
+An implementation of JSON Pointer for golang, which supports go `struct`.
 
 ## Status
-Completed YES
 
-Tested YES
+API is stable.
+
+## Import this library in your project
+
+```cmd
+go get github.com/go-openapi/jsonpointer
+```
+
+## Basic usage
+
+See also some [examples](./examples_test.go)
+
+### Retrieving a value
+
+```go
+  import (
+    "github.com/go-openapi/jsonpointer"
+  )
+
+
+  var doc any
+
+  ...
+
+       pointer, err := jsonpointer.New("/foo/1")
+       if err != nil {
+               ... // error: e.g. invalid JSON pointer specification
+       }
+
+       value, kind, err := pointer.Get(doc)
+       if err != nil {
+               ... // error: e.g. key not found, index out of bounds, etc.
+       }
+
+  ...
+```
+
+### Setting a value
+
+```go
+  ...
+  var doc any
+  ...
+       pointer, err := jsonpointer.New("/foo/1")
+       if err != nil {
+               ... // error: e.g. invalid JSON pointer specification
+  }
+
+       doc, err = p.Set(doc, "value")
+       if err != nil {
+               ... // error: e.g. key not found, index out of bounds, etc.
+       }
+```
+
+## Change log
+
+See <https://github.com/go-openapi/jsonpointer/releases>
 
 ## References
 
@@ -18,9 +80,70 @@ Tested YES
 
 also known as [RFC6901](https://www.rfc-editor.org/rfc/rfc6901)
 
-### Note
+## Licensing
+
+This library ships under the [SPDX-License-Identifier: Apache-2.0](./LICENSE).
+
+See the license [NOTICE](./NOTICE), which recalls the licensing terms of all the pieces of software
+on top of which it has been built.
+
+## Limitations
+
+The 4.Evaluation part of the previous reference, starting with 'If the currently referenced value is a JSON array,
+the reference token MUST contain either...' is not implemented.
+
+That is because our implementation of the JSON pointer only supports explicit references to array elements:
+the provision in the spec to resolve non-existent members as "the last element in the array",
+using the special trailing character "-" is not implemented.
+
+## Other documentation
+
+* [All-time contributors](./CONTRIBUTORS.md)
+* [Contributing guidelines](.github/CONTRIBUTING.md)
+* [Maintainers documentation](docs/MAINTAINERS.md)
+* [Code style](docs/STYLE.md)
+
+## Cutting a new release
+
+Maintainers can cut a new release by either:
 
-The 4.Evaluation part of the previous reference, starting with 'If the currently referenced value is a JSON array, the reference token MUST contain either...' is not implemented.
+* running [this workflow](https://github.com/go-openapi/jsonpointer/actions/workflows/bump-release.yml)
+* or pushing a semver tag
+  * signed tags are preferred
+  * The tag message is prepended to release notes
 
-That is because our implementation of the JSON pointer only supports explicit references to array elements: the provision in the spec
-to resolve non-existent members as "the last element in the array", using the special trailing character "-".
+<!-- Badges: status  -->
+[test-badge]: https://github.com/go-openapi/jsonpointer/actions/workflows/go-test.yml/badge.svg
+[test-url]: https://github.com/go-openapi/jsonpointer/actions/workflows/go-test.yml
+[cov-badge]: https://codecov.io/gh/go-openapi/jsonpointer/branch/master/graph/badge.svg
+[cov-url]: https://codecov.io/gh/go-openapi/jsonpointer
+[vuln-scan-badge]: https://github.com/go-openapi/jsonpointer/actions/workflows/scanner.yml/badge.svg
+[vuln-scan-url]: https://github.com/go-openapi/jsonpointer/actions/workflows/scanner.yml
+[codeql-badge]: https://github.com/go-openapi/jsonpointer/actions/workflows/codeql.yml/badge.svg
+[codeql-url]: https://github.com/go-openapi/jsonpointer/actions/workflows/codeql.yml
+<!-- Badges: release & docker images  -->
+[release-badge]: https://badge.fury.io/gh/go-openapi%2Fjsonpointer.svg
+[release-url]: https://badge.fury.io/gh/go-openapi%2Fjsonpointer
+[gomod-badge]: https://badge.fury.io/go/github.com%2Fgo-openapi%2Fjsonpointer.svg
+[gomod-url]: https://badge.fury.io/go/github.com%2Fgo-openapi%2Fjsonpointer
+<!-- Badges: code quality  -->
+[gocard-badge]: https://goreportcard.com/badge/github.com/go-openapi/jsonpointer
+[gocard-url]: https://goreportcard.com/report/github.com/go-openapi/jsonpointer
+[codefactor-badge]: https://img.shields.io/codefactor/grade/github/go-openapi/jsonpointer
+[codefactor-url]: https://www.codefactor.io/repository/github/go-openapi/jsonpointer
+<!-- Badges: documentation & support -->
+[doc-badge]: https://img.shields.io/badge/doc-site-blue?link=https%3A%2F%2Fgoswagger.io%2Fgo-openapi%2F
+[doc-url]: https://goswagger.io/go-openapi
+[godoc-badge]: https://pkg.go.dev/badge/github.com/go-openapi/jsonpointer
+[godoc-url]: http://pkg.go.dev/github.com/go-openapi/jsonpointer
+[slack-logo]: https://a.slack-edge.com/e6a93c1/img/icons/favicon-32.png
+[slack-badge]: https://img.shields.io/badge/slack-blue?link=https%3A%2F%2Fgoswagger.slack.com%2Farchives%2FC04R30YM
+[slack-url]: https://goswagger.slack.com/archives/C04R30YMU
+<!-- Badges: license & compliance -->
+[license-badge]: http://img.shields.io/badge/license-Apache%20v2-orange.svg
+[license-url]: https://github.com/go-openapi/jsonpointer/?tab=Apache-2.0-1-ov-file#readme
+<!-- Badges: others & stats -->
+[goversion-badge]: https://img.shields.io/github/go-mod/go-version/go-openapi/jsonpointer
+[goversion-url]: https://github.com/go-openapi/jsonpointer/blob/master/go.mod
+[top-badge]: https://img.shields.io/github/languages/top/go-openapi/jsonpointer
+[commits-badge]: https://img.shields.io/github/commits-since/go-openapi/jsonpointer/latest
diff --git a/vendor/github.com/go-openapi/jsonpointer/SECURITY.md b/vendor/github.com/go-openapi/jsonpointer/SECURITY.md
new file mode 100644 (file)
index 0000000..2a7b6f0
--- /dev/null
@@ -0,0 +1,19 @@
+# Security Policy
+
+This policy outlines the commitment and practices of the go-openapi maintainers regarding security.
+
+## Supported Versions
+
+| Version | Supported          |
+| ------- | ------------------ |
+| 0.22.x  | :white_check_mark: |
+
+## Reporting a vulnerability
+
+If you become aware of a security vulnerability that affects the current repository,
+please report it privately to the maintainers.
+
+Please follow the instructions provided by github to
+[Privately report a security vulnerability](https://docs.github.com/en/code-security/security-advisories/guidance-on-reporting-and-writing-information-about-vulnerabilities/privately-reporting-a-security-vulnerability#privately-reporting-a-security-vulnerability).
+
+TL;DR: on Github, navigate to the project's "Security" tab then click on "Report a vulnerability".
index b84343d9d74e289b64eb4c8b272f1ea376d4779a..8c50dde8bcf31fae96050823e8e1b5478dd5f080 100644 (file)
@@ -1,5 +1,10 @@
+// SPDX-FileCopyrightText: Copyright (c) 2015-2025 go-swagger maintainers
+// SPDX-License-Identifier: Apache-2.0
+
 package jsonpointer
 
+import "fmt"
+
 type pointerError string
 
 func (e pointerError) Error() string {
@@ -7,12 +12,24 @@ func (e pointerError) Error() string {
 }
 
 const (
-       // ErrPointer is an error raised by the jsonpointer package
+       // ErrPointer is a sentinel error raised by all errors from this package.
        ErrPointer pointerError = "JSON pointer error"
 
-       // ErrInvalidStart states that a JSON pointer must start with a separator ("/")
+       // ErrInvalidStart states that a JSON pointer must start with a separator ("/").
        ErrInvalidStart pointerError = `JSON pointer must be empty or start with a "` + pointerSeparator
 
-       // ErrUnsupportedValueType indicates that a value of the wrong type is being set
+       // ErrUnsupportedValueType indicates that a value of the wrong type is being set.
        ErrUnsupportedValueType pointerError = "only structs, pointers, maps and slices are supported for setting values"
 )
+
+func errNoKey(key string) error {
+       return fmt.Errorf("object has no key %q: %w", key, ErrPointer)
+}
+
+func errOutOfBounds(length, idx int) error {
+       return fmt.Errorf("index out of bounds array[0,%d] index '%d': %w", length-1, idx, ErrPointer)
+}
+
+func errInvalidReference(token string) error {
+       return fmt.Errorf("invalid token reference %q: %w", token, ErrPointer)
+}
index 7513c4763ba6004bc5845237f5fdf954e6b686e2..7df49af3b96ae7a46fdcb1cbda9bf6e043517171 100644 (file)
@@ -1,28 +1,7 @@
-// Copyright 2013 sigu-399 ( https://github.com/sigu-399 )
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// author       sigu-399
-// author-github  https://github.com/sigu-399
-// author-mail    sigu.399@gmail.com
-//
-// repository-name  jsonpointer
-// repository-desc  An implementation of JSON Pointer - Go language
-//
-// description    Main and unique file.
-//
-// created        25-02-2013
+// SPDX-FileCopyrightText: Copyright (c) 2015-2025 go-swagger maintainers
+// SPDX-License-Identifier: Apache-2.0
 
+// Package jsonpointer provides a golang implementation for json pointers.
 package jsonpointer
 
 import (
@@ -41,29 +20,47 @@ const (
        pointerSeparator = `/`
 )
 
-var (
-       jsonPointableType = reflect.TypeOf(new(JSONPointable)).Elem()
-       jsonSetableType   = reflect.TypeOf(new(JSONSetable)).Elem()
-)
-
-// JSONPointable is an interface for structs to implement when they need to customize the
-// json pointer process
+// JSONPointable is an interface for structs to implement,
+// when they need to customize the json pointer process or want to avoid the use of reflection.
 type JSONPointable interface {
-       JSONLookup(string) (any, error)
+       // JSONLookup returns a value pointed at this (unescaped) key.
+       JSONLookup(key string) (any, error)
 }
 
-// JSONSetable is an interface for structs to implement when they need to customize the
-// json pointer process
+// JSONSetable is an interface for structs to implement,
+// when they need to customize the json pointer process or want to avoid the use of reflection.
 type JSONSetable interface {
-       JSONSet(string, any) error
+       // JSONSet sets the value pointed at the (unescaped) key.
+       JSONSet(key string, value any) error
 }
 
-// Pointer is a representation of a json pointer
+// Pointer is a representation of a json pointer.
+//
+// Use [Pointer.Get] to retrieve a value or [Pointer.Set] to set a value.
+//
+// It works with any go type interpreted as a JSON document, which means:
+//
+//   - if a type implements [JSONPointable], its [JSONPointable.JSONLookup] method is used to resolve [Pointer.Get]
+//   - if a type implements [JSONSetable], its [JSONPointable.JSONSet] method is used to resolve [Pointer.Set]
+//   - a go map[K]V is interpreted as an object, with type K assignable to a string
+//   - a go slice []T is interpreted as an array
+//   - a go struct is interpreted as an object, with exported fields interpreted as keys
+//   - promoted fields from an embedded struct are traversed
+//   - scalars (e.g. int, float64 ...), channels, functions and go arrays cannot be traversed
+//
+// For struct s resolved by reflection, key mappings honor the conventional struct tag `json`.
+//
+// Fields that do not specify a `json` tag, or specify an empty one, or are tagged as `json:"-"` are ignored.
+//
+// # Limitations
+//
+//   - Unlike go standard marshaling, untagged fields do not default to the go field name and are ignored.
+//   - anonymous fields are not traversed if untagged
 type Pointer struct {
        referenceTokens []string
 }
 
-// New creates a new json pointer for the given string
+// New creates a new json pointer from its string representation.
 func New(jsonPointerString string) (Pointer, error) {
        var p Pointer
        err := p.parse(jsonPointerString)
@@ -71,34 +68,40 @@ func New(jsonPointerString string) (Pointer, error) {
        return p, err
 }
 
-// Get uses the pointer to retrieve a value from a JSON document
+// Get uses the pointer to retrieve a value from a JSON document.
+//
+// It returns the value with its type as a [reflect.Kind] or an error.
 func (p *Pointer) Get(document any) (any, reflect.Kind, error) {
        return p.get(document, jsonname.DefaultJSONNameProvider)
 }
 
-// Set uses the pointer to set a value from a JSON document
+// Set uses the pointer to set a value from a data type
+// that represent a JSON document.
+//
+// It returns the updated document.
 func (p *Pointer) Set(document any, value any) (any, error) {
        return document, p.set(document, value, jsonname.DefaultJSONNameProvider)
 }
 
-// DecodedTokens returns the decoded tokens of this JSON pointer
+// DecodedTokens returns the decoded (unescaped) tokens of this JSON pointer.
 func (p *Pointer) DecodedTokens() []string {
        result := make([]string, 0, len(p.referenceTokens))
-       for _, t := range p.referenceTokens {
-               result = append(result, Unescape(t))
+       for _, token := range p.referenceTokens {
+               result = append(result, Unescape(token))
        }
+
        return result
 }
 
-// IsEmpty returns true if this is an empty json pointer
-// this indicates that it points to the root document
+// IsEmpty returns true if this is an empty json pointer.
+//
+// This indicates that it points to the root document.
 func (p *Pointer) IsEmpty() bool {
        return len(p.referenceTokens) == 0
 }
 
-// Pointer to string representation function
+// String representation of a pointer.
 func (p *Pointer) String() string {
-
        if len(p.referenceTokens) == 0 {
                return emptyPointer
        }
@@ -137,20 +140,21 @@ func (p *Pointer) Offset(document string) (int64, error) {
        return offset, nil
 }
 
-// "Constructor", parses the given string JSON pointer
+// "Constructor", parses the given string JSON pointer.
 func (p *Pointer) parse(jsonPointerString string) error {
-       var err error
-
-       if jsonPointerString != emptyPointer {
-               if !strings.HasPrefix(jsonPointerString, pointerSeparator) {
-                       err = errors.Join(ErrInvalidStart, ErrPointer)
-               } else {
-                       referenceTokens := strings.Split(jsonPointerString, pointerSeparator)
-                       p.referenceTokens = append(p.referenceTokens, referenceTokens[1:]...)
-               }
+       if jsonPointerString == emptyPointer {
+               return nil
+       }
+
+       if !strings.HasPrefix(jsonPointerString, pointerSeparator) {
+               // non empty pointer must start with "/"
+               return errors.Join(ErrInvalidStart, ErrPointer)
        }
 
-       return err
+       referenceTokens := strings.Split(jsonPointerString, pointerSeparator)
+       p.referenceTokens = append(p.referenceTokens, referenceTokens[1:]...)
+
+       return nil
 }
 
 func (p *Pointer) get(node any, nameProvider *jsonname.NameProvider) (any, reflect.Kind, error) {
@@ -160,7 +164,7 @@ func (p *Pointer) get(node any, nameProvider *jsonname.NameProvider) (any, refle
 
        kind := reflect.Invalid
 
-       // Full document when empty
+       // full document when empty
        if len(p.referenceTokens) == 0 {
                return node, kind, nil
        }
@@ -186,101 +190,103 @@ func (p *Pointer) set(node, data any, nameProvider *jsonname.NameProvider) error
 
        if knd != reflect.Pointer && knd != reflect.Struct && knd != reflect.Map && knd != reflect.Slice && knd != reflect.Array {
                return errors.Join(
+                       fmt.Errorf("unexpected type: %T", node), //nolint:err113 // err wrapping is carried out by errors.Join, not fmt.Errorf.
                        ErrUnsupportedValueType,
                        ErrPointer,
                )
        }
 
+       l := len(p.referenceTokens)
+
+       // full document when empty
+       if l == 0 {
+               return nil
+       }
+
        if nameProvider == nil {
                nameProvider = jsonname.DefaultJSONNameProvider
        }
 
-       // Full document when empty
-       if len(p.referenceTokens) == 0 {
-               return nil
+       var decodedToken string
+       lastIndex := l - 1
+
+       if lastIndex > 0 { // skip if we only have one token in pointer
+               for _, token := range p.referenceTokens[:lastIndex] {
+                       decodedToken = Unescape(token)
+                       next, err := p.resolveNodeForToken(node, decodedToken, nameProvider)
+                       if err != nil {
+                               return err
+                       }
+
+                       node = next
+               }
        }
 
-       lastI := len(p.referenceTokens) - 1
-       for i, token := range p.referenceTokens {
-               isLastToken := i == lastI
-               decodedToken := Unescape(token)
+       // last token
+       decodedToken = Unescape(p.referenceTokens[lastIndex])
 
-               if isLastToken {
+       return setSingleImpl(node, data, decodedToken, nameProvider)
+}
 
-                       return setSingleImpl(node, data, decodedToken, nameProvider)
+func (p *Pointer) resolveNodeForToken(node any, decodedToken string, nameProvider *jsonname.NameProvider) (next any, err error) {
+       // check for nil during traversal
+       if isNil(node) {
+               return nil, fmt.Errorf("cannot traverse through nil value at %q: %w", decodedToken, ErrPointer)
+       }
+
+       pointable, ok := node.(JSONPointable)
+       if ok {
+               r, err := pointable.JSONLookup(decodedToken)
+               if err != nil {
+                       return nil, err
                }
 
-               // Check for nil during traversal
-               if isNil(node) {
-                       return fmt.Errorf("cannot traverse through nil value at %q: %w", decodedToken, ErrPointer)
+               fld := reflect.ValueOf(r)
+               if fld.CanAddr() && fld.Kind() != reflect.Interface && fld.Kind() != reflect.Map && fld.Kind() != reflect.Slice && fld.Kind() != reflect.Pointer {
+                       return fld.Addr().Interface(), nil
                }
 
-               rValue := reflect.Indirect(reflect.ValueOf(node))
-               kind := rValue.Kind()
+               return r, nil
+       }
 
-               if rValue.Type().Implements(jsonPointableType) {
-                       r, err := node.(JSONPointable).JSONLookup(decodedToken)
-                       if err != nil {
-                               return err
-                       }
-                       fld := reflect.ValueOf(r)
-                       if fld.CanAddr() && fld.Kind() != reflect.Interface && fld.Kind() != reflect.Map && fld.Kind() != reflect.Slice && fld.Kind() != reflect.Pointer {
-                               node = fld.Addr().Interface()
-                               continue
-                       }
-                       node = r
-                       continue
+       rValue := reflect.Indirect(reflect.ValueOf(node))
+       kind := rValue.Kind()
+
+       switch kind {
+       case reflect.Struct:
+               nm, ok := nameProvider.GetGoNameForType(rValue.Type(), decodedToken)
+               if !ok {
+                       return nil, fmt.Errorf("object has no field %q: %w", decodedToken, ErrPointer)
                }
 
-               switch kind { //nolint:exhaustive
-               case reflect.Struct:
-                       nm, ok := nameProvider.GetGoNameForType(rValue.Type(), decodedToken)
-                       if !ok {
-                               return fmt.Errorf("object has no field %q: %w", decodedToken, ErrPointer)
-                       }
-                       fld := rValue.FieldByName(nm)
-                       if fld.CanAddr() && fld.Kind() != reflect.Interface && fld.Kind() != reflect.Map && fld.Kind() != reflect.Slice && fld.Kind() != reflect.Pointer {
-                               node = fld.Addr().Interface()
-                               continue
-                       }
-                       node = fld.Interface()
+               return typeFromValue(rValue.FieldByName(nm)), nil
 
-               case reflect.Map:
-                       kv := reflect.ValueOf(decodedToken)
-                       mv := rValue.MapIndex(kv)
+       case reflect.Map:
+               kv := reflect.ValueOf(decodedToken)
+               mv := rValue.MapIndex(kv)
 
-                       if !mv.IsValid() {
-                               return fmt.Errorf("object has no key %q: %w", decodedToken, ErrPointer)
-                       }
-                       if mv.CanAddr() && mv.Kind() != reflect.Interface && mv.Kind() != reflect.Map && mv.Kind() != reflect.Slice && mv.Kind() != reflect.Pointer {
-                               node = mv.Addr().Interface()
-                               continue
-                       }
-                       node = mv.Interface()
+               if !mv.IsValid() {
+                       return nil, errNoKey(decodedToken)
+               }
 
-               case reflect.Slice:
-                       tokenIndex, err := strconv.Atoi(decodedToken)
-                       if err != nil {
-                               return err
-                       }
-                       sLength := rValue.Len()
-                       if tokenIndex < 0 || tokenIndex >= sLength {
-                               return fmt.Errorf("index out of bounds array[0,%d] index '%d': %w", sLength, tokenIndex, ErrPointer)
-                       }
+               return typeFromValue(mv), nil
 
-                       elem := rValue.Index(tokenIndex)
-                       if elem.CanAddr() && elem.Kind() != reflect.Interface && elem.Kind() != reflect.Map && elem.Kind() != reflect.Slice && elem.Kind() != reflect.Pointer {
-                               node = elem.Addr().Interface()
-                               continue
-                       }
-                       node = elem.Interface()
+       case reflect.Slice:
+               tokenIndex, err := strconv.Atoi(decodedToken)
+               if err != nil {
+                       return nil, errors.Join(err, ErrPointer)
+               }
 
-               default:
-                       return fmt.Errorf("invalid token reference %q: %w", decodedToken, ErrPointer)
+               sLength := rValue.Len()
+               if tokenIndex < 0 || tokenIndex >= sLength {
+                       return nil, errOutOfBounds(sLength, tokenIndex)
                }
-       }
 
-       return nil
+               return typeFromValue(rValue.Index(tokenIndex)), nil
+
+       default:
+               return nil, errInvalidReference(decodedToken)
+       }
 }
 
 func isNil(input any) bool {
@@ -289,7 +295,7 @@ func isNil(input any) bool {
        }
 
        kind := reflect.TypeOf(input).Kind()
-       switch kind { //nolint:exhaustive
+       switch kind {
        case reflect.Pointer, reflect.Map, reflect.Slice, reflect.Chan:
                return reflect.ValueOf(input).IsNil()
        default:
@@ -297,12 +303,20 @@ func isNil(input any) bool {
        }
 }
 
-// GetForToken gets a value for a json pointer token 1 level deep
+func typeFromValue(v reflect.Value) any {
+       if v.CanAddr() && v.Kind() != reflect.Interface && v.Kind() != reflect.Map && v.Kind() != reflect.Slice && v.Kind() != reflect.Pointer {
+               return v.Addr().Interface()
+       }
+
+       return v.Interface()
+}
+
+// GetForToken gets a value for a json pointer token 1 level deep.
 func GetForToken(document any, decodedToken string) (any, reflect.Kind, error) {
        return getSingleImpl(document, decodedToken, jsonname.DefaultJSONNameProvider)
 }
 
-// SetForToken gets a value for a json pointer token 1 level deep
+// SetForToken sets a value for a json pointer token 1 level deep.
 func SetForToken(document any, decodedToken string, value any) (any, error) {
        return document, setSingleImpl(document, value, decodedToken, jsonname.DefaultJSONNameProvider)
 }
@@ -325,13 +339,15 @@ func getSingleImpl(node any, decodedToken string, nameProvider *jsonname.NamePro
                return getSingleImpl(*typed, decodedToken, nameProvider)
        }
 
-       switch kind { //nolint:exhaustive
+       switch kind {
        case reflect.Struct:
                nm, ok := nameProvider.GetGoNameForType(rValue.Type(), decodedToken)
                if !ok {
                        return nil, kind, fmt.Errorf("object has no field %q: %w", decodedToken, ErrPointer)
                }
+
                fld := rValue.FieldByName(nm)
+
                return fld.Interface(), kind, nil
 
        case reflect.Map:
@@ -341,78 +357,99 @@ func getSingleImpl(node any, decodedToken string, nameProvider *jsonname.NamePro
                if mv.IsValid() {
                        return mv.Interface(), kind, nil
                }
-               return nil, kind, fmt.Errorf("object has no key %q: %w", decodedToken, ErrPointer)
+
+               return nil, kind, errNoKey(decodedToken)
 
        case reflect.Slice:
                tokenIndex, err := strconv.Atoi(decodedToken)
                if err != nil {
-                       return nil, kind, err
+                       return nil, kind, errors.Join(err, ErrPointer)
                }
                sLength := rValue.Len()
                if tokenIndex < 0 || tokenIndex >= sLength {
-                       return nil, kind, fmt.Errorf("index out of bounds array[0,%d] index '%d': %w", sLength-1, tokenIndex, ErrPointer)
+                       return nil, kind, errOutOfBounds(sLength, tokenIndex)
                }
 
                elem := rValue.Index(tokenIndex)
                return elem.Interface(), kind, nil
 
        default:
-               return nil, kind, fmt.Errorf("invalid token reference %q: %w", decodedToken, ErrPointer)
+               return nil, kind, errInvalidReference(decodedToken)
        }
 }
 
 func setSingleImpl(node, data any, decodedToken string, nameProvider *jsonname.NameProvider) error {
-       rValue := reflect.Indirect(reflect.ValueOf(node))
-
-       // Check for nil to prevent panic when calling rValue.Type()
+       // check for nil to prevent panic when calling rValue.Type()
        if isNil(node) {
                return fmt.Errorf("cannot set field %q on nil value: %w", decodedToken, ErrPointer)
        }
 
-       if ns, ok := node.(JSONSetable); ok { // pointer impl
+       if ns, ok := node.(JSONSetable); ok {
                return ns.JSONSet(decodedToken, data)
        }
 
-       if rValue.Type().Implements(jsonSetableType) {
-               return node.(JSONSetable).JSONSet(decodedToken, data)
-       }
+       rValue := reflect.Indirect(reflect.ValueOf(node))
 
-       switch rValue.Kind() { //nolint:exhaustive
+       switch rValue.Kind() {
        case reflect.Struct:
                nm, ok := nameProvider.GetGoNameForType(rValue.Type(), decodedToken)
                if !ok {
                        return fmt.Errorf("object has no field %q: %w", decodedToken, ErrPointer)
                }
+
                fld := rValue.FieldByName(nm)
-               if fld.IsValid() {
-                       fld.Set(reflect.ValueOf(data))
+               if !fld.CanSet() {
+                       return fmt.Errorf("can't set struct field %s to %v: %w", nm, data, ErrPointer)
+               }
+
+               value := reflect.ValueOf(data)
+               valueType := value.Type()
+               assignedType := fld.Type()
+
+               if !valueType.AssignableTo(assignedType) {
+                       return fmt.Errorf("can't set value with type %T to field %s with type %v: %w", data, nm, assignedType, ErrPointer)
                }
+
+               fld.Set(value)
+
                return nil
 
        case reflect.Map:
                kv := reflect.ValueOf(decodedToken)
                rValue.SetMapIndex(kv, reflect.ValueOf(data))
+
                return nil
 
        case reflect.Slice:
                tokenIndex, err := strconv.Atoi(decodedToken)
                if err != nil {
-                       return err
+                       return errors.Join(err, ErrPointer)
                }
+
                sLength := rValue.Len()
                if tokenIndex < 0 || tokenIndex >= sLength {
-                       return fmt.Errorf("index out of bounds array[0,%d] index '%d': %w", sLength, tokenIndex, ErrPointer)
+                       return errOutOfBounds(sLength, tokenIndex)
                }
 
                elem := rValue.Index(tokenIndex)
                if !elem.CanSet() {
                        return fmt.Errorf("can't set slice index %s to %v: %w", decodedToken, data, ErrPointer)
                }
-               elem.Set(reflect.ValueOf(data))
+
+               value := reflect.ValueOf(data)
+               valueType := value.Type()
+               assignedType := elem.Type()
+
+               if !valueType.AssignableTo(assignedType) {
+                       return fmt.Errorf("can't set value with type %T to slice element %d with type %v: %w", data, tokenIndex, assignedType, ErrPointer)
+               }
+
+               elem.Set(value)
+
                return nil
 
        default:
-               return fmt.Errorf("invalid token reference %q: %w", decodedToken, ErrPointer)
+               return errInvalidReference(decodedToken)
        }
 }
 
@@ -443,13 +480,14 @@ func offsetSingleObject(dec *json.Decoder, decodedToken string) (int64, error) {
                        return 0, fmt.Errorf("invalid token %#v: %w", tk, ErrPointer)
                }
        }
+
        return 0, fmt.Errorf("token reference %q not found: %w", decodedToken, ErrPointer)
 }
 
 func offsetSingleArray(dec *json.Decoder, decodedToken string) (int64, error) {
        idx, err := strconv.Atoi(decodedToken)
        if err != nil {
-               return 0, fmt.Errorf("token reference %q is not a number: %v: %w", decodedToken, err, ErrPointer)
+               return 0, fmt.Errorf("token reference %q is not a number: %w: %w", decodedToken, err, ErrPointer)
        }
        var i int
        for i = 0; i < idx && dec.More(); i++ {
@@ -475,10 +513,12 @@ func offsetSingleArray(dec *json.Decoder, decodedToken string) (int64, error) {
        if !dec.More() {
                return 0, fmt.Errorf("token reference %q not found: %w", decodedToken, ErrPointer)
        }
+
        return dec.InputOffset(), nil
 }
 
 // drainSingle drains a single level of object or array.
+//
 // The decoder has to guarantee the beginning delim (i.e. '{' or '[') has been consumed.
 func drainSingle(dec *json.Decoder) error {
        for dec.More() {
@@ -500,14 +540,15 @@ func drainSingle(dec *json.Decoder) error {
                }
        }
 
-       // Consumes the ending delim
+       // consumes the ending delim
        if _, err := dec.Token(); err != nil {
                return err
        }
+
        return nil
 }
 
-// Specific JSON pointer encoding here
+// JSON pointer encoding:
 // ~0 => ~
 // ~1 => /
 // ... and vice versa
@@ -520,16 +561,23 @@ const (
 )
 
 var (
-       encRefTokReplacer = strings.NewReplacer(encRefTok1, decRefTok1, encRefTok0, decRefTok0)
-       decRefTokReplacer = strings.NewReplacer(decRefTok1, encRefTok1, decRefTok0, encRefTok0)
+       encRefTokReplacer = strings.NewReplacer(encRefTok1, decRefTok1, encRefTok0, decRefTok0) //nolint:gochecknoglobals // it's okay to declare a replacer as a private global
+       decRefTokReplacer = strings.NewReplacer(decRefTok1, encRefTok1, decRefTok0, encRefTok0) //nolint:gochecknoglobals // it's okay to declare a replacer as a private global
 )
 
-// Unescape unescapes a json pointer reference token string to the original representation
+// Unescape unescapes a json pointer reference token string to the original representation.
 func Unescape(token string) string {
        return encRefTokReplacer.Replace(token)
 }
 
-// Escape escapes a pointer reference token string
+// Escape escapes a pointer reference token string.
+//
+// The JSONPointer specification defines "/" as a separator and "~" as an escape prefix.
+//
+// Keys containing such characters are escaped with the following rules:
+//
+//   - "~" is escaped as "~0"
+//   - "/" is escaped as "~1"
 func Escape(token string) string {
        return decRefTokReplacer.Replace(token)
 }
diff --git a/vendor/github.com/go-openapi/jsonreference/.cliff.toml b/vendor/github.com/go-openapi/jsonreference/.cliff.toml
new file mode 100644 (file)
index 0000000..702629f
--- /dev/null
@@ -0,0 +1,181 @@
+# git-cliff ~ configuration file
+# https://git-cliff.org/docs/configuration
+
+[changelog]
+header = """
+"""
+
+footer = """
+
+-----
+
+**[{{ remote.github.repo }}]({{ self::remote_url() }}) license terms**
+
+[![License][license-badge]][license-url]
+
+[license-badge]: http://img.shields.io/badge/license-Apache%20v2-orange.svg
+[license-url]: {{ self::remote_url() }}/?tab=Apache-2.0-1-ov-file#readme
+
+{%- macro remote_url() -%}
+  https://github.com/{{ remote.github.owner }}/{{ remote.github.repo }}
+{%- endmacro -%}
+"""
+
+body = """
+{%- if version %}
+## [{{ version | trim_start_matches(pat="v") }}]({{ self::remote_url() }}/tree/{{ version }}) - {{ timestamp | date(format="%Y-%m-%d") }}
+{%- else %}
+## [unreleased]
+{%- endif %}
+{%- if message %}
+  {%- raw %}\n{% endraw %}
+{{ message }}
+  {%- raw %}\n{% endraw %}
+{%- endif %}
+{%- if version %}
+  {%- if previous.version %}
+
+**Full Changelog**: <{{ self::remote_url() }}/compare/{{ previous.version }}...{{ version }}>
+  {%- endif %}
+{%- else %}
+  {%- raw %}\n{% endraw %}
+{%- endif %}
+
+{%- if statistics %}{% if statistics.commit_count %}
+  {%- raw %}\n{% endraw %}
+{{ statistics.commit_count }} commits in this release.
+  {%- raw %}\n{% endraw %}
+{%- endif %}{% endif %}
+-----
+
+{%- for group, commits in commits | group_by(attribute="group") %}
+  {%- raw %}\n{% endraw %}
+### {{ group | upper_first }}
+    {%- raw %}\n{% endraw %}
+    {%- for commit in commits %}
+      {%- if commit.remote.pr_title %}
+        {%- set commit_message = commit.remote.pr_title %}
+      {%- else %}
+        {%- set commit_message = commit.message %}
+      {%- endif %}
+* {{ commit_message | split(pat="\n") | first | trim }}
+      {%- if commit.remote.username %}
+{%- raw %} {% endraw %}by [@{{ commit.remote.username }}](https://github.com/{{ commit.remote.username }})
+      {%- endif %}
+      {%- if commit.remote.pr_number %}
+{%- raw %} {% endraw %}in [#{{ commit.remote.pr_number }}]({{ self::remote_url() }}/pull/{{ commit.remote.pr_number }})
+      {%- endif %}
+{%- raw %} {% endraw %}[...]({{ self::remote_url() }}/commit/{{ commit.id }})
+  {%- endfor %}
+{%- endfor %}
+
+{%- if github %}
+{%- raw %}\n{% endraw -%}
+  {%- set all_contributors = github.contributors | length %}
+  {%- if github.contributors | filter(attribute="username", value="dependabot[bot]") | length < all_contributors %}
+-----
+
+### People who contributed to this release
+  {% endif %}
+  {%- for contributor in github.contributors | filter(attribute="username") | sort(attribute="username") %}
+    {%- if contributor.username != "dependabot[bot]" and contributor.username != "github-actions[bot]" %}
+* [@{{ contributor.username }}](https://github.com/{{ contributor.username }})
+    {%- endif %}
+  {%- endfor %}
+
+  {% if github.contributors | filter(attribute="is_first_time", value=true) | length != 0 %}
+-----
+    {%- raw %}\n{% endraw %}
+
+### New Contributors
+  {%- endif %}
+
+  {%- for contributor in github.contributors | filter(attribute="is_first_time", value=true) %}
+    {%- if contributor.username != "dependabot[bot]" and contributor.username != "github-actions[bot]" %}
+* @{{ contributor.username }} made their first contribution
+      {%- if contributor.pr_number %}
+  in [#{{ contributor.pr_number }}]({{ self::remote_url() }}/pull/{{ contributor.pr_number }}) \
+      {%- endif %}
+    {%- endif %}
+  {%- endfor %}
+{%- endif %}
+
+{%- raw %}\n{% endraw %}
+
+{%- macro remote_url() -%}
+  https://github.com/{{ remote.github.owner }}/{{ remote.github.repo }}
+{%- endmacro -%}
+"""
+# Remove leading and trailing whitespaces from the changelog's body.
+trim = true
+# Render body even when there are no releases to process.
+render_always = true
+# An array of regex based postprocessors to modify the changelog.
+postprocessors = [
+    # Replace the placeholder <REPO> with a URL.
+    #{ pattern = '<REPO>', replace = "https://github.com/orhun/git-cliff" },
+]
+# output file path
+# output = "test.md"
+
+[git]
+# Parse commits according to the conventional commits specification.
+# See https://www.conventionalcommits.org
+conventional_commits = false
+# Exclude commits that do not match the conventional commits specification.
+filter_unconventional = false
+# Require all commits to be conventional.
+# Takes precedence over filter_unconventional.
+require_conventional = false
+# Split commits on newlines, treating each line as an individual commit.
+split_commits = false
+# An array of regex based parsers to modify commit messages prior to further processing.
+commit_preprocessors = [
+    # Replace issue numbers with link templates to be updated in `changelog.postprocessors`.
+    #{ pattern = '\((\w+\s)?#([0-9]+)\)', replace = "([#${2}](<REPO>/issues/${2}))"},
+    # Check spelling of the commit message using https://github.com/crate-ci/typos.
+    # If the spelling is incorrect, it will be fixed automatically.
+    #{ pattern = '.*', replace_command = 'typos --write-changes -' }
+]
+# Prevent commits that are breaking from being excluded by commit parsers.
+protect_breaking_commits = false
+# An array of regex based parsers for extracting data from the commit message.
+# Assigns commits to groups.
+# Optionally sets the commit's scope and can decide to exclude commits from further processing.
+commit_parsers = [
+    { message = "^[Cc]hore\\([Rr]elease\\): prepare for", skip = true },
+    { message = "(^[Mm]erge)|([Mm]erge conflict)", skip = true },
+    { field = "author.name", pattern = "dependabot*", group = "<!-- 0A -->Updates" },
+    { message = "([Ss]ecurity)|([Vv]uln)", group = "<!-- 08 -->Security" },
+    { body = "(.*[Ss]ecurity)|([Vv]uln)", group = "<!-- 08 -->Security" },
+    { message = "([Cc]hore\\(lint\\))|(style)|(lint)|(codeql)|(golangci)", group = "<!-- 05 -->Code quality" },
+    { message = "(^[Dd]oc)|((?i)readme)|(badge)|(typo)|(documentation)", group = "<!-- 03 -->Documentation" },
+    { message = "(^[Ff]eat)|(^[Ee]nhancement)", group = "<!-- 00 -->Implemented enhancements" },
+    { message = "(^ci)|(\\(ci\\))|(fixup\\s+ci)|(fix\\s+ci)|(license)|(example)", group = "<!-- 07 -->Miscellaneous tasks" },
+    { message = "^test", group = "<!-- 06 -->Testing" },
+    { message = "(^fix)|(panic)", group = "<!-- 01 -->Fixed bugs" },
+    { message = "(^refact)|(rework)", group = "<!-- 02 -->Refactor" },
+    { message = "(^[Pp]erf)|(performance)", group = "<!-- 04 -->Performance" },
+    { message = "(^[Cc]hore)", group = "<!-- 07 -->Miscellaneous tasks" },
+    { message = "^[Rr]evert", group = "<!-- 09 -->Reverted changes" },
+    { message = "(upgrade.*?go)|(go\\s+version)", group = "<!-- 0A -->Updates" },
+    { message = ".*", group = "<!-- 0B -->Other" },
+]
+# Exclude commits that are not matched by any commit parser.
+filter_commits = false
+# An array of link parsers for extracting external references, and turning them into URLs, using regex.
+link_parsers = []
+# Include only the tags that belong to the current branch.
+use_branch_tags = false
+# Order releases topologically instead of chronologically.
+topo_order = false
+# Order releases topologically instead of chronologically.
+topo_order_commits = true
+# Order of commits in each group/release within the changelog.
+# Allowed values: newest, oldest
+sort_commits = "newest"
+# Process submodules commits
+recurse_submodules = false
+
+#[remote.github]
+#owner = "go-openapi"
diff --git a/vendor/github.com/go-openapi/jsonreference/.editorconfig b/vendor/github.com/go-openapi/jsonreference/.editorconfig
new file mode 100644 (file)
index 0000000..3152da6
--- /dev/null
@@ -0,0 +1,26 @@
+# top-most EditorConfig file
+root = true
+
+# Unix-style newlines with a newline ending every file
+[*]
+end_of_line = lf
+insert_final_newline = true
+indent_style = space
+indent_size = 2
+trim_trailing_whitespace = true
+
+# Set default charset
+[*.{js,py,go,scala,rb,java,html,css,less,sass,md}]
+charset = utf-8
+
+# Tab indentation (no size specified)
+[*.go]
+indent_style = tab
+
+[*.md]
+trim_trailing_whitespace = false
+
+# Matches the exact files either package.json or .travis.yml
+[{package.json,.travis.yml}]
+indent_style = space
+indent_size = 2
index 7cea1af8b52904ab68d9da536c8af1c94b7af303..fdae591bce71b29cbb86d80e542fcd875783a034 100644 (file)
@@ -2,34 +2,17 @@ version: "2"
 linters:
   default: all
   disable:
-    - cyclop
     - depguard
-    - errchkjson
-    - errorlint
-    - exhaustruct
-    - forcetypeassert
     - funlen
-    - gochecknoglobals
-    - gochecknoinits
-    - gocognit
-    - godot
     - godox
-    - gosmopolitan
-    - inamedparam
-    #- intrange # disabled while < go1.22
-    - ireturn
-    - lll
-    - musttag
-    - nestif
+    - exhaustruct
     - nlreturn
     - nonamedreturns
     - noinlineerr
     - paralleltest
     - recvcheck
     - testpackage
-    - thelper
     - tparallel
-    - unparam
     - varnamelen
     - whitespace
     - wrapcheck
@@ -41,8 +24,15 @@ linters:
     goconst:
       min-len: 2
       min-occurrences: 3
+    cyclop:
+      max-complexity: 20
     gocyclo:
-      min-complexity: 45
+      min-complexity: 20
+    exhaustive:
+      default-signifies-exhaustive: true
+      default-case-required: true
+    lll:
+      line-length: 180
   exclusions:
     generated: lax
     presets:
@@ -58,6 +48,7 @@ formatters:
   enable:
     - gofmt
     - goimports
+    - gofumpt
   exclusions:
     generated: lax
     paths:
diff --git a/vendor/github.com/go-openapi/jsonreference/CONTRIBUTORS.md b/vendor/github.com/go-openapi/jsonreference/CONTRIBUTORS.md
new file mode 100644 (file)
index 0000000..9907d5d
--- /dev/null
@@ -0,0 +1,21 @@
+# Contributors
+
+- Repository: ['go-openapi/jsonreference']
+
+| Total Contributors | Total Contributions |
+| --- | --- |
+| 9  | 68  |
+
+| Username | All Time Contribution Count | All Commits |
+| --- | --- | --- |
+| @fredbi | 31 | https://github.com/go-openapi/jsonreference/commits?author=fredbi |
+| @casualjim | 25 | https://github.com/go-openapi/jsonreference/commits?author=casualjim |
+| @youyuanwu | 5 | https://github.com/go-openapi/jsonreference/commits?author=youyuanwu |
+| @olivierlemasle | 2 | https://github.com/go-openapi/jsonreference/commits?author=olivierlemasle |
+| @apelisse | 1 | https://github.com/go-openapi/jsonreference/commits?author=apelisse |
+| @gbjk | 1 | https://github.com/go-openapi/jsonreference/commits?author=gbjk |
+| @honza | 1 | https://github.com/go-openapi/jsonreference/commits?author=honza |
+| @Neo2308 | 1 | https://github.com/go-openapi/jsonreference/commits?author=Neo2308 |
+| @erraggy | 1 | https://github.com/go-openapi/jsonreference/commits?author=erraggy |
+
+ _this file was generated by the [Contributors GitHub Action](https://github.com/github/contributors)_
index f9ad7e0f7a0acad34c46ea1cf2d536c84a910ec1..f3b51939a95b8f03aaf28737af02e88f9d841cb4 100644 (file)
@@ -8,12 +8,15 @@ by the go-swagger and go-openapi maintainers ("go-swagger maintainers").
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this software except in compliance with the License.
+
 You may obtain a copy of the License at
 
+  http://www.apache.org/licenses/LICENSE-2.0.
+
 This software is copied from, derived from, and inspired by other original software products.
 It ships with copies of other software which license terms are recalled below.
 
-The original sofware was authored on 25-02-2013 by sigu-399 (https://github.com/sigu-399, sigu.399@gmail.com).
+The original software was authored on 25-02-2013 by sigu-399 (https://github.com/sigu-399, sigu.399@gmail.com).
 
 github.com/sigh-399/jsonpointer
 ===========================
index 2274a4b78fc538597d7b77d0979e408eae382602..d479dbdc7318b455b4ba096334e5b7791c8e4bf4 100644 (file)
@@ -1,18 +1,39 @@
-# gojsonreference [![Build Status](https://github.com/go-openapi/jsonreference/actions/workflows/go-test.yml/badge.svg)](https://github.com/go-openapi/jsonreference/actions?query=workflow%3A"go+test") [![codecov](https://codecov.io/gh/go-openapi/jsonreference/branch/master/graph/badge.svg)](https://codecov.io/gh/go-openapi/jsonreference)
+# jsonreference
 
-[![Slack Status](https://slackin.goswagger.io/badge.svg)](https://slackin.goswagger.io)
-[![license](http://img.shields.io/badge/license-Apache%20v2-orange.svg)](https://raw.githubusercontent.com/go-openapi/jsonreference/master/LICENSE)
-[![Go Reference](https://pkg.go.dev/badge/github.com/go-openapi/jsonreference.svg)](https://pkg.go.dev/github.com/go-openapi/jsonreference)
-[![Go Report Card](https://goreportcard.com/badge/github.com/go-openapi/jsonreference)](https://goreportcard.com/report/github.com/go-openapi/jsonreference)
+<!-- Badges: status  -->
+[![Tests][test-badge]][test-url] [![Coverage][cov-badge]][cov-url] [![CI vuln scan][vuln-scan-badge]][vuln-scan-url] [![CodeQL][codeql-badge]][codeql-url]
+<!-- Badges: release & docker images  -->
+<!-- Badges: code quality  -->
+<!-- Badges: license & compliance -->
+[![Release][release-badge]][release-url] [![Go Report Card][gocard-badge]][gocard-url] [![CodeFactor Grade][codefactor-badge]][codefactor-url] [![License][license-badge]][license-url]
+<!-- Badges: documentation & support -->
+<!-- Badges: others & stats -->
+[![GoDoc][godoc-badge]][godoc-url] [![Slack Channel][slack-logo]![slack-badge]][slack-url] [![go version][goversion-badge]][goversion-url] ![Top language][top-badge] ![Commits since latest release][commits-badge]
 
-An implementation of JSON Reference - Go language
+---
+
+An implementation of JSON Reference for golang.
 
 ## Status
-Feature complete. Stable API
+
+API is stable.
+
+## Import this library in your project
+
+```cmd
+go get github.com/go-openapi/jsonreference
+```
 
 ## Dependencies
+
 * https://github.com/go-openapi/jsonpointer
 
+## Basic usage
+
+## Change log
+
+See <https://github.com/go-openapi/jsonreference/releases>
+
 ## References
 
 * http://tools.ietf.org/html/draft-ietf-appsawg-json-pointer-07
@@ -24,3 +45,55 @@ This library ships under the [SPDX-License-Identifier: Apache-2.0](./LICENSE).
 
 See the license [NOTICE](./NOTICE), which recalls the licensing terms of all the pieces of software
 on top of which it has been built.
+
+## Other documentation
+
+* [All-time contributors](./CONTRIBUTORS.md)
+* [Contributing guidelines](.github/CONTRIBUTING.md)
+* [Maintainers documentation](docs/MAINTAINERS.md)
+* [Code style](docs/STYLE.md)
+
+## Cutting a new release
+
+Maintainers can cut a new release by either:
+
+* running [this workflow](https://github.com/go-openapi/jsonreference/actions/workflows/bump-release.yml)
+* or pushing a semver tag
+  * signed tags are preferred
+  * The tag message is prepended to release notes
+
+<!-- Badges: status  -->
+[test-badge]: https://github.com/go-openapi/jsonreference/actions/workflows/go-test.yml/badge.svg
+[test-url]: https://github.com/go-openapi/jsonreference/actions/workflows/go-test.yml
+[cov-badge]: https://codecov.io/gh/go-openapi/jsonreference/branch/master/graph/badge.svg
+[cov-url]: https://codecov.io/gh/go-openapi/jsonreference
+[vuln-scan-badge]: https://github.com/go-openapi/jsonreference/actions/workflows/scanner.yml/badge.svg
+[vuln-scan-url]: https://github.com/go-openapi/jsonreference/actions/workflows/scanner.yml
+[codeql-badge]: https://github.com/go-openapi/jsonreference/actions/workflows/codeql.yml/badge.svg
+[codeql-url]: https://github.com/go-openapi/jsonreference/actions/workflows/codeql.yml
+<!-- Badges: release & docker images  -->
+[release-badge]: https://badge.fury.io/gh/go-openapi%2Fjsonreference.svg
+[release-url]: https://badge.fury.io/gh/go-openapi%2Fjsonreference
+[gomod-badge]: https://badge.fury.io/go/github.com%2Fgo-openapi%2Fjsonreference.svg
+[gomod-url]: https://badge.fury.io/go/github.com%2Fgo-openapi%2Fjsonreference
+<!-- Badges: code quality  -->
+[gocard-badge]: https://goreportcard.com/badge/github.com/go-openapi/jsonreference
+[gocard-url]: https://goreportcard.com/report/github.com/go-openapi/jsonreference
+[codefactor-badge]: https://img.shields.io/codefactor/grade/github/go-openapi/jsonreference
+[codefactor-url]: https://www.codefactor.io/repository/github/go-openapi/jsonreference
+<!-- Badges: documentation & support -->
+[doc-badge]: https://img.shields.io/badge/doc-site-blue?link=https%3A%2F%2Fgoswagger.io%2Fgo-openapi%2F
+[doc-url]: https://goswagger.io/go-openapi
+[godoc-badge]: https://pkg.go.dev/badge/github.com/go-openapi/jsonreference
+[godoc-url]: http://pkg.go.dev/github.com/go-openapi/jsonreference
+[slack-logo]: https://a.slack-edge.com/e6a93c1/img/icons/favicon-32.png
+[slack-badge]: https://img.shields.io/badge/slack-blue?link=https%3A%2F%2Fgoswagger.slack.com%2Farchives%2FC04R30YM
+[slack-url]: https://goswagger.slack.com/archives/C04R30YMU
+<!-- Badges: license & compliance -->
+[license-badge]: http://img.shields.io/badge/license-Apache%20v2-orange.svg
+[license-url]: https://github.com/go-openapi/jsonreference/?tab=Apache-2.0-1-ov-file#readme
+<!-- Badges: others & stats -->
+[goversion-badge]: https://img.shields.io/github/go-mod/go-version/go-openapi/jsonreference
+[goversion-url]: https://github.com/go-openapi/jsonreference/blob/master/go.mod
+[top-badge]: https://img.shields.io/github/languages/top/go-openapi/jsonreference
+[commits-badge]: https://img.shields.io/github/commits-since/go-openapi/jsonreference/latest
diff --git a/vendor/github.com/go-openapi/jsonreference/SECURITY.md b/vendor/github.com/go-openapi/jsonreference/SECURITY.md
new file mode 100644 (file)
index 0000000..2a7b6f0
--- /dev/null
@@ -0,0 +1,19 @@
+# Security Policy
+
+This policy outlines the commitment and practices of the go-openapi maintainers regarding security.
+
+## Supported Versions
+
+| Version | Supported          |
+| ------- | ------------------ |
+| 0.22.x  | :white_check_mark: |
+
+## Reporting a vulnerability
+
+If you become aware of a security vulnerability that affects the current repository,
+please report it privately to the maintainers.
+
+Please follow the instructions provided by github to
+[Privately report a security vulnerability](https://docs.github.com/en/code-security/security-advisories/guidance-on-reporting-and-writing-information-about-vulnerabilities/privately-reporting-a-security-vulnerability#privately-reporting-a-security-vulnerability).
+
+TL;DR: on Github, navigate to the project's "Security" tab then click on "Report a vulnerability".
index ca79391dcf3e5914d57f65d730dac1b41cae57a8..a08b47320e7da538d5b4e56c80a3abf61ced270e 100644 (file)
@@ -14,9 +14,11 @@ const (
        defaultHTTPSPort = ":443"
 )
 
-// Regular expressions used by the normalizations
-var rxPort = regexp.MustCompile(`(:\d+)/?$`)
-var rxDupSlashes = regexp.MustCompile(`/{2,}`)
+// Regular expressions used by the normalizations.
+var (
+       rxPort       = regexp.MustCompile(`(:\d+)/?$`)
+       rxDupSlashes = regexp.MustCompile(`/{2,}`)
+)
 
 // NormalizeURL will normalize the specified URL
 // This was added to replace a previous call to the no longer maintained purell library:
index 33d4798cad36a37b3d642bf3b1cddc86dea04cf5..6e3ae4995154177d68375c04b692919b5389c1a9 100644 (file)
@@ -18,7 +18,7 @@ const (
 
 var ErrChildURL = errors.New("child url is nil")
 
-// Ref represents a json reference object
+// Ref represents a json reference object.
 type Ref struct {
        referenceURL     *url.URL
        referencePointer jsonpointer.Pointer
@@ -30,7 +30,7 @@ type Ref struct {
        HasFullFilePath bool
 }
 
-// New creates a new reference for the given string
+// New creates a new reference for the given string.
 func New(jsonReferenceString string) (Ref, error) {
        var r Ref
        err := r.parse(jsonReferenceString)
@@ -38,7 +38,7 @@ func New(jsonReferenceString string) (Ref, error) {
 }
 
 // MustCreateRef parses the ref string and panics when it's invalid.
-// Use the New method for a version that returns an error
+// Use the New method for a version that returns an error.
 func MustCreateRef(ref string) Ref {
        r, err := New(ref)
        if err != nil {
@@ -48,17 +48,17 @@ func MustCreateRef(ref string) Ref {
        return r
 }
 
-// GetURL gets the URL for this reference
+// GetURL gets the URL for this reference.
 func (r *Ref) GetURL() *url.URL {
        return r.referenceURL
 }
 
-// GetPointer gets the json pointer for this reference
+// GetPointer gets the json pointer for this reference.
 func (r *Ref) GetPointer() *jsonpointer.Pointer {
        return &r.referencePointer
 }
 
-// String returns the best version of the url for this reference
+// String returns the best version of the url for this reference.
 func (r *Ref) String() string {
        if r.referenceURL != nil {
                return r.referenceURL.String()
@@ -71,7 +71,7 @@ func (r *Ref) String() string {
        return r.referencePointer.String()
 }
 
-// IsRoot returns true if this reference is a root document
+// IsRoot returns true if this reference is a root document.
 func (r *Ref) IsRoot() bool {
        return r.referenceURL != nil &&
                !r.IsCanonical() &&
@@ -79,13 +79,13 @@ func (r *Ref) IsRoot() bool {
                r.referenceURL.Fragment == ""
 }
 
-// IsCanonical returns true when this pointer starts with http(s):// or file://
+// IsCanonical returns true when this pointer starts with http(s):// or file://.
 func (r *Ref) IsCanonical() bool {
        return (r.HasFileScheme && r.HasFullFilePath) || (!r.HasFileScheme && r.HasFullURL)
 }
 
 // Inherits creates a new reference from a parent and a child
-// If the child cannot inherit from the parent, an error is returned
+// If the child cannot inherit from the parent, an error is returned.
 func (r *Ref) Inherits(child Ref) (*Ref, error) {
        childURL := child.GetURL()
        parentURL := r.GetURL()
@@ -103,7 +103,7 @@ func (r *Ref) Inherits(child Ref) (*Ref, error) {
        return &ref, nil
 }
 
-// "Constructor", parses the given string JSON reference
+// "Constructor", parses the given string JSON reference.
 func (r *Ref) parse(jsonReferenceString string) error {
        parsed, err := url.Parse(jsonReferenceString)
        if err != nil {
diff --git a/vendor/github.com/go-openapi/spec/.cliff.toml b/vendor/github.com/go-openapi/spec/.cliff.toml
new file mode 100644 (file)
index 0000000..702629f
--- /dev/null
@@ -0,0 +1,181 @@
+# git-cliff ~ configuration file
+# https://git-cliff.org/docs/configuration
+
+[changelog]
+header = """
+"""
+
+footer = """
+
+-----
+
+**[{{ remote.github.repo }}]({{ self::remote_url() }}) license terms**
+
+[![License][license-badge]][license-url]
+
+[license-badge]: http://img.shields.io/badge/license-Apache%20v2-orange.svg
+[license-url]: {{ self::remote_url() }}/?tab=Apache-2.0-1-ov-file#readme
+
+{%- macro remote_url() -%}
+  https://github.com/{{ remote.github.owner }}/{{ remote.github.repo }}
+{%- endmacro -%}
+"""
+
+body = """
+{%- if version %}
+## [{{ version | trim_start_matches(pat="v") }}]({{ self::remote_url() }}/tree/{{ version }}) - {{ timestamp | date(format="%Y-%m-%d") }}
+{%- else %}
+## [unreleased]
+{%- endif %}
+{%- if message %}
+  {%- raw %}\n{% endraw %}
+{{ message }}
+  {%- raw %}\n{% endraw %}
+{%- endif %}
+{%- if version %}
+  {%- if previous.version %}
+
+**Full Changelog**: <{{ self::remote_url() }}/compare/{{ previous.version }}...{{ version }}>
+  {%- endif %}
+{%- else %}
+  {%- raw %}\n{% endraw %}
+{%- endif %}
+
+{%- if statistics %}{% if statistics.commit_count %}
+  {%- raw %}\n{% endraw %}
+{{ statistics.commit_count }} commits in this release.
+  {%- raw %}\n{% endraw %}
+{%- endif %}{% endif %}
+-----
+
+{%- for group, commits in commits | group_by(attribute="group") %}
+  {%- raw %}\n{% endraw %}
+### {{ group | upper_first }}
+    {%- raw %}\n{% endraw %}
+    {%- for commit in commits %}
+      {%- if commit.remote.pr_title %}
+        {%- set commit_message = commit.remote.pr_title %}
+      {%- else %}
+        {%- set commit_message = commit.message %}
+      {%- endif %}
+* {{ commit_message | split(pat="\n") | first | trim }}
+      {%- if commit.remote.username %}
+{%- raw %} {% endraw %}by [@{{ commit.remote.username }}](https://github.com/{{ commit.remote.username }})
+      {%- endif %}
+      {%- if commit.remote.pr_number %}
+{%- raw %} {% endraw %}in [#{{ commit.remote.pr_number }}]({{ self::remote_url() }}/pull/{{ commit.remote.pr_number }})
+      {%- endif %}
+{%- raw %} {% endraw %}[...]({{ self::remote_url() }}/commit/{{ commit.id }})
+  {%- endfor %}
+{%- endfor %}
+
+{%- if github %}
+{%- raw %}\n{% endraw -%}
+  {%- set all_contributors = github.contributors | length %}
+  {%- if github.contributors | filter(attribute="username", value="dependabot[bot]") | length < all_contributors %}
+-----
+
+### People who contributed to this release
+  {% endif %}
+  {%- for contributor in github.contributors | filter(attribute="username") | sort(attribute="username") %}
+    {%- if contributor.username != "dependabot[bot]" and contributor.username != "github-actions[bot]" %}
+* [@{{ contributor.username }}](https://github.com/{{ contributor.username }})
+    {%- endif %}
+  {%- endfor %}
+
+  {% if github.contributors | filter(attribute="is_first_time", value=true) | length != 0 %}
+-----
+    {%- raw %}\n{% endraw %}
+
+### New Contributors
+  {%- endif %}
+
+  {%- for contributor in github.contributors | filter(attribute="is_first_time", value=true) %}
+    {%- if contributor.username != "dependabot[bot]" and contributor.username != "github-actions[bot]" %}
+* @{{ contributor.username }} made their first contribution
+      {%- if contributor.pr_number %}
+  in [#{{ contributor.pr_number }}]({{ self::remote_url() }}/pull/{{ contributor.pr_number }}) \
+      {%- endif %}
+    {%- endif %}
+  {%- endfor %}
+{%- endif %}
+
+{%- raw %}\n{% endraw %}
+
+{%- macro remote_url() -%}
+  https://github.com/{{ remote.github.owner }}/{{ remote.github.repo }}
+{%- endmacro -%}
+"""
+# Remove leading and trailing whitespaces from the changelog's body.
+trim = true
+# Render body even when there are no releases to process.
+render_always = true
+# An array of regex based postprocessors to modify the changelog.
+postprocessors = [
+    # Replace the placeholder <REPO> with a URL.
+    #{ pattern = '<REPO>', replace = "https://github.com/orhun/git-cliff" },
+]
+# output file path
+# output = "test.md"
+
+[git]
+# Parse commits according to the conventional commits specification.
+# See https://www.conventionalcommits.org
+conventional_commits = false
+# Exclude commits that do not match the conventional commits specification.
+filter_unconventional = false
+# Require all commits to be conventional.
+# Takes precedence over filter_unconventional.
+require_conventional = false
+# Split commits on newlines, treating each line as an individual commit.
+split_commits = false
+# An array of regex based parsers to modify commit messages prior to further processing.
+commit_preprocessors = [
+    # Replace issue numbers with link templates to be updated in `changelog.postprocessors`.
+    #{ pattern = '\((\w+\s)?#([0-9]+)\)', replace = "([#${2}](<REPO>/issues/${2}))"},
+    # Check spelling of the commit message using https://github.com/crate-ci/typos.
+    # If the spelling is incorrect, it will be fixed automatically.
+    #{ pattern = '.*', replace_command = 'typos --write-changes -' }
+]
+# Prevent commits that are breaking from being excluded by commit parsers.
+protect_breaking_commits = false
+# An array of regex based parsers for extracting data from the commit message.
+# Assigns commits to groups.
+# Optionally sets the commit's scope and can decide to exclude commits from further processing.
+commit_parsers = [
+    { message = "^[Cc]hore\\([Rr]elease\\): prepare for", skip = true },
+    { message = "(^[Mm]erge)|([Mm]erge conflict)", skip = true },
+    { field = "author.name", pattern = "dependabot*", group = "<!-- 0A -->Updates" },
+    { message = "([Ss]ecurity)|([Vv]uln)", group = "<!-- 08 -->Security" },
+    { body = "(.*[Ss]ecurity)|([Vv]uln)", group = "<!-- 08 -->Security" },
+    { message = "([Cc]hore\\(lint\\))|(style)|(lint)|(codeql)|(golangci)", group = "<!-- 05 -->Code quality" },
+    { message = "(^[Dd]oc)|((?i)readme)|(badge)|(typo)|(documentation)", group = "<!-- 03 -->Documentation" },
+    { message = "(^[Ff]eat)|(^[Ee]nhancement)", group = "<!-- 00 -->Implemented enhancements" },
+    { message = "(^ci)|(\\(ci\\))|(fixup\\s+ci)|(fix\\s+ci)|(license)|(example)", group = "<!-- 07 -->Miscellaneous tasks" },
+    { message = "^test", group = "<!-- 06 -->Testing" },
+    { message = "(^fix)|(panic)", group = "<!-- 01 -->Fixed bugs" },
+    { message = "(^refact)|(rework)", group = "<!-- 02 -->Refactor" },
+    { message = "(^[Pp]erf)|(performance)", group = "<!-- 04 -->Performance" },
+    { message = "(^[Cc]hore)", group = "<!-- 07 -->Miscellaneous tasks" },
+    { message = "^[Rr]evert", group = "<!-- 09 -->Reverted changes" },
+    { message = "(upgrade.*?go)|(go\\s+version)", group = "<!-- 0A -->Updates" },
+    { message = ".*", group = "<!-- 0B -->Other" },
+]
+# Exclude commits that are not matched by any commit parser.
+filter_commits = false
+# An array of link parsers for extracting external references, and turning them into URLs, using regex.
+link_parsers = []
+# Include only the tags that belong to the current branch.
+use_branch_tags = false
+# Order releases topologically instead of chronologically.
+topo_order = false
+# Order releases topologically instead of chronologically.
+topo_order_commits = true
+# Order of commits in each group/release within the changelog.
+# Allowed values: newest, oldest
+sort_commits = "newest"
+# Process submodules commits
+recurse_submodules = false
+
+#[remote.github]
+#owner = "go-openapi"
index 1ad5adf47e693a2f07d32b24f2f7f869ff3ef41e..fdae591bce71b29cbb86d80e542fcd875783a034 100644 (file)
@@ -2,34 +2,17 @@ version: "2"
 linters:
   default: all
   disable:
-    - cyclop
     - depguard
-    - errchkjson
-    - errorlint
-    - exhaustruct
-    - forcetypeassert
     - funlen
-    - gochecknoglobals
-    - gochecknoinits
-    - gocognit
-    - godot
     - godox
-    - gosmopolitan
-    - inamedparam
-    - intrange
-    - ireturn
-    - lll
-    - musttag
-    - nestif
+    - exhaustruct
     - nlreturn
     - nonamedreturns
     - noinlineerr
     - paralleltest
     - recvcheck
     - testpackage
-    - thelper
     - tparallel
-    - unparam
     - varnamelen
     - whitespace
     - wrapcheck
@@ -41,8 +24,15 @@ linters:
     goconst:
       min-len: 2
       min-occurrences: 3
+    cyclop:
+      max-complexity: 20
     gocyclo:
-      min-complexity: 45
+      min-complexity: 20
+    exhaustive:
+      default-signifies-exhaustive: true
+      default-case-required: true
+    lll:
+      line-length: 180
   exclusions:
     generated: lax
     presets:
@@ -58,6 +48,7 @@ formatters:
   enable:
     - gofmt
     - goimports
+    - gofumpt
   exclusions:
     generated: lax
     paths:
diff --git a/vendor/github.com/go-openapi/spec/CONTRIBUTORS.md b/vendor/github.com/go-openapi/spec/CONTRIBUTORS.md
new file mode 100644 (file)
index 0000000..06a4d7b
--- /dev/null
@@ -0,0 +1,50 @@
+# Contributors
+
+- Repository: ['go-openapi/spec']
+
+| Total Contributors | Total Contributions |
+| --- | --- |
+| 38  | 386  |
+
+| Username | All Time Contribution Count | All Commits |
+| --- | --- | --- |
+| @casualjim | 191 | https://github.com/go-openapi/spec/commits?author=casualjim |
+| @fredbi | 84 | https://github.com/go-openapi/spec/commits?author=fredbi |
+| @pytlesk4 | 26 | https://github.com/go-openapi/spec/commits?author=pytlesk4 |
+| @kul-amr | 10 | https://github.com/go-openapi/spec/commits?author=kul-amr |
+| @keramix | 10 | https://github.com/go-openapi/spec/commits?author=keramix |
+| @youyuanwu | 8 | https://github.com/go-openapi/spec/commits?author=youyuanwu |
+| @pengsrc | 7 | https://github.com/go-openapi/spec/commits?author=pengsrc |
+| @alphacentory | 5 | https://github.com/go-openapi/spec/commits?author=alphacentory |
+| @mtfelian | 4 | https://github.com/go-openapi/spec/commits?author=mtfelian |
+| @Capstan | 4 | https://github.com/go-openapi/spec/commits?author=Capstan |
+| @sdghchj | 4 | https://github.com/go-openapi/spec/commits?author=sdghchj |
+| @databus23 | 2 | https://github.com/go-openapi/spec/commits?author=databus23 |
+| @vburenin | 2 | https://github.com/go-openapi/spec/commits?author=vburenin |
+| @petrkotas | 2 | https://github.com/go-openapi/spec/commits?author=petrkotas |
+| @nikhita | 2 | https://github.com/go-openapi/spec/commits?author=nikhita |
+| @hypnoglow | 2 | https://github.com/go-openapi/spec/commits?author=hypnoglow |
+| @carvind | 2 | https://github.com/go-openapi/spec/commits?author=carvind |
+| @ujjwalsh | 1 | https://github.com/go-openapi/spec/commits?author=ujjwalsh |
+| @mbohlool | 1 | https://github.com/go-openapi/spec/commits?author=mbohlool |
+| @j2gg0s | 1 | https://github.com/go-openapi/spec/commits?author=j2gg0s |
+| @ishveda | 1 | https://github.com/go-openapi/spec/commits?author=ishveda |
+| @micln | 1 | https://github.com/go-openapi/spec/commits?author=micln |
+| @GlenDC | 1 | https://github.com/go-openapi/spec/commits?author=GlenDC |
+| @agmikhailov | 1 | https://github.com/go-openapi/spec/commits?author=agmikhailov |
+| @tgraf | 1 | https://github.com/go-openapi/spec/commits?author=tgraf |
+| @zhsj | 1 | https://github.com/go-openapi/spec/commits?author=zhsj |
+| @sebastien-rosset | 1 | https://github.com/go-openapi/spec/commits?author=sebastien-rosset |
+| @alexandear | 1 | https://github.com/go-openapi/spec/commits?author=alexandear |
+| @morlay | 1 | https://github.com/go-openapi/spec/commits?author=morlay |
+| @mikedanese | 1 | https://github.com/go-openapi/spec/commits?author=mikedanese |
+| @koron | 1 | https://github.com/go-openapi/spec/commits?author=koron |
+| @honza | 1 | https://github.com/go-openapi/spec/commits?author=honza |
+| @gbjk | 1 | https://github.com/go-openapi/spec/commits?author=gbjk |
+| @faguirre1 | 1 | https://github.com/go-openapi/spec/commits?author=faguirre1 |
+| @ethantkoenig | 1 | https://github.com/go-openapi/spec/commits?author=ethantkoenig |
+| @sttts | 1 | https://github.com/go-openapi/spec/commits?author=sttts |
+| @ChandanChainani | 1 | https://github.com/go-openapi/spec/commits?author=ChandanChainani |
+| @bvwells | 1 | https://github.com/go-openapi/spec/commits?author=bvwells |
+
+ _this file was generated by the [Contributors GitHub Action](https://github.com/github/contributors)_
index 3203bd2556d6ceea7e4ec3f0d2e58f4d74d33ef0..5a877d2808f4d07d1a73751f92aeb3d03459abe4 100644 (file)
@@ -1,15 +1,28 @@
-# OpenAPI v2 object model [![Build Status](https://github.com/go-openapi/spec/actions/workflows/go-test.yml/badge.svg)](https://github.com/go-openapi/spec/actions?query=workflow%3A"go+test") [![codecov](https://codecov.io/gh/go-openapi/spec/branch/master/graph/badge.svg)](https://codecov.io/gh/go-openapi/spec)
+# spec
 
-[![Slack Status](https://slackin.goswagger.io/badge.svg)](https://slackin.goswagger.io)
-[![license](http://img.shields.io/badge/license-Apache%20v2-orange.svg)](https://raw.githubusercontent.com/go-openapi/spec/master/LICENSE)
-[![Go Reference](https://pkg.go.dev/badge/github.com/go-openapi/spec.svg)](https://pkg.go.dev/github.com/go-openapi/spec)
-[![Go Report Card](https://goreportcard.com/badge/github.com/go-openapi/spec)](https://goreportcard.com/report/github.com/go-openapi/spec)
+<!-- Badges: status  -->
+[![Tests][test-badge]][test-url] [![Coverage][cov-badge]][cov-url] [![CI vuln scan][vuln-scan-badge]][vuln-scan-url] [![CodeQL][codeql-badge]][codeql-url]
+<!-- Badges: release & docker images  -->
+<!-- Badges: code quality  -->
+<!-- Badges: license & compliance -->
+[![Release][release-badge]][release-url] [![Go Report Card][gocard-badge]][gocard-url] [![CodeFactor Grade][codefactor-badge]][codefactor-url] [![License][license-badge]][license-url]
+<!-- Badges: documentation & support -->
+<!-- Badges: others & stats -->
+[![GoDoc][godoc-badge]][godoc-url] [![Slack Channel][slack-logo]![slack-badge]][slack-url] [![go version][goversion-badge]][goversion-url] ![Top language][top-badge] ![Commits since latest release][commits-badge]
 
-The object model for OpenAPI specification documents.
+---
 
-## Licensing
+The object model for OpenAPI v2 specification documents.
 
-This library ships under the [SPDX-License-Identifier: Apache-2.0](./LICENSE).
+## Status
+
+API is stable.
+
+## Import this library in your project
+
+```cmd
+go get github.com/go-openapi/spec
+```
 
 ### FAQ
 
@@ -56,3 +69,67 @@ This library ships under the [SPDX-License-Identifier: Apache-2.0](./LICENSE).
 > This `id` does not conflict with any property named `id`.
 >
 > See also https://github.com/go-openapi/spec/issues/23
+
+## Change log
+
+See <https://github.com/go-openapi/spec/releases>
+
+## References
+
+<https://github.com/OAI/OpenAPI-Specification/blob/main/versions/2.0.md>
+
+## Licensing
+
+This library ships under the [SPDX-License-Identifier: Apache-2.0](./LICENSE).
+
+## Other documentation
+
+* [All-time contributors](./CONTRIBUTORS.md)
+* [Contributing guidelines](.github/CONTRIBUTING.md)
+* [Maintainers documentation](docs/MAINTAINERS.md)
+* [Code style](docs/STYLE.md)
+
+## Cutting a new release
+
+Maintainers can cut a new release by either:
+
+* running [this workflow](https://github.com/go-openapi/spec/actions/workflows/bump-release.yml)
+* or pushing a semver tag
+  * signed tags are preferred
+  * The tag message is prepended to release notes
+
+<!-- Badges: status  -->
+[test-badge]: https://github.com/go-openapi/spec/actions/workflows/go-test.yml/badge.svg
+[test-url]: https://github.com/go-openapi/spec/actions/workflows/go-test.yml
+[cov-badge]: https://codecov.io/gh/go-openapi/spec/branch/master/graph/badge.svg
+[cov-url]: https://codecov.io/gh/go-openapi/spec
+[vuln-scan-badge]: https://github.com/go-openapi/spec/actions/workflows/scanner.yml/badge.svg
+[vuln-scan-url]: https://github.com/go-openapi/spec/actions/workflows/scanner.yml
+[codeql-badge]: https://github.com/go-openapi/spec/actions/workflows/codeql.yml/badge.svg
+[codeql-url]: https://github.com/go-openapi/spec/actions/workflows/codeql.yml
+<!-- Badges: release & docker images  -->
+[release-badge]: https://badge.fury.io/gh/go-openapi%2Fspec.svg
+[release-url]: https://badge.fury.io/gh/go-openapi%2Fspec
+[gomod-badge]: https://badge.fury.io/go/github.com%2Fgo-openapi%2Fspec.svg
+[gomod-url]: https://badge.fury.io/go/github.com%2Fgo-openapi%2Fspec
+<!-- Badges: code quality  -->
+[gocard-badge]: https://goreportcard.com/badge/github.com/go-openapi/spec
+[gocard-url]: https://goreportcard.com/report/github.com/go-openapi/spec
+[codefactor-badge]: https://img.shields.io/codefactor/grade/github/go-openapi/spec
+[codefactor-url]: https://www.codefactor.io/repository/github/go-openapi/spec
+<!-- Badges: documentation & support -->
+[doc-badge]: https://img.shields.io/badge/doc-site-blue?link=https%3A%2F%2Fgoswagger.io%2Fgo-openapi%2F
+[doc-url]: https://goswagger.io/go-openapi
+[godoc-badge]: https://pkg.go.dev/badge/github.com/go-openapi/spec
+[godoc-url]: http://pkg.go.dev/github.com/go-openapi/spec
+[slack-logo]: https://a.slack-edge.com/e6a93c1/img/icons/favicon-32.png
+[slack-badge]: https://img.shields.io/badge/slack-blue?link=https%3A%2F%2Fgoswagger.slack.com%2Farchives%2FC04R30YM
+[slack-url]: https://goswagger.slack.com/archives/C04R30YMU
+<!-- Badges: license & compliance -->
+[license-badge]: http://img.shields.io/badge/license-Apache%20v2-orange.svg
+[license-url]: https://github.com/go-openapi/spec/?tab=Apache-2.0-1-ov-file#readme
+<!-- Badges: others & stats -->
+[goversion-badge]: https://img.shields.io/github/go-mod/go-version/go-openapi/spec
+[goversion-url]: https://github.com/go-openapi/spec/blob/master/go.mod
+[top-badge]: https://img.shields.io/github/languages/top/go-openapi/spec
+[commits-badge]: https://img.shields.io/github/commits-since/go-openapi/spec/latest
diff --git a/vendor/github.com/go-openapi/spec/SECURITY.md b/vendor/github.com/go-openapi/spec/SECURITY.md
new file mode 100644 (file)
index 0000000..2a7b6f0
--- /dev/null
@@ -0,0 +1,19 @@
+# Security Policy
+
+This policy outlines the commitment and practices of the go-openapi maintainers regarding security.
+
+## Supported Versions
+
+| Version | Supported          |
+| ------- | ------------------ |
+| 0.22.x  | :white_check_mark: |
+
+## Reporting a vulnerability
+
+If you become aware of a security vulnerability that affects the current repository,
+please report it privately to the maintainers.
+
+Please follow the instructions provided by github to
+[Privately report a security vulnerability](https://docs.github.com/en/code-security/security-advisories/guidance-on-reporting-and-writing-information-about-vulnerabilities/privately-reporting-a-security-vulnerability#privately-reporting-a-security-vulnerability).
+
+TL;DR: on Github, navigate to the project's "Security" tab then click on "Report a vulnerability".
index cc4bd1cba1ba5e502a80e4c4f44d11465935656e..ff45350ab4ad985332e0bdfcf0cd5fcb84274c22 100644 (file)
@@ -545,6 +545,9 @@ func expandParameterOrResponse(input any, resolver *schemaLoader, basePath strin
                }
 
                ref, sch, _ = getRefAndSchema(input)
+               if ref == nil {
+                       ref = &Ref{} // empty ref
+               }
        }
 
        if ref.String() != "" {
index c3ea810aaf34d562770d0fd55e6c9fcfbb26a9d4..e1d7c58d72b00feefe412abee3f33a2be0a4a2f2 100644 (file)
@@ -84,7 +84,7 @@ func denormalizeRef(ref *Ref, originalRelativeBase, id string) Ref {
        if id != "" {
                idBaseURL, err := parseURL(id)
                if err == nil { // if the schema id is not usable as a URI, ignore it
-                       if ref, ok := rebase(ref, idBaseURL, true); ok { // rebase, but keep references to root unchaged (do not want $ref: "")
+                       if ref, ok := rebase(ref, idBaseURL, true); ok { // rebase, but keep references to root unchanged (do not want $ref: "")
                                // $ref relative to the ID of the schema in the root document
                                return ref
                        }
index bbf8c7573723af7ba63c723eddcfef2968657118..29d9c4f482233c3d37aee61891cce8b23560fb8e 100644 (file)
@@ -176,7 +176,7 @@ func (o *Operation) Deprecate() *Operation {
        return o
 }
 
-// Undeprecate marks the operation as not deprected
+// Undeprecate marks the operation as not deprecated
 func (o *Operation) Undeprecate() *Operation {
        o.Deprecated = false
        return o
index c9279262942b2a82c62441ad5955b777fc39bcb6..1d1c759174a9854a83beb5de5b9447235472d709 100644 (file)
@@ -24,7 +24,7 @@ func (r Refable) MarshalJSON() ([]byte, error) {
        return r.Ref.MarshalJSON()
 }
 
-// UnmarshalJSON unmarshalss the ref from json
+// UnmarshalJSON unmarshals the ref from json
 func (r *Refable) UnmarshalJSON(d []byte) error {
        return json.Unmarshal(d, &r.Ref)
 }
index b82c182133253d691ce868004cfb42a7e691c44b..600574e1189fec06a77da645aeec63d6bf5fa433 100644 (file)
@@ -110,7 +110,7 @@ func ResolvePathItem(root any, ref Ref, options *ExpandOptions) (*PathItem, erro
 
 // ResolveItemsWithBase resolves parameter items reference against a context root and base path.
 //
-// NOTE: stricly speaking, this construct is not supported by Swagger 2.0.
+// NOTE: strictly speaking, this construct is not supported by Swagger 2.0.
 // Similarly, $ref are forbidden in response headers.
 func ResolveItemsWithBase(root any, ref Ref, options *ExpandOptions) (*Items, error) {
        result := new(Items)
index 05c3fc775cf20662774f88a4f3c0d0928f0bfe20..0d0aaabc487098728bbff4c8b2111639f250e3e1 100644 (file)
@@ -28,7 +28,7 @@ func MustLoadJSONSchemaDraft04() *Schema {
        return d
 }
 
-// JSONSchemaDraft04 loads the json schema document for json shema draft04
+// JSONSchemaDraft04 loads the json schema document for json schema draft04
 func JSONSchemaDraft04() (*Schema, error) {
        b, err := jsonschemaDraft04JSONBytes()
        if err != nil {
index 4f70e301732be36dfe892aeb1257cae85ce707e0..2c0dc424793614c91fe21023e02add37bd450ca4 100644 (file)
@@ -166,7 +166,7 @@ func (v CommonValidations) HasEnum() bool {
 // SchemaValidations describes the validation properties of a schema
 //
 // NOTE: at this moment, this is not embedded in SchemaProps because this would induce a breaking change
-// in the exported members: all initializers using litterals would fail.
+// in the exported members: all initializers using literals would fail.
 type SchemaValidations struct {
        CommonValidations
 
index 0a58729cf5cdc8dc11a451203cac5431ca9d8888..c0798b6854d7e25da6c8c548fe8f2d18c7d45759 100644 (file)
@@ -26,7 +26,7 @@ import (
 var (
        // MinClusterVersion is the min cluster version this etcd binary is compatible with.
        MinClusterVersion = "3.0.0"
-       Version           = "3.6.6"
+       Version           = "3.6.7"
        APIVersion        = "unknown"
 
        // Git SHA Value will be set during build
index 2b53a25e1e12e967e5601a80e69dc2111a53afc3..a6d0cbcc9e87aed90b53d5baf6338139b9221393 100644 (file)
@@ -8,3 +8,4 @@ nam
 valu
 thirdparty
 addOpt
+observ
index b01762ffcc74985ae2658dedb01b5f31c97b4032..1b1b2aff9a45a9e88cc8299bc0dc26f8d8d576b5 100644 (file)
@@ -197,6 +197,9 @@ linters:
         - float-compare
         - go-require
         - require-error
+    usetesting:
+      context-background: true
+      context-todo: true
   exclusions:
     generated: lax
     presets:
index 5328505888d3cb9a53218ee41c4709aaf239c073..994b677df7f835aaa5de1c2c98ed8c40b455e8b7 100644 (file)
@@ -1,4 +1,5 @@
 http://localhost
+https://localhost
 http://jaeger-collector
 https://github.com/open-telemetry/opentelemetry-go/milestone/
 https://github.com/open-telemetry/opentelemetry-go/projects
@@ -6,4 +7,7 @@ https://github.com/open-telemetry/opentelemetry-go/projects
 https?:\/\/github\.com\/open-telemetry\/semantic-conventions\/archive\/refs\/tags\/[^.]+\.zip\[[^]]+]
 file:///home/runner/work/opentelemetry-go/opentelemetry-go/libraries
 file:///home/runner/work/opentelemetry-go/opentelemetry-go/manual
-http://4.3.2.1:78/user/123
\ No newline at end of file
+http://4.3.2.1:78/user/123
+file:///home/runner/work/opentelemetry-go/opentelemetry-go/exporters/otlp/otlptrace/otlptracegrpc/internal/observ/dns:/:4317
+# URL works, but it has blocked link checkers.
+https://dl.acm.org/doi/10.1145/198429.198435
index f3abcfdc2e31713ab0301b9107fc2791609a78a6..ecbe0582c48fadb0af58a6b907a83497ea258339 100644 (file)
@@ -11,6 +11,74 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
 <!-- Released section -->
 <!-- Don't change this section unless doing release -->
 
+## [1.39.0/0.61.0/0.15.0/0.0.14] 2025-12-05
+
+### Added
+
+- Greatly reduce the cost of recording metrics in `go.opentelemetry.io/otel/sdk/metric` using hashing for map keys. (#7175)
+- Add `WithInstrumentationAttributeSet` option to `go.opentelemetry.io/otel/log`, `go.opentelemetry.io/otel/metric`, and `go.opentelemetry.io/otel/trace` packages.
+  This provides a concurrent-safe and performant alternative to `WithInstrumentationAttributes` by accepting a pre-constructed `attribute.Set`. (#7287)
+- Add experimental observability for the Prometheus exporter in `go.opentelemetry.io/otel/exporters/prometheus`.
+  Check the `go.opentelemetry.io/otel/exporters/prometheus/internal/x` package documentation for more information. (#7345)
+- Add experimental observability metrics in `go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc`. (#7353)
+- Add temporality selector functions `DeltaTemporalitySelector`, `CumulativeTemporalitySelector`, `LowMemoryTemporalitySelector` to `go.opentelemetry.io/otel/sdk/metric`. (#7434)
+- Add experimental observability metrics for simple log processor in `go.opentelemetry.io/otel/sdk/log`. (#7548)
+- Add experimental observability metrics in `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc`. (#7459)
+- Add experimental observability metrics in `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp`. (#7486)
+- Add experimental observability metrics for simple span processor in `go.opentelemetry.io/otel/sdk/trace`. (#7374)
+- Add experimental observability metrics in `go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp`. (#7512)
+- Add experimental observability metrics for manual reader in `go.opentelemetry.io/otel/sdk/metric`. (#7524)
+- Add experimental observability metrics for periodic reader in `go.opentelemetry.io/otel/sdk/metric`. (#7571)
+- Support `OTEL_EXPORTER_OTLP_LOGS_INSECURE` and `OTEL_EXPORTER_OTLP_INSECURE` environmental variables in `go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp`. (#7608)
+- Add `Enabled` method to the `Processor` interface in `go.opentelemetry.io/otel/sdk/log`.
+  All `Processor` implementations now include an `Enabled` method. (#7639)
+- The `go.opentelemetry.io/otel/semconv/v1.38.0` package.
+  The package contains semantic conventions from the `v1.38.0` version of the OpenTelemetry Semantic Conventions.
+  See the [migration documentation](./semconv/v1.38.0/MIGRATION.md) for information on how to upgrade from `go.opentelemetry.io/otel/semconv/v1.37.0.`(#7648)
+
+### Changed
+
+- `Distinct` in `go.opentelemetry.io/otel/attribute` is no longer guaranteed to uniquely identify an attribute set.
+  Collisions between `Distinct` values for different Sets are possible with extremely high cardinality (billions of series per instrument), but are highly unlikely. (#7175)
+- `WithInstrumentationAttributes` in `go.opentelemetry.io/otel/trace` synchronously de-duplicates the passed attributes instead of delegating it to the returned `TracerOption`. (#7266)
+- `WithInstrumentationAttributes` in `go.opentelemetry.io/otel/meter` synchronously de-duplicates the passed attributes instead of delegating it to the returned `MeterOption`. (#7266)
+- `WithInstrumentationAttributes` in `go.opentelemetry.io/otel/log` synchronously de-duplicates the passed attributes instead of delegating it to the returned `LoggerOption`. (#7266)
+- Rename the `OTEL_GO_X_SELF_OBSERVABILITY` environment variable to `OTEL_GO_X_OBSERVABILITY` in `go.opentelemetry.io/otel/sdk/trace`, `go.opentelemetry.io/otel/sdk/log`, and `go.opentelemetry.io/otel/exporters/stdout/stdouttrace`. (#7302)
+- Improve performance of histogram `Record` in `go.opentelemetry.io/otel/sdk/metric` when min and max are disabled using `NoMinMax`. (#7306)
+- Improve error handling for dropped data during translation by using `prometheus.NewInvalidMetric` in `go.opentelemetry.io/otel/exporters/prometheus`.
+  ⚠️ **Breaking Change:** Previously, these cases were only logged and scrapes succeeded.
+  Now, when translation would drop data (e.g., invalid label/value), the exporter emits a `NewInvalidMetric`, and Prometheus scrapes **fail with HTTP 500** by default.
+  To preserve the prior behavior (scrapes succeed while errors are logged), configure your Prometheus HTTP handler with: `promhttp.HandlerOpts{ ErrorHandling: promhttp.ContinueOnError }`. (#7363)
+- Replace fnv hash with xxhash in `go.opentelemetry.io/otel/attribute` for better performance. (#7371)
+- The default `TranslationStrategy` in `go.opentelemetry.io/exporters/prometheus` is changed from `otlptranslator.NoUTF8EscapingWithSuffixes` to `otlptranslator.UnderscoreEscapingWithSuffixes`. (#7421)
+- Improve performance of concurrent measurements in `go.opentelemetry.io/otel/sdk/metric`. (#7427)
+- Include W3C TraceFlags (bits 0–7) in the OTLP `Span.Flags` field in `go.opentelemetry.io/exporters/otlp/otlptrace/otlptracehttp` and `go.opentelemetry.io/exporters/otlp/otlptrace/otlptracegrpc`. (#7438)
+- The `ErrorType` function in `go.opentelemetry.io/otel/semconv/v1.37.0` now handles custom error types.
+  If an error implements an `ErrorType() string` method, the return value of that method will be used as the error type. (#7442)
+
+### Fixed
+
+- Fix `WithInstrumentationAttributes` options in `go.opentelemetry.io/otel/trace`, `go.opentelemetry.io/otel/metric`, and `go.opentelemetry.io/otel/log` to properly merge attributes when passed multiple times instead of replacing them.
+  Attributes with duplicate keys will use the last value passed. (#7300)
+- The equality of `attribute.Set` when using the `Equal` method is not affected by the user overriding the empty set pointed to by `attribute.EmptySet` in `go.opentelemetry.io/otel/attribute`. (#7357)
+- Return partial OTLP export errors to the caller in `go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc`. (#7372)
+- Return partial OTLP export errors to the caller in `go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp`. (#7372)
+- Return partial OTLP export errors to the caller in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc`. (#7372)
+- Return partial OTLP export errors to the caller in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp`. (#7372)
+- Return partial OTLP export errors to the caller in `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc`. (#7372)
+- Return partial OTLP export errors to the caller in `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp`. (#7372)
+- Fix `AddAttributes`, `SetAttributes`, `SetBody` on `Record` in `go.opentelemetry.io/otel/sdk/log` to not mutate input. (#7403)
+- Do not double record measurements of `RecordSet` methods in `go.opentelemetry.io/otel/semconv/v1.37.0`. (#7655)
+- Do not double record measurements of `RecordSet` methods in `go.opentelemetry.io/otel/semconv/v1.36.0`. (#7656)
+
+### Removed
+
+- Drop support for [Go 1.23]. (#7274)
+- Remove the `FilterProcessor` interface in `go.opentelemetry.io/otel/sdk/log`.
+  The `Enabled` method has been added to the `Processor` interface instead.
+  All `Processor` implementations must now implement the `Enabled` method.
+  Custom processors that do not filter records can implement `Enabled` to return `true`. (#7639)
+
 ## [1.38.0/0.60.0/0.14.0/0.0.13] 2025-08-29
 
 This release is the last to support [Go 1.23].
@@ -3430,8 +3498,10 @@ It contains api and sdk for trace and meter.
 - CircleCI build CI manifest files.
 - CODEOWNERS file to track owners of this project.
 
-[Unreleased]: https://github.com/open-telemetry/opentelemetry-go/compare/v1.38.0...HEAD
+[Unreleased]: https://github.com/open-telemetry/opentelemetry-go/compare/v1.39.0...HEAD
+[1.39.0/0.61.0/0.15.0/0.0.14]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.39.0
 [1.38.0/0.60.0/0.14.0/0.0.13]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.38.0
+[0.59.1]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/exporters/prometheus/v0.59.1
 [1.37.0/0.59.0/0.13.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.37.0
 [0.12.2]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/log/v0.12.2
 [0.12.1]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/log/v0.12.1
index 0b3ae855c190edb20462c61c0b1749ef80e140f4..ff5e1f76ecd5f980f259f2c04744163639c4f380 100644 (file)
@@ -54,8 +54,8 @@ go get -d go.opentelemetry.io/otel
 (This may print some warning about "build constraints exclude all Go
 files", just ignore it.)
 
-This will put the project in `${GOPATH}/src/go.opentelemetry.io/otel`. You
-can alternatively use `git` directly with:
+This will put the project in `${GOPATH}/src/go.opentelemetry.io/otel`.
+Alternatively, you can use `git` directly with:
 
 ```sh
 git clone https://github.com/open-telemetry/opentelemetry-go
@@ -65,8 +65,7 @@ git clone https://github.com/open-telemetry/opentelemetry-go
 that name is a kind of a redirector to GitHub that `go get` can
 understand, but `git` does not.)
 
-This would put the project in the `opentelemetry-go` directory in
-current working directory.
+This will add the project as `opentelemetry-go` within the current directory.
 
 Enter the newly created directory and add your fork as a new remote:
 
@@ -109,7 +108,7 @@ A PR is considered **ready to merge** when:
 
   This is not enforced through automation, but needs to be validated by the
   maintainer merging.
-  * At least one of the qualified approvals need to be from an
+  * At least one of the qualified approvals needs to be from an
     [Approver]/[Maintainer] affiliated with a different company than the author
     of the PR.
   * PRs introducing changes that have already been discussed and consensus
@@ -166,11 +165,11 @@ guidelines](https://opentelemetry.io/docs/specs/otel/library-guidelines).
 ### Focus on Capabilities, Not Structure Compliance
 
 OpenTelemetry is an evolving specification, one where the desires and
-use cases are clear, but the method to satisfy those uses cases are
+use cases are clear, but the methods to satisfy those use cases are
 not.
 
 As such, Contributions should provide functionality and behavior that
-conforms to the specification, but the interface and structure is
+conforms to the specification, but the interface and structure are
 flexible.
 
 It is preferable to have contributions follow the idioms of the
@@ -217,7 +216,7 @@ about dependency compatibility.
 This project does not partition dependencies based on the environment (i.e.
 `development`, `staging`, `production`).
 
-Only the dependencies explicitly included in the released modules have be
+Only the dependencies explicitly included in the released modules have been
 tested and verified to work with the released code. No other guarantee is made
 about the compatibility of other dependencies.
 
@@ -635,8 +634,8 @@ is not in their root name.
 
 The use of internal packages should be scoped to a single module. A sub-module
 should never import from a parent internal package. This creates a coupling
-between the two modules where a user can upgrade the parent without the child
-and if the internal package API has changed it will fail to upgrade[^3].
+between the two modules where a user can upgrade the parent without the child,
+and if the internal package API has changed, it will fail to upgrade[^3].
 
 There are two known exceptions to this rule:
 
@@ -657,7 +656,7 @@ this.
 
 ### Ignoring context cancellation
 
-OpenTelemetry API implementations need to ignore the cancellation of the context that are
+OpenTelemetry API implementations need to ignore the cancellation of the context that is
 passed when recording a value (e.g. starting a span, recording a measurement, emitting a log).
 Recording methods should not return an error describing the cancellation state of the context
 when they complete, nor should they abort any work.
@@ -675,6 +674,441 @@ force flushing telemetry, shutting down a signal provider) the context cancellat
 should be honored. This means all work done on behalf of the user provided context
 should be canceled.
 
+### Observability
+
+OpenTelemetry Go SDK components should be instrumented to enable users observability for the health and performance of the telemetry pipeline itself.
+This allows operators to understand how well their observability infrastructure is functioning and to identify potential issues before they impact their applications.
+
+This section outlines the best practices for building instrumentation in OpenTelemetry Go SDK components.
+
+#### Environment Variable Activation
+
+Observability features are currently experimental.
+They should be disabled by default and activated through the `OTEL_GO_X_OBSERVABILITY` environment variable.
+This follows the established experimental feature pattern used throughout the SDK.
+
+Components should check for this environment variable using a consistent pattern:
+
+```go
+import "go.opentelemetry.io/otel/*/internal/x"
+
+if x.Observability.Enabled() {
+    // Initialize observability metrics
+}
+```
+
+**References**:
+
+- [stdouttrace exporter](./exporters/stdout/stdouttrace/internal/x/x.go)
+- [sdk](./sdk/internal/x/x.go)
+
+#### Encapsulation
+
+Instrumentation should be encapsulated within a dedicated `struct` (e.g. `instrumentation`).
+It should not be mixed into the instrumented component.
+
+Prefer this:
+
+```go
+type SDKComponent struct {
+    inst *instrumentation
+}
+
+type instrumentation struct {
+       inflight otelconv.SDKComponentInflight
+       exported otelconv.SDKComponentExported
+}
+```
+
+To this:
+
+```go
+// ❌ Avoid this pattern.
+type SDKComponent struct {
+       /* other SDKComponent fields... */
+
+       inflight otelconv.SDKComponentInflight
+       exported otelconv.SDKComponentExported
+}
+```
+
+The instrumentation code should not bloat the code being instrumented.
+Likely, this means its own file, or its own package if it is complex or reused.
+
+#### Initialization
+
+Instrumentation setup should be explicit, side-effect free, and local to the relevant component.
+Avoid relying on global or implicit [side effects][side-effect] for initialization.
+
+Encapsulate setup in constructor functions, ensuring clear ownership and scope:
+
+```go
+import (
+       "errors"
+
+       semconv "go.opentelemetry.io/otel/semconv/v1.37.0"
+       "go.opentelemetry.io/otel/semconv/v1.37.0/otelconv"
+)
+
+type SDKComponent struct {
+    inst *instrumentation
+}
+
+func NewSDKComponent(config Config) (*SDKComponent, error) {
+    inst, err := newInstrumentation()
+    if err != nil {
+        return nil, err
+    }
+    return &SDKComponent{inst: inst}, nil
+}
+
+type instrumentation struct {
+    inflight otelconv.SDKComponentInflight
+    exported otelconv.SDKComponentExported
+}
+
+func newInstrumentation() (*instrumentation, error) {
+    if !x.Observability.Enabled() {
+        return nil, nil
+    }
+    meter := otel.GetMeterProvider().Meter(
+        "<component-package-name>",
+        metric.WithInstrumentationVersion(sdk.Version()),
+        metric.WithSchemaURL(semconv.SchemaURL),
+    )
+
+       inst := &instrumentation{}
+
+       var err, e error
+    inst.inflight, e = otelconv.NewSDKComponentInflight(meter)
+       err = errors.Join(err, e)
+
+    inst.exported, e = otelconv.NewSDKComponentExported(meter)
+       err = errors.Join(err, e)
+
+    return inst, err
+}
+```
+
+```go
+// ❌ Avoid this pattern.
+func (c *Component) initObservability() {
+       // Initialize observability metrics
+       if !x.Observability.Enabled() {
+               return
+       }
+
+       // Initialize observability metrics
+       c.inst = &instrumentation{/* ... */}
+}
+```
+
+[side-effect]: https://en.wikipedia.org/wiki/Side_effect_(computer_science)
+
+#### Performance
+
+When observability is disabled there should be little to no overhead.
+
+```go
+func (e *Exporter) ExportSpans(ctx context.Context, spans []trace.ReadOnlySpan) error {
+       if e.inst != nil {
+               attrs := expensiveOperation()
+               e.inst.recordSpanInflight(ctx, int64(len(spans)), attrs...)
+       }
+    // Export spans...
+}
+```
+
+```go
+// ❌ Avoid this pattern.
+func (e *Exporter) ExportSpans(ctx context.Context, spans []trace.ReadOnlySpan) error {
+       attrs := expensiveOperation()
+       e.inst.recordSpanInflight(ctx, int64(len(spans)), attrs...)
+    // Export spans...
+}
+
+func (i *instrumentation) recordSpanInflight(ctx context.Context, count int64, attrs ...attribute.KeyValue) {
+       if i == nil || i.inflight == nil {
+               return
+       }
+       i.inflight.Add(ctx, count, metric.WithAttributes(attrs...))
+}
+```
+
+When observability is enabled, the instrumentation code paths should be optimized to reduce allocation and computation overhead.
+
+##### Attribute and Option Allocation Management
+
+Pool attribute slices and options with [`sync.Pool`] to minimize allocations in measurement calls with dynamic attributes.
+
+```go
+var (
+       attrPool = sync.Pool{
+        New: func() any {
+                   // Pre-allocate common capacity
+               knownCap := 8 // Adjust based on expected usage
+            s := make([]attribute.KeyValue, 0, knownCap)
+               // Return a pointer to avoid extra allocation on Put().
+            return &s
+        },
+    }
+
+       addOptPool = &sync.Pool{
+               New: func() any {
+                       const n = 1 // WithAttributeSet
+                       o := make([]metric.AddOption, 0, n)
+               // Return a pointer to avoid extra allocation on Put().
+                       return &o
+               },
+       }
+)
+
+func (i *instrumentation) record(ctx context.Context, value int64, baseAttrs ...attribute.KeyValue) {
+    attrs := attrPool.Get().(*[]attribute.KeyValue)
+    defer func() {
+        *attrs = (*attrs)[:0] // Reset.
+        attrPool.Put(attrs)
+    }()
+
+    *attrs = append(*attrs, baseAttrs...)
+    // Add any dynamic attributes.
+    *attrs = append(*attrs, semconv.OTelComponentName("exporter-1"))
+
+       addOpt := addOptPool.Get().(*[]metric.AddOption)
+       defer func() {
+               *addOpt = (*addOpt)[:0]
+               addOptPool.Put(addOpt)
+       }()
+
+       set := attribute.NewSet(*attrs...)
+       *addOpt = append(*addOpt, metric.WithAttributeSet(set))
+
+    i.counter.Add(ctx, value, *addOpt...)
+}
+```
+
+Pools are most effective when there are many pooled objects of the same sufficiently large size, and the objects are repeatedly used.
+This amortizes the cost of allocation and synchronization.
+Ideally, the pools should be scoped to be used as widely as possible within the component to maximize this efficiency while still ensuring correctness.
+
+[`sync.Pool`]: https://pkg.go.dev/sync#Pool
+
+##### Cache common attribute sets for repeated measurements
+
+If a static set of attributes are used for measurements and they are known at compile time, pre-compute and cache these attributes.
+
+```go
+type spanLiveSetKey struct {
+       sampled bool
+}
+
+var spanLiveSetCache = map[spanLiveSetKey]attribute.Set{
+       {true}: attribute.NewSet(
+               otelconv.SDKSpanLive{}.AttrSpanSamplingResult(
+                       otelconv.SpanSamplingResultRecordAndSample,
+               ),
+       ),
+       {false}: attribute.NewSet(
+               otelconv.SDKSpanLive{}.AttrSpanSamplingResult(
+                       otelconv.SpanSamplingResultRecordOnly,
+               ),
+       ),
+}
+
+func spanLiveSet(sampled bool) attribute.Set {
+       key := spanLiveSetKey{sampled: sampled}
+       return spanLiveSetCache[key]
+}
+```
+
+##### Benchmarking
+
+Always provide benchmarks when introducing or refactoring instrumentation.
+Demonstrate the impact (allocs/op, B/op, ns/op) in enabled/disabled scenarios:
+
+```go
+func BenchmarkExportSpans(b *testing.B) {
+    scenarios := []struct {
+        name           string
+        obsEnabled bool
+    }{
+        {"ObsDisabled", false},
+        {"ObsEnabled", true},
+    }
+    for _, scenario := range scenarios {
+        b.Run(scenario.name, func(b *testing.B) {
+            b.Setenv(
+                               "OTEL_GO_X_OBSERVABILITY",
+                               strconv.FormatBool(scenario.obsEnabled),
+                       )
+
+            exporter := NewExporter()
+            spans := generateTestSpans(100)
+
+            b.ResetTimer()
+            b.ReportAllocs()
+
+            for i := 0; i < b.N; i++ {
+                _ = exporter.ExportSpans(context.Background(), spans)
+            }
+        })
+    }
+}
+```
+
+#### Error Handling and Robustness
+
+Errors should be reported back to the caller if possible, and partial failures should be handled as gracefully as possible.
+
+```go
+func newInstrumentation() (*instrumentation, error) {
+    if !x.Observability.Enabled() {
+        return nil, nil
+    }
+    m := otel.GetMeterProvider().Meter(/* initialize meter */)
+    counter, err := otelconv.NewSDKComponentCounter(m)
+       // Use the partially initialized counter if available.
+       i := &instrumentation{counter: counter}
+       // Return any error to the caller.
+    return i, err
+}
+```
+
+```go
+// ❌ Avoid this pattern.
+func newInstrumentation() *instrumentation {
+    if !x.Observability.Enabled() {
+        return nil, nil
+    }
+    m := otel.GetMeterProvider().Meter(/* initialize meter */)
+    counter, err := otelconv.NewSDKComponentCounter(m)
+       if err != nil {
+               // ❌ Do not dump the error to the OTel Handler. Return it to the
+               // caller.
+               otel.Handle(err)
+               // ❌ Do not return nil if we can still use the partially initialized
+               // counter.
+               return nil
+       }
+    return &instrumentation{counter: counter}
+}
+```
+
+If the instrumented component cannot report the error to the user, let it report the error to `otel.Handle`.
+
+#### Context Propagation
+
+Ensure observability measurements receive the correct context, especially for trace exemplars and distributed context:
+
+```go
+func (e *Exporter) ExportSpans(ctx context.Context, spans []trace.ReadOnlySpan) error {
+    // Use the provided context for observability measurements
+    e.inst.recordSpanExportStarted(ctx, len(spans))
+    err := e.doExport(ctx, spans)
+
+    if err != nil {
+        e.inst.recordSpanExportFailed(ctx, len(spans), err)
+    } else {
+        e.inst.recordSpanExportSucceeded(ctx, len(spans))
+    }
+    return err
+}
+```
+
+```go
+// ❌ Avoid this pattern.
+func (e *Exporter) ExportSpans(ctx context.Context, spans []trace.ReadOnlySpan) error {
+    // ❌ Do not break the context propagation.
+    e.inst.recordSpanExportStarted(context.Background(), len(spans))
+    err := e.doExport(ctx, spans)
+
+       /* ... */
+    return err
+}
+```
+
+#### Semantic Conventions Compliance
+
+All observability metrics should follow the [OpenTelemetry Semantic Conventions for SDK metrics](https://github.com/open-telemetry/semantic-conventions/blob/1cf2476ae5e518225a766990a28a6d5602bd5a30/docs/otel/sdk-metrics.md).
+
+Use the metric semantic conventions convenience package [otelconv](./semconv/v1.37.0/otelconv/metric.go).
+
+##### Component Identification
+
+Component names and types should follow [semantic convention](https://github.com/open-telemetry/semantic-conventions/blob/1cf2476ae5e518225a766990a28a6d5602bd5a30/docs/registry/attributes/otel.md#otel-component-attributes).
+
+If a component is not a well-known type specified in the semantic conventions, use the package path scope type as a stable identifier.
+
+```go
+componentType := "go.opentelemetry.io/otel/sdk/trace.Span"
+```
+
+```go
+// ❌ Do not do this.
+componentType := "trace-span"
+```
+
+The component name should be a stable unique identifier for the specific instance of the component.
+
+Use a global counter to ensure uniqueness if necessary.
+
+```go
+// Unique 0-based ID counter for component instances.
+var componentIDCounter atomic.Int64
+
+// nextID returns the next unique ID for a component.
+func nextID() int64 {
+       return componentIDCounter.Add(1) - 1
+}
+
+// componentName returns a unique name for the component instance.
+func componentName() attribute.KeyValue {
+       id := nextID()
+       name := fmt.Sprintf("%s/%d", componentType, id)
+       return semconv.OTelComponentName(name)
+}
+```
+
+The component ID will need to be resettable for deterministic testing.
+If tests are in a different package than the component being tested (i.e. a `<component package>_test` package name), use a generated `counter` internal package to manage the counter.
+See [stdouttrace exporter example](./exporters/stdout/stdouttrace/internal/gen.go) for reference.
+
+#### Testing
+
+Use deterministic testing with isolated state:
+
+```go
+func TestObservability(t *testing.T) {
+       // Restore state after test to ensure this does not affect other tests.
+    prev := otel.GetMeterProvider()
+    t.Cleanup(func() { otel.SetMeterProvider(prev) })
+
+    // Isolate the meter provider for deterministic testing
+    reader := metric.NewManualReader()
+    meterProvider := metric.NewMeterProvider(metric.WithReader(reader))
+    otel.SetMeterProvider(meterProvider)
+
+       // Use t.Setenv to ensure environment variable is restored after test.
+    t.Setenv("OTEL_GO_X_OBSERVABILITY", "true")
+
+       // Reset component ID counter to ensure deterministic component names.
+       componentIDCounter.Store(0)
+       /* ... test code ... */
+}
+```
+
+Test order should not affect results.
+Ensure that any global state (e.g. component ID counters) is reset between tests.
+
 ## Approvers and Maintainers
 
 ### Maintainers
@@ -696,7 +1130,6 @@ For more information about the approver role, see the [community repository](htt
 ### Triagers
 
 - [Alex Kats](https://github.com/akats7), Capital One
-- [Cheng-Zhen Yang](https://github.com/scorpionknifes), Independent
 
 For more information about the triager role, see the [community repository](https://github.com/open-telemetry/community/blob/main/guides/contributor/membership.md#triager).
 
@@ -704,6 +1137,7 @@ For more information about the triager role, see the [community repository](http
 
 - [Aaron Clawson](https://github.com/MadVikingGod)
 - [Anthony Mirabella](https://github.com/Aneurysm9)
+- [Cheng-Zhen Yang](https://github.com/scorpionknifes)
 - [Chester Cheung](https://github.com/hanyuancheung)
 - [Evan Torrie](https://github.com/evantorrie)
 - [Gustavo Silva Paiva](https://github.com/paivagustavo)
index bc0f1f92d1f85fcd1c9946bc81945d77202183b6..44870248c322425d1acb2ca34d356194b2596e54 100644 (file)
@@ -146,11 +146,12 @@ build-tests/%:
 
 # Tests
 
-TEST_TARGETS := test-default test-bench test-short test-verbose test-race test-concurrent-safe
+TEST_TARGETS := test-default test-bench test-short test-verbose test-race test-concurrent-safe test-fuzz
 .PHONY: $(TEST_TARGETS) test
 test-default test-race: ARGS=-race
 test-bench:   ARGS=-run=xxxxxMatchNothingxxxxx -test.benchtime=1ms -bench=.
 test-short:   ARGS=-short
+test-fuzz:    ARGS=-fuzztime=10s -fuzz
 test-verbose: ARGS=-v -race
 test-concurrent-safe: ARGS=-run=ConcurrentSafe -count=100 -race
 test-concurrent-safe: TIMEOUT=120
index 6b7ab5f219344c673cada48d32cdce53ec4f5874..c6335954311b107751431fa194fbe36f692039ff 100644 (file)
@@ -55,25 +55,18 @@ Currently, this project supports the following environments.
 |----------|------------|--------------|
 | Ubuntu   | 1.25       | amd64        |
 | Ubuntu   | 1.24       | amd64        |
-| Ubuntu   | 1.23       | amd64        |
 | Ubuntu   | 1.25       | 386          |
 | Ubuntu   | 1.24       | 386          |
-| Ubuntu   | 1.23       | 386          |
 | Ubuntu   | 1.25       | arm64        |
 | Ubuntu   | 1.24       | arm64        |
-| Ubuntu   | 1.23       | arm64        |
-| macOS 13 | 1.25       | amd64        |
-| macOS 13 | 1.24       | amd64        |
-| macOS 13 | 1.23       | amd64        |
+| macOS    | 1.25       | amd64        |
+| macOS    | 1.24       | amd64        |
 | macOS    | 1.25       | arm64        |
 | macOS    | 1.24       | arm64        |
-| macOS    | 1.23       | arm64        |
 | Windows  | 1.25       | amd64        |
 | Windows  | 1.24       | amd64        |
-| Windows  | 1.23       | amd64        |
 | Windows  | 1.25       | 386          |
 | Windows  | 1.24       | 386          |
-| Windows  | 1.23       | 386          |
 
 While this project should work for other systems, no compatibility guarantees
 are made for those systems currently.
index 1ddcdef0396b299a352c6a3444970cb8331d98e9..861756fd74539898171ce2c559941357b6798216 100644 (file)
@@ -24,7 +24,7 @@ Ensure things look correct before submitting a pull request to include the addit
 
 ## Breaking changes validation
 
-You can run `make gorelease` that runs [gorelease](https://pkg.go.dev/golang.org/x/exp/cmd/gorelease) to ensure that there are no unwanted changes done in the public API.
+You can run `make gorelease` which runs [gorelease](https://pkg.go.dev/golang.org/x/exp/cmd/gorelease) to ensure that there are no unwanted changes made in the public API.
 
 You can check/report problems with `gorelease` [here](https://golang.org/issues/26420).
 
@@ -62,7 +62,7 @@ Update go.mod for submodules to depend on the new release which will happen in t
     ```
 
 3. Update the [Changelog](./CHANGELOG.md).
-   - Make sure all relevant changes for this release are included and are in language that non-contributors to the project can understand.
+   - Make sure all relevant changes for this release are included and are written in language that non-contributors to the project can understand.
        To verify this, you can look directly at the commits since the `<last tag>`.
 
        ```
@@ -107,34 +107,50 @@ It is critical you make sure the version you push upstream is correct.
     ...
     ```
 
-## Release
+## Sign artifacts
 
-Finally create a Release for the new `<new tag>` on GitHub.
-The release body should include all the release notes from the Changelog for this release.
+To ensure we comply with CNCF best practices, we need to sign the release artifacts.
 
-### Sign the Release Artifact
+Download the `.tar.gz` and `.zip` archives from the [tags page](https://github.com/open-telemetry/opentelemetry-go/tags) for the new release tag.
+Both archives need to be signed with your GPG key.
 
-To ensure we comply with CNCF best practices, we need to sign the release artifact.
-The tarball attached to the GitHub release needs to be signed with your GPG key.
+You can use [this script] to verify the contents of the archives before signing them.
 
-Follow [these steps] to sign the release artifact and upload it to GitHub.
-You can use [this script] to verify the contents of the tarball before signing it.
+To find your GPG key ID, run:
 
-Be sure to use the correct GPG key when signing the release artifact.
+```terminal
+gpg --list-secret-keys --keyid-format=long
+```
+
+The key ID is the 16-character string after `sec rsa4096/` (or similar).
+
+Set environment variables and sign both artifacts:
 
 ```terminal
-gpg --local-user <key-id> --armor --detach-sign opentelemetry-go-<version>.tar.gz
+export VERSION="<version>"  # e.g., v1.32.0
+export KEY_ID="<your-gpg-key-id>"
+
+gpg --local-user $KEY_ID --armor --detach-sign opentelemetry-go-$VERSION.tar.gz
+gpg --local-user $KEY_ID --armor --detach-sign opentelemetry-go-$VERSION.zip
 ```
 
-You can verify the signature with:
+You can verify the signatures with:
 
 ```terminal
-gpg --verify opentelemetry-go-<version>.tar.gz.asc opentelemetry-go-<version>.tar.gz
+gpg --verify opentelemetry-go-$VERSION.tar.gz.asc opentelemetry-go-$VERSION.tar.gz
+gpg --verify opentelemetry-go-$VERSION.zip.asc opentelemetry-go-$VERSION.zip
 ```
 
-[these steps]: https://wiki.debian.org/Creating%20signed%20GitHub%20releases
 [this script]: https://github.com/MrAlias/attest-sh
 
+## Release
+
+Finally create a Release for the new `<new tag>` on GitHub.
+The release body should include all the release notes from the Changelog for this release.
+
+***IMPORTANT***: GitHub Releases are immutable once created.
+You must upload the signed artifacts (`.tar.gz`, `.tar.gz.asc`, `.zip`, and `.zip.asc`) when creating the release, as they cannot be added or modified later.
+
 ## Post-Release
 
 ### Contrib Repository
@@ -160,14 +176,6 @@ This helps track what changes were included in each release.
 
 Once all related issues and PRs have been added to the milestone, close the milestone.
 
-### Demo Repository
-
-Bump the dependencies in the following Go services:
-
-- [`accounting`](https://github.com/open-telemetry/opentelemetry-demo/tree/main/src/accounting)
-- [`checkoutservice`](https://github.com/open-telemetry/opentelemetry-demo/tree/main/src/checkout)
-- [`productcatalogservice`](https://github.com/open-telemetry/opentelemetry-demo/tree/main/src/product-catalog)
-
 ### Close the `Version Release` issue
 
 Once the todo list in the `Version Release` issue is complete, close the issue.
index b8cb605c166963b194820198365f6ed52275af57..b27c9e84f51c1ca0c3560b12c90958eb668537cc 100644 (file)
@@ -83,7 +83,7 @@ is designed so the following goals can be achieved.
       in either the module path or the import path.
   * In addition to public APIs, telemetry produced by stable instrumentation
     will remain stable and backwards compatible. This is to avoid breaking
-    alerts and dashboard.
+    alerts and dashboards.
   * Modules will be used to encapsulate instrumentation, detectors, exporters,
     propagators, and any other independent sets of related components.
     * Experimental modules still under active development will be versioned at
index 6333d34b3102566d75a028c60aa648d03c19513b..6cc1a1655cf2d49a048ed2b83d6069109d4bc5d2 100644 (file)
@@ -16,7 +16,7 @@ type (
        // set into a wire representation.
        Encoder interface {
                // Encode returns the serialized encoding of the attribute set using
-               // its Iterator. This result may be cached by a attribute.Set.
+               // its Iterator. This result may be cached by an attribute.Set.
                Encode(iterator Iterator) string
 
                // ID returns a value that is unique for each class of attribute
diff --git a/vendor/go.opentelemetry.io/otel/attribute/hash.go b/vendor/go.opentelemetry.io/otel/attribute/hash.go
new file mode 100644 (file)
index 0000000..6aa69ae
--- /dev/null
@@ -0,0 +1,92 @@
+// Copyright The OpenTelemetry Authors
+// SPDX-License-Identifier: Apache-2.0
+
+package attribute // import "go.opentelemetry.io/otel/attribute"
+
+import (
+       "fmt"
+       "reflect"
+
+       "go.opentelemetry.io/otel/attribute/internal/xxhash"
+)
+
+// Type identifiers. These identifiers are hashed before the value of the
+// corresponding type. This is done to distinguish values that are hashed with
+// the same value representation (e.g. `int64(1)` and `true`, []int64{0} and
+// int64(0)).
+//
+// These are all 8 byte length strings converted to a uint64 representation. A
+// uint64 is used instead of the string directly as an optimization, it avoids
+// the for loop in [xxhash] which adds minor overhead.
+const (
+       boolID         uint64 = 7953749933313450591 // "_boolean" (little endian)
+       int64ID        uint64 = 7592915492740740150 // "64_bit_i" (little endian)
+       float64ID      uint64 = 7376742710626956342 // "64_bit_f" (little endian)
+       stringID       uint64 = 6874584755375207263 // "_string_" (little endian)
+       boolSliceID    uint64 = 6875993255270243167 // "_[]bool_" (little endian)
+       int64SliceID   uint64 = 3762322556277578591 // "_[]int64" (little endian)
+       float64SliceID uint64 = 7308324551835016539 // "[]double" (little endian)
+       stringSliceID  uint64 = 7453010373645655387 // "[]string" (little endian)
+)
+
+// hashKVs returns a new xxHash64 hash of kvs.
+func hashKVs(kvs []KeyValue) uint64 {
+       h := xxhash.New()
+       for _, kv := range kvs {
+               h = hashKV(h, kv)
+       }
+       return h.Sum64()
+}
+
+// hashKV returns the xxHash64 hash of kv with h as the base.
+func hashKV(h xxhash.Hash, kv KeyValue) xxhash.Hash {
+       h = h.String(string(kv.Key))
+
+       switch kv.Value.Type() {
+       case BOOL:
+               h = h.Uint64(boolID)
+               h = h.Uint64(kv.Value.numeric)
+       case INT64:
+               h = h.Uint64(int64ID)
+               h = h.Uint64(kv.Value.numeric)
+       case FLOAT64:
+               h = h.Uint64(float64ID)
+               // Assumes numeric stored with math.Float64bits.
+               h = h.Uint64(kv.Value.numeric)
+       case STRING:
+               h = h.Uint64(stringID)
+               h = h.String(kv.Value.stringly)
+       case BOOLSLICE:
+               h = h.Uint64(boolSliceID)
+               rv := reflect.ValueOf(kv.Value.slice)
+               for i := 0; i < rv.Len(); i++ {
+                       h = h.Bool(rv.Index(i).Bool())
+               }
+       case INT64SLICE:
+               h = h.Uint64(int64SliceID)
+               rv := reflect.ValueOf(kv.Value.slice)
+               for i := 0; i < rv.Len(); i++ {
+                       h = h.Int64(rv.Index(i).Int())
+               }
+       case FLOAT64SLICE:
+               h = h.Uint64(float64SliceID)
+               rv := reflect.ValueOf(kv.Value.slice)
+               for i := 0; i < rv.Len(); i++ {
+                       h = h.Float64(rv.Index(i).Float())
+               }
+       case STRINGSLICE:
+               h = h.Uint64(stringSliceID)
+               rv := reflect.ValueOf(kv.Value.slice)
+               for i := 0; i < rv.Len(); i++ {
+                       h = h.String(rv.Index(i).String())
+               }
+       case INVALID:
+       default:
+               // Logging is an alternative, but using the internal logger here
+               // causes an import cycle so it is not done.
+               v := kv.Value.AsInterface()
+               msg := fmt.Sprintf("unknown value type: %[1]v (%[1]T)", v)
+               panic(msg)
+       }
+       return h
+}
diff --git a/vendor/go.opentelemetry.io/otel/attribute/internal/xxhash/xxhash.go b/vendor/go.opentelemetry.io/otel/attribute/internal/xxhash/xxhash.go
new file mode 100644 (file)
index 0000000..113a978
--- /dev/null
@@ -0,0 +1,64 @@
+// Copyright The OpenTelemetry Authors
+// SPDX-License-Identifier: Apache-2.0
+
+// Package xxhash provides a wrapper around the xxhash library for attribute hashing.
+package xxhash // import "go.opentelemetry.io/otel/attribute/internal/xxhash"
+
+import (
+       "encoding/binary"
+       "math"
+
+       "github.com/cespare/xxhash/v2"
+)
+
+// Hash wraps xxhash.Digest to provide an API friendly for hashing attribute values.
+type Hash struct {
+       d *xxhash.Digest
+}
+
+// New returns a new initialized xxHash64 hasher.
+func New() Hash {
+       return Hash{d: xxhash.New()}
+}
+
+func (h Hash) Uint64(val uint64) Hash {
+       var buf [8]byte
+       binary.LittleEndian.PutUint64(buf[:], val)
+       // errors from Write are always nil for xxhash
+       // if it returns an err then panic
+       _, err := h.d.Write(buf[:])
+       if err != nil {
+               panic("xxhash write of uint64 failed: " + err.Error())
+       }
+       return h
+}
+
+func (h Hash) Bool(val bool) Hash { // nolint:revive // This is a hashing function.
+       if val {
+               return h.Uint64(1)
+       }
+       return h.Uint64(0)
+}
+
+func (h Hash) Float64(val float64) Hash {
+       return h.Uint64(math.Float64bits(val))
+}
+
+func (h Hash) Int64(val int64) Hash {
+       return h.Uint64(uint64(val)) // nolint:gosec // Overflow doesn't matter since we are hashing.
+}
+
+func (h Hash) String(val string) Hash {
+       // errors from WriteString are always nil for xxhash
+       // if it returns an err then panic
+       _, err := h.d.WriteString(val)
+       if err != nil {
+               panic("xxhash write of string failed: " + err.Error())
+       }
+       return h
+}
+
+// Sum64 returns the current hash value.
+func (h Hash) Sum64() uint64 {
+       return h.d.Sum64()
+}
index 64735d382ea98b184f8321c1977d05c292d08a23..911d557ee54f7d0093d25a4d8cd8abd21219dd76 100644 (file)
@@ -9,6 +9,8 @@ import (
        "reflect"
        "slices"
        "sort"
+
+       "go.opentelemetry.io/otel/attribute/internal/xxhash"
 )
 
 type (
@@ -23,19 +25,19 @@ type (
        // the Equals method to ensure stable equivalence checking.
        //
        // Users should also use the Distinct returned from Equivalent as a map key
-       // instead of a Set directly. In addition to that type providing guarantees
-       // on stable equivalence, it may also provide performance improvements.
+       // instead of a Set directly. Set has relatively poor performance when used
+       // as a map key compared to Distinct.
        Set struct {
-               equivalent Distinct
+               hash uint64
+               data any
        }
 
-       // Distinct is a unique identifier of a Set.
+       // Distinct is an identifier of a Set which is very likely to be unique.
        //
-       // Distinct is designed to ensure equivalence stability: comparisons will
-       // return the same value across versions. For this reason, Distinct should
-       // always be used as a map key instead of a Set.
+       // Distinct should be used as a map key instead of a Set for to provide better
+       // performance for map operations.
        Distinct struct {
-               iface any
+               hash uint64
        }
 
        // Sortable implements sort.Interface, used for sorting KeyValue.
@@ -46,15 +48,34 @@ type (
        Sortable []KeyValue
 )
 
+// Compile time check these types remain comparable.
+var (
+       _ = isComparable(Set{})
+       _ = isComparable(Distinct{})
+)
+
+func isComparable[T comparable](t T) T { return t }
+
 var (
        // keyValueType is used in computeDistinctReflect.
        keyValueType = reflect.TypeOf(KeyValue{})
 
-       // emptySet is returned for empty attribute sets.
-       emptySet = &Set{
-               equivalent: Distinct{
-                       iface: [0]KeyValue{},
-               },
+       // emptyHash is the hash of an empty set.
+       emptyHash = xxhash.New().Sum64()
+
+       // userDefinedEmptySet is an empty set. It was mistakenly exposed to users
+       // as something they can assign to, so it must remain addressable and
+       // mutable.
+       //
+       // This is kept for backwards compatibility, but should not be used in new code.
+       userDefinedEmptySet = &Set{
+               hash: emptyHash,
+               data: [0]KeyValue{},
+       }
+
+       emptySet = Set{
+               hash: emptyHash,
+               data: [0]KeyValue{},
        }
 )
 
@@ -62,33 +83,35 @@ var (
 //
 // This is a convenience provided for optimized calling utility.
 func EmptySet() *Set {
-       return emptySet
-}
-
-// reflectValue abbreviates reflect.ValueOf(d).
-func (d Distinct) reflectValue() reflect.Value {
-       return reflect.ValueOf(d.iface)
+       // Continue to return the pointer to the user-defined empty set for
+       // backwards-compatibility.
+       //
+       // New code should not use this, instead use emptySet.
+       return userDefinedEmptySet
 }
 
 // Valid reports whether this value refers to a valid Set.
-func (d Distinct) Valid() bool {
-       return d.iface != nil
+func (d Distinct) Valid() bool { return d.hash != 0 }
+
+// reflectValue abbreviates reflect.ValueOf(d).
+func (l Set) reflectValue() reflect.Value {
+       return reflect.ValueOf(l.data)
 }
 
 // Len returns the number of attributes in this set.
 func (l *Set) Len() int {
-       if l == nil || !l.equivalent.Valid() {
+       if l == nil || l.hash == 0 {
                return 0
        }
-       return l.equivalent.reflectValue().Len()
+       return l.reflectValue().Len()
 }
 
 // Get returns the KeyValue at ordered position idx in this set.
 func (l *Set) Get(idx int) (KeyValue, bool) {
-       if l == nil || !l.equivalent.Valid() {
+       if l == nil || l.hash == 0 {
                return KeyValue{}, false
        }
-       value := l.equivalent.reflectValue()
+       value := l.reflectValue()
 
        if idx >= 0 && idx < value.Len() {
                // Note: The Go compiler successfully avoids an allocation for
@@ -101,10 +124,10 @@ func (l *Set) Get(idx int) (KeyValue, bool) {
 
 // Value returns the value of a specified key in this set.
 func (l *Set) Value(k Key) (Value, bool) {
-       if l == nil || !l.equivalent.Valid() {
+       if l == nil || l.hash == 0 {
                return Value{}, false
        }
-       rValue := l.equivalent.reflectValue()
+       rValue := l.reflectValue()
        vlen := rValue.Len()
 
        idx := sort.Search(vlen, func(idx int) bool {
@@ -144,20 +167,29 @@ func (l *Set) ToSlice() []KeyValue {
        return iter.ToSlice()
 }
 
-// Equivalent returns a value that may be used as a map key. The Distinct type
-// guarantees that the result will equal the equivalent. Distinct value of any
+// Equivalent returns a value that may be used as a map key. Equal Distinct
+// values are very likely to be equivalent attribute Sets. Distinct value of any
 // attribute set with the same elements as this, where sets are made unique by
 // choosing the last value in the input for any given key.
 func (l *Set) Equivalent() Distinct {
-       if l == nil || !l.equivalent.Valid() {
-               return emptySet.equivalent
+       if l == nil || l.hash == 0 {
+               return Distinct{hash: emptySet.hash}
        }
-       return l.equivalent
+       return Distinct{hash: l.hash}
 }
 
 // Equals reports whether the argument set is equivalent to this set.
 func (l *Set) Equals(o *Set) bool {
-       return l.Equivalent() == o.Equivalent()
+       if l.Equivalent() != o.Equivalent() {
+               return false
+       }
+       if l == nil || l.hash == 0 {
+               l = &emptySet
+       }
+       if o == nil || o.hash == 0 {
+               o = &emptySet
+       }
+       return l.data == o.data
 }
 
 // Encoded returns the encoded form of this set, according to encoder.
@@ -169,12 +201,6 @@ func (l *Set) Encoded(encoder Encoder) string {
        return encoder.Encode(l.Iter())
 }
 
-func empty() Set {
-       return Set{
-               equivalent: emptySet.equivalent,
-       }
-}
-
 // NewSet returns a new Set. See the documentation for
 // NewSetWithSortableFiltered for more details.
 //
@@ -204,7 +230,7 @@ func NewSetWithSortable(kvs []KeyValue, _ *Sortable) Set {
 func NewSetWithFiltered(kvs []KeyValue, filter Filter) (Set, []KeyValue) {
        // Check for empty set.
        if len(kvs) == 0 {
-               return empty(), nil
+               return emptySet, nil
        }
 
        // Stable sort so the following de-duplication can implement
@@ -233,10 +259,10 @@ func NewSetWithFiltered(kvs []KeyValue, filter Filter) (Set, []KeyValue) {
 
        if filter != nil {
                if div := filteredToFront(kvs, filter); div != 0 {
-                       return Set{equivalent: computeDistinct(kvs[div:])}, kvs[:div]
+                       return newSet(kvs[div:]), kvs[:div]
                }
        }
-       return Set{equivalent: computeDistinct(kvs)}, nil
+       return newSet(kvs), nil
 }
 
 // NewSetWithSortableFiltered returns a new Set.
@@ -316,7 +342,7 @@ func (l *Set) Filter(re Filter) (Set, []KeyValue) {
        if first == 0 {
                // It is safe to assume len(slice) >= 1 given we found at least one
                // attribute above that needs to be filtered out.
-               return Set{equivalent: computeDistinct(slice[1:])}, slice[:1]
+               return newSet(slice[1:]), slice[:1]
        }
 
        // Move the filtered slice[first] to the front (preserving order).
@@ -326,25 +352,24 @@ func (l *Set) Filter(re Filter) (Set, []KeyValue) {
 
        // Do not re-evaluate re(slice[first+1:]).
        div := filteredToFront(slice[1:first+1], re) + 1
-       return Set{equivalent: computeDistinct(slice[div:])}, slice[:div]
+       return newSet(slice[div:]), slice[:div]
 }
 
-// computeDistinct returns a Distinct using either the fixed- or
-// reflect-oriented code path, depending on the size of the input. The input
-// slice is assumed to already be sorted and de-duplicated.
-func computeDistinct(kvs []KeyValue) Distinct {
-       iface := computeDistinctFixed(kvs)
-       if iface == nil {
-               iface = computeDistinctReflect(kvs)
+// newSet returns a new set based on the sorted and uniqued kvs.
+func newSet(kvs []KeyValue) Set {
+       s := Set{
+               hash: hashKVs(kvs),
+               data: computeDataFixed(kvs),
        }
-       return Distinct{
-               iface: iface,
+       if s.data == nil {
+               s.data = computeDataReflect(kvs)
        }
+       return s
 }
 
-// computeDistinctFixed computes a Distinct for small slices. It returns nil
-// if the input is too large for this code path.
-func computeDistinctFixed(kvs []KeyValue) any {
+// computeDataFixed computes a Set data for small slices. It returns nil if the
+// input is too large for this code path.
+func computeDataFixed(kvs []KeyValue) any {
        switch len(kvs) {
        case 1:
                return [1]KeyValue(kvs)
@@ -371,9 +396,9 @@ func computeDistinctFixed(kvs []KeyValue) any {
        }
 }
 
-// computeDistinctReflect computes a Distinct using reflection, works for any
-// size input.
-func computeDistinctReflect(kvs []KeyValue) any {
+// computeDataReflect computes a Set data using reflection, works for any size
+// input.
+func computeDataReflect(kvs []KeyValue) any {
        at := reflect.New(reflect.ArrayOf(len(kvs), keyValueType)).Elem()
        for i, keyValue := range kvs {
                *(at.Index(i).Addr().Interface().(*KeyValue)) = keyValue
@@ -383,7 +408,7 @@ func computeDistinctReflect(kvs []KeyValue) any {
 
 // MarshalJSON returns the JSON encoding of the Set.
 func (l *Set) MarshalJSON() ([]byte, error) {
-       return json.Marshal(l.equivalent.iface)
+       return json.Marshal(l.data)
 }
 
 // MarshalLog is the marshaling function used by the logging system to represent this Set.
index e584b24776bc8105fc0babb2c1871a451de47286..24f1fa37dbe291e6109f114791f1fb6add2a3e94 100644 (file)
@@ -24,8 +24,9 @@ const _Type_name = "INVALIDBOOLINT64FLOAT64STRINGBOOLSLICEINT64SLICEFLOAT64SLICE
 var _Type_index = [...]uint8{0, 7, 11, 16, 23, 29, 38, 48, 60, 71}
 
 func (i Type) String() string {
-       if i < 0 || i >= Type(len(_Type_index)-1) {
+       idx := int(i) - 0
+       if i < 0 || idx >= len(_Type_index)-1 {
                return "Type(" + strconv.FormatInt(int64(i), 10) + ")"
        }
-       return _Type_name[_Type_index[i]:_Type_index[i+1]]
+       return _Type_name[_Type_index[idx]:_Type_index[idx+1]]
 }
index f83a448ec61ae8ac15d657b3c6b8599ea99ddb7a..78e98c4c0f3e69bfc91b3279808f1aba3f7e655b 100644 (file)
@@ -648,7 +648,7 @@ func parsePropertyInternal(s string) (p Property, ok bool) {
        // If we couldn't find any valid key character,
        // it means the key is either empty or invalid.
        if keyStart == keyEnd {
-               return
+               return p, ok
        }
 
        // Skip spaces after the key: "   key<    >=    value  ".
@@ -658,13 +658,13 @@ func parsePropertyInternal(s string) (p Property, ok bool) {
                // A key can have no value, like: "   key    ".
                ok = true
                p.key = s[keyStart:keyEnd]
-               return
+               return p, ok
        }
 
        // If we have not reached the end and we can't find the '=' delimiter,
        // it means the property is invalid.
        if s[index] != keyValueDelimiter[0] {
-               return
+               return p, ok
        }
 
        // Attempting to parse the value.
@@ -690,14 +690,14 @@ func parsePropertyInternal(s string) (p Property, ok bool) {
        // we have not reached the end, it means the property is
        // invalid, something like: "   key    =    value  value1".
        if index != len(s) {
-               return
+               return p, ok
        }
 
        // Decode a percent-encoded value.
        rawVal := s[valueStart:valueEnd]
        unescapeVal, err := url.PathUnescape(rawVal)
        if err != nil {
-               return
+               return p, ok
        }
        value := replaceInvalidUTF8Sequences(len(rawVal), unescapeVal)
 
@@ -706,7 +706,7 @@ func parsePropertyInternal(s string) (p Property, ok bool) {
        p.hasValue = true
 
        p.value = value
-       return
+       return p, ok
 }
 
 func skipSpace(s string, offset int) int {
index a311fbb48357847498b838475358ddd613eeafc7..cadb87cc0eed98fc33f8cdedd09c176e8391f8e4 100644 (file)
@@ -1,4 +1,4 @@
 # This is a renovate-friendly source of Docker images.
 FROM python:3.13.6-slim-bullseye@sha256:e98b521460ee75bca92175c16247bdf7275637a8faaeb2bcfa19d879ae5c4b9a AS python
-FROM otel/weaver:v0.17.1@sha256:32523b5e44fb44418786347e9f7dde187d8797adb6d57a2ee99c245346c3cdfe AS weaver
+FROM otel/weaver:v0.19.0@sha256:3d20814cef548f1d31f27f054fb4cd6a05125641a9f7cc29fc7eb234e8052cd9 AS weaver
 FROM avtodev/markdown-lint:v1@sha256:6aeedc2f49138ce7a1cd0adffc1b1c0321b841dc2102408967d9301c031949ee AS markdown
index adb37b5b0e7e53aab0bd77f65fd1c7ef0d0cad73..6db969f73c71261814d7b912e6e2ff3e73af0f47 100644 (file)
@@ -105,7 +105,7 @@ type delegatedInstrument interface {
        setDelegate(metric.Meter)
 }
 
-// instID are the identifying properties of a instrument.
+// instID are the identifying properties of an instrument.
 type instID struct {
        // name is the name of the stream.
        name string
index 1e6473b32f35756b569136ee23a8769a55689586..527d9aec86b5cd093b9818a77c165096eba6d7c7 100644 (file)
@@ -11,7 +11,7 @@ import (
 // Meter returns a Meter from the global MeterProvider. The name must be the
 // name of the library providing instrumentation. This name may be the same as
 // the instrumented code only if that code provides built-in instrumentation.
-// If the name is empty, then a implementation defined default name will be
+// If the name is empty, then an implementation defined default name will be
 // used instead.
 //
 // If this is called before a global MeterProvider is registered the returned
index d9e3b13e4d13f1f5765e2d23d7a3a39fbc3cf7f2..e42dd6e70ab3026ce6e802f9f016c6f240a4938f 100644 (file)
@@ -3,7 +3,11 @@
 
 package metric // import "go.opentelemetry.io/otel/metric"
 
-import "go.opentelemetry.io/otel/attribute"
+import (
+       "slices"
+
+       "go.opentelemetry.io/otel/attribute"
+)
 
 // MeterConfig contains options for Meters.
 type MeterConfig struct {
@@ -62,12 +66,38 @@ func WithInstrumentationVersion(version string) MeterOption {
        })
 }
 
-// WithInstrumentationAttributes sets the instrumentation attributes.
+// WithInstrumentationAttributes adds the instrumentation attributes.
+//
+// This is equivalent to calling [WithInstrumentationAttributeSet] with an
+// [attribute.Set] created from a clone of the passed attributes.
+// [WithInstrumentationAttributeSet] is recommended for more control.
 //
-// The passed attributes will be de-duplicated.
+// If multiple [WithInstrumentationAttributes] or [WithInstrumentationAttributeSet]
+// options are passed, the attributes will be merged together in the order
+// they are passed. Attributes with duplicate keys will use the last value passed.
 func WithInstrumentationAttributes(attr ...attribute.KeyValue) MeterOption {
+       set := attribute.NewSet(slices.Clone(attr)...)
+       return WithInstrumentationAttributeSet(set)
+}
+
+// WithInstrumentationAttributeSet adds the instrumentation attributes.
+//
+// If multiple [WithInstrumentationAttributes] or [WithInstrumentationAttributeSet]
+// options are passed, the attributes will be merged together in the order
+// they are passed. Attributes with duplicate keys will use the last value passed.
+func WithInstrumentationAttributeSet(set attribute.Set) MeterOption {
+       if set.Len() == 0 {
+               return meterOptionFunc(func(config MeterConfig) MeterConfig {
+                       return config
+               })
+       }
+
        return meterOptionFunc(func(config MeterConfig) MeterConfig {
-               config.attrs = attribute.NewSet(attr...)
+               if config.attrs.Len() == 0 {
+                       config.attrs = set
+               } else {
+                       config.attrs = mergeSets(config.attrs, set)
+               }
                return config
        })
 }
index 6692d2665d2abeb374ede512d59264ba31dd0f94..271ab71f1aec9cbd561da9aaf55cb6bc3957835c 100644 (file)
@@ -111,7 +111,7 @@ func (TraceContext) extract(carrier TextMapCarrier) trace.SpanContext {
        }
 
        // Clear all flags other than the trace-context supported sampling bit.
-       scc.TraceFlags = trace.TraceFlags(opts[0]) & trace.FlagsSampled
+       scc.TraceFlags = trace.TraceFlags(opts[0]) & trace.FlagsSampled // nolint:gosec // slice size already checked.
 
        // Ignore the error returned here. Failure to parse tracestate MUST NOT
        // affect the parsing of traceparent according to the W3C tracecontext
index 666bded4bafc01d28de39f62a816f3faace54b04..267979c051d85bd62a314afb3953c68f779e5263 100644 (file)
@@ -4,28 +4,53 @@
 package semconv // import "go.opentelemetry.io/otel/semconv/v1.37.0"
 
 import (
-       "fmt"
        "reflect"
 
        "go.opentelemetry.io/otel/attribute"
 )
 
 // ErrorType returns an [attribute.KeyValue] identifying the error type of err.
+//
+// If err is nil, the returned attribute has the default value
+// [ErrorTypeOther].
+//
+// If err's type has the method
+//
+//     ErrorType() string
+//
+// then the returned attribute has the value of err.ErrorType(). Otherwise, the
+// returned attribute has a value derived from the concrete type of err.
+//
+// The key of the returned attribute is [ErrorTypeKey].
 func ErrorType(err error) attribute.KeyValue {
        if err == nil {
                return ErrorTypeOther
        }
-       t := reflect.TypeOf(err)
-       var value string
-       if t.PkgPath() == "" && t.Name() == "" {
-               // Likely a builtin type.
-               value = t.String()
-       } else {
-               value = fmt.Sprintf("%s.%s", t.PkgPath(), t.Name())
+
+       return ErrorTypeKey.String(errorType(err))
+}
+
+func errorType(err error) string {
+       var s string
+       if et, ok := err.(interface{ ErrorType() string }); ok {
+               // Prioritize the ErrorType method if available.
+               s = et.ErrorType()
        }
+       if s == "" {
+               // Fallback to reflection if the ErrorType method is not supported or
+               // returns an empty value.
 
-       if value == "" {
-               return ErrorTypeOther
+               t := reflect.TypeOf(err)
+               pkg, name := t.PkgPath(), t.Name()
+               if pkg != "" && name != "" {
+                       s = pkg + "." + name
+               } else {
+                       // The type has no package path or name (predeclared, not-defined,
+                       // or alias for a not-defined type).
+                       //
+                       // This is not guaranteed to be unique, but is a best effort.
+                       s = t.String()
+               }
        }
-       return ErrorTypeKey.String(value)
+       return s
 }
index aea11a2b52cc4ca7f97c094c45cff7e8ffaaca2e..d9ecef1cad2736c9f561323e985ecfc4aff53375 100644 (file)
@@ -4,6 +4,7 @@
 package trace // import "go.opentelemetry.io/otel/trace"
 
 import (
+       "slices"
        "time"
 
        "go.opentelemetry.io/otel/attribute"
@@ -304,12 +305,50 @@ func WithInstrumentationVersion(version string) TracerOption {
        })
 }
 
-// WithInstrumentationAttributes sets the instrumentation attributes.
+// mergeSets returns the union of keys between a and b. Any duplicate keys will
+// use the value associated with b.
+func mergeSets(a, b attribute.Set) attribute.Set {
+       // NewMergeIterator uses the first value for any duplicates.
+       iter := attribute.NewMergeIterator(&b, &a)
+       merged := make([]attribute.KeyValue, 0, a.Len()+b.Len())
+       for iter.Next() {
+               merged = append(merged, iter.Attribute())
+       }
+       return attribute.NewSet(merged...)
+}
+
+// WithInstrumentationAttributes adds the instrumentation attributes.
 //
-// The passed attributes will be de-duplicated.
+// This is equivalent to calling [WithInstrumentationAttributeSet] with an
+// [attribute.Set] created from a clone of the passed attributes.
+// [WithInstrumentationAttributeSet] is recommended for more control.
+//
+// If multiple [WithInstrumentationAttributes] or [WithInstrumentationAttributeSet]
+// options are passed, the attributes will be merged together in the order
+// they are passed. Attributes with duplicate keys will use the last value passed.
 func WithInstrumentationAttributes(attr ...attribute.KeyValue) TracerOption {
+       set := attribute.NewSet(slices.Clone(attr)...)
+       return WithInstrumentationAttributeSet(set)
+}
+
+// WithInstrumentationAttributeSet adds the instrumentation attributes.
+//
+// If multiple [WithInstrumentationAttributes] or [WithInstrumentationAttributeSet]
+// options are passed, the attributes will be merged together in the order
+// they are passed. Attributes with duplicate keys will use the last value passed.
+func WithInstrumentationAttributeSet(set attribute.Set) TracerOption {
+       if set.Len() == 0 {
+               return tracerOptionFunc(func(config TracerConfig) TracerConfig {
+                       return config
+               })
+       }
+
        return tracerOptionFunc(func(config TracerConfig) TracerConfig {
-               config.attrs = attribute.NewSet(attr...)
+               if config.attrs.Len() == 0 {
+                       config.attrs = set
+               } else {
+                       config.attrs = mergeSets(config.attrs, set)
+               }
                return config
        })
 }
index d3aa476ee12549da406f2b972249c196ff213f0a..d01e79366494a99e45e79f3b4a114a4c62aff348 100644 (file)
@@ -66,6 +66,10 @@ type Span interface {
        // SetAttributes sets kv as attributes of the Span. If a key from kv
        // already exists for an attribute of the Span it will be overwritten with
        // the value contained in kv.
+       //
+       // Note that adding attributes at span creation using [WithAttributes] is preferred
+       // to calling SetAttribute later, as samplers can only consider information
+       // already present during span creation.
        SetAttributes(kv ...attribute.KeyValue)
 
        // TracerProvider returns a TracerProvider that can be used to generate
index bcaa5aa5378951cac1cd5dfd1cca90e61f614870..0d5b0291873e020add8c15accc932b9f9dbc7364 100644 (file)
@@ -5,5 +5,5 @@ package otel // import "go.opentelemetry.io/otel"
 
 // Version is the current release version of OpenTelemetry in use.
 func Version() string {
-       return "1.38.0"
+       return "1.39.0"
 }
index 07145e254b5cfb1c4e520adb615b7739cd427977..f4a3893eb5ae78d1751b9d007894a553e987b132 100644 (file)
@@ -3,7 +3,7 @@
 
 module-sets:
   stable-v1:
-    version: v1.38.0
+    version: v1.39.0
     modules:
       - go.opentelemetry.io/otel
       - go.opentelemetry.io/otel/bridge/opencensus
@@ -22,11 +22,11 @@ module-sets:
       - go.opentelemetry.io/otel/sdk/metric
       - go.opentelemetry.io/otel/trace
   experimental-metrics:
-    version: v0.60.0
+    version: v0.61.0
     modules:
       - go.opentelemetry.io/otel/exporters/prometheus
   experimental-logs:
-    version: v0.14.0
+    version: v0.15.0
     modules:
       - go.opentelemetry.io/otel/log
       - go.opentelemetry.io/otel/log/logtest
@@ -36,9 +36,28 @@ module-sets:
       - go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp
       - go.opentelemetry.io/otel/exporters/stdout/stdoutlog
   experimental-schema:
-    version: v0.0.13
+    version: v0.0.14
     modules:
       - go.opentelemetry.io/otel/schema
 excluded-modules:
   - go.opentelemetry.io/otel/internal/tools
   - go.opentelemetry.io/otel/trace/internal/telemetry/test
+modules:
+  go.opentelemetry.io/otel/exporters/stdout/stdouttrace:
+    version-refs:
+      - ./internal/version.go
+  go.opentelemetry.io/otel/exporters/prometheus:
+    version-refs:
+      - ./internal/version.go
+  go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc:
+    version-refs:
+      - ./internal/version.go
+  go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc:
+    version-refs:
+      - ./internal/version.go
+  go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp:
+    version-refs:
+      - ./internal/version.go
+  go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp:
+    version-refs:
+      - ./internal/version.go
diff --git a/vendor/k8s.io/utils/buffer/ring_fixed.go b/vendor/k8s.io/utils/buffer/ring_fixed.go
new file mode 100644 (file)
index 0000000..a104e12
--- /dev/null
@@ -0,0 +1,120 @@
+/*
+Copyright 2025 The Kubernetes Authors.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package buffer
+
+import (
+       "errors"
+       "io"
+)
+
+// Compile-time check that *TypedRingFixed[byte] implements io.Writer.
+var _ io.Writer = (*TypedRingFixed[byte])(nil)
+
+// ErrInvalidSize indicates size must be > 0
+var ErrInvalidSize = errors.New("size must be positive")
+
+// TypedRingFixed is a fixed-size circular buffer for elements of type T.
+// Writes overwrite older data, keeping only the last N elements.
+// Not thread safe.
+type TypedRingFixed[T any] struct {
+       data        []T
+       size        int
+       writeCursor int
+       written     int64
+}
+
+// NewTypedRingFixed creates a circular buffer with the given capacity (must be > 0).
+func NewTypedRingFixed[T any](size int) (*TypedRingFixed[T], error) {
+       if size <= 0 {
+               return nil, ErrInvalidSize
+       }
+       return &TypedRingFixed[T]{
+               data: make([]T, size),
+               size: size,
+       }, nil
+}
+
+// Write writes p to the buffer, overwriting old data if needed.
+func (r *TypedRingFixed[T]) Write(p []T) (int, error) {
+       originalLen := len(p)
+       r.written += int64(originalLen)
+
+       // If the input is larger than our buffer, only keep the last 'size' elements
+       if originalLen > r.size {
+               p = p[originalLen-r.size:]
+       }
+
+       // Copy data, handling wrap-around
+       n := len(p)
+       remain := r.size - r.writeCursor
+       if n <= remain {
+               copy(r.data[r.writeCursor:], p)
+       } else {
+               copy(r.data[r.writeCursor:], p[:remain])
+               copy(r.data, p[remain:])
+       }
+
+       r.writeCursor = (r.writeCursor + n) % r.size
+       return originalLen, nil
+}
+
+// Slice returns buffer contents in write order. Don't modify the returned slice.
+func (r *TypedRingFixed[T]) Slice() []T {
+       if r.written == 0 {
+               return nil
+       }
+
+       // Buffer hasn't wrapped yet
+       if r.written < int64(r.size) {
+               return r.data[:r.writeCursor]
+       }
+
+       // Buffer has wrapped - need to return data in correct order
+       // Data from writeCursor to end is oldest, data from 0 to writeCursor is newest
+       if r.writeCursor == 0 {
+               return r.data
+       }
+
+       out := make([]T, r.size)
+       copy(out, r.data[r.writeCursor:])
+       copy(out[r.size-r.writeCursor:], r.data[:r.writeCursor])
+       return out
+}
+
+// Size returns the buffer capacity.
+func (r *TypedRingFixed[T]) Size() int {
+       return r.size
+}
+
+// Len returns how many elements are currently in the buffer.
+func (r *TypedRingFixed[T]) Len() int {
+       if r.written < int64(r.size) {
+               return int(r.written)
+       }
+       return r.size
+}
+
+// TotalWritten returns total elements ever written (including overwritten ones).
+func (r *TypedRingFixed[T]) TotalWritten() int64 {
+       return r.written
+}
+
+// Reset clears the buffer.
+func (r *TypedRingFixed[T]) Reset() {
+       r.writeCursor = 0
+       r.written = 0
+}
index d9c91e3ca3c608ace7ce6dd9a1928a427aabf038..b7cde7fd83e33b0b1b0e06f91ac4159e92996136 100644 (file)
@@ -18,6 +18,7 @@ package exec
 
 import (
        "context"
+       "errors"
        "io"
        "io/fs"
        osexec "os/exec"
@@ -97,6 +98,21 @@ func New() Interface {
        return &executor{}
 }
 
+// maskErrDotCmd reverts the behavior of osexec.Cmd to what it was before go1.19
+// specifically set the Err field to nil (LookPath returns a new error when the file
+// is resolved to the current directory.
+func maskErrDotCmd(cmd *osexec.Cmd) *osexec.Cmd {
+       cmd.Err = maskErrDot(cmd.Err)
+       return cmd
+}
+
+func maskErrDot(err error) error {
+       if err != nil && errors.Is(err, osexec.ErrDot) {
+               return nil
+       }
+       return err
+}
+
 // Command is part of the Interface interface.
 func (executor *executor) Command(cmd string, args ...string) Cmd {
        return (*cmdWrapper)(maskErrDotCmd(osexec.Command(cmd, args...)))
diff --git a/vendor/k8s.io/utils/exec/fixup_go118.go b/vendor/k8s.io/utils/exec/fixup_go118.go
deleted file mode 100644 (file)
index acf45f1..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-//go:build !go1.19
-// +build !go1.19
-
-/*
-Copyright 2022 The Kubernetes Authors.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-package exec
-
-import (
-       osexec "os/exec"
-)
-
-func maskErrDotCmd(cmd *osexec.Cmd) *osexec.Cmd {
-       return cmd
-}
-
-func maskErrDot(err error) error {
-       return err
-}
diff --git a/vendor/k8s.io/utils/exec/fixup_go119.go b/vendor/k8s.io/utils/exec/fixup_go119.go
deleted file mode 100644 (file)
index 55874c9..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-//go:build go1.19
-// +build go1.19
-
-/*
-Copyright 2022 The Kubernetes Authors.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-package exec
-
-import (
-       "errors"
-       osexec "os/exec"
-)
-
-// maskErrDotCmd reverts the behavior of osexec.Cmd to what it was before go1.19
-// specifically set the Err field to nil (LookPath returns a new error when the file
-// is resolved to the current directory.
-func maskErrDotCmd(cmd *osexec.Cmd) *osexec.Cmd {
-       cmd.Err = maskErrDot(cmd.Err)
-       return cmd
-}
-
-func maskErrDot(err error) error {
-       if err != nil && errors.Is(err, osexec.ErrDot) {
-               return nil
-       }
-       return err
-}
index 8c96be220757f0341391cc83a5e94ba3ad76dfc5..5f25fb9c4f5033afdfb0ae3d27f1f3cdc8b7596b 100644 (file)
@@ -127,7 +127,7 @@ github.com/antlr4-go/antlr/v4
 # github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2
 ## explicit; go 1.13
 github.com/asaskevich/govalidator
-# github.com/aws/aws-sdk-go-v2 v1.40.1
+# github.com/aws/aws-sdk-go-v2 v1.41.0
 ## explicit; go 1.23
 github.com/aws/aws-sdk-go-v2/aws
 github.com/aws/aws-sdk-go-v2/aws/defaults
@@ -154,10 +154,10 @@ github.com/aws/aws-sdk-go-v2/internal/shareddefaults
 github.com/aws/aws-sdk-go-v2/internal/strings
 github.com/aws/aws-sdk-go-v2/internal/sync/singleflight
 github.com/aws/aws-sdk-go-v2/internal/timeconv
-# github.com/aws/aws-sdk-go-v2/config v1.32.3
+# github.com/aws/aws-sdk-go-v2/config v1.32.6
 ## explicit; go 1.23
 github.com/aws/aws-sdk-go-v2/config
-# github.com/aws/aws-sdk-go-v2/credentials v1.19.3
+# github.com/aws/aws-sdk-go-v2/credentials v1.19.6
 ## explicit; go 1.23
 github.com/aws/aws-sdk-go-v2/credentials
 github.com/aws/aws-sdk-go-v2/credentials/ec2rolecreds
@@ -167,20 +167,20 @@ github.com/aws/aws-sdk-go-v2/credentials/logincreds
 github.com/aws/aws-sdk-go-v2/credentials/processcreds
 github.com/aws/aws-sdk-go-v2/credentials/ssocreds
 github.com/aws/aws-sdk-go-v2/credentials/stscreds
-# github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.15
+# github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.16
 ## explicit; go 1.23
 github.com/aws/aws-sdk-go-v2/feature/ec2/imds
 github.com/aws/aws-sdk-go-v2/feature/ec2/imds/internal/config
-# github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.15
+# github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.16
 ## explicit; go 1.23
 github.com/aws/aws-sdk-go-v2/internal/configsources
-# github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.15
+# github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.16
 ## explicit; go 1.23
 github.com/aws/aws-sdk-go-v2/internal/endpoints/v2
 # github.com/aws/aws-sdk-go-v2/internal/ini v1.8.4
 ## explicit; go 1.23
 github.com/aws/aws-sdk-go-v2/internal/ini
-# github.com/aws/aws-sdk-go-v2/service/ec2 v1.275.1
+# github.com/aws/aws-sdk-go-v2/service/ec2 v1.278.0
 ## explicit; go 1.23
 github.com/aws/aws-sdk-go-v2/service/ec2
 github.com/aws/aws-sdk-go-v2/service/ec2/internal/endpoints
@@ -188,25 +188,25 @@ github.com/aws/aws-sdk-go-v2/service/ec2/types
 # github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.4
 ## explicit; go 1.23
 github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding
-# github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.15
+# github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.16
 ## explicit; go 1.23
 github.com/aws/aws-sdk-go-v2/service/internal/presigned-url
-# github.com/aws/aws-sdk-go-v2/service/signin v1.0.3
+# github.com/aws/aws-sdk-go-v2/service/signin v1.0.4
 ## explicit; go 1.23
 github.com/aws/aws-sdk-go-v2/service/signin
 github.com/aws/aws-sdk-go-v2/service/signin/internal/endpoints
 github.com/aws/aws-sdk-go-v2/service/signin/types
-# github.com/aws/aws-sdk-go-v2/service/sso v1.30.6
+# github.com/aws/aws-sdk-go-v2/service/sso v1.30.8
 ## explicit; go 1.23
 github.com/aws/aws-sdk-go-v2/service/sso
 github.com/aws/aws-sdk-go-v2/service/sso/internal/endpoints
 github.com/aws/aws-sdk-go-v2/service/sso/types
-# github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.11
+# github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.12
 ## explicit; go 1.23
 github.com/aws/aws-sdk-go-v2/service/ssooidc
 github.com/aws/aws-sdk-go-v2/service/ssooidc/internal/endpoints
 github.com/aws/aws-sdk-go-v2/service/ssooidc/types
-# github.com/aws/aws-sdk-go-v2/service/sts v1.41.3
+# github.com/aws/aws-sdk-go-v2/service/sts v1.41.5
 ## explicit; go 1.23
 github.com/aws/aws-sdk-go-v2/service/sts
 github.com/aws/aws-sdk-go-v2/service/sts/internal/endpoints
@@ -252,7 +252,7 @@ github.com/chai2010/gettext-go
 github.com/chai2010/gettext-go/mo
 github.com/chai2010/gettext-go/plural
 github.com/chai2010/gettext-go/po
-# github.com/cilium/charts v0.0.0-20251203153012-ac76b7522d1a
+# github.com/cilium/charts v0.0.0-20251217104012-70fd91a32619
 ## explicit; go 1.17
 github.com/cilium/charts
 # github.com/cilium/coverbee v0.3.3-0.20240723084546-664438750fce
@@ -268,7 +268,7 @@ github.com/cilium/deepequal-gen/generators
 # github.com/cilium/dns v1.1.51-0.20240603182237-af788769786a
 ## explicit; go 1.18
 github.com/cilium/dns
-# github.com/cilium/ebpf v0.20.1-0.20251204155832-f150ced93791
+# github.com/cilium/ebpf v0.20.1-0.20251215101449-df5c3096bd8c
 ## explicit; go 1.24.0
 github.com/cilium/ebpf
 github.com/cilium/ebpf/asm
@@ -305,7 +305,7 @@ github.com/cilium/endpointslice-controller/util/endpointslice
 # github.com/cilium/fake v0.7.0
 ## explicit; go 1.22
 github.com/cilium/fake
-# github.com/cilium/hive v0.0.0-20251021073839-03494cb6c4de
+# github.com/cilium/hive v0.0.0-20251219070844-89ccf807d9fb
 ## explicit; go 1.23.0
 github.com/cilium/hive
 github.com/cilium/hive/cell
@@ -831,13 +831,13 @@ github.com/go-openapi/analysis/internal/flatten/operations
 github.com/go-openapi/analysis/internal/flatten/replace
 github.com/go-openapi/analysis/internal/flatten/schutils
 github.com/go-openapi/analysis/internal/flatten/sortref
-# github.com/go-openapi/errors v0.22.5
+# github.com/go-openapi/errors v0.22.6
 ## explicit; go 1.24.0
 github.com/go-openapi/errors
-# github.com/go-openapi/jsonpointer v0.22.1
+# github.com/go-openapi/jsonpointer v0.22.4
 ## explicit; go 1.24.0
 github.com/go-openapi/jsonpointer
-# github.com/go-openapi/jsonreference v0.21.3
+# github.com/go-openapi/jsonreference v0.21.4
 ## explicit; go 1.24.0
 github.com/go-openapi/jsonreference
 github.com/go-openapi/jsonreference/internal
@@ -855,7 +855,7 @@ github.com/go-openapi/runtime/middleware/header
 github.com/go-openapi/runtime/middleware/untyped
 github.com/go-openapi/runtime/security
 github.com/go-openapi/runtime/yamlpc
-# github.com/go-openapi/spec v0.22.1
+# github.com/go-openapi/spec v0.22.2
 ## explicit; go 1.24.0
 github.com/go-openapi/spec
 # github.com/go-openapi/strfmt v0.25.0
@@ -1515,8 +1515,8 @@ github.com/zmap/zlint/v3/lints/etsi
 github.com/zmap/zlint/v3/lints/mozilla
 github.com/zmap/zlint/v3/lints/rfc
 github.com/zmap/zlint/v3/util
-# go.etcd.io/etcd/api/v3 v3.6.6
-## explicit; go 1.24
+# go.etcd.io/etcd/api/v3 v3.6.7
+## explicit; go 1.24.0
 go.etcd.io/etcd/api/v3/authpb
 go.etcd.io/etcd/api/v3/etcdserverpb
 go.etcd.io/etcd/api/v3/membershippb
@@ -1524,8 +1524,8 @@ go.etcd.io/etcd/api/v3/mvccpb
 go.etcd.io/etcd/api/v3/v3rpc/rpctypes
 go.etcd.io/etcd/api/v3/version
 go.etcd.io/etcd/api/v3/versionpb
-# go.etcd.io/etcd/client/pkg/v3 v3.6.6
-## explicit; go 1.24
+# go.etcd.io/etcd/client/pkg/v3 v3.6.7
+## explicit; go 1.24.0
 go.etcd.io/etcd/client/pkg/v3/fileutil
 go.etcd.io/etcd/client/pkg/v3/logutil
 go.etcd.io/etcd/client/pkg/v3/systemd
@@ -1533,8 +1533,8 @@ go.etcd.io/etcd/client/pkg/v3/tlsutil
 go.etcd.io/etcd/client/pkg/v3/transport
 go.etcd.io/etcd/client/pkg/v3/types
 go.etcd.io/etcd/client/pkg/v3/verify
-# go.etcd.io/etcd/client/v3 v3.6.6
-## explicit; go 1.24
+# go.etcd.io/etcd/client/v3 v3.6.7
+## explicit; go 1.24.0
 go.etcd.io/etcd/client/v3
 go.etcd.io/etcd/client/v3/concurrency
 go.etcd.io/etcd/client/v3/credentials
@@ -1578,11 +1578,12 @@ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp
 go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/request
 go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconv
 go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/internal/semconvutil
-# go.opentelemetry.io/otel v1.38.0
-## explicit; go 1.23.0
+# go.opentelemetry.io/otel v1.39.0
+## explicit; go 1.24.0
 go.opentelemetry.io/otel
 go.opentelemetry.io/otel/attribute
 go.opentelemetry.io/otel/attribute/internal
+go.opentelemetry.io/otel/attribute/internal/xxhash
 go.opentelemetry.io/otel/baggage
 go.opentelemetry.io/otel/codes
 go.opentelemetry.io/otel/internal/baggage
@@ -1591,13 +1592,13 @@ go.opentelemetry.io/otel/propagation
 go.opentelemetry.io/otel/semconv/v1.20.0
 go.opentelemetry.io/otel/semconv/v1.26.0
 go.opentelemetry.io/otel/semconv/v1.37.0
-# go.opentelemetry.io/otel/metric v1.38.0
-## explicit; go 1.23.0
+# go.opentelemetry.io/otel/metric v1.39.0
+## explicit; go 1.24.0
 go.opentelemetry.io/otel/metric
 go.opentelemetry.io/otel/metric/embedded
 go.opentelemetry.io/otel/metric/noop
-# go.opentelemetry.io/otel/trace v1.38.0
-## explicit; go 1.23.0
+# go.opentelemetry.io/otel/trace v1.39.0
+## explicit; go 1.24.0
 go.opentelemetry.io/otel/trace
 go.opentelemetry.io/otel/trace/embedded
 go.opentelemetry.io/otel/trace/internal/telemetry
@@ -1669,7 +1670,7 @@ golang.org/x/crypto/scrypt
 golang.org/x/crypto/ssh
 golang.org/x/crypto/ssh/agent
 golang.org/x/crypto/ssh/internal/bcrypt_pbkdf
-# golang.org/x/exp v0.0.0-20251209150349-8475f28825e9
+# golang.org/x/exp v0.0.0-20251219203646-944ab1f22d93
 ## explicit; go 1.24.0
 golang.org/x/exp/constraints
 golang.org/x/exp/slices
@@ -2665,8 +2666,8 @@ k8s.io/kubectl/pkg/validation
 ## explicit; go 1.25.0
 k8s.io/metrics/pkg/apis/metrics
 k8s.io/metrics/pkg/apis/metrics/v1beta1
-# k8s.io/utils v0.0.0-20251002143259-bc988d571ff4
-## explicit; go 1.18
+# k8s.io/utils v0.0.0-20251220205832-9d40a56c1308
+## explicit; go 1.23
 k8s.io/utils/buffer
 k8s.io/utils/clock
 k8s.io/utils/clock/testing
@@ -2892,7 +2893,7 @@ sigs.k8s.io/mcs-api/pkg/client/clientset/versioned/fake
 sigs.k8s.io/mcs-api/pkg/client/clientset/versioned/scheme
 sigs.k8s.io/mcs-api/pkg/client/clientset/versioned/typed/apis/v1alpha1
 sigs.k8s.io/mcs-api/pkg/client/clientset/versioned/typed/apis/v1alpha1/fake
-# sigs.k8s.io/mcs-api/controllers v0.0.0-20251209180531-e481ae73a51f
+# sigs.k8s.io/mcs-api/controllers v0.0.0-20251217171610-79faa199f7dd
 ## explicit; go 1.23.0
 sigs.k8s.io/mcs-api/controllers
 # sigs.k8s.io/randfill v1.0.0