mirror of
https://github.com/traefik/traefik.git
synced 2026-10-28 08:36:10 +08:00
Bump sigs.k8s.io/gateway-api to v1.7.0-rc.3
This commit is contained in:
1 parent
eabc0714b3
commit
f1f227eda7
54 files changed
+7102
-851
No files matched your search
@@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.21.0
|
||||
controller-gen.kubebuilder.io/version: v0.23.0
|
||||
name: ingressroutes.traefik.io
|
||||
spec:
|
||||
group: traefik.io
|
||||
@@ -527,7 +527,7 @@ apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.21.0
|
||||
controller-gen.kubebuilder.io/version: v0.23.0
|
||||
name: ingressroutetcps.traefik.io
|
||||
spec:
|
||||
group: traefik.io
|
||||
@@ -790,7 +790,7 @@ apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.21.0
|
||||
controller-gen.kubebuilder.io/version: v0.23.0
|
||||
name: ingressrouteudps.traefik.io
|
||||
spec:
|
||||
group: traefik.io
|
||||
@@ -906,7 +906,7 @@ apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.21.0
|
||||
controller-gen.kubebuilder.io/version: v0.23.0
|
||||
name: middlewares.traefik.io
|
||||
spec:
|
||||
group: traefik.io
|
||||
@@ -2949,7 +2949,7 @@ apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.21.0
|
||||
controller-gen.kubebuilder.io/version: v0.23.0
|
||||
name: middlewaretcps.traefik.io
|
||||
spec:
|
||||
group: traefik.io
|
||||
@@ -3038,7 +3038,7 @@ apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.21.0
|
||||
controller-gen.kubebuilder.io/version: v0.23.0
|
||||
name: serverstransports.traefik.io
|
||||
spec:
|
||||
group: traefik.io
|
||||
@@ -3258,7 +3258,7 @@ apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.21.0
|
||||
controller-gen.kubebuilder.io/version: v0.23.0
|
||||
name: serverstransporttcps.traefik.io
|
||||
spec:
|
||||
group: traefik.io
|
||||
@@ -3431,7 +3431,7 @@ apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.21.0
|
||||
controller-gen.kubebuilder.io/version: v0.23.0
|
||||
name: tlsoptions.traefik.io
|
||||
spec:
|
||||
group: traefik.io
|
||||
@@ -3550,7 +3550,7 @@ apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.21.0
|
||||
controller-gen.kubebuilder.io/version: v0.23.0
|
||||
name: tlsstores.traefik.io
|
||||
spec:
|
||||
group: traefik.io
|
||||
@@ -3647,7 +3647,7 @@ apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.21.0
|
||||
controller-gen.kubebuilder.io/version: v0.23.0
|
||||
name: traefikservices.traefik.io
|
||||
spec:
|
||||
group: traefik.io
|
||||
|
||||
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.21.0
|
||||
controller-gen.kubebuilder.io/version: v0.23.0
|
||||
name: ingressroutes.traefik.io
|
||||
spec:
|
||||
group: traefik.io
|
||||
|
||||
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.21.0
|
||||
controller-gen.kubebuilder.io/version: v0.23.0
|
||||
name: ingressroutetcps.traefik.io
|
||||
spec:
|
||||
group: traefik.io
|
||||
|
||||
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.21.0
|
||||
controller-gen.kubebuilder.io/version: v0.23.0
|
||||
name: ingressrouteudps.traefik.io
|
||||
spec:
|
||||
group: traefik.io
|
||||
|
||||
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.21.0
|
||||
controller-gen.kubebuilder.io/version: v0.23.0
|
||||
name: middlewares.traefik.io
|
||||
spec:
|
||||
group: traefik.io
|
||||
|
||||
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.21.0
|
||||
controller-gen.kubebuilder.io/version: v0.23.0
|
||||
name: middlewaretcps.traefik.io
|
||||
spec:
|
||||
group: traefik.io
|
||||
|
||||
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.21.0
|
||||
controller-gen.kubebuilder.io/version: v0.23.0
|
||||
name: serverstransports.traefik.io
|
||||
spec:
|
||||
group: traefik.io
|
||||
|
||||
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.21.0
|
||||
controller-gen.kubebuilder.io/version: v0.23.0
|
||||
name: serverstransporttcps.traefik.io
|
||||
spec:
|
||||
group: traefik.io
|
||||
|
||||
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.21.0
|
||||
controller-gen.kubebuilder.io/version: v0.23.0
|
||||
name: tlsoptions.traefik.io
|
||||
spec:
|
||||
group: traefik.io
|
||||
|
||||
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.21.0
|
||||
controller-gen.kubebuilder.io/version: v0.23.0
|
||||
name: tlsstores.traefik.io
|
||||
spec:
|
||||
group: traefik.io
|
||||
|
||||
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.21.0
|
||||
controller-gen.kubebuilder.io/version: v0.23.0
|
||||
name: traefikservices.traefik.io
|
||||
spec:
|
||||
group: traefik.io
|
||||
|
||||
@@ -56,14 +56,14 @@ require (
|
||||
github.com/patrickmn/go-cache v2.1.0+incompatible
|
||||
github.com/pires/go-proxyproto v0.12.0
|
||||
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // No tag on the repo.
|
||||
github.com/prometheus/client_golang v1.23.2
|
||||
github.com/prometheus/client_golang v1.24.0
|
||||
github.com/prometheus/client_model v0.6.2
|
||||
github.com/quic-go/quic-go v0.62.0
|
||||
github.com/redis/go-redis/v9 v9.21.0
|
||||
github.com/rs/zerolog v1.34.0
|
||||
github.com/samber/slog-zerolog/v2 v2.9.2
|
||||
github.com/sirupsen/logrus v1.10.2
|
||||
github.com/spiffe/go-spiffe/v2 v2.7.0
|
||||
github.com/spiffe/go-spiffe/v2 v2.8.1
|
||||
github.com/stealthrocket/wasi-go v0.8.0
|
||||
github.com/stealthrocket/wazergo v0.19.1
|
||||
github.com/stretchr/testify v1.12.1
|
||||
@@ -101,29 +101,29 @@ require (
|
||||
go.opentelemetry.io/otel/sdk/log v0.22.0
|
||||
go.opentelemetry.io/otel/sdk/metric v1.46.0
|
||||
go.opentelemetry.io/otel/trace v1.46.0
|
||||
golang.org/x/crypto v0.57.0
|
||||
golang.org/x/mod v0.41.0
|
||||
golang.org/x/net v0.60.0
|
||||
golang.org/x/sync v0.23.0
|
||||
golang.org/x/sys v0.48.0
|
||||
golang.org/x/text v0.42.0
|
||||
golang.org/x/crypto v0.58.0
|
||||
golang.org/x/mod v0.42.0
|
||||
golang.org/x/net v0.61.0
|
||||
golang.org/x/sync v0.24.0
|
||||
golang.org/x/sys v0.49.0
|
||||
golang.org/x/text v0.43.0
|
||||
golang.org/x/time v0.16.0
|
||||
golang.org/x/tools v0.49.0
|
||||
google.golang.org/grpc v1.83.2
|
||||
golang.org/x/tools v0.52.0
|
||||
google.golang.org/grpc v1.84.0
|
||||
gopkg.in/natefinch/lumberjack.v2 v2.2.1
|
||||
gopkg.in/yaml.v3 v3.0.1
|
||||
k8s.io/api v0.36.3
|
||||
k8s.io/apiextensions-apiserver v0.36.3
|
||||
k8s.io/apimachinery v0.36.3
|
||||
k8s.io/client-go v0.36.3
|
||||
k8s.io/utils v0.0.0-20260319190234-28399d86e0b5 // No tag on the repo.
|
||||
k8s.io/api v0.37.1
|
||||
k8s.io/apiextensions-apiserver v0.37.1
|
||||
k8s.io/apimachinery v0.37.1
|
||||
k8s.io/client-go v0.37.1
|
||||
k8s.io/utils v0.0.0-20260626114624-be93311217bd // No tag on the repo.
|
||||
knative.dev/networking v0.0.0-20251217020127-11890a5dabea
|
||||
knative.dev/pkg v0.0.0-20251216153728-9c8140b780d1
|
||||
mvdan.cc/xurls/v2 v2.5.0
|
||||
sigs.k8s.io/controller-runtime v0.24.1
|
||||
sigs.k8s.io/gateway-api v1.6.3
|
||||
sigs.k8s.io/gateway-api/conformance v1.6.3
|
||||
sigs.k8s.io/structured-merge-diff/v6 v6.4.0
|
||||
sigs.k8s.io/controller-runtime v0.25.2
|
||||
sigs.k8s.io/gateway-api v1.7.0-rc.3
|
||||
sigs.k8s.io/gateway-api/conformance v1.7.0-rc.3
|
||||
sigs.k8s.io/structured-merge-diff/v6 v6.4.2
|
||||
sigs.k8s.io/yaml v1.6.0
|
||||
)
|
||||
|
||||
@@ -260,7 +260,6 @@ require (
|
||||
github.com/hashicorp/go-sockaddr v1.0.7 // indirect
|
||||
github.com/hashicorp/go-uuid v1.0.3 // indirect
|
||||
github.com/hashicorp/golang-lru v1.0.2 // indirect
|
||||
github.com/hashicorp/hcl v1.0.1-vault-5 // indirect
|
||||
github.com/hashicorp/serf v0.10.1 // indirect
|
||||
github.com/huaweicloud/huaweicloud-sdk-go-v3 v0.1.215 // indirect
|
||||
github.com/imdario/mergo v0.3.16 // indirect
|
||||
@@ -327,15 +326,14 @@ require (
|
||||
github.com/pkg/errors v0.9.1 // indirect
|
||||
github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55 // indirect
|
||||
github.com/pquerna/otp v1.5.0 // indirect
|
||||
github.com/prometheus/common v0.67.5 // indirect
|
||||
github.com/prometheus/procfs v0.20.1 // indirect
|
||||
github.com/prometheus/common v0.70.0 // indirect
|
||||
github.com/prometheus/procfs v0.21.1 // indirect
|
||||
github.com/quic-go/qpack v0.6.0 // indirect
|
||||
github.com/regfish/regfish-dnsapi-go v0.2.0 // indirect
|
||||
github.com/rs/cors v1.7.0 // indirect
|
||||
github.com/rs/dnscache v0.0.0-20230804202142-fc85eb664529 // indirect
|
||||
github.com/sacloud/sacloud-sdk-go v0.2.0 // indirect
|
||||
github.com/sagikazarmark/locafero v0.4.0 // indirect
|
||||
github.com/sagikazarmark/slog-shim v0.1.0 // indirect
|
||||
github.com/sagikazarmark/locafero v0.11.0 // indirect
|
||||
github.com/samber/lo v1.53.0 // indirect
|
||||
github.com/samber/slog-common v0.21.0 // indirect
|
||||
github.com/scaleway/scaleway-sdk-go v1.0.0-beta.37 // indirect
|
||||
@@ -347,11 +345,11 @@ require (
|
||||
github.com/softlayer/softlayer-go v1.2.1 // indirect
|
||||
github.com/softlayer/xmlrpc v0.0.0-20200409220501-5f089df7cb7e // indirect
|
||||
github.com/sony/gobreaker/v2 v2.4.0 // indirect
|
||||
github.com/sourcegraph/conc v0.3.0 // indirect
|
||||
github.com/sourcegraph/conc v0.3.1-0.20240121214520-5f936abd7ae8 // indirect
|
||||
github.com/spf13/afero v1.15.0 // indirect
|
||||
github.com/spf13/cast v1.7.0 // indirect
|
||||
github.com/spf13/cast v1.10.0 // indirect
|
||||
github.com/spf13/pflag v1.0.10 // indirect
|
||||
github.com/spf13/viper v1.18.2 // indirect
|
||||
github.com/spf13/viper v1.21.0 // indirect
|
||||
github.com/stretchr/objx v0.5.3 // indirect
|
||||
github.com/subosito/gotenv v1.6.0 // indirect
|
||||
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.3.177 // indirect
|
||||
@@ -373,9 +371,9 @@ require (
|
||||
github.com/yandex-cloud/go-sdk/v2 v2.175.0 // indirect
|
||||
github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78 // indirect
|
||||
github.com/yusufpapurcu/wmi v1.2.4 // indirect
|
||||
go.etcd.io/etcd/api/v3 v3.6.14 // indirect
|
||||
go.etcd.io/etcd/client/pkg/v3 v3.6.14 // indirect
|
||||
go.etcd.io/etcd/client/v3 v3.6.14 // indirect
|
||||
go.etcd.io/etcd/api/v3 v3.7.0 // indirect
|
||||
go.etcd.io/etcd/client/pkg/v3 v3.7.0 // indirect
|
||||
go.etcd.io/etcd/client/v3 v3.7.0 // indirect
|
||||
go.mongodb.org/mongo-driver v1.17.9 // indirect
|
||||
go.opentelemetry.io/auto/sdk v1.2.1 // indirect
|
||||
go.opentelemetry.io/collector/featuregate v1.41.0 // indirect
|
||||
@@ -393,7 +391,7 @@ require (
|
||||
go.yaml.in/yaml/v3 v3.0.5 // indirect
|
||||
golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f // indirect
|
||||
golang.org/x/oauth2 v0.37.0 // indirect
|
||||
golang.org/x/term v0.46.0 // indirect
|
||||
golang.org/x/term v0.47.0 // indirect
|
||||
gomodules.xyz/jsonpatch/v2 v2.5.0 // indirect
|
||||
google.golang.org/api v0.297.0 // indirect
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20260819154853-08b0e4226688 // indirect
|
||||
@@ -405,8 +403,9 @@ require (
|
||||
gopkg.in/ns1/ns1-go.v2 v2.18.0 // indirect
|
||||
gopkg.in/yaml.v2 v2.4.0 // indirect
|
||||
k8s.io/klog/v2 v2.140.0 // indirect
|
||||
k8s.io/kube-openapi v0.0.0-20260501160325-927ab1f70cd6 // indirect
|
||||
k8s.io/streaming v0.36.3 // indirect
|
||||
k8s.io/kube-openapi v0.0.0-20260721132016-d427ff9ee9ad // indirect
|
||||
k8s.io/streaming v0.37.1 // indirect
|
||||
sigs.k8s.io/gateway-api-conformance-images v0.2.0 // indirect
|
||||
sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 // indirect
|
||||
sigs.k8s.io/randfill v1.0.0 // indirect
|
||||
software.sslmate.com/src/go-pkcs12 v0.7.3 // indirect
|
||||
|
||||
@@ -44,6 +44,7 @@ github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6 h1:He8af
|
||||
github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8=
|
||||
github.com/AdamSLevy/jsonrpc2/v14 v14.1.0 h1:Dy3M9aegiI7d7PF1LUdjbVigJReo+QOceYsMyFh9qoE=
|
||||
github.com/AdamSLevy/jsonrpc2/v14 v14.1.0/go.mod h1:ZakZtbCXxCz82NJvq7MoREtiQesnDfrtF6RFUGzQfLo=
|
||||
github.com/Azure/azure-sdk-for-go v68.0.0+incompatible h1:fcYLmCpyNYRnvJbPerq7U0hS+6+I79yEDJBqVNcqUzU=
|
||||
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.23.1 h1:zvXfGJCWvywnCA814d8ZiVyt+fm9nnTE8xSb99zRyfo=
|
||||
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.23.1/go.mod h1:iptorS+VYKFL2N6PnebpS91dubG35eAOEERnT4PJbQU=
|
||||
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.14.1 h1:u93s+zU2JD62im61Bm5CZIc1ZrOJaIAWEg0WOrMVkEo=
|
||||
@@ -131,8 +132,9 @@ github.com/alibabacloud-go/debug v0.0.0-20190504072949-9472017b5c68/go.mod h1:6p
|
||||
github.com/alibabacloud-go/debug v1.0.0/go.mod h1:8gfgZCCAC3+SCzjWtY053FrOcd4/qlH6IHTI4QyICOc=
|
||||
github.com/alibabacloud-go/debug v1.0.1 h1:MsW9SmUtbb1Fnt3ieC6NNZi6aEwrXfDksD4QA6GSbPg=
|
||||
github.com/alibabacloud-go/debug v1.0.1/go.mod h1:8gfgZCCAC3+SCzjWtY053FrOcd4/qlH6IHTI4QyICOc=
|
||||
github.com/alibabacloud-go/endpoint-util v1.1.0 h1:r/4D3VSw888XGaeNpP994zDUaxdgTSHBbVfZlzf6b5Q=
|
||||
github.com/alibabacloud-go/endpoint-util v1.1.0/go.mod h1:O5FuCALmCKs2Ff7JFJMudHs0I5EBgecXXxZRyswlEjE=
|
||||
github.com/alibabacloud-go/endpoint-util v1.1.1 h1:ZkBv2/jnghxtU0p+upSU0GGzW1VL9GQdZO3mcSUTUy8=
|
||||
github.com/alibabacloud-go/endpoint-util v1.1.1/go.mod h1:O5FuCALmCKs2Ff7JFJMudHs0I5EBgecXXxZRyswlEjE=
|
||||
github.com/alibabacloud-go/openapi-util v0.1.0/go.mod h1:sQuElr4ywwFRlCCberQwKRFhRzIyG4QTP/P4y1CJ6Ws=
|
||||
github.com/alibabacloud-go/openapi-util v0.1.2 h1:aljdyAPotH4xHymo5wzARjcHb3Org0zKnLP4RxS0JGY=
|
||||
github.com/alibabacloud-go/openapi-util v0.1.2/go.mod h1:/UehBSE2cf1gYT43GV4E+RxTdLRzURImCYY0aRmlXpw=
|
||||
@@ -590,8 +592,8 @@ github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hf
|
||||
github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
|
||||
github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
|
||||
github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
|
||||
github.com/google/pprof v0.0.0-20260115054156-294ebfa9ad83 h1:z2ogiKUYzX5Is6zr/vP9vJGqPwcdqsWjOt+V8J7+bTc=
|
||||
github.com/google/pprof v0.0.0-20260115054156-294ebfa9ad83/go.mod h1:MxpfABSjhmINe3F1It9d+8exIHFvUqtLIRCdOGNXqiI=
|
||||
github.com/google/pprof v0.0.0-20250403155104-27863c87afa6 h1:BHT72Gu3keYf3ZEu2J0b1vyeLSOYI8bm5wbJM/8yDe8=
|
||||
github.com/google/pprof v0.0.0-20250403155104-27863c87afa6/go.mod h1:boTsfXsheKC2y+lKOCMpSfarhxDeIzfZG1jqGcPl3cA=
|
||||
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
|
||||
github.com/google/s2a-go v0.1.9 h1:LGD7gtMgezd8a/Xak7mEWL0PjoTQFvpRudN895yqKW0=
|
||||
github.com/google/s2a-go v0.1.9/go.mod h1:YA0Ei2ZQL3acow2O62kdp9UlnvMmU7kA6Eutn0dXayM=
|
||||
@@ -685,8 +687,6 @@ github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uG
|
||||
github.com/hashicorp/golang-lru v1.0.2 h1:dV3g9Z/unq5DpblPpw+Oqcv4dU/1omnb4Ok8iPY6p1c=
|
||||
github.com/hashicorp/golang-lru v1.0.2/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=
|
||||
github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
|
||||
github.com/hashicorp/hcl v1.0.1-vault-5 h1:kI3hhbbyzr4dldA8UdTb7ZlVVlI2DACdCfz31RPDgJM=
|
||||
github.com/hashicorp/hcl v1.0.1-vault-5/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM=
|
||||
github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64=
|
||||
github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ=
|
||||
github.com/hashicorp/mdns v1.0.1/go.mod h1:4gW7WsVCke5TE7EPeYliwHlRUyBtfCwuFwuMg2DmyNY=
|
||||
@@ -998,16 +998,16 @@ github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE=
|
||||
github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU=
|
||||
github.com/onsi/ginkgo/v2 v2.0.0/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c=
|
||||
github.com/onsi/ginkgo/v2 v2.1.3/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c=
|
||||
github.com/onsi/ginkgo/v2 v2.28.0 h1:Rrf+lVLmtlBIKv6KrIGJCjyY8N36vDVcutbGJkyqjJc=
|
||||
github.com/onsi/ginkgo/v2 v2.28.0/go.mod h1:ArE1D/XhNXBXCBkKOLkbsb2c81dQHCRcF5zwn/ykDRo=
|
||||
github.com/onsi/ginkgo/v2 v2.32.1 h1:6tlvcDm/3sE8lGJbZ4+d4mO3RLy24/tQWOFzVSQNIfw=
|
||||
github.com/onsi/ginkgo/v2 v2.32.1/go.mod h1:+aXOY+vzZ5mu2iI2HpTZUPmM//oQfsNFX6gU9kNcA44=
|
||||
github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
|
||||
github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
|
||||
github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
|
||||
github.com/onsi/gomega v1.13.0/go.mod h1:lRk9szgn8TxENtWd0Tp4c3wjlRfMTMH27I+3Je41yGY=
|
||||
github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY=
|
||||
github.com/onsi/gomega v1.18.1/go.mod h1:0q+aL8jAiMXy9hbwj2mr5GziHiwhAIQpFmmtT5hitRs=
|
||||
github.com/onsi/gomega v1.40.0 h1:Vtol0e1MghCD2ZVIilPDIg44XSL9l2QAn8ZNaljWcJc=
|
||||
github.com/onsi/gomega v1.40.0/go.mod h1:M/Uqpu/8qTjtzCLUA2zJHX9Iilrau25x1PdoSRbWh5A=
|
||||
github.com/onsi/gomega v1.43.0 h1:VlG/1FxqNxhSO+lq/OHBNaaqwiBK/mO8JbVkX9Y+FeU=
|
||||
github.com/onsi/gomega v1.43.0/go.mod h1:REff/hsDsodHoKlWsP2mAPhu1+5/6hVYNf9rIEBpeSg=
|
||||
github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk=
|
||||
github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U=
|
||||
github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM=
|
||||
@@ -1061,8 +1061,8 @@ github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQ
|
||||
github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU=
|
||||
github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M=
|
||||
github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0=
|
||||
github.com/prometheus/client_golang v1.23.2 h1:Je96obch5RDVy3FDMndoUsjAhG5Edi49h0RJWRi/o0o=
|
||||
github.com/prometheus/client_golang v1.23.2/go.mod h1:Tb1a6LWHB3/SPIzCoaDXI4I8UHKeFTEQ1YCr+0Gyqmg=
|
||||
github.com/prometheus/client_golang v1.24.0 h1:5XStIklKuAtJSNpdD3s8XJj/Yv78IQmE1kbNk87JrAI=
|
||||
github.com/prometheus/client_golang v1.24.0/go.mod h1:QcsNdotprC2nS4BTM2ucbcqxd2CeXTEa9jW7zHO9iDE=
|
||||
github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
|
||||
github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
|
||||
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
|
||||
@@ -1077,8 +1077,8 @@ github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8b
|
||||
github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo=
|
||||
github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc=
|
||||
github.com/prometheus/common v0.30.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls=
|
||||
github.com/prometheus/common v0.67.5 h1:pIgK94WWlQt1WLwAC5j2ynLaBRDiinoAb86HZHTUGI4=
|
||||
github.com/prometheus/common v0.67.5/go.mod h1:SjE/0MzDEEAyrdr5Gqc6G+sXI67maCxzaT3A2+HqjUw=
|
||||
github.com/prometheus/common v0.70.0 h1:bcpru3tWPVnxGnETLgOV5jbp/JRXgYEyv65CuBLAMMI=
|
||||
github.com/prometheus/common v0.70.0/go.mod h1:S/SFasQmgGiYH6C81LKCtYa8QACgthGg5zxL2udV7SY=
|
||||
github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
|
||||
github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
|
||||
github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
|
||||
@@ -1087,8 +1087,8 @@ github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+Gx
|
||||
github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
|
||||
github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
|
||||
github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
|
||||
github.com/prometheus/procfs v0.20.1 h1:XwbrGOIplXW/AU3YhIhLODXMJYyC1isLFfYCsTEycfc=
|
||||
github.com/prometheus/procfs v0.20.1/go.mod h1:o9EMBZGRyvDrSPH1RqdxhojkuXstoe4UlK79eF5TGGo=
|
||||
github.com/prometheus/procfs v0.21.1 h1:GljZCt+zSTS+NZq88cyQ1LjZ+RCHp3uVuabBWA5+OJI=
|
||||
github.com/prometheus/procfs v0.21.1/go.mod h1:aB55Cww9pdSJVHk0hUf0inxWyyjPogFIjmHKYgMKmtY=
|
||||
github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU=
|
||||
github.com/quic-go/go-ossfuzz-seeds v0.1.0 h1:APacT+iIaNF6fd8AGEiN3bT/Jtkd2jz4v4TzM7MFjy0=
|
||||
github.com/quic-go/go-ossfuzz-seeds v0.1.0/go.mod h1:3IOHRbJIc+L6YKMwfDtJAM9Vj9k0YY4muhuyUYk5tbk=
|
||||
@@ -1120,10 +1120,8 @@ github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQD
|
||||
github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
|
||||
github.com/sacloud/sacloud-sdk-go v0.2.0 h1:kL4h1554oMjE+ZnhYos9lbrFC3mhNjWJ9JzAJVsaqSY=
|
||||
github.com/sacloud/sacloud-sdk-go v0.2.0/go.mod h1:kW29fUt9FgdTBcsGdA1sFrKnlRPuenUKza3z6jZeX68=
|
||||
github.com/sagikazarmark/locafero v0.4.0 h1:HApY1R9zGo4DBgr7dqsTH/JJxLTTsOt7u6keLGt6kNQ=
|
||||
github.com/sagikazarmark/locafero v0.4.0/go.mod h1:Pe1W6UlPYUk/+wc/6KFhbORCfqzgYEpgQ3O5fPuL3H4=
|
||||
github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6gto+ugjYE=
|
||||
github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ=
|
||||
github.com/sagikazarmark/locafero v0.11.0 h1:1iurJgmM9G3PA/I+wWYIOw/5SyBtxapeHDcg+AAIFXc=
|
||||
github.com/sagikazarmark/locafero v0.11.0/go.mod h1:nVIGvgyzw595SUSUE6tvCp3YYTeHs15MvlmU87WwIik=
|
||||
github.com/samber/lo v1.53.0 h1:t975lj2py4kJPQ6haz1QMgtId2gtmfktACxIXArw3HM=
|
||||
github.com/samber/lo v1.53.0/go.mod h1:4+MXEGsJzbKGaUEQFKBq2xtfuznW9oz/WrgyzMzRoM0=
|
||||
github.com/samber/slog-common v0.21.0 h1:Wo2hTly1Br5RjYqX/BTWJJeDnTE85oWk/7vqlpZuAUc=
|
||||
@@ -1167,8 +1165,8 @@ github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4k
|
||||
github.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY=
|
||||
github.com/sony/gobreaker/v2 v2.4.0 h1:g2KJRW1Ubty3+ZOcSEUN7K+REQJdN6yo6XvaML+jptg=
|
||||
github.com/sony/gobreaker/v2 v2.4.0/go.mod h1:pTyFJgcZ3h2tdQVLZZruK2C0eoFL1fb/G83wK1ZQl+s=
|
||||
github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo=
|
||||
github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0=
|
||||
github.com/sourcegraph/conc v0.3.1-0.20240121214520-5f936abd7ae8 h1:+jumHNA0Wrelhe64i8F6HNlS8pkoyMv5sreGx2Ry5Rw=
|
||||
github.com/sourcegraph/conc v0.3.1-0.20240121214520-5f936abd7ae8/go.mod h1:3n1Cwaq1E1/1lhQhtRK2ts/ZwZEhjcQeJQ1RuC6Q/8U=
|
||||
github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
|
||||
github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ=
|
||||
github.com/spf13/afero v1.4.1/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I=
|
||||
@@ -1176,8 +1174,8 @@ github.com/spf13/afero v1.15.0 h1:b/YBCLWAJdFWJTN9cLhiXXcD7mzKn9Dm86dNnfyQw1I=
|
||||
github.com/spf13/afero v1.15.0/go.mod h1:NC2ByUVxtQs4b3sIUphxK0NioZnmxgyCrfzeuq8lxMg=
|
||||
github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
|
||||
github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
|
||||
github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w=
|
||||
github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo=
|
||||
github.com/spf13/cast v1.10.0 h1:h2x0u2shc1QuLHfxi+cTJvs30+ZAHOGRic8uyGTDWxY=
|
||||
github.com/spf13/cast v1.10.0/go.mod h1:jNfB8QC9IA6ZuY2ZjDp0KtFO2LZZlg4S/7bzP6qqeHo=
|
||||
github.com/spf13/cobra v1.1.1/go.mod h1:WnodtKOvamDL/PwE2M4iKs8aMDBZ5Q5klgD3qfVJQMI=
|
||||
github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo=
|
||||
github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo=
|
||||
@@ -1187,10 +1185,10 @@ github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk=
|
||||
github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
|
||||
github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg=
|
||||
github.com/spf13/viper v1.7.1/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg=
|
||||
github.com/spf13/viper v1.18.2 h1:LUXCnvUvSM6FXAsj6nnfc8Q2tp1dIgUfY9Kc8GsSOiQ=
|
||||
github.com/spf13/viper v1.18.2/go.mod h1:EKmWIqdnk5lOcmR72yw6hS+8OPYcwD0jteitLMVB+yk=
|
||||
github.com/spiffe/go-spiffe/v2 v2.7.0 h1:uXe1MflJoHw58wAUvxVlcM7WpKtijWG7I1UidcGh6g4=
|
||||
github.com/spiffe/go-spiffe/v2 v2.7.0/go.mod h1:47Q0Q9/AqGha8QLHp+kxpH4Wca7X7EnOtlIJy3mxZ3U=
|
||||
github.com/spf13/viper v1.21.0 h1:x5S+0EU27Lbphp4UKm1C+1oQO+rKx36vfCoaVebLFSU=
|
||||
github.com/spf13/viper v1.21.0/go.mod h1:P0lhsswPGWD/1lZJ9ny3fYnVqxiegrlNrEmgLjbTCAY=
|
||||
github.com/spiffe/go-spiffe/v2 v2.8.1 h1:eXZMLsu+3MLEPJyGJkolqtVrteZfQdUpOWj6LTiDl/E=
|
||||
github.com/spiffe/go-spiffe/v2 v2.8.1/go.mod h1:47Q0Q9/AqGha8QLHp+kxpH4Wca7X7EnOtlIJy3mxZ3U=
|
||||
github.com/stealthrocket/wasi-go v0.8.0 h1:Hwnv3CUoMhhRyero9vt1vfwaYa9tu/Z5kmCW4WeAmVI=
|
||||
github.com/stealthrocket/wasi-go v0.8.0/go.mod h1:PJ5oVs2E1ciOJnsTnav4nvTtEcJ4D1jUZAewS9pzuZg=
|
||||
github.com/stealthrocket/wazergo v0.19.1 h1:BPrITETPgSFwiytwmToO0MbUC/+RGC39JScz1JmmG6c=
|
||||
@@ -1337,15 +1335,15 @@ github.com/zeebo/xxh3 v1.1.0 h1:s7DLGDK45Dyfg7++yxI0khrfwq9661w9EN78eP/UZVs=
|
||||
github.com/zeebo/xxh3 v1.1.0/go.mod h1:IisAie1LELR4xhVinxWS5+zf1lA4p0MW4T+w+W07F5s=
|
||||
go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
|
||||
go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs=
|
||||
go.etcd.io/etcd/api/v3 v3.6.14 h1:3EEwTzQPiCyhLtacyl2ZkC0pMJWowghi61nJ9JSpO1w=
|
||||
go.etcd.io/etcd/api/v3 v3.6.14/go.mod h1:L4HXnXoJ5NqXSxiwB4RihT5gGJJVvHEEOpEZ37g1Uj4=
|
||||
go.etcd.io/etcd/api/v3 v3.7.0 h1:WZlGK7pRtYGDB8ti8wkrQ5D2oWGMbtNL9VA5e+vF2Fg=
|
||||
go.etcd.io/etcd/api/v3 v3.7.0/go.mod h1:EcTihnwAQ0BQNh5dfAdaFVFdchuo7EP0HlX7TV3jz/A=
|
||||
go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g=
|
||||
go.etcd.io/etcd/client/pkg/v3 v3.6.14 h1:kqZf/BCRDWk9u5cNwBn1mTA+4GIZAU0POFPHmWHvo/I=
|
||||
go.etcd.io/etcd/client/pkg/v3 v3.6.14/go.mod h1:Po3WXW01VRS7/gSDf8xjiY2rJTLmAwq/YmKAEz6u1+E=
|
||||
go.etcd.io/etcd/client/pkg/v3 v3.7.0 h1:sW9njJzS3vXKcAJjjLQ4nk+avNUJ12Bcijcx8ehUskE=
|
||||
go.etcd.io/etcd/client/pkg/v3 v3.7.0/go.mod h1:cnzZGIUzSfjEwLC6UBVsSXlEK1eepS/JUD7wE6PLRT0=
|
||||
go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ=
|
||||
go.etcd.io/etcd/client/v3 v3.5.0/go.mod h1:AIKXXVX/DQXtfTEqBryiLTUXwON+GuvO6Z7lLS/oTh0=
|
||||
go.etcd.io/etcd/client/v3 v3.6.14 h1:3hjJbZCFJ3nFR47dZ/jjVu1/z6BRUHN1AA34pRbUW8Q=
|
||||
go.etcd.io/etcd/client/v3 v3.6.14/go.mod h1:rQqHPE7ju1B1nmaqpGdhRgBHqOTiVaUeymlY1/ATcoM=
|
||||
go.etcd.io/etcd/client/v3 v3.7.0 h1:5MHO37VbPB87VRPKUXEcicjeQWiTSjpPv3Ume8xPx20=
|
||||
go.etcd.io/etcd/client/v3 v3.7.0/go.mod h1:DJ382WuwjmbowjPDyaaQ0idWXy4dh91XRhe4FOrb9vM=
|
||||
go.mongodb.org/mongo-driver v1.13.1/go.mod h1:wcDf1JBCXy2mOW0bWHwO/IOYqdca1MPCwDtFu/Z9+eo=
|
||||
go.mongodb.org/mongo-driver v1.17.9 h1:IexDdCuuNJ3BHrELgBlyaH9p60JXAvdzWR128q+U5tU=
|
||||
go.mongodb.org/mongo-driver v1.17.9/go.mod h1:LlOhpH5NUEfhxcAwG0UEkMqwYcc4JU18gtCdGudk/tQ=
|
||||
@@ -1484,8 +1482,8 @@ golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDf
|
||||
golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs=
|
||||
golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8=
|
||||
golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM=
|
||||
golang.org/x/crypto v0.57.0 h1:3ZVCjf8Ggz7zneR/EHRVx68Ctf+2pmIMP2UFhh9cC6M=
|
||||
golang.org/x/crypto v0.57.0/go.mod h1:Fdz0i5U6CoizGwLda9DttjSk6qlZo25zYNtR+ycvuZA=
|
||||
golang.org/x/crypto v0.58.0 h1:COkYLr4k7nDI4r6QtMML2AfzeIswWHAJthLS6K/M/54=
|
||||
golang.org/x/crypto v0.58.0/go.mod h1:Xh+kl5A+M0gMiWDytH2Hhr5Z7WbNCpv/eB/EFgfSk+w=
|
||||
golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||
golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||
@@ -1530,8 +1528,8 @@ golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
|
||||
golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
|
||||
golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
|
||||
golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
|
||||
golang.org/x/mod v0.41.0 h1:qJmnOUb4YB+FsEuM3HcWucdZASCPGhsX6uljO6pog0c=
|
||||
golang.org/x/mod v0.41.0/go.mod h1:Ek9pY8RKWXwsWvd3rQiHYtMqkjSUV+s1Rj7j4H5Ur6o=
|
||||
golang.org/x/mod v0.42.0 h1:ICeL3t2L30ljSPHHxDnR4fqVcBt/zR2zJAb9juavmQg=
|
||||
golang.org/x/mod v0.42.0/go.mod h1:u5fzIrRInkL8MaO1cbRkUHT64v303YIT5KEqpNr7jRs=
|
||||
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
@@ -1593,8 +1591,8 @@ golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44=
|
||||
golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg=
|
||||
golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM=
|
||||
golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE=
|
||||
golang.org/x/net v0.60.0 h1:79p50tfZlm0J9YfoDsSi639qSXNGVwEzOPLCxM2FsYU=
|
||||
golang.org/x/net v0.60.0/go.mod h1:2DA/G1UfVbCpQPeWTmMPGY7Cs2PkBkwu743bVX5PIVg=
|
||||
golang.org/x/net v0.61.0 h1:RR+6j/BTBCrggOLugxa+66R8FvoN6MHlzDlZIbN9YFw=
|
||||
golang.org/x/net v0.61.0/go.mod h1:WgDCOTH8iwtB66T4/GfI94AHo/hhdb7Hah9NDseQfiI=
|
||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||
@@ -1619,8 +1617,8 @@ golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
|
||||
golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
|
||||
golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
|
||||
golang.org/x/sync v0.23.0 h1:KameEIfc1IkluZyXWLn39Wd4tURc6GbCiISGiZm2bQk=
|
||||
golang.org/x/sync v0.23.0/go.mod h1:sUUOizhqBxiL6pEWpqNLUiaJn1ShEbZ6BBqskPbjZm0=
|
||||
golang.org/x/sync v0.24.0 h1:iqiDrGoDgyuvAKrhLQthUEzU/R378N78gXbBjxed7oA=
|
||||
golang.org/x/sync v0.24.0/go.mod h1:sUUOizhqBxiL6pEWpqNLUiaJn1ShEbZ6BBqskPbjZm0=
|
||||
golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
@@ -1714,8 +1712,8 @@ golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
golang.org/x/sys v0.48.0 h1:bbX/i/6MgT9BVLM9RT1thmxL04yeTAhbEz4SyadbXoo=
|
||||
golang.org/x/sys v0.48.0/go.mod h1:hNLxWAXmnKAxqDtdwIYC4bM9oQPEecfsnNMuSxOs3og=
|
||||
golang.org/x/sys v0.49.0 h1:XbzkgYJHdqh/8m2Uu0W/dQv8nktxx4BFHp1M0gROTXA=
|
||||
golang.org/x/sys v0.49.0/go.mod h1:hNLxWAXmnKAxqDtdwIYC4bM9oQPEecfsnNMuSxOs3og=
|
||||
golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE=
|
||||
golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
|
||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||
@@ -1731,8 +1729,8 @@ golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk=
|
||||
golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58=
|
||||
golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY=
|
||||
golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0=
|
||||
golang.org/x/term v0.46.0 h1:3+OXuTbaKDgwk8jTi3aSLHRlmWqHEUDUtxnbFigO4YE=
|
||||
golang.org/x/term v0.46.0/go.mod h1:+K02xbkittuwc0Am4abfA3Fc+XRGXkvBXNO88NCXPoc=
|
||||
golang.org/x/term v0.47.0 h1:cpyOwQkr2Nzxe2p6KnrTG7Ei2wtzjsuSjhpXXepZ/BM=
|
||||
golang.org/x/term v0.47.0/go.mod h1:efAfAuG6RKABvg1ArGebRkvX6LXul14SM67o2e4mUCY=
|
||||
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
@@ -1751,8 +1749,8 @@ golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
|
||||
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
|
||||
golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
|
||||
golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI=
|
||||
golang.org/x/text v0.42.0 h1:JbOZXgfeCPU9gacVtYliJqOhD+zhrEqK4LfdpmlUZqI=
|
||||
golang.org/x/text v0.42.0/go.mod h1:ojzP1Z+2QtioaF8DTtO8K5q7JWVVYwZKenzujK0Zd0E=
|
||||
golang.org/x/text v0.43.0 h1:1QivrlhwAsnMOcqgOdl9my7s9OyZl8O5/UGUTJVXoWc=
|
||||
golang.org/x/text v0.43.0/go.mod h1:hbSIYA/amXcRXTFSZqh8tWHEoqRvvbKPJ2uz/KU+a+s=
|
||||
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
@@ -1822,8 +1820,8 @@ golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc
|
||||
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
|
||||
golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58=
|
||||
golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk=
|
||||
golang.org/x/tools v0.49.0 h1:3NI7VXzL9+1WZD52Dx2ttoPwD5DWrFGpl9mFZDlmisI=
|
||||
golang.org/x/tools v0.49.0/go.mod h1:SJNXV9DBKT0UbdttsQjbfJlAE/q+y36++zo3uL3N0Oo=
|
||||
golang.org/x/tools v0.52.0 h1:ryxg4U63oaUYk7uOLTF37n43f4qgtGvqV4Ioit1BaEs=
|
||||
golang.org/x/tools v0.52.0/go.mod h1:ItcP5UNaVGG+Yc4eIYmaFLNJ4soEopkx5Y2d4lcEurs=
|
||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
@@ -1915,8 +1913,8 @@ google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv
|
||||
google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
|
||||
google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
|
||||
google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34=
|
||||
google.golang.org/grpc v1.83.2 h1:EManeRomTObA0BU7I8vXgg/78uE5MJ9M8B39EX2WscU=
|
||||
google.golang.org/grpc v1.83.2/go.mod h1:YPI1hK3kDked6iHvgX3tR0y+nX/qpMFKhPgFsokw1S8=
|
||||
google.golang.org/grpc v1.84.0 h1:soMyaPJ8pAak5PIQ0DGBUir0XRo2fRoMqhNWMLlLxO0=
|
||||
google.golang.org/grpc v1.84.0/go.mod h1:ljCht0DrxQrXBDRTZp52Qxh3Ffk8CdYm2sj4O2QN2C0=
|
||||
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
||||
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
||||
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
|
||||
@@ -1985,22 +1983,22 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh
|
||||
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
|
||||
honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
|
||||
honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
|
||||
k8s.io/api v0.36.3 h1:NxB+05W2UGqXWFXcLO0RB5cnqnUPP5v5sVlaOH0Iz4w=
|
||||
k8s.io/api v0.36.3/go.mod h1:JzLQKqRHC5+I8RVj/lS3lCg0mg6nWI9Fo/Sk3ElxHzg=
|
||||
k8s.io/apiextensions-apiserver v0.36.3 h1:dPmOAPhwTtqb1bTxbFPsy18KHPhktQeO3WUPXunZIB0=
|
||||
k8s.io/apiextensions-apiserver v0.36.3/go.mod h1:KTXFqgXiuw2pRoL+Wpmttqc+up9Xt/GohadPWeLLOa4=
|
||||
k8s.io/apimachinery v0.36.3 h1:PkzMRBRG8joFD8EhCuQAtNPvJlxb82FwplP26HIzvAM=
|
||||
k8s.io/apimachinery v0.36.3/go.mod h1:cTSjBWgPe/6CQyBKzY/hDIRWCQQQeK0mfLbml0UYFHE=
|
||||
k8s.io/client-go v0.36.3 h1:M4JdVzXxYcZk4fGpfDdYnxSwhLKWCFoQsHW6t+z8Hfg=
|
||||
k8s.io/client-go v0.36.3/go.mod h1:gcPwr0c87vjjG6HB6pWEqOeuYVoXSsREjzux2j6GF30=
|
||||
k8s.io/api v0.37.1 h1:l6N77U7tjwB5L056bgrBTJIEdevac/naBZ3iSvDNfpM=
|
||||
k8s.io/api v0.37.1/go.mod h1:zSlbB1YpJ1YQlFVQy20UYll81UJSJJUMLhkhvg6Z78M=
|
||||
k8s.io/apiextensions-apiserver v0.37.1 h1:7fIQG8eThDSTVYBWg/DOpI8v5wYfKCo0N8/TDMjj+zY=
|
||||
k8s.io/apiextensions-apiserver v0.37.1/go.mod h1:1Q3ujWwHgnhBoGsdmGORflwK1sDFmuaqH1OsMDWk2Gs=
|
||||
k8s.io/apimachinery v0.37.1 h1:hGCYyvKHCwtwMitj2vU4vYx0Z16N9GyZk9BBnz0wDAE=
|
||||
k8s.io/apimachinery v0.37.1/go.mod h1:jF84AyUi/IRIXRot5f+lm6MpxoWI+F1XgjaMmwCdTFw=
|
||||
k8s.io/client-go v0.37.1 h1:QTv/5ha4jAHtW9qxxVBkQVFBRDb4jHfFopQqqMdc+wM=
|
||||
k8s.io/client-go v0.37.1/go.mod h1:dnAPtTnCNY38Ho04D2KdY1F4IKausa9UbqaAZKl60SY=
|
||||
k8s.io/klog/v2 v2.140.0 h1:Tf+J3AH7xnUzZyVVXhTgGhEKnFqye14aadWv7bzXdzc=
|
||||
k8s.io/klog/v2 v2.140.0/go.mod h1:o+/RWfJ6PwpnFn7OyAG3QnO47BFsymfEfrz6XyYSSp0=
|
||||
k8s.io/kube-openapi v0.0.0-20260501160325-927ab1f70cd6 h1:ngxu1nL4SbFuXwu1EY7cSKcVqSjTQPVbYQT6WNjTXaU=
|
||||
k8s.io/kube-openapi v0.0.0-20260501160325-927ab1f70cd6/go.mod h1:uGBT7iTA6c6MvqUvSXIaYZo9ukscABYi2btjhvgKGZ0=
|
||||
k8s.io/streaming v0.36.3 h1:9rAaqBk0C0Pc7+/fqGekj07NV+/Xrew58p647A0JT8w=
|
||||
k8s.io/streaming v0.36.3/go.mod h1:z6fV3D+NVkoeqRMtWwlUZK6U17SY/LqNzOxWL6GyR/s=
|
||||
k8s.io/utils v0.0.0-20260319190234-28399d86e0b5 h1:kBawHLSnx/mYHmRnNUf9d4CpjREbeZuxoSGOX/J+aYM=
|
||||
k8s.io/utils v0.0.0-20260319190234-28399d86e0b5/go.mod h1:xDxuJ0whA3d0I4mf/C4ppKHxXynQ+fxnkmQH0vTHnuk=
|
||||
k8s.io/kube-openapi v0.0.0-20260721132016-d427ff9ee9ad h1:oXImqH8mQNk7PmvzKhmN3ddJoY6OnyM225MXwGHPm0A=
|
||||
k8s.io/kube-openapi v0.0.0-20260721132016-d427ff9ee9ad/go.mod h1:0/mqHCVhlumdJ3BhCfnjSZQE037nAhNodh1/hK0T8/I=
|
||||
k8s.io/streaming v0.37.1 h1:TpzVfQeFuVndn2g9mFqxy1UcUYPwDzqjUmwR/IzJCWc=
|
||||
k8s.io/streaming v0.37.1/go.mod h1:APlJR26ZWRcVy5bIEj0QRrKUXROtBHPcxl2NT7EAzPU=
|
||||
k8s.io/utils v0.0.0-20260626114624-be93311217bd h1:Ea7fgQ5we8Y9T0OX5o0dAHzQOBRI07D/dEYRaB9ZZEs=
|
||||
k8s.io/utils v0.0.0-20260626114624-be93311217bd/go.mod h1:xDxuJ0whA3d0I4mf/C4ppKHxXynQ+fxnkmQH0vTHnuk=
|
||||
knative.dev/networking v0.0.0-20251217020127-11890a5dabea h1:CsVi1M+NbPIfvBPWI9DQOwlzBG6+w+mAfhUDqw1jeXM=
|
||||
knative.dev/networking v0.0.0-20251217020127-11890a5dabea/go.mod h1:gPzztUiSYDSB3yHx85xr4j2ZccEdiZDWlLsYHr7fQtg=
|
||||
knative.dev/pkg v0.0.0-20251216153728-9c8140b780d1 h1:pSZ4sRKm/Kq1ec+7Yhow6jUH0FKZjzrUHpPsy6Lu8pE=
|
||||
@@ -2013,18 +2011,20 @@ rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8
|
||||
rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4=
|
||||
rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
|
||||
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
|
||||
sigs.k8s.io/controller-runtime v0.24.1 h1:miPEwrmirImAvgME1L9qebGHrOnGJoVmVdtOU9fRfo4=
|
||||
sigs.k8s.io/controller-runtime v0.24.1/go.mod h1:vFkfY5fGt5xAC/sKb8IBFKgWPNKG9OUG29dR8Y2wImw=
|
||||
sigs.k8s.io/gateway-api v1.6.3 h1:lKpJa5bGlraC/QeACvCpsHLdmO6y0iKfzVl6gzaFEYc=
|
||||
sigs.k8s.io/gateway-api v1.6.3/go.mod h1:FVfx3t389ybeXOqvDghLbdvJdSCfI/PReqCUI3lu3mY=
|
||||
sigs.k8s.io/gateway-api/conformance v1.6.3 h1:UxhSb1GrDsyl+PdKe3g8a/BFWgP6hzy2PPFmZRgqeMQ=
|
||||
sigs.k8s.io/gateway-api/conformance v1.6.3/go.mod h1:JD6CHFrpzVyvgivIzhu0My27sOk3I3IphxJe4CIjGb4=
|
||||
sigs.k8s.io/controller-runtime v0.25.2 h1:bEkK3PVOIVK9X8QWLGVhJgmFc++47vfT6wakSzAOLsQ=
|
||||
sigs.k8s.io/controller-runtime v0.25.2/go.mod h1:4QqLdT6z/L6Olj8JJCtvztid4/fnIiYsfaTFScegctc=
|
||||
sigs.k8s.io/gateway-api v1.7.0-rc.3 h1:AkVo9SIFc5EWyPd/cpm9SSJ4s0hQajJKeNevhRMXDoQ=
|
||||
sigs.k8s.io/gateway-api v1.7.0-rc.3/go.mod h1:ihME72ink97/HnDMFNpNf9bH/mAcdTAVw0GR35iiZvA=
|
||||
sigs.k8s.io/gateway-api-conformance-images v0.2.0 h1:TltEF71GuCQzHAVxpjIZM/JgJdd5RJKxWwttWMp4uZY=
|
||||
sigs.k8s.io/gateway-api-conformance-images v0.2.0/go.mod h1:YOHMYwk30yhyqLgXRRxY9lj3f9voQvk/t0MAyT46Pss=
|
||||
sigs.k8s.io/gateway-api/conformance v1.7.0-rc.3 h1:lxwEq7URgwMuCqpc5qXlgOHPHfq5vczfTlEB/ZWwrqU=
|
||||
sigs.k8s.io/gateway-api/conformance v1.7.0-rc.3/go.mod h1:nLxWKSpnluoybVmeQ0Mj2rFqHO1mzKrrzwIY6jTtUGA=
|
||||
sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 h1:IpInykpT6ceI+QxKBbEflcR5EXP7sU1kvOlxwZh5txg=
|
||||
sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg=
|
||||
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.4.0 h1:qmp2e3ZfFi1/jJbDGpD4mt3wyp6PE1NfKHCYLqgNQJo=
|
||||
sigs.k8s.io/structured-merge-diff/v6 v6.4.0/go.mod h1:M3W8sfWvn2HhQDIbGWj3S099YozAsymCo/wrT5ohRUE=
|
||||
sigs.k8s.io/structured-merge-diff/v6 v6.4.2 h1:qdOxHwrl2Kaag1aQEarlYcOA9vSyGCp3CIki3aW8c4Q=
|
||||
sigs.k8s.io/structured-merge-diff/v6 v6.4.2/go.mod h1:M3W8sfWvn2HhQDIbGWj3S099YozAsymCo/wrT5ohRUE=
|
||||
sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc=
|
||||
sigs.k8s.io/yaml v1.6.0 h1:G8fkbMSAFqgEFgh4b1wmtzDnioxFCUgTZhlbj5P9QYs=
|
||||
sigs.k8s.io/yaml v1.6.0/go.mod h1:796bPqUfzR/0jLAl6XjHl3Ck7MiyVv8dbTdyT3/pMf4=
|
||||
|
||||
+2917
-287
File diff suppressed because it is too large.
Load diff
+2917
-287
File diff suppressed because it is too large.
Load diff
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.21.0
|
||||
controller-gen.kubebuilder.io/version: v0.23.0
|
||||
name: ingressroutes.traefik.io
|
||||
spec:
|
||||
group: traefik.io
|
||||
@@ -528,7 +528,7 @@ apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.21.0
|
||||
controller-gen.kubebuilder.io/version: v0.23.0
|
||||
name: ingressroutetcps.traefik.io
|
||||
spec:
|
||||
group: traefik.io
|
||||
@@ -791,7 +791,7 @@ apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.21.0
|
||||
controller-gen.kubebuilder.io/version: v0.23.0
|
||||
name: ingressrouteudps.traefik.io
|
||||
spec:
|
||||
group: traefik.io
|
||||
@@ -907,7 +907,7 @@ apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.21.0
|
||||
controller-gen.kubebuilder.io/version: v0.23.0
|
||||
name: middlewares.traefik.io
|
||||
spec:
|
||||
group: traefik.io
|
||||
@@ -2950,7 +2950,7 @@ apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.21.0
|
||||
controller-gen.kubebuilder.io/version: v0.23.0
|
||||
name: middlewaretcps.traefik.io
|
||||
spec:
|
||||
group: traefik.io
|
||||
@@ -3039,7 +3039,7 @@ apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.21.0
|
||||
controller-gen.kubebuilder.io/version: v0.23.0
|
||||
name: serverstransports.traefik.io
|
||||
spec:
|
||||
group: traefik.io
|
||||
@@ -3259,7 +3259,7 @@ apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.21.0
|
||||
controller-gen.kubebuilder.io/version: v0.23.0
|
||||
name: serverstransporttcps.traefik.io
|
||||
spec:
|
||||
group: traefik.io
|
||||
@@ -3432,7 +3432,7 @@ apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.21.0
|
||||
controller-gen.kubebuilder.io/version: v0.23.0
|
||||
name: tlsoptions.traefik.io
|
||||
spec:
|
||||
group: traefik.io
|
||||
@@ -3551,7 +3551,7 @@ apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.21.0
|
||||
controller-gen.kubebuilder.io/version: v0.23.0
|
||||
name: tlsstores.traefik.io
|
||||
spec:
|
||||
group: traefik.io
|
||||
@@ -3648,7 +3648,7 @@ apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.21.0
|
||||
controller-gen.kubebuilder.io/version: v0.23.0
|
||||
name: traefikservices.traefik.io
|
||||
spec:
|
||||
group: traefik.io
|
||||
|
||||
+40
-11
@@ -1,7 +1,7 @@
|
||||
apiVersion: gateway.networking.k8s.io/v1
|
||||
date: "2026-10-23T14:22:24+02:00"
|
||||
date: "2026-10-26T10:33:25+01:00"
|
||||
gatewayAPIChannel: experimental
|
||||
gatewayAPIVersion: v1.6.3
|
||||
gatewayAPIVersion: v1.7.0-rc.3
|
||||
implementation:
|
||||
contact:
|
||||
- '@traefik/maintainers'
|
||||
@@ -16,15 +16,17 @@ profiles:
|
||||
result: success
|
||||
statistics:
|
||||
Failed: 0
|
||||
Passed: 14
|
||||
Passed: 17
|
||||
Skipped: 0
|
||||
extended:
|
||||
result: success
|
||||
statistics:
|
||||
Failed: 0
|
||||
Passed: 11
|
||||
Passed: 12
|
||||
Skipped: 0
|
||||
supportedFeatures:
|
||||
- BackendTLSPolicy
|
||||
- BackendTLSPolicySANValidation
|
||||
- GatewayAddressEmpty
|
||||
- GatewayFrontendClientCertificateValidation
|
||||
- GatewayFrontendClientCertificateValidationInsecureFallback
|
||||
@@ -35,20 +37,25 @@ profiles:
|
||||
- GatewayStaticAddresses
|
||||
- ListenerSet
|
||||
unsupportedFeatures:
|
||||
- ClusterTrustBundle
|
||||
- GatewayAddressRoutability
|
||||
- GatewayAddressRoutabilityCluster
|
||||
- GatewayBackendClientCertificate
|
||||
- GatewayListenerFilters
|
||||
- GatewayRouteHostnameIntersectionPrecedence
|
||||
name: GATEWAY-GRPC
|
||||
summary: Core tests succeeded. Extended tests succeeded.
|
||||
- core:
|
||||
result: success
|
||||
statistics:
|
||||
Failed: 0
|
||||
Passed: 36
|
||||
Passed: 40
|
||||
Skipped: 0
|
||||
extended:
|
||||
result: success
|
||||
statistics:
|
||||
Failed: 0
|
||||
Passed: 52
|
||||
Passed: 54
|
||||
Skipped: 0
|
||||
supportedFeatures:
|
||||
- BackendTLSPolicy
|
||||
@@ -68,6 +75,7 @@ profiles:
|
||||
- HTTPRouteBackendProtocolWebSocket
|
||||
- HTTPRouteBackendRequestHeaderModification
|
||||
- HTTPRouteBackendTimeout
|
||||
- HTTPRouteBackendURLRewrite
|
||||
- HTTPRouteCORS
|
||||
- HTTPRouteDestinationPortMatching
|
||||
- HTTPRouteHostRewrite
|
||||
@@ -83,12 +91,16 @@ profiles:
|
||||
- HTTPRouteSchemeRedirect
|
||||
- ListenerSet
|
||||
unsupportedFeatures:
|
||||
- ClusterTrustBundle
|
||||
- GatewayAddressRoutability
|
||||
- GatewayAddressRoutabilityCluster
|
||||
- GatewayBackendClientCertificate
|
||||
- GatewayListenerFilters
|
||||
- GatewayRouteHostnameIntersectionPrecedence
|
||||
- HTTPRouteRequestMirror
|
||||
- HTTPRouteRequestMultipleMirrors
|
||||
- HTTPRouteRequestPercentageMirror
|
||||
- HTTPRouteRetry
|
||||
- HTTPRouteRetryBackendTimeout
|
||||
- HTTPRouteRetryCodes
|
||||
- HTTPRouteRetryConnectionError
|
||||
name: GATEWAY-HTTP
|
||||
summary: Core tests succeeded. Extended tests succeeded.
|
||||
@@ -96,7 +108,7 @@ profiles:
|
||||
result: success
|
||||
statistics:
|
||||
Failed: 0
|
||||
Passed: 18
|
||||
Passed: 20
|
||||
Skipped: 0
|
||||
extended:
|
||||
result: success
|
||||
@@ -116,22 +128,29 @@ profiles:
|
||||
- ListenerSet
|
||||
- TCPRoute
|
||||
unsupportedFeatures:
|
||||
- ClusterTrustBundle
|
||||
- GatewayAddressRoutability
|
||||
- GatewayAddressRoutabilityCluster
|
||||
- GatewayBackendClientCertificate
|
||||
- GatewayListenerFilters
|
||||
- GatewayRouteHostnameIntersectionPrecedence
|
||||
name: GATEWAY-TCP
|
||||
summary: Core tests succeeded. Extended tests succeeded.
|
||||
- core:
|
||||
result: success
|
||||
statistics:
|
||||
Failed: 0
|
||||
Passed: 19
|
||||
Passed: 21
|
||||
Skipped: 0
|
||||
extended:
|
||||
result: success
|
||||
statistics:
|
||||
Failed: 0
|
||||
Passed: 16
|
||||
Passed: 17
|
||||
Skipped: 0
|
||||
supportedFeatures:
|
||||
- BackendTLSPolicy
|
||||
- BackendTLSPolicySANValidation
|
||||
- GatewayAddressEmpty
|
||||
- GatewayFrontendClientCertificateValidation
|
||||
- GatewayFrontendClientCertificateValidationInsecureFallback
|
||||
@@ -144,6 +163,16 @@ profiles:
|
||||
- TLSRouteModeMixed
|
||||
- TLSRouteModeTerminate
|
||||
unsupportedFeatures:
|
||||
- ClusterTrustBundle
|
||||
- GatewayAddressRoutability
|
||||
- GatewayAddressRoutabilityCluster
|
||||
- GatewayBackendClientCertificate
|
||||
- GatewayListenerFilters
|
||||
- GatewayRouteHostnameIntersectionPrecedence
|
||||
name: GATEWAY-TLS
|
||||
summary: Core tests succeeded. Extended tests succeeded.
|
||||
succeededProvisionalTests:
|
||||
- BackendTLSPolicyPreserveForeignStatus
|
||||
- GatewayPreserveForeignConditions
|
||||
- HTTPRouteBackendURLRewrite
|
||||
- HTTPRoutePreserveForeignStatus
|
||||
+46
-14
@@ -1,7 +1,7 @@
|
||||
apiVersion: gateway.networking.k8s.io/v1
|
||||
date: "2026-10-23T14:25:00+02:00"
|
||||
date: "2026-10-26T10:40:18+01:00"
|
||||
gatewayAPIChannel: experimental
|
||||
gatewayAPIVersion: v1.6.3
|
||||
gatewayAPIVersion: v1.7.0-rc.3
|
||||
implementation:
|
||||
contact:
|
||||
- '@traefik/maintainers'
|
||||
@@ -13,20 +13,24 @@ kind: ConformanceReport
|
||||
mode: merged
|
||||
profiles:
|
||||
- core:
|
||||
result: success
|
||||
result: partial
|
||||
skippedTests:
|
||||
- GRPCRouteMultipleGateways
|
||||
statistics:
|
||||
Failed: 0
|
||||
Passed: 14
|
||||
Skipped: 0
|
||||
Passed: 16
|
||||
Skipped: 1
|
||||
extended:
|
||||
result: partial
|
||||
skippedTests:
|
||||
- GatewayInfrastructureMetadata
|
||||
statistics:
|
||||
Failed: 0
|
||||
Passed: 8
|
||||
Passed: 9
|
||||
Skipped: 1
|
||||
supportedFeatures:
|
||||
- BackendTLSPolicy
|
||||
- BackendTLSPolicySANValidation
|
||||
- GatewayFrontendClientCertificateValidation
|
||||
- GatewayFrontendClientCertificateValidationInsecureFallback
|
||||
- GatewayHTTPListenerIsolation
|
||||
@@ -35,18 +39,24 @@ profiles:
|
||||
- GatewayPort8080
|
||||
- ListenerSet
|
||||
unsupportedFeatures:
|
||||
- ClusterTrustBundle
|
||||
- GatewayAddressEmpty
|
||||
- GatewayAddressRoutability
|
||||
- GatewayAddressRoutabilityCluster
|
||||
- GatewayBackendClientCertificate
|
||||
- GatewayListenerFilters
|
||||
- GatewayRouteHostnameIntersectionPrecedence
|
||||
- GatewayStaticAddresses
|
||||
name: GATEWAY-GRPC
|
||||
summary: Core tests succeeded. Extended tests partially succeeded with 1 test skips.
|
||||
summary: Core tests partially succeeded with 1 test skips. Extended tests partially
|
||||
succeeded with 1 test skips.
|
||||
- core:
|
||||
result: partial
|
||||
skippedTests:
|
||||
- HTTPRouteMultipleGateways
|
||||
statistics:
|
||||
Failed: 0
|
||||
Passed: 35
|
||||
Passed: 39
|
||||
Skipped: 1
|
||||
extended:
|
||||
result: partial
|
||||
@@ -58,7 +68,7 @@ profiles:
|
||||
- GatewayInvalidFrontendClientCertificateValidation
|
||||
statistics:
|
||||
Failed: 0
|
||||
Passed: 45
|
||||
Passed: 47
|
||||
Skipped: 5
|
||||
supportedFeatures:
|
||||
- BackendTLSPolicy
|
||||
@@ -76,6 +86,7 @@ profiles:
|
||||
- HTTPRouteBackendProtocolWebSocket
|
||||
- HTTPRouteBackendRequestHeaderModification
|
||||
- HTTPRouteBackendTimeout
|
||||
- HTTPRouteBackendURLRewrite
|
||||
- HTTPRouteCORS
|
||||
- HTTPRouteDestinationPortMatching
|
||||
- HTTPRouteHostRewrite
|
||||
@@ -91,14 +102,18 @@ profiles:
|
||||
- HTTPRouteSchemeRedirect
|
||||
- ListenerSet
|
||||
unsupportedFeatures:
|
||||
- ClusterTrustBundle
|
||||
- GatewayAddressEmpty
|
||||
- GatewayAddressRoutability
|
||||
- GatewayAddressRoutabilityCluster
|
||||
- GatewayBackendClientCertificate
|
||||
- GatewayListenerFilters
|
||||
- GatewayRouteHostnameIntersectionPrecedence
|
||||
- GatewayStaticAddresses
|
||||
- HTTPRouteRequestMirror
|
||||
- HTTPRouteRequestMultipleMirrors
|
||||
- HTTPRouteRequestPercentageMirror
|
||||
- HTTPRouteRetry
|
||||
- HTTPRouteRetryBackendTimeout
|
||||
- HTTPRouteRetryCodes
|
||||
- HTTPRouteRetryConnectionError
|
||||
name: GATEWAY-HTTP
|
||||
summary: Core tests partially succeeded with 1 test skips. Extended tests partially
|
||||
@@ -107,7 +122,7 @@ profiles:
|
||||
result: success
|
||||
statistics:
|
||||
Failed: 0
|
||||
Passed: 18
|
||||
Passed: 20
|
||||
Skipped: 0
|
||||
extended:
|
||||
result: partial
|
||||
@@ -127,8 +142,13 @@ profiles:
|
||||
- ListenerSet
|
||||
- TCPRoute
|
||||
unsupportedFeatures:
|
||||
- ClusterTrustBundle
|
||||
- GatewayAddressEmpty
|
||||
- GatewayAddressRoutability
|
||||
- GatewayAddressRoutabilityCluster
|
||||
- GatewayBackendClientCertificate
|
||||
- GatewayListenerFilters
|
||||
- GatewayRouteHostnameIntersectionPrecedence
|
||||
- GatewayStaticAddresses
|
||||
name: GATEWAY-TCP
|
||||
summary: Core tests succeeded. Extended tests partially succeeded with 1 test skips.
|
||||
@@ -138,7 +158,7 @@ profiles:
|
||||
- TLSRouteHostnameIntersection
|
||||
statistics:
|
||||
Failed: 0
|
||||
Passed: 18
|
||||
Passed: 20
|
||||
Skipped: 1
|
||||
extended:
|
||||
result: partial
|
||||
@@ -146,9 +166,11 @@ profiles:
|
||||
- GatewayInfrastructureMetadata
|
||||
statistics:
|
||||
Failed: 0
|
||||
Passed: 13
|
||||
Passed: 14
|
||||
Skipped: 1
|
||||
supportedFeatures:
|
||||
- BackendTLSPolicy
|
||||
- BackendTLSPolicySANValidation
|
||||
- GatewayFrontendClientCertificateValidation
|
||||
- GatewayFrontendClientCertificateValidationInsecureFallback
|
||||
- GatewayHTTPListenerIsolation
|
||||
@@ -159,9 +181,19 @@ profiles:
|
||||
- TLSRouteModeMixed
|
||||
- TLSRouteModeTerminate
|
||||
unsupportedFeatures:
|
||||
- ClusterTrustBundle
|
||||
- GatewayAddressEmpty
|
||||
- GatewayAddressRoutability
|
||||
- GatewayAddressRoutabilityCluster
|
||||
- GatewayBackendClientCertificate
|
||||
- GatewayListenerFilters
|
||||
- GatewayRouteHostnameIntersectionPrecedence
|
||||
- GatewayStaticAddresses
|
||||
name: GATEWAY-TLS
|
||||
summary: Core tests partially succeeded with 1 test skips. Extended tests partially
|
||||
succeeded with 1 test skips.
|
||||
succeededProvisionalTests:
|
||||
- BackendTLSPolicyPreserveForeignStatus
|
||||
- GatewayPreserveForeignConditions
|
||||
- HTTPRouteBackendURLRewrite
|
||||
- HTTPRoutePreserveForeignStatus
|
||||
@@ -82,7 +82,7 @@ func (s *GatewayAPIConformanceMergedSuite) SetupSuite() {
|
||||
s.k3sContainer, err = k3s.Run(
|
||||
ctx,
|
||||
k3sImage,
|
||||
k3s.WithManifest("./fixtures/gateway-api-conformance/00-experimental-v1.6.3.yml"),
|
||||
k3s.WithManifest("./fixtures/gateway-api-conformance/00-experimental-v1.7.0-rc.3.yml"),
|
||||
k3s.WithManifest("./fixtures/gateway-api-conformance/merged/01-rbac.yml"),
|
||||
k3s.WithManifest("./fixtures/gateway-api-conformance/merged/02-traefik.yml"),
|
||||
network.WithNetwork(nil, s.network),
|
||||
@@ -192,6 +192,7 @@ func (s *GatewayAPIConformanceMergedSuite) TestK8sGatewayAPIConformanceMerged()
|
||||
// cannot satisfy in merged mode cause they enforce having an operator.
|
||||
SkipTests: []string{
|
||||
tests.HTTPRouteMultipleGateways.ShortName,
|
||||
tests.GRPCRouteMultipleGateways.ShortName,
|
||||
tests.TLSRouteHostnameIntersection.ShortName,
|
||||
tests.GatewayInfrastructureMetadata.ShortName,
|
||||
tests.GatewayFrontendClientCertificateValidation.ShortName,
|
||||
|
||||
@@ -113,7 +113,7 @@ func (s *GatewayAPIConformanceSuite) SetupSuite() {
|
||||
// which a single node cannot do for the several port 80 Services the
|
||||
// operator provisions. nodeLoadBalancer assigns their addresses.
|
||||
testcontainers.WithCmdArgs("--disable=servicelb"),
|
||||
k3s.WithManifest("./fixtures/gateway-api-conformance/00-experimental-v1.6.3.yml"),
|
||||
k3s.WithManifest("./fixtures/gateway-api-conformance/00-experimental-v1.7.0-rc.3.yml"),
|
||||
k3s.WithManifest("./fixtures/gateway-api-conformance/operator/01-operator.yml"),
|
||||
k3s.WithManifest("./fixtures/gateway-api-conformance/operator/02-gatewayclass.yml"),
|
||||
k3s.WithManifest("./fixtures/gateway-api-conformance/operator/03-bootstrap-gateway.yml"),
|
||||
|
||||
@@ -32,7 +32,7 @@ func (s *GatewayAPISuite) TestGatewayConfiguration() {
|
||||
ctx := s.T().Context()
|
||||
|
||||
k3sContainer, err := k3s.Run(ctx, k3sImage,
|
||||
k3s.WithManifest("./fixtures/k8s-gateway/00-experimental-v1.6.3.yml"),
|
||||
k3s.WithManifest("./fixtures/k8s-gateway/00-experimental-v1.7.0-rc.3.yml"),
|
||||
k3s.WithManifest("./fixtures/k8s-gateway/01-services.yml"),
|
||||
k3s.WithManifest("./fixtures/k8s-gateway/02-gateway.yml"),
|
||||
k3s.WithManifest("./fixtures/k8s-gateway/03-tcproute.yml"),
|
||||
|
||||
+1
-1
@@ -32,7 +32,7 @@ package v1alpha1
|
||||
// ClientTLSWithCAOptional holds the client TLS configuration.
|
||||
// TODO: This has to be removed once the CAOptional option is removed.
|
||||
type ClientTLSWithCAOptionalApplyConfiguration struct {
|
||||
ClientTLSApplyConfiguration `json:",inline"`
|
||||
ClientTLSApplyConfiguration `json:""`
|
||||
// Deprecated: TLS client authentication is a server side option (see https://github.com/golang/go/blob/740a490f71d026bb7d2d13cb8fa2d6d6e0572b70/src/crypto/tls/common.go#L634).
|
||||
CAOptional *bool `json:"caOptional,omitempty"`
|
||||
}
|
||||
|
||||
+1
-1
@@ -37,7 +37,7 @@ import (
|
||||
//
|
||||
// IngressRoute is the CRD implementation of a Traefik HTTP Router.
|
||||
type IngressRouteApplyConfiguration struct {
|
||||
v1.TypeMetaApplyConfiguration `json:",inline"`
|
||||
v1.TypeMetaApplyConfiguration `json:""`
|
||||
// Standard object's metadata.
|
||||
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
|
||||
*v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"`
|
||||
|
||||
+1
-1
@@ -37,7 +37,7 @@ import (
|
||||
//
|
||||
// IngressRouteTCP is the CRD implementation of a Traefik TCP Router.
|
||||
type IngressRouteTCPApplyConfiguration struct {
|
||||
v1.TypeMetaApplyConfiguration `json:",inline"`
|
||||
v1.TypeMetaApplyConfiguration `json:""`
|
||||
// Standard object's metadata.
|
||||
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
|
||||
*v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"`
|
||||
|
||||
+1
-1
@@ -37,7 +37,7 @@ import (
|
||||
//
|
||||
// IngressRouteUDP is a CRD implementation of a Traefik UDP Router.
|
||||
type IngressRouteUDPApplyConfiguration struct {
|
||||
v1.TypeMetaApplyConfiguration `json:",inline"`
|
||||
v1.TypeMetaApplyConfiguration `json:""`
|
||||
// Standard object's metadata.
|
||||
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
|
||||
*v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"`
|
||||
|
||||
+1
-1
@@ -38,7 +38,7 @@ import (
|
||||
// Middleware is the CRD implementation of a Traefik Middleware.
|
||||
// More info: https://doc.traefik.io/traefik/v3.7/reference/routing-configuration/http/middlewares/overview/
|
||||
type MiddlewareApplyConfiguration struct {
|
||||
v1.TypeMetaApplyConfiguration `json:",inline"`
|
||||
v1.TypeMetaApplyConfiguration `json:""`
|
||||
// Standard object's metadata.
|
||||
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
|
||||
*v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"`
|
||||
|
||||
+1
-1
@@ -38,7 +38,7 @@ import (
|
||||
// MiddlewareTCP is the CRD implementation of a Traefik TCP middleware.
|
||||
// More info: https://doc.traefik.io/traefik/v3.7/reference/routing-configuration/tcp/middlewares/overview/
|
||||
type MiddlewareTCPApplyConfiguration struct {
|
||||
v1.TypeMetaApplyConfiguration `json:",inline"`
|
||||
v1.TypeMetaApplyConfiguration `json:""`
|
||||
// Standard object's metadata.
|
||||
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
|
||||
*v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"`
|
||||
|
||||
+1
-1
@@ -37,7 +37,7 @@ import (
|
||||
// Mirroring holds the mirroring service configuration.
|
||||
// More info: https://doc.traefik.io/traefik/v3.7/reference/routing-configuration/http/load-balancing/service/#mirroring
|
||||
type MirroringApplyConfiguration struct {
|
||||
LoadBalancerSpecApplyConfiguration `json:",inline"`
|
||||
LoadBalancerSpecApplyConfiguration `json:""`
|
||||
// MirrorBody defines whether the body of the request should be mirrored.
|
||||
// Default value is true.
|
||||
MirrorBody *bool `json:"mirrorBody,omitempty"`
|
||||
|
||||
+1
-1
@@ -36,7 +36,7 @@ import (
|
||||
//
|
||||
// MirrorService holds the mirror configuration.
|
||||
type MirrorServiceApplyConfiguration struct {
|
||||
LoadBalancerSpecApplyConfiguration `json:",inline"`
|
||||
LoadBalancerSpecApplyConfiguration `json:""`
|
||||
// Percent defines the part of the traffic to mirror.
|
||||
// Supported values: 0 to 100.
|
||||
Percent *int `json:"percent,omitempty"`
|
||||
|
||||
+1
-1
@@ -40,7 +40,7 @@ import (
|
||||
// The default@internal serversTransport is created from the static configuration.
|
||||
// More info: https://doc.traefik.io/traefik/v3.7/reference/routing-configuration/http/load-balancing/serverstransport/
|
||||
type ServersTransportApplyConfiguration struct {
|
||||
v1.TypeMetaApplyConfiguration `json:",inline"`
|
||||
v1.TypeMetaApplyConfiguration `json:""`
|
||||
// Standard object's metadata.
|
||||
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
|
||||
*v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"`
|
||||
|
||||
+1
-1
@@ -40,7 +40,7 @@ import (
|
||||
// The default@internal tcpServersTransport can be configured in the static configuration.
|
||||
// More info: https://doc.traefik.io/traefik/v3.7/reference/routing-configuration/tcp/serverstransport/
|
||||
type ServersTransportTCPApplyConfiguration struct {
|
||||
v1.TypeMetaApplyConfiguration `json:",inline"`
|
||||
v1.TypeMetaApplyConfiguration `json:""`
|
||||
// Standard object's metadata.
|
||||
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
|
||||
*v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"`
|
||||
|
||||
+1
-1
@@ -36,7 +36,7 @@ import (
|
||||
//
|
||||
// Service defines an upstream HTTP service to proxy traffic to.
|
||||
type ServiceApplyConfiguration struct {
|
||||
LoadBalancerSpecApplyConfiguration `json:",inline"`
|
||||
LoadBalancerSpecApplyConfiguration `json:""`
|
||||
}
|
||||
|
||||
// ServiceApplyConfiguration constructs a declarative configuration of the Service type for use with
|
||||
|
||||
+1
-1
@@ -36,7 +36,7 @@ import (
|
||||
// TapResponse holds the configuration of the response records sent by the tap middleware.
|
||||
// A response record is configured like a request record, with the request headers on top.
|
||||
type TapResponseApplyConfiguration struct {
|
||||
TapRequestApplyConfiguration `json:",inline"`
|
||||
TapRequestApplyConfiguration `json:""`
|
||||
// RequestHeaders defines the request headers described in the records, along with the request line.
|
||||
// It allows a response record to be understood, and correlated, without the matching request record.
|
||||
RequestHeaders []string `json:"requestHeaders,omitempty"`
|
||||
|
||||
+1
-1
@@ -38,7 +38,7 @@ import (
|
||||
// TLSOption is the CRD implementation of a Traefik TLS Option, allowing to configure some parameters of the TLS connection.
|
||||
// More info: https://doc.traefik.io/traefik/v3.7/reference/routing-configuration/http/tls/tls-certificates/#certificates-stores#tls-options
|
||||
type TLSOptionApplyConfiguration struct {
|
||||
v1.TypeMetaApplyConfiguration `json:",inline"`
|
||||
v1.TypeMetaApplyConfiguration `json:""`
|
||||
// Standard object's metadata.
|
||||
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
|
||||
*v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"`
|
||||
|
||||
+1
-1
@@ -40,7 +40,7 @@ import (
|
||||
// This means that you cannot have two stores that are named default in different Kubernetes namespaces.
|
||||
// More info: https://doc.traefik.io/traefik/v3.7/reference/routing-configuration/http/tls/tls-certificates/#certificates-stores#certificates-stores
|
||||
type TLSStoreApplyConfiguration struct {
|
||||
v1.TypeMetaApplyConfiguration `json:",inline"`
|
||||
v1.TypeMetaApplyConfiguration `json:""`
|
||||
// Standard object's metadata.
|
||||
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
|
||||
*v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"`
|
||||
|
||||
+1
-1
@@ -41,7 +41,7 @@ import (
|
||||
// - Mirror traffic on services
|
||||
// More info: https://doc.traefik.io/traefik/v3.7/reference/routing-configuration/kubernetes/crd/http/traefikservice/
|
||||
type TraefikServiceApplyConfiguration struct {
|
||||
v1.TypeMetaApplyConfiguration `json:",inline"`
|
||||
v1.TypeMetaApplyConfiguration `json:""`
|
||||
// Standard object's metadata.
|
||||
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
|
||||
*v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"`
|
||||
|
||||
@@ -37,7 +37,7 @@ import (
|
||||
)
|
||||
|
||||
type Interface interface {
|
||||
Discovery() discovery.DiscoveryInterface
|
||||
Discovery() discovery.DiscoveryInterfaces
|
||||
TraefikV1alpha1() traefikv1alpha1.TraefikV1alpha1Interface
|
||||
}
|
||||
|
||||
@@ -53,7 +53,7 @@ func (c *Clientset) TraefikV1alpha1() traefikv1alpha1.TraefikV1alpha1Interface {
|
||||
}
|
||||
|
||||
// Discovery retrieves the DiscoveryClient
|
||||
func (c *Clientset) Discovery() discovery.DiscoveryInterface {
|
||||
func (c *Clientset) Discovery() discovery.DiscoveryInterfaces {
|
||||
if c == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
+1
-1
@@ -80,7 +80,7 @@ type Clientset struct {
|
||||
tracker testing.ObjectTracker
|
||||
}
|
||||
|
||||
func (c *Clientset) Discovery() discovery.DiscoveryInterface {
|
||||
func (c *Clientset) Discovery() discovery.DiscoveryInterfaces {
|
||||
return c.discovery
|
||||
}
|
||||
|
||||
|
||||
@@ -261,7 +261,7 @@ func (f *sharedInformerFactory) InformerFor(obj runtime.Object, newFunc internal
|
||||
// ctx, cancel := context.WithCancel(context.Background())
|
||||
// defer cancel()
|
||||
// factory := NewSharedInformerFactory(client, resyncPeriod)
|
||||
// defer factory.WaitForStop() // Returns immediately if nothing was started.
|
||||
// defer factory.Shutdown() // Returns immediately if nothing was started.
|
||||
// genericInformer := factory.ForResource(resource)
|
||||
// typedInformer := factory.SomeAPIGroup().V1().SomeType()
|
||||
// handle, err := typeInformer.Informer().AddEventHandler(...)
|
||||
@@ -319,7 +319,7 @@ type SharedInformerFactory interface {
|
||||
// WaitForCacheSync blocks until all started informers' caches were synced
|
||||
// or the stop channel gets closed.
|
||||
//
|
||||
// Contextual logging: WaitForCacheSync should be used instead of WaitForCacheSync in code which supports contextual logging. It also returns a more useful result.
|
||||
// Contextual logging: WaitForCacheSyncWithContext should be used instead of WaitForCacheSync in code which supports contextual logging. It also returns a more useful result.
|
||||
WaitForCacheSync(stopCh <-chan struct{}) map[reflect.Type]bool
|
||||
|
||||
// WaitForCacheSyncWithContext blocks until all started informers' caches were synced
|
||||
|
||||
+98
-6
@@ -42,12 +42,40 @@ import (
|
||||
)
|
||||
|
||||
// IngressRouteInformer provides access to a shared informer and lister for
|
||||
// IngressRoutes.
|
||||
// IngressRoutes. Prefer using the type-safe variant (see [TypedIngressRouteInformer]).
|
||||
type IngressRouteInformer interface {
|
||||
Informer() cache.SharedIndexInformer
|
||||
Lister() traefikiov1alpha1.IngressRouteLister
|
||||
}
|
||||
|
||||
// TypedIngressRouteInformer provides access to a shared informer and lister for
|
||||
// IngressRoutes, including the type-safe TypedInformer variant.
|
||||
// It is a superset of IngressRouteInformer.
|
||||
type TypedIngressRouteInformer interface {
|
||||
Informer() cache.SharedIndexInformer
|
||||
TypedInformer() IngressRouteIndexInformer
|
||||
Lister() traefikiov1alpha1.IngressRouteLister
|
||||
}
|
||||
|
||||
// IngressRouteIndexInformer is a wrapper around the underlying [cache.SharedIndexInformer]
|
||||
// with type-safe variants of several methods.
|
||||
type IngressRouteIndexInformer cache.TypedSharedIndexInformer[*crdtraefikiov1alpha1.IngressRoute]
|
||||
|
||||
// IngressRouteHandlerFuncs is a specialization of [cache.TypedResourceEventHandlerFuncs] for IngressRoute.
|
||||
type IngressRouteHandlerFuncs = cache.TypedResourceEventHandlerFuncs[*crdtraefikiov1alpha1.IngressRoute]
|
||||
|
||||
// IngressRouteDetailedHandlerFuncs is a specialization of [cache.TypedResourceEventHandlerDetailedFuncs] for IngressRoute.
|
||||
type IngressRouteDetailedHandlerFuncs = cache.TypedResourceEventHandlerDetailedFuncs[*crdtraefikiov1alpha1.IngressRoute]
|
||||
|
||||
// IngressRouteFilteringHandler is a specialization of [cache.TypedFilteringResourceEventHandler] for IngressRoute.
|
||||
type IngressRouteFilteringHandler = cache.TypedFilteringResourceEventHandler[*crdtraefikiov1alpha1.IngressRoute]
|
||||
|
||||
// IngressRouteIndexers is a specialization of [cache.TypedIndexers] for IngressRoute.
|
||||
type IngressRouteIndexers = cache.TypedIndexers[*crdtraefikiov1alpha1.IngressRoute]
|
||||
|
||||
// DeletedIngressRoute is a specialization of [cache.DeletedObject] for IngressRoute.
|
||||
type DeletedIngressRoute = cache.DeletedObject[*crdtraefikiov1alpha1.IngressRoute]
|
||||
|
||||
type ingressRouteInformer struct {
|
||||
factory internalinterfaces.SharedInformerFactory
|
||||
tweakListOptions internalinterfaces.TweakListOptionsFunc
|
||||
@@ -57,25 +85,49 @@ type ingressRouteInformer struct {
|
||||
// NewIngressRouteInformer constructs a new informer for IngressRoute type.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
// If you really need an independent one, prefer using the type-safe variant (see [NewTypedIngressRouteInformer]).
|
||||
func NewIngressRouteInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {
|
||||
return NewIngressRouteInformerWithOptions(client, namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: indexers})
|
||||
}
|
||||
|
||||
// NewTypedIngressRouteInformer constructs a new informer for IngressRoute type.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
func NewTypedIngressRouteInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers IngressRouteIndexers) IngressRouteIndexInformer {
|
||||
return NewTypedIngressRouteInformerWithOptions(client, namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: cache.TypedIndexersToIndexers(indexers)})
|
||||
}
|
||||
|
||||
// NewFilteredIngressRouteInformer constructs a new informer for IngressRoute type.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
// If you really need an independent one, prefer using the type-safe variant (see [NewTypedFilteredIngressRouteInformer]).
|
||||
func NewFilteredIngressRouteInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {
|
||||
return NewIngressRouteInformerWithOptions(client, namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: indexers, TweakListOptions: tweakListOptions})
|
||||
return NewTypedIngressRouteInformerWithOptions(client, namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: indexers, TweakListOptions: tweakListOptions})
|
||||
}
|
||||
|
||||
// NewTypedFilteredIngressRouteInformer constructs a new informer for IngressRoute type.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
func NewTypedFilteredIngressRouteInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers IngressRouteIndexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) IngressRouteIndexInformer {
|
||||
return NewTypedIngressRouteInformerWithOptions(client, namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: cache.TypedIndexersToIndexers(indexers), TweakListOptions: tweakListOptions})
|
||||
}
|
||||
|
||||
// NewIngressRouteInformerWithOptions constructs a new informer for IngressRoute type with additional options.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
// If you really need an independent one, prefer using the type-safe variant (see [NewTypedIngressRouteInformerWithOptions]).
|
||||
func NewIngressRouteInformerWithOptions(client versioned.Interface, namespace string, options internalinterfaces.InformerOptions) cache.SharedIndexInformer {
|
||||
return NewTypedIngressRouteInformerWithOptions(client, namespace, options)
|
||||
}
|
||||
|
||||
// NewTypedIngressRouteInformerWithOptions constructs a new informer for IngressRoute type with additional options.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
func NewTypedIngressRouteInformerWithOptions(client versioned.Interface, namespace string, options internalinterfaces.InformerOptions) IngressRouteIndexInformer {
|
||||
gvr := schema.GroupVersionResource{Group: "traefik.io", Version: "v1alpha1", Resource: "ingressroutes"}
|
||||
identifier := options.InformerName.WithResource(gvr)
|
||||
tweakListOptions := options.TweakListOptions
|
||||
return cache.NewSharedIndexInformerWithOptions(
|
||||
return cache.NewTypedSharedIndexInformer[*crdtraefikiov1alpha1.IngressRoute](cache.NewSharedIndexInformerWithOptions(
|
||||
cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{
|
||||
ListFunc: func(opts v1.ListOptions) (runtime.Object, error) {
|
||||
if tweakListOptions != nil {
|
||||
@@ -108,17 +160,57 @@ func NewIngressRouteInformerWithOptions(client versioned.Interface, namespace st
|
||||
Indexers: options.Indexers,
|
||||
Identifier: identifier,
|
||||
},
|
||||
)
|
||||
))
|
||||
}
|
||||
|
||||
func (f *ingressRouteInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
|
||||
return NewIngressRouteInformerWithOptions(client, f.namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, InformerName: f.factory.InformerName(), TweakListOptions: f.tweakListOptions})
|
||||
return NewTypedIngressRouteInformerWithOptions(client, f.namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, InformerName: f.factory.InformerName(), TweakListOptions: f.tweakListOptions})
|
||||
}
|
||||
|
||||
func (f *ingressRouteInformer) Informer() cache.SharedIndexInformer {
|
||||
return f.factory.InformerFor(&crdtraefikiov1alpha1.IngressRoute{}, f.defaultInformer)
|
||||
return f.TypedInformer()
|
||||
}
|
||||
|
||||
func (f *ingressRouteInformer) TypedInformer() IngressRouteIndexInformer {
|
||||
return cache.NewTypedSharedIndexInformer[*crdtraefikiov1alpha1.IngressRoute](f.factory.InformerFor(&crdtraefikiov1alpha1.IngressRoute{}, f.defaultInformer))
|
||||
}
|
||||
|
||||
func (f *ingressRouteInformer) Lister() traefikiov1alpha1.IngressRouteLister {
|
||||
return traefikiov1alpha1.NewIngressRouteLister(f.Informer().GetIndexer())
|
||||
}
|
||||
|
||||
// ToTypedIngressRouteInformer converts an untyped informer into a TypedIngressRouteInformer.
|
||||
//
|
||||
// WARNING: this conversion is only safe if the informer handles objects of type
|
||||
// *IngressRoute. If that is not the case, calling type-safe methods of the returned
|
||||
// TypedIngressRouteInformer leads to runtime panics. A safer alternative is to pass
|
||||
// around a TypedIngressRouteInformer instances that was obtained from a
|
||||
// SharedInformerFactory.
|
||||
func ToTypedIngressRouteInformer(informer IngressRouteInformer) TypedIngressRouteInformer {
|
||||
if informer, ok := informer.(TypedIngressRouteInformer); ok {
|
||||
return informer
|
||||
}
|
||||
return &ingressRouteTypedInformerAdapter{informer}
|
||||
}
|
||||
|
||||
type ingressRouteTypedInformerAdapter struct {
|
||||
IngressRouteInformer
|
||||
}
|
||||
|
||||
func (a *ingressRouteTypedInformerAdapter) TypedInformer() IngressRouteIndexInformer {
|
||||
return cache.NewTypedSharedIndexInformer[*crdtraefikiov1alpha1.IngressRoute](a.Informer())
|
||||
}
|
||||
|
||||
// ToIngressRouteIndexInformer converts an untyped informer into a IngressRouteIndexInformer.
|
||||
//
|
||||
// WARNING: this conversion is only safe if the informer handles objects of type
|
||||
// *IngressRoute. If that is not the case, calling type-safe methods of the returned
|
||||
// IngressRouteIndexInformer leads to runtime panics. A safer alternative is to pass
|
||||
// around a IngressRouteIndexInformer instances that was obtained from a
|
||||
// SharedInformerFactory.
|
||||
func ToIngressRouteIndexInformer(informer cache.SharedIndexInformer) IngressRouteIndexInformer {
|
||||
if informer, ok := informer.(IngressRouteIndexInformer); ok {
|
||||
return informer
|
||||
}
|
||||
return cache.NewTypedSharedIndexInformer[*crdtraefikiov1alpha1.IngressRoute](informer)
|
||||
}
|
||||
+98
-6
@@ -42,12 +42,40 @@ import (
|
||||
)
|
||||
|
||||
// IngressRouteTCPInformer provides access to a shared informer and lister for
|
||||
// IngressRouteTCPs.
|
||||
// IngressRouteTCPs. Prefer using the type-safe variant (see [TypedIngressRouteTCPInformer]).
|
||||
type IngressRouteTCPInformer interface {
|
||||
Informer() cache.SharedIndexInformer
|
||||
Lister() traefikiov1alpha1.IngressRouteTCPLister
|
||||
}
|
||||
|
||||
// TypedIngressRouteTCPInformer provides access to a shared informer and lister for
|
||||
// IngressRouteTCPs, including the type-safe TypedInformer variant.
|
||||
// It is a superset of IngressRouteTCPInformer.
|
||||
type TypedIngressRouteTCPInformer interface {
|
||||
Informer() cache.SharedIndexInformer
|
||||
TypedInformer() IngressRouteTCPIndexInformer
|
||||
Lister() traefikiov1alpha1.IngressRouteTCPLister
|
||||
}
|
||||
|
||||
// IngressRouteTCPIndexInformer is a wrapper around the underlying [cache.SharedIndexInformer]
|
||||
// with type-safe variants of several methods.
|
||||
type IngressRouteTCPIndexInformer cache.TypedSharedIndexInformer[*crdtraefikiov1alpha1.IngressRouteTCP]
|
||||
|
||||
// IngressRouteTCPHandlerFuncs is a specialization of [cache.TypedResourceEventHandlerFuncs] for IngressRouteTCP.
|
||||
type IngressRouteTCPHandlerFuncs = cache.TypedResourceEventHandlerFuncs[*crdtraefikiov1alpha1.IngressRouteTCP]
|
||||
|
||||
// IngressRouteTCPDetailedHandlerFuncs is a specialization of [cache.TypedResourceEventHandlerDetailedFuncs] for IngressRouteTCP.
|
||||
type IngressRouteTCPDetailedHandlerFuncs = cache.TypedResourceEventHandlerDetailedFuncs[*crdtraefikiov1alpha1.IngressRouteTCP]
|
||||
|
||||
// IngressRouteTCPFilteringHandler is a specialization of [cache.TypedFilteringResourceEventHandler] for IngressRouteTCP.
|
||||
type IngressRouteTCPFilteringHandler = cache.TypedFilteringResourceEventHandler[*crdtraefikiov1alpha1.IngressRouteTCP]
|
||||
|
||||
// IngressRouteTCPIndexers is a specialization of [cache.TypedIndexers] for IngressRouteTCP.
|
||||
type IngressRouteTCPIndexers = cache.TypedIndexers[*crdtraefikiov1alpha1.IngressRouteTCP]
|
||||
|
||||
// DeletedIngressRouteTCP is a specialization of [cache.DeletedObject] for IngressRouteTCP.
|
||||
type DeletedIngressRouteTCP = cache.DeletedObject[*crdtraefikiov1alpha1.IngressRouteTCP]
|
||||
|
||||
type ingressRouteTCPInformer struct {
|
||||
factory internalinterfaces.SharedInformerFactory
|
||||
tweakListOptions internalinterfaces.TweakListOptionsFunc
|
||||
@@ -57,25 +85,49 @@ type ingressRouteTCPInformer struct {
|
||||
// NewIngressRouteTCPInformer constructs a new informer for IngressRouteTCP type.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
// If you really need an independent one, prefer using the type-safe variant (see [NewTypedIngressRouteTCPInformer]).
|
||||
func NewIngressRouteTCPInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {
|
||||
return NewIngressRouteTCPInformerWithOptions(client, namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: indexers})
|
||||
}
|
||||
|
||||
// NewTypedIngressRouteTCPInformer constructs a new informer for IngressRouteTCP type.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
func NewTypedIngressRouteTCPInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers IngressRouteTCPIndexers) IngressRouteTCPIndexInformer {
|
||||
return NewTypedIngressRouteTCPInformerWithOptions(client, namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: cache.TypedIndexersToIndexers(indexers)})
|
||||
}
|
||||
|
||||
// NewFilteredIngressRouteTCPInformer constructs a new informer for IngressRouteTCP type.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
// If you really need an independent one, prefer using the type-safe variant (see [NewTypedFilteredIngressRouteTCPInformer]).
|
||||
func NewFilteredIngressRouteTCPInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {
|
||||
return NewIngressRouteTCPInformerWithOptions(client, namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: indexers, TweakListOptions: tweakListOptions})
|
||||
return NewTypedIngressRouteTCPInformerWithOptions(client, namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: indexers, TweakListOptions: tweakListOptions})
|
||||
}
|
||||
|
||||
// NewTypedFilteredIngressRouteTCPInformer constructs a new informer for IngressRouteTCP type.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
func NewTypedFilteredIngressRouteTCPInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers IngressRouteTCPIndexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) IngressRouteTCPIndexInformer {
|
||||
return NewTypedIngressRouteTCPInformerWithOptions(client, namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: cache.TypedIndexersToIndexers(indexers), TweakListOptions: tweakListOptions})
|
||||
}
|
||||
|
||||
// NewIngressRouteTCPInformerWithOptions constructs a new informer for IngressRouteTCP type with additional options.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
// If you really need an independent one, prefer using the type-safe variant (see [NewTypedIngressRouteTCPInformerWithOptions]).
|
||||
func NewIngressRouteTCPInformerWithOptions(client versioned.Interface, namespace string, options internalinterfaces.InformerOptions) cache.SharedIndexInformer {
|
||||
return NewTypedIngressRouteTCPInformerWithOptions(client, namespace, options)
|
||||
}
|
||||
|
||||
// NewTypedIngressRouteTCPInformerWithOptions constructs a new informer for IngressRouteTCP type with additional options.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
func NewTypedIngressRouteTCPInformerWithOptions(client versioned.Interface, namespace string, options internalinterfaces.InformerOptions) IngressRouteTCPIndexInformer {
|
||||
gvr := schema.GroupVersionResource{Group: "traefik.io", Version: "v1alpha1", Resource: "ingressroutetcps"}
|
||||
identifier := options.InformerName.WithResource(gvr)
|
||||
tweakListOptions := options.TweakListOptions
|
||||
return cache.NewSharedIndexInformerWithOptions(
|
||||
return cache.NewTypedSharedIndexInformer[*crdtraefikiov1alpha1.IngressRouteTCP](cache.NewSharedIndexInformerWithOptions(
|
||||
cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{
|
||||
ListFunc: func(opts v1.ListOptions) (runtime.Object, error) {
|
||||
if tweakListOptions != nil {
|
||||
@@ -108,17 +160,57 @@ func NewIngressRouteTCPInformerWithOptions(client versioned.Interface, namespace
|
||||
Indexers: options.Indexers,
|
||||
Identifier: identifier,
|
||||
},
|
||||
)
|
||||
))
|
||||
}
|
||||
|
||||
func (f *ingressRouteTCPInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
|
||||
return NewIngressRouteTCPInformerWithOptions(client, f.namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, InformerName: f.factory.InformerName(), TweakListOptions: f.tweakListOptions})
|
||||
return NewTypedIngressRouteTCPInformerWithOptions(client, f.namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, InformerName: f.factory.InformerName(), TweakListOptions: f.tweakListOptions})
|
||||
}
|
||||
|
||||
func (f *ingressRouteTCPInformer) Informer() cache.SharedIndexInformer {
|
||||
return f.factory.InformerFor(&crdtraefikiov1alpha1.IngressRouteTCP{}, f.defaultInformer)
|
||||
return f.TypedInformer()
|
||||
}
|
||||
|
||||
func (f *ingressRouteTCPInformer) TypedInformer() IngressRouteTCPIndexInformer {
|
||||
return cache.NewTypedSharedIndexInformer[*crdtraefikiov1alpha1.IngressRouteTCP](f.factory.InformerFor(&crdtraefikiov1alpha1.IngressRouteTCP{}, f.defaultInformer))
|
||||
}
|
||||
|
||||
func (f *ingressRouteTCPInformer) Lister() traefikiov1alpha1.IngressRouteTCPLister {
|
||||
return traefikiov1alpha1.NewIngressRouteTCPLister(f.Informer().GetIndexer())
|
||||
}
|
||||
|
||||
// ToTypedIngressRouteTCPInformer converts an untyped informer into a TypedIngressRouteTCPInformer.
|
||||
//
|
||||
// WARNING: this conversion is only safe if the informer handles objects of type
|
||||
// *IngressRouteTCP. If that is not the case, calling type-safe methods of the returned
|
||||
// TypedIngressRouteTCPInformer leads to runtime panics. A safer alternative is to pass
|
||||
// around a TypedIngressRouteTCPInformer instances that was obtained from a
|
||||
// SharedInformerFactory.
|
||||
func ToTypedIngressRouteTCPInformer(informer IngressRouteTCPInformer) TypedIngressRouteTCPInformer {
|
||||
if informer, ok := informer.(TypedIngressRouteTCPInformer); ok {
|
||||
return informer
|
||||
}
|
||||
return &ingressRouteTCPTypedInformerAdapter{informer}
|
||||
}
|
||||
|
||||
type ingressRouteTCPTypedInformerAdapter struct {
|
||||
IngressRouteTCPInformer
|
||||
}
|
||||
|
||||
func (a *ingressRouteTCPTypedInformerAdapter) TypedInformer() IngressRouteTCPIndexInformer {
|
||||
return cache.NewTypedSharedIndexInformer[*crdtraefikiov1alpha1.IngressRouteTCP](a.Informer())
|
||||
}
|
||||
|
||||
// ToIngressRouteTCPIndexInformer converts an untyped informer into a IngressRouteTCPIndexInformer.
|
||||
//
|
||||
// WARNING: this conversion is only safe if the informer handles objects of type
|
||||
// *IngressRouteTCP. If that is not the case, calling type-safe methods of the returned
|
||||
// IngressRouteTCPIndexInformer leads to runtime panics. A safer alternative is to pass
|
||||
// around a IngressRouteTCPIndexInformer instances that was obtained from a
|
||||
// SharedInformerFactory.
|
||||
func ToIngressRouteTCPIndexInformer(informer cache.SharedIndexInformer) IngressRouteTCPIndexInformer {
|
||||
if informer, ok := informer.(IngressRouteTCPIndexInformer); ok {
|
||||
return informer
|
||||
}
|
||||
return cache.NewTypedSharedIndexInformer[*crdtraefikiov1alpha1.IngressRouteTCP](informer)
|
||||
}
|
||||
+98
-6
@@ -42,12 +42,40 @@ import (
|
||||
)
|
||||
|
||||
// IngressRouteUDPInformer provides access to a shared informer and lister for
|
||||
// IngressRouteUDPs.
|
||||
// IngressRouteUDPs. Prefer using the type-safe variant (see [TypedIngressRouteUDPInformer]).
|
||||
type IngressRouteUDPInformer interface {
|
||||
Informer() cache.SharedIndexInformer
|
||||
Lister() traefikiov1alpha1.IngressRouteUDPLister
|
||||
}
|
||||
|
||||
// TypedIngressRouteUDPInformer provides access to a shared informer and lister for
|
||||
// IngressRouteUDPs, including the type-safe TypedInformer variant.
|
||||
// It is a superset of IngressRouteUDPInformer.
|
||||
type TypedIngressRouteUDPInformer interface {
|
||||
Informer() cache.SharedIndexInformer
|
||||
TypedInformer() IngressRouteUDPIndexInformer
|
||||
Lister() traefikiov1alpha1.IngressRouteUDPLister
|
||||
}
|
||||
|
||||
// IngressRouteUDPIndexInformer is a wrapper around the underlying [cache.SharedIndexInformer]
|
||||
// with type-safe variants of several methods.
|
||||
type IngressRouteUDPIndexInformer cache.TypedSharedIndexInformer[*crdtraefikiov1alpha1.IngressRouteUDP]
|
||||
|
||||
// IngressRouteUDPHandlerFuncs is a specialization of [cache.TypedResourceEventHandlerFuncs] for IngressRouteUDP.
|
||||
type IngressRouteUDPHandlerFuncs = cache.TypedResourceEventHandlerFuncs[*crdtraefikiov1alpha1.IngressRouteUDP]
|
||||
|
||||
// IngressRouteUDPDetailedHandlerFuncs is a specialization of [cache.TypedResourceEventHandlerDetailedFuncs] for IngressRouteUDP.
|
||||
type IngressRouteUDPDetailedHandlerFuncs = cache.TypedResourceEventHandlerDetailedFuncs[*crdtraefikiov1alpha1.IngressRouteUDP]
|
||||
|
||||
// IngressRouteUDPFilteringHandler is a specialization of [cache.TypedFilteringResourceEventHandler] for IngressRouteUDP.
|
||||
type IngressRouteUDPFilteringHandler = cache.TypedFilteringResourceEventHandler[*crdtraefikiov1alpha1.IngressRouteUDP]
|
||||
|
||||
// IngressRouteUDPIndexers is a specialization of [cache.TypedIndexers] for IngressRouteUDP.
|
||||
type IngressRouteUDPIndexers = cache.TypedIndexers[*crdtraefikiov1alpha1.IngressRouteUDP]
|
||||
|
||||
// DeletedIngressRouteUDP is a specialization of [cache.DeletedObject] for IngressRouteUDP.
|
||||
type DeletedIngressRouteUDP = cache.DeletedObject[*crdtraefikiov1alpha1.IngressRouteUDP]
|
||||
|
||||
type ingressRouteUDPInformer struct {
|
||||
factory internalinterfaces.SharedInformerFactory
|
||||
tweakListOptions internalinterfaces.TweakListOptionsFunc
|
||||
@@ -57,25 +85,49 @@ type ingressRouteUDPInformer struct {
|
||||
// NewIngressRouteUDPInformer constructs a new informer for IngressRouteUDP type.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
// If you really need an independent one, prefer using the type-safe variant (see [NewTypedIngressRouteUDPInformer]).
|
||||
func NewIngressRouteUDPInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {
|
||||
return NewIngressRouteUDPInformerWithOptions(client, namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: indexers})
|
||||
}
|
||||
|
||||
// NewTypedIngressRouteUDPInformer constructs a new informer for IngressRouteUDP type.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
func NewTypedIngressRouteUDPInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers IngressRouteUDPIndexers) IngressRouteUDPIndexInformer {
|
||||
return NewTypedIngressRouteUDPInformerWithOptions(client, namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: cache.TypedIndexersToIndexers(indexers)})
|
||||
}
|
||||
|
||||
// NewFilteredIngressRouteUDPInformer constructs a new informer for IngressRouteUDP type.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
// If you really need an independent one, prefer using the type-safe variant (see [NewTypedFilteredIngressRouteUDPInformer]).
|
||||
func NewFilteredIngressRouteUDPInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {
|
||||
return NewIngressRouteUDPInformerWithOptions(client, namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: indexers, TweakListOptions: tweakListOptions})
|
||||
return NewTypedIngressRouteUDPInformerWithOptions(client, namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: indexers, TweakListOptions: tweakListOptions})
|
||||
}
|
||||
|
||||
// NewTypedFilteredIngressRouteUDPInformer constructs a new informer for IngressRouteUDP type.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
func NewTypedFilteredIngressRouteUDPInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers IngressRouteUDPIndexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) IngressRouteUDPIndexInformer {
|
||||
return NewTypedIngressRouteUDPInformerWithOptions(client, namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: cache.TypedIndexersToIndexers(indexers), TweakListOptions: tweakListOptions})
|
||||
}
|
||||
|
||||
// NewIngressRouteUDPInformerWithOptions constructs a new informer for IngressRouteUDP type with additional options.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
// If you really need an independent one, prefer using the type-safe variant (see [NewTypedIngressRouteUDPInformerWithOptions]).
|
||||
func NewIngressRouteUDPInformerWithOptions(client versioned.Interface, namespace string, options internalinterfaces.InformerOptions) cache.SharedIndexInformer {
|
||||
return NewTypedIngressRouteUDPInformerWithOptions(client, namespace, options)
|
||||
}
|
||||
|
||||
// NewTypedIngressRouteUDPInformerWithOptions constructs a new informer for IngressRouteUDP type with additional options.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
func NewTypedIngressRouteUDPInformerWithOptions(client versioned.Interface, namespace string, options internalinterfaces.InformerOptions) IngressRouteUDPIndexInformer {
|
||||
gvr := schema.GroupVersionResource{Group: "traefik.io", Version: "v1alpha1", Resource: "ingressrouteudps"}
|
||||
identifier := options.InformerName.WithResource(gvr)
|
||||
tweakListOptions := options.TweakListOptions
|
||||
return cache.NewSharedIndexInformerWithOptions(
|
||||
return cache.NewTypedSharedIndexInformer[*crdtraefikiov1alpha1.IngressRouteUDP](cache.NewSharedIndexInformerWithOptions(
|
||||
cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{
|
||||
ListFunc: func(opts v1.ListOptions) (runtime.Object, error) {
|
||||
if tweakListOptions != nil {
|
||||
@@ -108,17 +160,57 @@ func NewIngressRouteUDPInformerWithOptions(client versioned.Interface, namespace
|
||||
Indexers: options.Indexers,
|
||||
Identifier: identifier,
|
||||
},
|
||||
)
|
||||
))
|
||||
}
|
||||
|
||||
func (f *ingressRouteUDPInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
|
||||
return NewIngressRouteUDPInformerWithOptions(client, f.namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, InformerName: f.factory.InformerName(), TweakListOptions: f.tweakListOptions})
|
||||
return NewTypedIngressRouteUDPInformerWithOptions(client, f.namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, InformerName: f.factory.InformerName(), TweakListOptions: f.tweakListOptions})
|
||||
}
|
||||
|
||||
func (f *ingressRouteUDPInformer) Informer() cache.SharedIndexInformer {
|
||||
return f.factory.InformerFor(&crdtraefikiov1alpha1.IngressRouteUDP{}, f.defaultInformer)
|
||||
return f.TypedInformer()
|
||||
}
|
||||
|
||||
func (f *ingressRouteUDPInformer) TypedInformer() IngressRouteUDPIndexInformer {
|
||||
return cache.NewTypedSharedIndexInformer[*crdtraefikiov1alpha1.IngressRouteUDP](f.factory.InformerFor(&crdtraefikiov1alpha1.IngressRouteUDP{}, f.defaultInformer))
|
||||
}
|
||||
|
||||
func (f *ingressRouteUDPInformer) Lister() traefikiov1alpha1.IngressRouteUDPLister {
|
||||
return traefikiov1alpha1.NewIngressRouteUDPLister(f.Informer().GetIndexer())
|
||||
}
|
||||
|
||||
// ToTypedIngressRouteUDPInformer converts an untyped informer into a TypedIngressRouteUDPInformer.
|
||||
//
|
||||
// WARNING: this conversion is only safe if the informer handles objects of type
|
||||
// *IngressRouteUDP. If that is not the case, calling type-safe methods of the returned
|
||||
// TypedIngressRouteUDPInformer leads to runtime panics. A safer alternative is to pass
|
||||
// around a TypedIngressRouteUDPInformer instances that was obtained from a
|
||||
// SharedInformerFactory.
|
||||
func ToTypedIngressRouteUDPInformer(informer IngressRouteUDPInformer) TypedIngressRouteUDPInformer {
|
||||
if informer, ok := informer.(TypedIngressRouteUDPInformer); ok {
|
||||
return informer
|
||||
}
|
||||
return &ingressRouteUDPTypedInformerAdapter{informer}
|
||||
}
|
||||
|
||||
type ingressRouteUDPTypedInformerAdapter struct {
|
||||
IngressRouteUDPInformer
|
||||
}
|
||||
|
||||
func (a *ingressRouteUDPTypedInformerAdapter) TypedInformer() IngressRouteUDPIndexInformer {
|
||||
return cache.NewTypedSharedIndexInformer[*crdtraefikiov1alpha1.IngressRouteUDP](a.Informer())
|
||||
}
|
||||
|
||||
// ToIngressRouteUDPIndexInformer converts an untyped informer into a IngressRouteUDPIndexInformer.
|
||||
//
|
||||
// WARNING: this conversion is only safe if the informer handles objects of type
|
||||
// *IngressRouteUDP. If that is not the case, calling type-safe methods of the returned
|
||||
// IngressRouteUDPIndexInformer leads to runtime panics. A safer alternative is to pass
|
||||
// around a IngressRouteUDPIndexInformer instances that was obtained from a
|
||||
// SharedInformerFactory.
|
||||
func ToIngressRouteUDPIndexInformer(informer cache.SharedIndexInformer) IngressRouteUDPIndexInformer {
|
||||
if informer, ok := informer.(IngressRouteUDPIndexInformer); ok {
|
||||
return informer
|
||||
}
|
||||
return cache.NewTypedSharedIndexInformer[*crdtraefikiov1alpha1.IngressRouteUDP](informer)
|
||||
}
|
||||
+30
-30
@@ -33,25 +33,25 @@ import (
|
||||
// Interface provides access to all the informers in this group version.
|
||||
type Interface interface {
|
||||
// IngressRoutes returns a IngressRouteInformer.
|
||||
IngressRoutes() IngressRouteInformer
|
||||
IngressRoutes() TypedIngressRouteInformer
|
||||
// IngressRouteTCPs returns a IngressRouteTCPInformer.
|
||||
IngressRouteTCPs() IngressRouteTCPInformer
|
||||
IngressRouteTCPs() TypedIngressRouteTCPInformer
|
||||
// IngressRouteUDPs returns a IngressRouteUDPInformer.
|
||||
IngressRouteUDPs() IngressRouteUDPInformer
|
||||
IngressRouteUDPs() TypedIngressRouteUDPInformer
|
||||
// Middlewares returns a MiddlewareInformer.
|
||||
Middlewares() MiddlewareInformer
|
||||
Middlewares() TypedMiddlewareInformer
|
||||
// MiddlewareTCPs returns a MiddlewareTCPInformer.
|
||||
MiddlewareTCPs() MiddlewareTCPInformer
|
||||
MiddlewareTCPs() TypedMiddlewareTCPInformer
|
||||
// ServersTransports returns a ServersTransportInformer.
|
||||
ServersTransports() ServersTransportInformer
|
||||
ServersTransports() TypedServersTransportInformer
|
||||
// ServersTransportTCPs returns a ServersTransportTCPInformer.
|
||||
ServersTransportTCPs() ServersTransportTCPInformer
|
||||
ServersTransportTCPs() TypedServersTransportTCPInformer
|
||||
// TLSOptions returns a TLSOptionInformer.
|
||||
TLSOptions() TLSOptionInformer
|
||||
TLSOptions() TypedTLSOptionInformer
|
||||
// TLSStores returns a TLSStoreInformer.
|
||||
TLSStores() TLSStoreInformer
|
||||
TLSStores() TypedTLSStoreInformer
|
||||
// TraefikServices returns a TraefikServiceInformer.
|
||||
TraefikServices() TraefikServiceInformer
|
||||
TraefikServices() TypedTraefikServiceInformer
|
||||
}
|
||||
|
||||
type version struct {
|
||||
@@ -65,52 +65,52 @@ func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakList
|
||||
return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}
|
||||
}
|
||||
|
||||
// IngressRoutes returns a IngressRouteInformer.
|
||||
func (v *version) IngressRoutes() IngressRouteInformer {
|
||||
// IngressRoutes returns a TypedIngressRouteInformer.
|
||||
func (v *version) IngressRoutes() TypedIngressRouteInformer {
|
||||
return &ingressRouteInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
|
||||
}
|
||||
|
||||
// IngressRouteTCPs returns a IngressRouteTCPInformer.
|
||||
func (v *version) IngressRouteTCPs() IngressRouteTCPInformer {
|
||||
// IngressRouteTCPs returns a TypedIngressRouteTCPInformer.
|
||||
func (v *version) IngressRouteTCPs() TypedIngressRouteTCPInformer {
|
||||
return &ingressRouteTCPInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
|
||||
}
|
||||
|
||||
// IngressRouteUDPs returns a IngressRouteUDPInformer.
|
||||
func (v *version) IngressRouteUDPs() IngressRouteUDPInformer {
|
||||
// IngressRouteUDPs returns a TypedIngressRouteUDPInformer.
|
||||
func (v *version) IngressRouteUDPs() TypedIngressRouteUDPInformer {
|
||||
return &ingressRouteUDPInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
|
||||
}
|
||||
|
||||
// Middlewares returns a MiddlewareInformer.
|
||||
func (v *version) Middlewares() MiddlewareInformer {
|
||||
// Middlewares returns a TypedMiddlewareInformer.
|
||||
func (v *version) Middlewares() TypedMiddlewareInformer {
|
||||
return &middlewareInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
|
||||
}
|
||||
|
||||
// MiddlewareTCPs returns a MiddlewareTCPInformer.
|
||||
func (v *version) MiddlewareTCPs() MiddlewareTCPInformer {
|
||||
// MiddlewareTCPs returns a TypedMiddlewareTCPInformer.
|
||||
func (v *version) MiddlewareTCPs() TypedMiddlewareTCPInformer {
|
||||
return &middlewareTCPInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
|
||||
}
|
||||
|
||||
// ServersTransports returns a ServersTransportInformer.
|
||||
func (v *version) ServersTransports() ServersTransportInformer {
|
||||
// ServersTransports returns a TypedServersTransportInformer.
|
||||
func (v *version) ServersTransports() TypedServersTransportInformer {
|
||||
return &serversTransportInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
|
||||
}
|
||||
|
||||
// ServersTransportTCPs returns a ServersTransportTCPInformer.
|
||||
func (v *version) ServersTransportTCPs() ServersTransportTCPInformer {
|
||||
// ServersTransportTCPs returns a TypedServersTransportTCPInformer.
|
||||
func (v *version) ServersTransportTCPs() TypedServersTransportTCPInformer {
|
||||
return &serversTransportTCPInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
|
||||
}
|
||||
|
||||
// TLSOptions returns a TLSOptionInformer.
|
||||
func (v *version) TLSOptions() TLSOptionInformer {
|
||||
// TLSOptions returns a TypedTLSOptionInformer.
|
||||
func (v *version) TLSOptions() TypedTLSOptionInformer {
|
||||
return &tLSOptionInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
|
||||
}
|
||||
|
||||
// TLSStores returns a TLSStoreInformer.
|
||||
func (v *version) TLSStores() TLSStoreInformer {
|
||||
// TLSStores returns a TypedTLSStoreInformer.
|
||||
func (v *version) TLSStores() TypedTLSStoreInformer {
|
||||
return &tLSStoreInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
|
||||
}
|
||||
|
||||
// TraefikServices returns a TraefikServiceInformer.
|
||||
func (v *version) TraefikServices() TraefikServiceInformer {
|
||||
// TraefikServices returns a TypedTraefikServiceInformer.
|
||||
func (v *version) TraefikServices() TypedTraefikServiceInformer {
|
||||
return &traefikServiceInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
|
||||
}
|
||||
+98
-6
@@ -42,12 +42,40 @@ import (
|
||||
)
|
||||
|
||||
// MiddlewareInformer provides access to a shared informer and lister for
|
||||
// Middlewares.
|
||||
// Middlewares. Prefer using the type-safe variant (see [TypedMiddlewareInformer]).
|
||||
type MiddlewareInformer interface {
|
||||
Informer() cache.SharedIndexInformer
|
||||
Lister() traefikiov1alpha1.MiddlewareLister
|
||||
}
|
||||
|
||||
// TypedMiddlewareInformer provides access to a shared informer and lister for
|
||||
// Middlewares, including the type-safe TypedInformer variant.
|
||||
// It is a superset of MiddlewareInformer.
|
||||
type TypedMiddlewareInformer interface {
|
||||
Informer() cache.SharedIndexInformer
|
||||
TypedInformer() MiddlewareIndexInformer
|
||||
Lister() traefikiov1alpha1.MiddlewareLister
|
||||
}
|
||||
|
||||
// MiddlewareIndexInformer is a wrapper around the underlying [cache.SharedIndexInformer]
|
||||
// with type-safe variants of several methods.
|
||||
type MiddlewareIndexInformer cache.TypedSharedIndexInformer[*crdtraefikiov1alpha1.Middleware]
|
||||
|
||||
// MiddlewareHandlerFuncs is a specialization of [cache.TypedResourceEventHandlerFuncs] for Middleware.
|
||||
type MiddlewareHandlerFuncs = cache.TypedResourceEventHandlerFuncs[*crdtraefikiov1alpha1.Middleware]
|
||||
|
||||
// MiddlewareDetailedHandlerFuncs is a specialization of [cache.TypedResourceEventHandlerDetailedFuncs] for Middleware.
|
||||
type MiddlewareDetailedHandlerFuncs = cache.TypedResourceEventHandlerDetailedFuncs[*crdtraefikiov1alpha1.Middleware]
|
||||
|
||||
// MiddlewareFilteringHandler is a specialization of [cache.TypedFilteringResourceEventHandler] for Middleware.
|
||||
type MiddlewareFilteringHandler = cache.TypedFilteringResourceEventHandler[*crdtraefikiov1alpha1.Middleware]
|
||||
|
||||
// MiddlewareIndexers is a specialization of [cache.TypedIndexers] for Middleware.
|
||||
type MiddlewareIndexers = cache.TypedIndexers[*crdtraefikiov1alpha1.Middleware]
|
||||
|
||||
// DeletedMiddleware is a specialization of [cache.DeletedObject] for Middleware.
|
||||
type DeletedMiddleware = cache.DeletedObject[*crdtraefikiov1alpha1.Middleware]
|
||||
|
||||
type middlewareInformer struct {
|
||||
factory internalinterfaces.SharedInformerFactory
|
||||
tweakListOptions internalinterfaces.TweakListOptionsFunc
|
||||
@@ -57,25 +85,49 @@ type middlewareInformer struct {
|
||||
// NewMiddlewareInformer constructs a new informer for Middleware type.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
// If you really need an independent one, prefer using the type-safe variant (see [NewTypedMiddlewareInformer]).
|
||||
func NewMiddlewareInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {
|
||||
return NewMiddlewareInformerWithOptions(client, namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: indexers})
|
||||
}
|
||||
|
||||
// NewTypedMiddlewareInformer constructs a new informer for Middleware type.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
func NewTypedMiddlewareInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers MiddlewareIndexers) MiddlewareIndexInformer {
|
||||
return NewTypedMiddlewareInformerWithOptions(client, namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: cache.TypedIndexersToIndexers(indexers)})
|
||||
}
|
||||
|
||||
// NewFilteredMiddlewareInformer constructs a new informer for Middleware type.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
// If you really need an independent one, prefer using the type-safe variant (see [NewTypedFilteredMiddlewareInformer]).
|
||||
func NewFilteredMiddlewareInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {
|
||||
return NewMiddlewareInformerWithOptions(client, namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: indexers, TweakListOptions: tweakListOptions})
|
||||
return NewTypedMiddlewareInformerWithOptions(client, namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: indexers, TweakListOptions: tweakListOptions})
|
||||
}
|
||||
|
||||
// NewTypedFilteredMiddlewareInformer constructs a new informer for Middleware type.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
func NewTypedFilteredMiddlewareInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers MiddlewareIndexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) MiddlewareIndexInformer {
|
||||
return NewTypedMiddlewareInformerWithOptions(client, namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: cache.TypedIndexersToIndexers(indexers), TweakListOptions: tweakListOptions})
|
||||
}
|
||||
|
||||
// NewMiddlewareInformerWithOptions constructs a new informer for Middleware type with additional options.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
// If you really need an independent one, prefer using the type-safe variant (see [NewTypedMiddlewareInformerWithOptions]).
|
||||
func NewMiddlewareInformerWithOptions(client versioned.Interface, namespace string, options internalinterfaces.InformerOptions) cache.SharedIndexInformer {
|
||||
return NewTypedMiddlewareInformerWithOptions(client, namespace, options)
|
||||
}
|
||||
|
||||
// NewTypedMiddlewareInformerWithOptions constructs a new informer for Middleware type with additional options.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
func NewTypedMiddlewareInformerWithOptions(client versioned.Interface, namespace string, options internalinterfaces.InformerOptions) MiddlewareIndexInformer {
|
||||
gvr := schema.GroupVersionResource{Group: "traefik.io", Version: "v1alpha1", Resource: "middlewares"}
|
||||
identifier := options.InformerName.WithResource(gvr)
|
||||
tweakListOptions := options.TweakListOptions
|
||||
return cache.NewSharedIndexInformerWithOptions(
|
||||
return cache.NewTypedSharedIndexInformer[*crdtraefikiov1alpha1.Middleware](cache.NewSharedIndexInformerWithOptions(
|
||||
cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{
|
||||
ListFunc: func(opts v1.ListOptions) (runtime.Object, error) {
|
||||
if tweakListOptions != nil {
|
||||
@@ -108,17 +160,57 @@ func NewMiddlewareInformerWithOptions(client versioned.Interface, namespace stri
|
||||
Indexers: options.Indexers,
|
||||
Identifier: identifier,
|
||||
},
|
||||
)
|
||||
))
|
||||
}
|
||||
|
||||
func (f *middlewareInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
|
||||
return NewMiddlewareInformerWithOptions(client, f.namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, InformerName: f.factory.InformerName(), TweakListOptions: f.tweakListOptions})
|
||||
return NewTypedMiddlewareInformerWithOptions(client, f.namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, InformerName: f.factory.InformerName(), TweakListOptions: f.tweakListOptions})
|
||||
}
|
||||
|
||||
func (f *middlewareInformer) Informer() cache.SharedIndexInformer {
|
||||
return f.factory.InformerFor(&crdtraefikiov1alpha1.Middleware{}, f.defaultInformer)
|
||||
return f.TypedInformer()
|
||||
}
|
||||
|
||||
func (f *middlewareInformer) TypedInformer() MiddlewareIndexInformer {
|
||||
return cache.NewTypedSharedIndexInformer[*crdtraefikiov1alpha1.Middleware](f.factory.InformerFor(&crdtraefikiov1alpha1.Middleware{}, f.defaultInformer))
|
||||
}
|
||||
|
||||
func (f *middlewareInformer) Lister() traefikiov1alpha1.MiddlewareLister {
|
||||
return traefikiov1alpha1.NewMiddlewareLister(f.Informer().GetIndexer())
|
||||
}
|
||||
|
||||
// ToTypedMiddlewareInformer converts an untyped informer into a TypedMiddlewareInformer.
|
||||
//
|
||||
// WARNING: this conversion is only safe if the informer handles objects of type
|
||||
// *Middleware. If that is not the case, calling type-safe methods of the returned
|
||||
// TypedMiddlewareInformer leads to runtime panics. A safer alternative is to pass
|
||||
// around a TypedMiddlewareInformer instances that was obtained from a
|
||||
// SharedInformerFactory.
|
||||
func ToTypedMiddlewareInformer(informer MiddlewareInformer) TypedMiddlewareInformer {
|
||||
if informer, ok := informer.(TypedMiddlewareInformer); ok {
|
||||
return informer
|
||||
}
|
||||
return &middlewareTypedInformerAdapter{informer}
|
||||
}
|
||||
|
||||
type middlewareTypedInformerAdapter struct {
|
||||
MiddlewareInformer
|
||||
}
|
||||
|
||||
func (a *middlewareTypedInformerAdapter) TypedInformer() MiddlewareIndexInformer {
|
||||
return cache.NewTypedSharedIndexInformer[*crdtraefikiov1alpha1.Middleware](a.Informer())
|
||||
}
|
||||
|
||||
// ToMiddlewareIndexInformer converts an untyped informer into a MiddlewareIndexInformer.
|
||||
//
|
||||
// WARNING: this conversion is only safe if the informer handles objects of type
|
||||
// *Middleware. If that is not the case, calling type-safe methods of the returned
|
||||
// MiddlewareIndexInformer leads to runtime panics. A safer alternative is to pass
|
||||
// around a MiddlewareIndexInformer instances that was obtained from a
|
||||
// SharedInformerFactory.
|
||||
func ToMiddlewareIndexInformer(informer cache.SharedIndexInformer) MiddlewareIndexInformer {
|
||||
if informer, ok := informer.(MiddlewareIndexInformer); ok {
|
||||
return informer
|
||||
}
|
||||
return cache.NewTypedSharedIndexInformer[*crdtraefikiov1alpha1.Middleware](informer)
|
||||
}
|
||||
+98
-6
@@ -42,12 +42,40 @@ import (
|
||||
)
|
||||
|
||||
// MiddlewareTCPInformer provides access to a shared informer and lister for
|
||||
// MiddlewareTCPs.
|
||||
// MiddlewareTCPs. Prefer using the type-safe variant (see [TypedMiddlewareTCPInformer]).
|
||||
type MiddlewareTCPInformer interface {
|
||||
Informer() cache.SharedIndexInformer
|
||||
Lister() traefikiov1alpha1.MiddlewareTCPLister
|
||||
}
|
||||
|
||||
// TypedMiddlewareTCPInformer provides access to a shared informer and lister for
|
||||
// MiddlewareTCPs, including the type-safe TypedInformer variant.
|
||||
// It is a superset of MiddlewareTCPInformer.
|
||||
type TypedMiddlewareTCPInformer interface {
|
||||
Informer() cache.SharedIndexInformer
|
||||
TypedInformer() MiddlewareTCPIndexInformer
|
||||
Lister() traefikiov1alpha1.MiddlewareTCPLister
|
||||
}
|
||||
|
||||
// MiddlewareTCPIndexInformer is a wrapper around the underlying [cache.SharedIndexInformer]
|
||||
// with type-safe variants of several methods.
|
||||
type MiddlewareTCPIndexInformer cache.TypedSharedIndexInformer[*crdtraefikiov1alpha1.MiddlewareTCP]
|
||||
|
||||
// MiddlewareTCPHandlerFuncs is a specialization of [cache.TypedResourceEventHandlerFuncs] for MiddlewareTCP.
|
||||
type MiddlewareTCPHandlerFuncs = cache.TypedResourceEventHandlerFuncs[*crdtraefikiov1alpha1.MiddlewareTCP]
|
||||
|
||||
// MiddlewareTCPDetailedHandlerFuncs is a specialization of [cache.TypedResourceEventHandlerDetailedFuncs] for MiddlewareTCP.
|
||||
type MiddlewareTCPDetailedHandlerFuncs = cache.TypedResourceEventHandlerDetailedFuncs[*crdtraefikiov1alpha1.MiddlewareTCP]
|
||||
|
||||
// MiddlewareTCPFilteringHandler is a specialization of [cache.TypedFilteringResourceEventHandler] for MiddlewareTCP.
|
||||
type MiddlewareTCPFilteringHandler = cache.TypedFilteringResourceEventHandler[*crdtraefikiov1alpha1.MiddlewareTCP]
|
||||
|
||||
// MiddlewareTCPIndexers is a specialization of [cache.TypedIndexers] for MiddlewareTCP.
|
||||
type MiddlewareTCPIndexers = cache.TypedIndexers[*crdtraefikiov1alpha1.MiddlewareTCP]
|
||||
|
||||
// DeletedMiddlewareTCP is a specialization of [cache.DeletedObject] for MiddlewareTCP.
|
||||
type DeletedMiddlewareTCP = cache.DeletedObject[*crdtraefikiov1alpha1.MiddlewareTCP]
|
||||
|
||||
type middlewareTCPInformer struct {
|
||||
factory internalinterfaces.SharedInformerFactory
|
||||
tweakListOptions internalinterfaces.TweakListOptionsFunc
|
||||
@@ -57,25 +85,49 @@ type middlewareTCPInformer struct {
|
||||
// NewMiddlewareTCPInformer constructs a new informer for MiddlewareTCP type.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
// If you really need an independent one, prefer using the type-safe variant (see [NewTypedMiddlewareTCPInformer]).
|
||||
func NewMiddlewareTCPInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {
|
||||
return NewMiddlewareTCPInformerWithOptions(client, namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: indexers})
|
||||
}
|
||||
|
||||
// NewTypedMiddlewareTCPInformer constructs a new informer for MiddlewareTCP type.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
func NewTypedMiddlewareTCPInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers MiddlewareTCPIndexers) MiddlewareTCPIndexInformer {
|
||||
return NewTypedMiddlewareTCPInformerWithOptions(client, namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: cache.TypedIndexersToIndexers(indexers)})
|
||||
}
|
||||
|
||||
// NewFilteredMiddlewareTCPInformer constructs a new informer for MiddlewareTCP type.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
// If you really need an independent one, prefer using the type-safe variant (see [NewTypedFilteredMiddlewareTCPInformer]).
|
||||
func NewFilteredMiddlewareTCPInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {
|
||||
return NewMiddlewareTCPInformerWithOptions(client, namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: indexers, TweakListOptions: tweakListOptions})
|
||||
return NewTypedMiddlewareTCPInformerWithOptions(client, namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: indexers, TweakListOptions: tweakListOptions})
|
||||
}
|
||||
|
||||
// NewTypedFilteredMiddlewareTCPInformer constructs a new informer for MiddlewareTCP type.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
func NewTypedFilteredMiddlewareTCPInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers MiddlewareTCPIndexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) MiddlewareTCPIndexInformer {
|
||||
return NewTypedMiddlewareTCPInformerWithOptions(client, namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: cache.TypedIndexersToIndexers(indexers), TweakListOptions: tweakListOptions})
|
||||
}
|
||||
|
||||
// NewMiddlewareTCPInformerWithOptions constructs a new informer for MiddlewareTCP type with additional options.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
// If you really need an independent one, prefer using the type-safe variant (see [NewTypedMiddlewareTCPInformerWithOptions]).
|
||||
func NewMiddlewareTCPInformerWithOptions(client versioned.Interface, namespace string, options internalinterfaces.InformerOptions) cache.SharedIndexInformer {
|
||||
return NewTypedMiddlewareTCPInformerWithOptions(client, namespace, options)
|
||||
}
|
||||
|
||||
// NewTypedMiddlewareTCPInformerWithOptions constructs a new informer for MiddlewareTCP type with additional options.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
func NewTypedMiddlewareTCPInformerWithOptions(client versioned.Interface, namespace string, options internalinterfaces.InformerOptions) MiddlewareTCPIndexInformer {
|
||||
gvr := schema.GroupVersionResource{Group: "traefik.io", Version: "v1alpha1", Resource: "middlewaretcps"}
|
||||
identifier := options.InformerName.WithResource(gvr)
|
||||
tweakListOptions := options.TweakListOptions
|
||||
return cache.NewSharedIndexInformerWithOptions(
|
||||
return cache.NewTypedSharedIndexInformer[*crdtraefikiov1alpha1.MiddlewareTCP](cache.NewSharedIndexInformerWithOptions(
|
||||
cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{
|
||||
ListFunc: func(opts v1.ListOptions) (runtime.Object, error) {
|
||||
if tweakListOptions != nil {
|
||||
@@ -108,17 +160,57 @@ func NewMiddlewareTCPInformerWithOptions(client versioned.Interface, namespace s
|
||||
Indexers: options.Indexers,
|
||||
Identifier: identifier,
|
||||
},
|
||||
)
|
||||
))
|
||||
}
|
||||
|
||||
func (f *middlewareTCPInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
|
||||
return NewMiddlewareTCPInformerWithOptions(client, f.namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, InformerName: f.factory.InformerName(), TweakListOptions: f.tweakListOptions})
|
||||
return NewTypedMiddlewareTCPInformerWithOptions(client, f.namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, InformerName: f.factory.InformerName(), TweakListOptions: f.tweakListOptions})
|
||||
}
|
||||
|
||||
func (f *middlewareTCPInformer) Informer() cache.SharedIndexInformer {
|
||||
return f.factory.InformerFor(&crdtraefikiov1alpha1.MiddlewareTCP{}, f.defaultInformer)
|
||||
return f.TypedInformer()
|
||||
}
|
||||
|
||||
func (f *middlewareTCPInformer) TypedInformer() MiddlewareTCPIndexInformer {
|
||||
return cache.NewTypedSharedIndexInformer[*crdtraefikiov1alpha1.MiddlewareTCP](f.factory.InformerFor(&crdtraefikiov1alpha1.MiddlewareTCP{}, f.defaultInformer))
|
||||
}
|
||||
|
||||
func (f *middlewareTCPInformer) Lister() traefikiov1alpha1.MiddlewareTCPLister {
|
||||
return traefikiov1alpha1.NewMiddlewareTCPLister(f.Informer().GetIndexer())
|
||||
}
|
||||
|
||||
// ToTypedMiddlewareTCPInformer converts an untyped informer into a TypedMiddlewareTCPInformer.
|
||||
//
|
||||
// WARNING: this conversion is only safe if the informer handles objects of type
|
||||
// *MiddlewareTCP. If that is not the case, calling type-safe methods of the returned
|
||||
// TypedMiddlewareTCPInformer leads to runtime panics. A safer alternative is to pass
|
||||
// around a TypedMiddlewareTCPInformer instances that was obtained from a
|
||||
// SharedInformerFactory.
|
||||
func ToTypedMiddlewareTCPInformer(informer MiddlewareTCPInformer) TypedMiddlewareTCPInformer {
|
||||
if informer, ok := informer.(TypedMiddlewareTCPInformer); ok {
|
||||
return informer
|
||||
}
|
||||
return &middlewareTCPTypedInformerAdapter{informer}
|
||||
}
|
||||
|
||||
type middlewareTCPTypedInformerAdapter struct {
|
||||
MiddlewareTCPInformer
|
||||
}
|
||||
|
||||
func (a *middlewareTCPTypedInformerAdapter) TypedInformer() MiddlewareTCPIndexInformer {
|
||||
return cache.NewTypedSharedIndexInformer[*crdtraefikiov1alpha1.MiddlewareTCP](a.Informer())
|
||||
}
|
||||
|
||||
// ToMiddlewareTCPIndexInformer converts an untyped informer into a MiddlewareTCPIndexInformer.
|
||||
//
|
||||
// WARNING: this conversion is only safe if the informer handles objects of type
|
||||
// *MiddlewareTCP. If that is not the case, calling type-safe methods of the returned
|
||||
// MiddlewareTCPIndexInformer leads to runtime panics. A safer alternative is to pass
|
||||
// around a MiddlewareTCPIndexInformer instances that was obtained from a
|
||||
// SharedInformerFactory.
|
||||
func ToMiddlewareTCPIndexInformer(informer cache.SharedIndexInformer) MiddlewareTCPIndexInformer {
|
||||
if informer, ok := informer.(MiddlewareTCPIndexInformer); ok {
|
||||
return informer
|
||||
}
|
||||
return cache.NewTypedSharedIndexInformer[*crdtraefikiov1alpha1.MiddlewareTCP](informer)
|
||||
}
|
||||
+98
-6
@@ -42,12 +42,40 @@ import (
|
||||
)
|
||||
|
||||
// ServersTransportInformer provides access to a shared informer and lister for
|
||||
// ServersTransports.
|
||||
// ServersTransports. Prefer using the type-safe variant (see [TypedServersTransportInformer]).
|
||||
type ServersTransportInformer interface {
|
||||
Informer() cache.SharedIndexInformer
|
||||
Lister() traefikiov1alpha1.ServersTransportLister
|
||||
}
|
||||
|
||||
// TypedServersTransportInformer provides access to a shared informer and lister for
|
||||
// ServersTransports, including the type-safe TypedInformer variant.
|
||||
// It is a superset of ServersTransportInformer.
|
||||
type TypedServersTransportInformer interface {
|
||||
Informer() cache.SharedIndexInformer
|
||||
TypedInformer() ServersTransportIndexInformer
|
||||
Lister() traefikiov1alpha1.ServersTransportLister
|
||||
}
|
||||
|
||||
// ServersTransportIndexInformer is a wrapper around the underlying [cache.SharedIndexInformer]
|
||||
// with type-safe variants of several methods.
|
||||
type ServersTransportIndexInformer cache.TypedSharedIndexInformer[*crdtraefikiov1alpha1.ServersTransport]
|
||||
|
||||
// ServersTransportHandlerFuncs is a specialization of [cache.TypedResourceEventHandlerFuncs] for ServersTransport.
|
||||
type ServersTransportHandlerFuncs = cache.TypedResourceEventHandlerFuncs[*crdtraefikiov1alpha1.ServersTransport]
|
||||
|
||||
// ServersTransportDetailedHandlerFuncs is a specialization of [cache.TypedResourceEventHandlerDetailedFuncs] for ServersTransport.
|
||||
type ServersTransportDetailedHandlerFuncs = cache.TypedResourceEventHandlerDetailedFuncs[*crdtraefikiov1alpha1.ServersTransport]
|
||||
|
||||
// ServersTransportFilteringHandler is a specialization of [cache.TypedFilteringResourceEventHandler] for ServersTransport.
|
||||
type ServersTransportFilteringHandler = cache.TypedFilteringResourceEventHandler[*crdtraefikiov1alpha1.ServersTransport]
|
||||
|
||||
// ServersTransportIndexers is a specialization of [cache.TypedIndexers] for ServersTransport.
|
||||
type ServersTransportIndexers = cache.TypedIndexers[*crdtraefikiov1alpha1.ServersTransport]
|
||||
|
||||
// DeletedServersTransport is a specialization of [cache.DeletedObject] for ServersTransport.
|
||||
type DeletedServersTransport = cache.DeletedObject[*crdtraefikiov1alpha1.ServersTransport]
|
||||
|
||||
type serversTransportInformer struct {
|
||||
factory internalinterfaces.SharedInformerFactory
|
||||
tweakListOptions internalinterfaces.TweakListOptionsFunc
|
||||
@@ -57,25 +85,49 @@ type serversTransportInformer struct {
|
||||
// NewServersTransportInformer constructs a new informer for ServersTransport type.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
// If you really need an independent one, prefer using the type-safe variant (see [NewTypedServersTransportInformer]).
|
||||
func NewServersTransportInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {
|
||||
return NewServersTransportInformerWithOptions(client, namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: indexers})
|
||||
}
|
||||
|
||||
// NewTypedServersTransportInformer constructs a new informer for ServersTransport type.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
func NewTypedServersTransportInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers ServersTransportIndexers) ServersTransportIndexInformer {
|
||||
return NewTypedServersTransportInformerWithOptions(client, namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: cache.TypedIndexersToIndexers(indexers)})
|
||||
}
|
||||
|
||||
// NewFilteredServersTransportInformer constructs a new informer for ServersTransport type.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
// If you really need an independent one, prefer using the type-safe variant (see [NewTypedFilteredServersTransportInformer]).
|
||||
func NewFilteredServersTransportInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {
|
||||
return NewServersTransportInformerWithOptions(client, namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: indexers, TweakListOptions: tweakListOptions})
|
||||
return NewTypedServersTransportInformerWithOptions(client, namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: indexers, TweakListOptions: tweakListOptions})
|
||||
}
|
||||
|
||||
// NewTypedFilteredServersTransportInformer constructs a new informer for ServersTransport type.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
func NewTypedFilteredServersTransportInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers ServersTransportIndexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) ServersTransportIndexInformer {
|
||||
return NewTypedServersTransportInformerWithOptions(client, namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: cache.TypedIndexersToIndexers(indexers), TweakListOptions: tweakListOptions})
|
||||
}
|
||||
|
||||
// NewServersTransportInformerWithOptions constructs a new informer for ServersTransport type with additional options.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
// If you really need an independent one, prefer using the type-safe variant (see [NewTypedServersTransportInformerWithOptions]).
|
||||
func NewServersTransportInformerWithOptions(client versioned.Interface, namespace string, options internalinterfaces.InformerOptions) cache.SharedIndexInformer {
|
||||
return NewTypedServersTransportInformerWithOptions(client, namespace, options)
|
||||
}
|
||||
|
||||
// NewTypedServersTransportInformerWithOptions constructs a new informer for ServersTransport type with additional options.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
func NewTypedServersTransportInformerWithOptions(client versioned.Interface, namespace string, options internalinterfaces.InformerOptions) ServersTransportIndexInformer {
|
||||
gvr := schema.GroupVersionResource{Group: "traefik.io", Version: "v1alpha1", Resource: "serverstransports"}
|
||||
identifier := options.InformerName.WithResource(gvr)
|
||||
tweakListOptions := options.TweakListOptions
|
||||
return cache.NewSharedIndexInformerWithOptions(
|
||||
return cache.NewTypedSharedIndexInformer[*crdtraefikiov1alpha1.ServersTransport](cache.NewSharedIndexInformerWithOptions(
|
||||
cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{
|
||||
ListFunc: func(opts v1.ListOptions) (runtime.Object, error) {
|
||||
if tweakListOptions != nil {
|
||||
@@ -108,17 +160,57 @@ func NewServersTransportInformerWithOptions(client versioned.Interface, namespac
|
||||
Indexers: options.Indexers,
|
||||
Identifier: identifier,
|
||||
},
|
||||
)
|
||||
))
|
||||
}
|
||||
|
||||
func (f *serversTransportInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
|
||||
return NewServersTransportInformerWithOptions(client, f.namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, InformerName: f.factory.InformerName(), TweakListOptions: f.tweakListOptions})
|
||||
return NewTypedServersTransportInformerWithOptions(client, f.namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, InformerName: f.factory.InformerName(), TweakListOptions: f.tweakListOptions})
|
||||
}
|
||||
|
||||
func (f *serversTransportInformer) Informer() cache.SharedIndexInformer {
|
||||
return f.factory.InformerFor(&crdtraefikiov1alpha1.ServersTransport{}, f.defaultInformer)
|
||||
return f.TypedInformer()
|
||||
}
|
||||
|
||||
func (f *serversTransportInformer) TypedInformer() ServersTransportIndexInformer {
|
||||
return cache.NewTypedSharedIndexInformer[*crdtraefikiov1alpha1.ServersTransport](f.factory.InformerFor(&crdtraefikiov1alpha1.ServersTransport{}, f.defaultInformer))
|
||||
}
|
||||
|
||||
func (f *serversTransportInformer) Lister() traefikiov1alpha1.ServersTransportLister {
|
||||
return traefikiov1alpha1.NewServersTransportLister(f.Informer().GetIndexer())
|
||||
}
|
||||
|
||||
// ToTypedServersTransportInformer converts an untyped informer into a TypedServersTransportInformer.
|
||||
//
|
||||
// WARNING: this conversion is only safe if the informer handles objects of type
|
||||
// *ServersTransport. If that is not the case, calling type-safe methods of the returned
|
||||
// TypedServersTransportInformer leads to runtime panics. A safer alternative is to pass
|
||||
// around a TypedServersTransportInformer instances that was obtained from a
|
||||
// SharedInformerFactory.
|
||||
func ToTypedServersTransportInformer(informer ServersTransportInformer) TypedServersTransportInformer {
|
||||
if informer, ok := informer.(TypedServersTransportInformer); ok {
|
||||
return informer
|
||||
}
|
||||
return &serversTransportTypedInformerAdapter{informer}
|
||||
}
|
||||
|
||||
type serversTransportTypedInformerAdapter struct {
|
||||
ServersTransportInformer
|
||||
}
|
||||
|
||||
func (a *serversTransportTypedInformerAdapter) TypedInformer() ServersTransportIndexInformer {
|
||||
return cache.NewTypedSharedIndexInformer[*crdtraefikiov1alpha1.ServersTransport](a.Informer())
|
||||
}
|
||||
|
||||
// ToServersTransportIndexInformer converts an untyped informer into a ServersTransportIndexInformer.
|
||||
//
|
||||
// WARNING: this conversion is only safe if the informer handles objects of type
|
||||
// *ServersTransport. If that is not the case, calling type-safe methods of the returned
|
||||
// ServersTransportIndexInformer leads to runtime panics. A safer alternative is to pass
|
||||
// around a ServersTransportIndexInformer instances that was obtained from a
|
||||
// SharedInformerFactory.
|
||||
func ToServersTransportIndexInformer(informer cache.SharedIndexInformer) ServersTransportIndexInformer {
|
||||
if informer, ok := informer.(ServersTransportIndexInformer); ok {
|
||||
return informer
|
||||
}
|
||||
return cache.NewTypedSharedIndexInformer[*crdtraefikiov1alpha1.ServersTransport](informer)
|
||||
}
|
||||
+98
-6
@@ -42,12 +42,40 @@ import (
|
||||
)
|
||||
|
||||
// ServersTransportTCPInformer provides access to a shared informer and lister for
|
||||
// ServersTransportTCPs.
|
||||
// ServersTransportTCPs. Prefer using the type-safe variant (see [TypedServersTransportTCPInformer]).
|
||||
type ServersTransportTCPInformer interface {
|
||||
Informer() cache.SharedIndexInformer
|
||||
Lister() traefikiov1alpha1.ServersTransportTCPLister
|
||||
}
|
||||
|
||||
// TypedServersTransportTCPInformer provides access to a shared informer and lister for
|
||||
// ServersTransportTCPs, including the type-safe TypedInformer variant.
|
||||
// It is a superset of ServersTransportTCPInformer.
|
||||
type TypedServersTransportTCPInformer interface {
|
||||
Informer() cache.SharedIndexInformer
|
||||
TypedInformer() ServersTransportTCPIndexInformer
|
||||
Lister() traefikiov1alpha1.ServersTransportTCPLister
|
||||
}
|
||||
|
||||
// ServersTransportTCPIndexInformer is a wrapper around the underlying [cache.SharedIndexInformer]
|
||||
// with type-safe variants of several methods.
|
||||
type ServersTransportTCPIndexInformer cache.TypedSharedIndexInformer[*crdtraefikiov1alpha1.ServersTransportTCP]
|
||||
|
||||
// ServersTransportTCPHandlerFuncs is a specialization of [cache.TypedResourceEventHandlerFuncs] for ServersTransportTCP.
|
||||
type ServersTransportTCPHandlerFuncs = cache.TypedResourceEventHandlerFuncs[*crdtraefikiov1alpha1.ServersTransportTCP]
|
||||
|
||||
// ServersTransportTCPDetailedHandlerFuncs is a specialization of [cache.TypedResourceEventHandlerDetailedFuncs] for ServersTransportTCP.
|
||||
type ServersTransportTCPDetailedHandlerFuncs = cache.TypedResourceEventHandlerDetailedFuncs[*crdtraefikiov1alpha1.ServersTransportTCP]
|
||||
|
||||
// ServersTransportTCPFilteringHandler is a specialization of [cache.TypedFilteringResourceEventHandler] for ServersTransportTCP.
|
||||
type ServersTransportTCPFilteringHandler = cache.TypedFilteringResourceEventHandler[*crdtraefikiov1alpha1.ServersTransportTCP]
|
||||
|
||||
// ServersTransportTCPIndexers is a specialization of [cache.TypedIndexers] for ServersTransportTCP.
|
||||
type ServersTransportTCPIndexers = cache.TypedIndexers[*crdtraefikiov1alpha1.ServersTransportTCP]
|
||||
|
||||
// DeletedServersTransportTCP is a specialization of [cache.DeletedObject] for ServersTransportTCP.
|
||||
type DeletedServersTransportTCP = cache.DeletedObject[*crdtraefikiov1alpha1.ServersTransportTCP]
|
||||
|
||||
type serversTransportTCPInformer struct {
|
||||
factory internalinterfaces.SharedInformerFactory
|
||||
tweakListOptions internalinterfaces.TweakListOptionsFunc
|
||||
@@ -57,25 +85,49 @@ type serversTransportTCPInformer struct {
|
||||
// NewServersTransportTCPInformer constructs a new informer for ServersTransportTCP type.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
// If you really need an independent one, prefer using the type-safe variant (see [NewTypedServersTransportTCPInformer]).
|
||||
func NewServersTransportTCPInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {
|
||||
return NewServersTransportTCPInformerWithOptions(client, namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: indexers})
|
||||
}
|
||||
|
||||
// NewTypedServersTransportTCPInformer constructs a new informer for ServersTransportTCP type.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
func NewTypedServersTransportTCPInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers ServersTransportTCPIndexers) ServersTransportTCPIndexInformer {
|
||||
return NewTypedServersTransportTCPInformerWithOptions(client, namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: cache.TypedIndexersToIndexers(indexers)})
|
||||
}
|
||||
|
||||
// NewFilteredServersTransportTCPInformer constructs a new informer for ServersTransportTCP type.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
// If you really need an independent one, prefer using the type-safe variant (see [NewTypedFilteredServersTransportTCPInformer]).
|
||||
func NewFilteredServersTransportTCPInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {
|
||||
return NewServersTransportTCPInformerWithOptions(client, namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: indexers, TweakListOptions: tweakListOptions})
|
||||
return NewTypedServersTransportTCPInformerWithOptions(client, namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: indexers, TweakListOptions: tweakListOptions})
|
||||
}
|
||||
|
||||
// NewTypedFilteredServersTransportTCPInformer constructs a new informer for ServersTransportTCP type.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
func NewTypedFilteredServersTransportTCPInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers ServersTransportTCPIndexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) ServersTransportTCPIndexInformer {
|
||||
return NewTypedServersTransportTCPInformerWithOptions(client, namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: cache.TypedIndexersToIndexers(indexers), TweakListOptions: tweakListOptions})
|
||||
}
|
||||
|
||||
// NewServersTransportTCPInformerWithOptions constructs a new informer for ServersTransportTCP type with additional options.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
// If you really need an independent one, prefer using the type-safe variant (see [NewTypedServersTransportTCPInformerWithOptions]).
|
||||
func NewServersTransportTCPInformerWithOptions(client versioned.Interface, namespace string, options internalinterfaces.InformerOptions) cache.SharedIndexInformer {
|
||||
return NewTypedServersTransportTCPInformerWithOptions(client, namespace, options)
|
||||
}
|
||||
|
||||
// NewTypedServersTransportTCPInformerWithOptions constructs a new informer for ServersTransportTCP type with additional options.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
func NewTypedServersTransportTCPInformerWithOptions(client versioned.Interface, namespace string, options internalinterfaces.InformerOptions) ServersTransportTCPIndexInformer {
|
||||
gvr := schema.GroupVersionResource{Group: "traefik.io", Version: "v1alpha1", Resource: "serverstransporttcps"}
|
||||
identifier := options.InformerName.WithResource(gvr)
|
||||
tweakListOptions := options.TweakListOptions
|
||||
return cache.NewSharedIndexInformerWithOptions(
|
||||
return cache.NewTypedSharedIndexInformer[*crdtraefikiov1alpha1.ServersTransportTCP](cache.NewSharedIndexInformerWithOptions(
|
||||
cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{
|
||||
ListFunc: func(opts v1.ListOptions) (runtime.Object, error) {
|
||||
if tweakListOptions != nil {
|
||||
@@ -108,17 +160,57 @@ func NewServersTransportTCPInformerWithOptions(client versioned.Interface, names
|
||||
Indexers: options.Indexers,
|
||||
Identifier: identifier,
|
||||
},
|
||||
)
|
||||
))
|
||||
}
|
||||
|
||||
func (f *serversTransportTCPInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
|
||||
return NewServersTransportTCPInformerWithOptions(client, f.namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, InformerName: f.factory.InformerName(), TweakListOptions: f.tweakListOptions})
|
||||
return NewTypedServersTransportTCPInformerWithOptions(client, f.namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, InformerName: f.factory.InformerName(), TweakListOptions: f.tweakListOptions})
|
||||
}
|
||||
|
||||
func (f *serversTransportTCPInformer) Informer() cache.SharedIndexInformer {
|
||||
return f.factory.InformerFor(&crdtraefikiov1alpha1.ServersTransportTCP{}, f.defaultInformer)
|
||||
return f.TypedInformer()
|
||||
}
|
||||
|
||||
func (f *serversTransportTCPInformer) TypedInformer() ServersTransportTCPIndexInformer {
|
||||
return cache.NewTypedSharedIndexInformer[*crdtraefikiov1alpha1.ServersTransportTCP](f.factory.InformerFor(&crdtraefikiov1alpha1.ServersTransportTCP{}, f.defaultInformer))
|
||||
}
|
||||
|
||||
func (f *serversTransportTCPInformer) Lister() traefikiov1alpha1.ServersTransportTCPLister {
|
||||
return traefikiov1alpha1.NewServersTransportTCPLister(f.Informer().GetIndexer())
|
||||
}
|
||||
|
||||
// ToTypedServersTransportTCPInformer converts an untyped informer into a TypedServersTransportTCPInformer.
|
||||
//
|
||||
// WARNING: this conversion is only safe if the informer handles objects of type
|
||||
// *ServersTransportTCP. If that is not the case, calling type-safe methods of the returned
|
||||
// TypedServersTransportTCPInformer leads to runtime panics. A safer alternative is to pass
|
||||
// around a TypedServersTransportTCPInformer instances that was obtained from a
|
||||
// SharedInformerFactory.
|
||||
func ToTypedServersTransportTCPInformer(informer ServersTransportTCPInformer) TypedServersTransportTCPInformer {
|
||||
if informer, ok := informer.(TypedServersTransportTCPInformer); ok {
|
||||
return informer
|
||||
}
|
||||
return &serversTransportTCPTypedInformerAdapter{informer}
|
||||
}
|
||||
|
||||
type serversTransportTCPTypedInformerAdapter struct {
|
||||
ServersTransportTCPInformer
|
||||
}
|
||||
|
||||
func (a *serversTransportTCPTypedInformerAdapter) TypedInformer() ServersTransportTCPIndexInformer {
|
||||
return cache.NewTypedSharedIndexInformer[*crdtraefikiov1alpha1.ServersTransportTCP](a.Informer())
|
||||
}
|
||||
|
||||
// ToServersTransportTCPIndexInformer converts an untyped informer into a ServersTransportTCPIndexInformer.
|
||||
//
|
||||
// WARNING: this conversion is only safe if the informer handles objects of type
|
||||
// *ServersTransportTCP. If that is not the case, calling type-safe methods of the returned
|
||||
// ServersTransportTCPIndexInformer leads to runtime panics. A safer alternative is to pass
|
||||
// around a ServersTransportTCPIndexInformer instances that was obtained from a
|
||||
// SharedInformerFactory.
|
||||
func ToServersTransportTCPIndexInformer(informer cache.SharedIndexInformer) ServersTransportTCPIndexInformer {
|
||||
if informer, ok := informer.(ServersTransportTCPIndexInformer); ok {
|
||||
return informer
|
||||
}
|
||||
return cache.NewTypedSharedIndexInformer[*crdtraefikiov1alpha1.ServersTransportTCP](informer)
|
||||
}
|
||||
+98
-6
@@ -42,12 +42,40 @@ import (
|
||||
)
|
||||
|
||||
// TLSOptionInformer provides access to a shared informer and lister for
|
||||
// TLSOptions.
|
||||
// TLSOptions. Prefer using the type-safe variant (see [TypedTLSOptionInformer]).
|
||||
type TLSOptionInformer interface {
|
||||
Informer() cache.SharedIndexInformer
|
||||
Lister() traefikiov1alpha1.TLSOptionLister
|
||||
}
|
||||
|
||||
// TypedTLSOptionInformer provides access to a shared informer and lister for
|
||||
// TLSOptions, including the type-safe TypedInformer variant.
|
||||
// It is a superset of TLSOptionInformer.
|
||||
type TypedTLSOptionInformer interface {
|
||||
Informer() cache.SharedIndexInformer
|
||||
TypedInformer() TLSOptionIndexInformer
|
||||
Lister() traefikiov1alpha1.TLSOptionLister
|
||||
}
|
||||
|
||||
// TLSOptionIndexInformer is a wrapper around the underlying [cache.SharedIndexInformer]
|
||||
// with type-safe variants of several methods.
|
||||
type TLSOptionIndexInformer cache.TypedSharedIndexInformer[*crdtraefikiov1alpha1.TLSOption]
|
||||
|
||||
// TLSOptionHandlerFuncs is a specialization of [cache.TypedResourceEventHandlerFuncs] for TLSOption.
|
||||
type TLSOptionHandlerFuncs = cache.TypedResourceEventHandlerFuncs[*crdtraefikiov1alpha1.TLSOption]
|
||||
|
||||
// TLSOptionDetailedHandlerFuncs is a specialization of [cache.TypedResourceEventHandlerDetailedFuncs] for TLSOption.
|
||||
type TLSOptionDetailedHandlerFuncs = cache.TypedResourceEventHandlerDetailedFuncs[*crdtraefikiov1alpha1.TLSOption]
|
||||
|
||||
// TLSOptionFilteringHandler is a specialization of [cache.TypedFilteringResourceEventHandler] for TLSOption.
|
||||
type TLSOptionFilteringHandler = cache.TypedFilteringResourceEventHandler[*crdtraefikiov1alpha1.TLSOption]
|
||||
|
||||
// TLSOptionIndexers is a specialization of [cache.TypedIndexers] for TLSOption.
|
||||
type TLSOptionIndexers = cache.TypedIndexers[*crdtraefikiov1alpha1.TLSOption]
|
||||
|
||||
// DeletedTLSOption is a specialization of [cache.DeletedObject] for TLSOption.
|
||||
type DeletedTLSOption = cache.DeletedObject[*crdtraefikiov1alpha1.TLSOption]
|
||||
|
||||
type tLSOptionInformer struct {
|
||||
factory internalinterfaces.SharedInformerFactory
|
||||
tweakListOptions internalinterfaces.TweakListOptionsFunc
|
||||
@@ -57,25 +85,49 @@ type tLSOptionInformer struct {
|
||||
// NewTLSOptionInformer constructs a new informer for TLSOption type.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
// If you really need an independent one, prefer using the type-safe variant (see [NewTypedTLSOptionInformer]).
|
||||
func NewTLSOptionInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {
|
||||
return NewTLSOptionInformerWithOptions(client, namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: indexers})
|
||||
}
|
||||
|
||||
// NewTypedTLSOptionInformer constructs a new informer for TLSOption type.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
func NewTypedTLSOptionInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers TLSOptionIndexers) TLSOptionIndexInformer {
|
||||
return NewTypedTLSOptionInformerWithOptions(client, namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: cache.TypedIndexersToIndexers(indexers)})
|
||||
}
|
||||
|
||||
// NewFilteredTLSOptionInformer constructs a new informer for TLSOption type.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
// If you really need an independent one, prefer using the type-safe variant (see [NewTypedFilteredTLSOptionInformer]).
|
||||
func NewFilteredTLSOptionInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {
|
||||
return NewTLSOptionInformerWithOptions(client, namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: indexers, TweakListOptions: tweakListOptions})
|
||||
return NewTypedTLSOptionInformerWithOptions(client, namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: indexers, TweakListOptions: tweakListOptions})
|
||||
}
|
||||
|
||||
// NewTypedFilteredTLSOptionInformer constructs a new informer for TLSOption type.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
func NewTypedFilteredTLSOptionInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers TLSOptionIndexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) TLSOptionIndexInformer {
|
||||
return NewTypedTLSOptionInformerWithOptions(client, namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: cache.TypedIndexersToIndexers(indexers), TweakListOptions: tweakListOptions})
|
||||
}
|
||||
|
||||
// NewTLSOptionInformerWithOptions constructs a new informer for TLSOption type with additional options.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
// If you really need an independent one, prefer using the type-safe variant (see [NewTypedTLSOptionInformerWithOptions]).
|
||||
func NewTLSOptionInformerWithOptions(client versioned.Interface, namespace string, options internalinterfaces.InformerOptions) cache.SharedIndexInformer {
|
||||
return NewTypedTLSOptionInformerWithOptions(client, namespace, options)
|
||||
}
|
||||
|
||||
// NewTypedTLSOptionInformerWithOptions constructs a new informer for TLSOption type with additional options.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
func NewTypedTLSOptionInformerWithOptions(client versioned.Interface, namespace string, options internalinterfaces.InformerOptions) TLSOptionIndexInformer {
|
||||
gvr := schema.GroupVersionResource{Group: "traefik.io", Version: "v1alpha1", Resource: "tlsoptions"}
|
||||
identifier := options.InformerName.WithResource(gvr)
|
||||
tweakListOptions := options.TweakListOptions
|
||||
return cache.NewSharedIndexInformerWithOptions(
|
||||
return cache.NewTypedSharedIndexInformer[*crdtraefikiov1alpha1.TLSOption](cache.NewSharedIndexInformerWithOptions(
|
||||
cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{
|
||||
ListFunc: func(opts v1.ListOptions) (runtime.Object, error) {
|
||||
if tweakListOptions != nil {
|
||||
@@ -108,17 +160,57 @@ func NewTLSOptionInformerWithOptions(client versioned.Interface, namespace strin
|
||||
Indexers: options.Indexers,
|
||||
Identifier: identifier,
|
||||
},
|
||||
)
|
||||
))
|
||||
}
|
||||
|
||||
func (f *tLSOptionInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
|
||||
return NewTLSOptionInformerWithOptions(client, f.namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, InformerName: f.factory.InformerName(), TweakListOptions: f.tweakListOptions})
|
||||
return NewTypedTLSOptionInformerWithOptions(client, f.namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, InformerName: f.factory.InformerName(), TweakListOptions: f.tweakListOptions})
|
||||
}
|
||||
|
||||
func (f *tLSOptionInformer) Informer() cache.SharedIndexInformer {
|
||||
return f.factory.InformerFor(&crdtraefikiov1alpha1.TLSOption{}, f.defaultInformer)
|
||||
return f.TypedInformer()
|
||||
}
|
||||
|
||||
func (f *tLSOptionInformer) TypedInformer() TLSOptionIndexInformer {
|
||||
return cache.NewTypedSharedIndexInformer[*crdtraefikiov1alpha1.TLSOption](f.factory.InformerFor(&crdtraefikiov1alpha1.TLSOption{}, f.defaultInformer))
|
||||
}
|
||||
|
||||
func (f *tLSOptionInformer) Lister() traefikiov1alpha1.TLSOptionLister {
|
||||
return traefikiov1alpha1.NewTLSOptionLister(f.Informer().GetIndexer())
|
||||
}
|
||||
|
||||
// ToTypedTLSOptionInformer converts an untyped informer into a TypedTLSOptionInformer.
|
||||
//
|
||||
// WARNING: this conversion is only safe if the informer handles objects of type
|
||||
// *TLSOption. If that is not the case, calling type-safe methods of the returned
|
||||
// TypedTLSOptionInformer leads to runtime panics. A safer alternative is to pass
|
||||
// around a TypedTLSOptionInformer instances that was obtained from a
|
||||
// SharedInformerFactory.
|
||||
func ToTypedTLSOptionInformer(informer TLSOptionInformer) TypedTLSOptionInformer {
|
||||
if informer, ok := informer.(TypedTLSOptionInformer); ok {
|
||||
return informer
|
||||
}
|
||||
return &tLSOptionTypedInformerAdapter{informer}
|
||||
}
|
||||
|
||||
type tLSOptionTypedInformerAdapter struct {
|
||||
TLSOptionInformer
|
||||
}
|
||||
|
||||
func (a *tLSOptionTypedInformerAdapter) TypedInformer() TLSOptionIndexInformer {
|
||||
return cache.NewTypedSharedIndexInformer[*crdtraefikiov1alpha1.TLSOption](a.Informer())
|
||||
}
|
||||
|
||||
// ToTLSOptionIndexInformer converts an untyped informer into a TLSOptionIndexInformer.
|
||||
//
|
||||
// WARNING: this conversion is only safe if the informer handles objects of type
|
||||
// *TLSOption. If that is not the case, calling type-safe methods of the returned
|
||||
// TLSOptionIndexInformer leads to runtime panics. A safer alternative is to pass
|
||||
// around a TLSOptionIndexInformer instances that was obtained from a
|
||||
// SharedInformerFactory.
|
||||
func ToTLSOptionIndexInformer(informer cache.SharedIndexInformer) TLSOptionIndexInformer {
|
||||
if informer, ok := informer.(TLSOptionIndexInformer); ok {
|
||||
return informer
|
||||
}
|
||||
return cache.NewTypedSharedIndexInformer[*crdtraefikiov1alpha1.TLSOption](informer)
|
||||
}
|
||||
+98
-6
@@ -42,12 +42,40 @@ import (
|
||||
)
|
||||
|
||||
// TLSStoreInformer provides access to a shared informer and lister for
|
||||
// TLSStores.
|
||||
// TLSStores. Prefer using the type-safe variant (see [TypedTLSStoreInformer]).
|
||||
type TLSStoreInformer interface {
|
||||
Informer() cache.SharedIndexInformer
|
||||
Lister() traefikiov1alpha1.TLSStoreLister
|
||||
}
|
||||
|
||||
// TypedTLSStoreInformer provides access to a shared informer and lister for
|
||||
// TLSStores, including the type-safe TypedInformer variant.
|
||||
// It is a superset of TLSStoreInformer.
|
||||
type TypedTLSStoreInformer interface {
|
||||
Informer() cache.SharedIndexInformer
|
||||
TypedInformer() TLSStoreIndexInformer
|
||||
Lister() traefikiov1alpha1.TLSStoreLister
|
||||
}
|
||||
|
||||
// TLSStoreIndexInformer is a wrapper around the underlying [cache.SharedIndexInformer]
|
||||
// with type-safe variants of several methods.
|
||||
type TLSStoreIndexInformer cache.TypedSharedIndexInformer[*crdtraefikiov1alpha1.TLSStore]
|
||||
|
||||
// TLSStoreHandlerFuncs is a specialization of [cache.TypedResourceEventHandlerFuncs] for TLSStore.
|
||||
type TLSStoreHandlerFuncs = cache.TypedResourceEventHandlerFuncs[*crdtraefikiov1alpha1.TLSStore]
|
||||
|
||||
// TLSStoreDetailedHandlerFuncs is a specialization of [cache.TypedResourceEventHandlerDetailedFuncs] for TLSStore.
|
||||
type TLSStoreDetailedHandlerFuncs = cache.TypedResourceEventHandlerDetailedFuncs[*crdtraefikiov1alpha1.TLSStore]
|
||||
|
||||
// TLSStoreFilteringHandler is a specialization of [cache.TypedFilteringResourceEventHandler] for TLSStore.
|
||||
type TLSStoreFilteringHandler = cache.TypedFilteringResourceEventHandler[*crdtraefikiov1alpha1.TLSStore]
|
||||
|
||||
// TLSStoreIndexers is a specialization of [cache.TypedIndexers] for TLSStore.
|
||||
type TLSStoreIndexers = cache.TypedIndexers[*crdtraefikiov1alpha1.TLSStore]
|
||||
|
||||
// DeletedTLSStore is a specialization of [cache.DeletedObject] for TLSStore.
|
||||
type DeletedTLSStore = cache.DeletedObject[*crdtraefikiov1alpha1.TLSStore]
|
||||
|
||||
type tLSStoreInformer struct {
|
||||
factory internalinterfaces.SharedInformerFactory
|
||||
tweakListOptions internalinterfaces.TweakListOptionsFunc
|
||||
@@ -57,25 +85,49 @@ type tLSStoreInformer struct {
|
||||
// NewTLSStoreInformer constructs a new informer for TLSStore type.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
// If you really need an independent one, prefer using the type-safe variant (see [NewTypedTLSStoreInformer]).
|
||||
func NewTLSStoreInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {
|
||||
return NewTLSStoreInformerWithOptions(client, namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: indexers})
|
||||
}
|
||||
|
||||
// NewTypedTLSStoreInformer constructs a new informer for TLSStore type.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
func NewTypedTLSStoreInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers TLSStoreIndexers) TLSStoreIndexInformer {
|
||||
return NewTypedTLSStoreInformerWithOptions(client, namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: cache.TypedIndexersToIndexers(indexers)})
|
||||
}
|
||||
|
||||
// NewFilteredTLSStoreInformer constructs a new informer for TLSStore type.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
// If you really need an independent one, prefer using the type-safe variant (see [NewTypedFilteredTLSStoreInformer]).
|
||||
func NewFilteredTLSStoreInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {
|
||||
return NewTLSStoreInformerWithOptions(client, namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: indexers, TweakListOptions: tweakListOptions})
|
||||
return NewTypedTLSStoreInformerWithOptions(client, namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: indexers, TweakListOptions: tweakListOptions})
|
||||
}
|
||||
|
||||
// NewTypedFilteredTLSStoreInformer constructs a new informer for TLSStore type.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
func NewTypedFilteredTLSStoreInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers TLSStoreIndexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) TLSStoreIndexInformer {
|
||||
return NewTypedTLSStoreInformerWithOptions(client, namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: cache.TypedIndexersToIndexers(indexers), TweakListOptions: tweakListOptions})
|
||||
}
|
||||
|
||||
// NewTLSStoreInformerWithOptions constructs a new informer for TLSStore type with additional options.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
// If you really need an independent one, prefer using the type-safe variant (see [NewTypedTLSStoreInformerWithOptions]).
|
||||
func NewTLSStoreInformerWithOptions(client versioned.Interface, namespace string, options internalinterfaces.InformerOptions) cache.SharedIndexInformer {
|
||||
return NewTypedTLSStoreInformerWithOptions(client, namespace, options)
|
||||
}
|
||||
|
||||
// NewTypedTLSStoreInformerWithOptions constructs a new informer for TLSStore type with additional options.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
func NewTypedTLSStoreInformerWithOptions(client versioned.Interface, namespace string, options internalinterfaces.InformerOptions) TLSStoreIndexInformer {
|
||||
gvr := schema.GroupVersionResource{Group: "traefik.io", Version: "v1alpha1", Resource: "tlsstores"}
|
||||
identifier := options.InformerName.WithResource(gvr)
|
||||
tweakListOptions := options.TweakListOptions
|
||||
return cache.NewSharedIndexInformerWithOptions(
|
||||
return cache.NewTypedSharedIndexInformer[*crdtraefikiov1alpha1.TLSStore](cache.NewSharedIndexInformerWithOptions(
|
||||
cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{
|
||||
ListFunc: func(opts v1.ListOptions) (runtime.Object, error) {
|
||||
if tweakListOptions != nil {
|
||||
@@ -108,17 +160,57 @@ func NewTLSStoreInformerWithOptions(client versioned.Interface, namespace string
|
||||
Indexers: options.Indexers,
|
||||
Identifier: identifier,
|
||||
},
|
||||
)
|
||||
))
|
||||
}
|
||||
|
||||
func (f *tLSStoreInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
|
||||
return NewTLSStoreInformerWithOptions(client, f.namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, InformerName: f.factory.InformerName(), TweakListOptions: f.tweakListOptions})
|
||||
return NewTypedTLSStoreInformerWithOptions(client, f.namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, InformerName: f.factory.InformerName(), TweakListOptions: f.tweakListOptions})
|
||||
}
|
||||
|
||||
func (f *tLSStoreInformer) Informer() cache.SharedIndexInformer {
|
||||
return f.factory.InformerFor(&crdtraefikiov1alpha1.TLSStore{}, f.defaultInformer)
|
||||
return f.TypedInformer()
|
||||
}
|
||||
|
||||
func (f *tLSStoreInformer) TypedInformer() TLSStoreIndexInformer {
|
||||
return cache.NewTypedSharedIndexInformer[*crdtraefikiov1alpha1.TLSStore](f.factory.InformerFor(&crdtraefikiov1alpha1.TLSStore{}, f.defaultInformer))
|
||||
}
|
||||
|
||||
func (f *tLSStoreInformer) Lister() traefikiov1alpha1.TLSStoreLister {
|
||||
return traefikiov1alpha1.NewTLSStoreLister(f.Informer().GetIndexer())
|
||||
}
|
||||
|
||||
// ToTypedTLSStoreInformer converts an untyped informer into a TypedTLSStoreInformer.
|
||||
//
|
||||
// WARNING: this conversion is only safe if the informer handles objects of type
|
||||
// *TLSStore. If that is not the case, calling type-safe methods of the returned
|
||||
// TypedTLSStoreInformer leads to runtime panics. A safer alternative is to pass
|
||||
// around a TypedTLSStoreInformer instances that was obtained from a
|
||||
// SharedInformerFactory.
|
||||
func ToTypedTLSStoreInformer(informer TLSStoreInformer) TypedTLSStoreInformer {
|
||||
if informer, ok := informer.(TypedTLSStoreInformer); ok {
|
||||
return informer
|
||||
}
|
||||
return &tLSStoreTypedInformerAdapter{informer}
|
||||
}
|
||||
|
||||
type tLSStoreTypedInformerAdapter struct {
|
||||
TLSStoreInformer
|
||||
}
|
||||
|
||||
func (a *tLSStoreTypedInformerAdapter) TypedInformer() TLSStoreIndexInformer {
|
||||
return cache.NewTypedSharedIndexInformer[*crdtraefikiov1alpha1.TLSStore](a.Informer())
|
||||
}
|
||||
|
||||
// ToTLSStoreIndexInformer converts an untyped informer into a TLSStoreIndexInformer.
|
||||
//
|
||||
// WARNING: this conversion is only safe if the informer handles objects of type
|
||||
// *TLSStore. If that is not the case, calling type-safe methods of the returned
|
||||
// TLSStoreIndexInformer leads to runtime panics. A safer alternative is to pass
|
||||
// around a TLSStoreIndexInformer instances that was obtained from a
|
||||
// SharedInformerFactory.
|
||||
func ToTLSStoreIndexInformer(informer cache.SharedIndexInformer) TLSStoreIndexInformer {
|
||||
if informer, ok := informer.(TLSStoreIndexInformer); ok {
|
||||
return informer
|
||||
}
|
||||
return cache.NewTypedSharedIndexInformer[*crdtraefikiov1alpha1.TLSStore](informer)
|
||||
}
|
||||
+98
-6
@@ -42,12 +42,40 @@ import (
|
||||
)
|
||||
|
||||
// TraefikServiceInformer provides access to a shared informer and lister for
|
||||
// TraefikServices.
|
||||
// TraefikServices. Prefer using the type-safe variant (see [TypedTraefikServiceInformer]).
|
||||
type TraefikServiceInformer interface {
|
||||
Informer() cache.SharedIndexInformer
|
||||
Lister() traefikiov1alpha1.TraefikServiceLister
|
||||
}
|
||||
|
||||
// TypedTraefikServiceInformer provides access to a shared informer and lister for
|
||||
// TraefikServices, including the type-safe TypedInformer variant.
|
||||
// It is a superset of TraefikServiceInformer.
|
||||
type TypedTraefikServiceInformer interface {
|
||||
Informer() cache.SharedIndexInformer
|
||||
TypedInformer() TraefikServiceIndexInformer
|
||||
Lister() traefikiov1alpha1.TraefikServiceLister
|
||||
}
|
||||
|
||||
// TraefikServiceIndexInformer is a wrapper around the underlying [cache.SharedIndexInformer]
|
||||
// with type-safe variants of several methods.
|
||||
type TraefikServiceIndexInformer cache.TypedSharedIndexInformer[*crdtraefikiov1alpha1.TraefikService]
|
||||
|
||||
// TraefikServiceHandlerFuncs is a specialization of [cache.TypedResourceEventHandlerFuncs] for TraefikService.
|
||||
type TraefikServiceHandlerFuncs = cache.TypedResourceEventHandlerFuncs[*crdtraefikiov1alpha1.TraefikService]
|
||||
|
||||
// TraefikServiceDetailedHandlerFuncs is a specialization of [cache.TypedResourceEventHandlerDetailedFuncs] for TraefikService.
|
||||
type TraefikServiceDetailedHandlerFuncs = cache.TypedResourceEventHandlerDetailedFuncs[*crdtraefikiov1alpha1.TraefikService]
|
||||
|
||||
// TraefikServiceFilteringHandler is a specialization of [cache.TypedFilteringResourceEventHandler] for TraefikService.
|
||||
type TraefikServiceFilteringHandler = cache.TypedFilteringResourceEventHandler[*crdtraefikiov1alpha1.TraefikService]
|
||||
|
||||
// TraefikServiceIndexers is a specialization of [cache.TypedIndexers] for TraefikService.
|
||||
type TraefikServiceIndexers = cache.TypedIndexers[*crdtraefikiov1alpha1.TraefikService]
|
||||
|
||||
// DeletedTraefikService is a specialization of [cache.DeletedObject] for TraefikService.
|
||||
type DeletedTraefikService = cache.DeletedObject[*crdtraefikiov1alpha1.TraefikService]
|
||||
|
||||
type traefikServiceInformer struct {
|
||||
factory internalinterfaces.SharedInformerFactory
|
||||
tweakListOptions internalinterfaces.TweakListOptionsFunc
|
||||
@@ -57,25 +85,49 @@ type traefikServiceInformer struct {
|
||||
// NewTraefikServiceInformer constructs a new informer for TraefikService type.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
// If you really need an independent one, prefer using the type-safe variant (see [NewTypedTraefikServiceInformer]).
|
||||
func NewTraefikServiceInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {
|
||||
return NewTraefikServiceInformerWithOptions(client, namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: indexers})
|
||||
}
|
||||
|
||||
// NewTypedTraefikServiceInformer constructs a new informer for TraefikService type.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
func NewTypedTraefikServiceInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers TraefikServiceIndexers) TraefikServiceIndexInformer {
|
||||
return NewTypedTraefikServiceInformerWithOptions(client, namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: cache.TypedIndexersToIndexers(indexers)})
|
||||
}
|
||||
|
||||
// NewFilteredTraefikServiceInformer constructs a new informer for TraefikService type.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
// If you really need an independent one, prefer using the type-safe variant (see [NewTypedFilteredTraefikServiceInformer]).
|
||||
func NewFilteredTraefikServiceInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {
|
||||
return NewTraefikServiceInformerWithOptions(client, namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: indexers, TweakListOptions: tweakListOptions})
|
||||
return NewTypedTraefikServiceInformerWithOptions(client, namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: indexers, TweakListOptions: tweakListOptions})
|
||||
}
|
||||
|
||||
// NewTypedFilteredTraefikServiceInformer constructs a new informer for TraefikService type.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
func NewTypedFilteredTraefikServiceInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers TraefikServiceIndexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) TraefikServiceIndexInformer {
|
||||
return NewTypedTraefikServiceInformerWithOptions(client, namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: cache.TypedIndexersToIndexers(indexers), TweakListOptions: tweakListOptions})
|
||||
}
|
||||
|
||||
// NewTraefikServiceInformerWithOptions constructs a new informer for TraefikService type with additional options.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
// If you really need an independent one, prefer using the type-safe variant (see [NewTypedTraefikServiceInformerWithOptions]).
|
||||
func NewTraefikServiceInformerWithOptions(client versioned.Interface, namespace string, options internalinterfaces.InformerOptions) cache.SharedIndexInformer {
|
||||
return NewTypedTraefikServiceInformerWithOptions(client, namespace, options)
|
||||
}
|
||||
|
||||
// NewTypedTraefikServiceInformerWithOptions constructs a new informer for TraefikService type with additional options.
|
||||
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
||||
// one. This reduces memory footprint and number of connections to the server.
|
||||
func NewTypedTraefikServiceInformerWithOptions(client versioned.Interface, namespace string, options internalinterfaces.InformerOptions) TraefikServiceIndexInformer {
|
||||
gvr := schema.GroupVersionResource{Group: "traefik.io", Version: "v1alpha1", Resource: "traefikservices"}
|
||||
identifier := options.InformerName.WithResource(gvr)
|
||||
tweakListOptions := options.TweakListOptions
|
||||
return cache.NewSharedIndexInformerWithOptions(
|
||||
return cache.NewTypedSharedIndexInformer[*crdtraefikiov1alpha1.TraefikService](cache.NewSharedIndexInformerWithOptions(
|
||||
cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{
|
||||
ListFunc: func(opts v1.ListOptions) (runtime.Object, error) {
|
||||
if tweakListOptions != nil {
|
||||
@@ -108,17 +160,57 @@ func NewTraefikServiceInformerWithOptions(client versioned.Interface, namespace
|
||||
Indexers: options.Indexers,
|
||||
Identifier: identifier,
|
||||
},
|
||||
)
|
||||
))
|
||||
}
|
||||
|
||||
func (f *traefikServiceInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
|
||||
return NewTraefikServiceInformerWithOptions(client, f.namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, InformerName: f.factory.InformerName(), TweakListOptions: f.tweakListOptions})
|
||||
return NewTypedTraefikServiceInformerWithOptions(client, f.namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, InformerName: f.factory.InformerName(), TweakListOptions: f.tweakListOptions})
|
||||
}
|
||||
|
||||
func (f *traefikServiceInformer) Informer() cache.SharedIndexInformer {
|
||||
return f.factory.InformerFor(&crdtraefikiov1alpha1.TraefikService{}, f.defaultInformer)
|
||||
return f.TypedInformer()
|
||||
}
|
||||
|
||||
func (f *traefikServiceInformer) TypedInformer() TraefikServiceIndexInformer {
|
||||
return cache.NewTypedSharedIndexInformer[*crdtraefikiov1alpha1.TraefikService](f.factory.InformerFor(&crdtraefikiov1alpha1.TraefikService{}, f.defaultInformer))
|
||||
}
|
||||
|
||||
func (f *traefikServiceInformer) Lister() traefikiov1alpha1.TraefikServiceLister {
|
||||
return traefikiov1alpha1.NewTraefikServiceLister(f.Informer().GetIndexer())
|
||||
}
|
||||
|
||||
// ToTypedTraefikServiceInformer converts an untyped informer into a TypedTraefikServiceInformer.
|
||||
//
|
||||
// WARNING: this conversion is only safe if the informer handles objects of type
|
||||
// *TraefikService. If that is not the case, calling type-safe methods of the returned
|
||||
// TypedTraefikServiceInformer leads to runtime panics. A safer alternative is to pass
|
||||
// around a TypedTraefikServiceInformer instances that was obtained from a
|
||||
// SharedInformerFactory.
|
||||
func ToTypedTraefikServiceInformer(informer TraefikServiceInformer) TypedTraefikServiceInformer {
|
||||
if informer, ok := informer.(TypedTraefikServiceInformer); ok {
|
||||
return informer
|
||||
}
|
||||
return &traefikServiceTypedInformerAdapter{informer}
|
||||
}
|
||||
|
||||
type traefikServiceTypedInformerAdapter struct {
|
||||
TraefikServiceInformer
|
||||
}
|
||||
|
||||
func (a *traefikServiceTypedInformerAdapter) TypedInformer() TraefikServiceIndexInformer {
|
||||
return cache.NewTypedSharedIndexInformer[*crdtraefikiov1alpha1.TraefikService](a.Informer())
|
||||
}
|
||||
|
||||
// ToTraefikServiceIndexInformer converts an untyped informer into a TraefikServiceIndexInformer.
|
||||
//
|
||||
// WARNING: this conversion is only safe if the informer handles objects of type
|
||||
// *TraefikService. If that is not the case, calling type-safe methods of the returned
|
||||
// TraefikServiceIndexInformer leads to runtime panics. A safer alternative is to pass
|
||||
// around a TraefikServiceIndexInformer instances that was obtained from a
|
||||
// SharedInformerFactory.
|
||||
func ToTraefikServiceIndexInformer(informer cache.SharedIndexInformer) TraefikServiceIndexInformer {
|
||||
if informer, ok := informer.(TraefikServiceIndexInformer); ok {
|
||||
return informer
|
||||
}
|
||||
return cache.NewTypedSharedIndexInformer[*crdtraefikiov1alpha1.TraefikService](informer)
|
||||
}
|
||||
@@ -72,6 +72,7 @@ func extendedHTTPRouteFeatures() sets.Set[features.Feature] {
|
||||
features.HTTPRouteCORS,
|
||||
features.HTTPRouteRequestTimeoutFeature,
|
||||
features.HTTPRouteBackendTimeoutFeature,
|
||||
features.HTTPRouteBackendURLRewriteFeature,
|
||||
)
|
||||
}
|
||||
|
||||
@@ -79,6 +80,7 @@ func extendedHTTPRouteFeatures() sets.Set[features.Feature] {
|
||||
func extendedGRPCRouteFeatures() sets.Set[features.Feature] {
|
||||
return sets.New(
|
||||
features.GRPCRouteNamedRouteRule,
|
||||
features.GRPCRouteRequestHeaderModifier,
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -9026,9 +9026,11 @@ func TestLoadTLSRoutes(t *testing.T) {
|
||||
Servers: []dynamic.TCPServer{
|
||||
{
|
||||
Address: "10.10.0.1:80",
|
||||
TLS: true,
|
||||
},
|
||||
{
|
||||
Address: "10.10.0.2:80",
|
||||
TLS: true,
|
||||
},
|
||||
},
|
||||
ServersTransport: "tlsroute-default-tls-app-1-gw-default-my-gateway-ep-tls-0-5c999a999d12ac0531c5-svc-default-whoami-0",
|
||||
@@ -9114,9 +9116,11 @@ func TestLoadTLSRoutes(t *testing.T) {
|
||||
Servers: []dynamic.TCPServer{
|
||||
{
|
||||
Address: "10.10.0.1:80",
|
||||
TLS: true,
|
||||
},
|
||||
{
|
||||
Address: "10.10.0.2:80",
|
||||
TLS: true,
|
||||
},
|
||||
},
|
||||
ServersTransport: "tlsroute-default-tls-app-1-gw-default-my-gateway-ep-tls-0-5c999a999d12ac0531c5-svc-default-whoami-0",
|
||||
@@ -9201,9 +9205,11 @@ func TestLoadTLSRoutes(t *testing.T) {
|
||||
Servers: []dynamic.TCPServer{
|
||||
{
|
||||
Address: "10.10.0.1:80",
|
||||
TLS: true,
|
||||
},
|
||||
{
|
||||
Address: "10.10.0.2:80",
|
||||
TLS: true,
|
||||
},
|
||||
},
|
||||
ServersTransport: "tlsroute-default-tls-app-1-gw-default-my-gateway-ep-tls-0-5c999a999d12ac0531c5-svc-default-whoami-0",
|
||||
|
||||
@@ -466,11 +466,13 @@ func (p *Provider) loadTLSServers(gatewayName, gatewayNamespace, namespace strin
|
||||
}
|
||||
|
||||
lb := &dynamic.TCPServersLoadBalancer{}
|
||||
passthrough := listener.TLS != nil && listener.TLS.Mode != nil && *listener.TLS.Mode == gatev1.TLSModePassthrough
|
||||
|
||||
for _, ba := range backendAddresses {
|
||||
lb.Servers = append(lb.Servers, dynamic.TCPServer{
|
||||
// TODO determine whether the servers needs TLS, from the port?
|
||||
Address: net.JoinHostPort(ba.IP, strconv.Itoa(int(ba.Port))),
|
||||
// The ServersTransport TLS configuration is only used to dial TLS servers.
|
||||
TLS: serversTransport != nil && serversTransport.TLS != nil && !passthrough,
|
||||
})
|
||||
}
|
||||
return lb, serversTransport, nil
|
||||
|
||||
+2
-2
@@ -4,11 +4,11 @@ set -e -o pipefail
|
||||
|
||||
PROJECT_MODULE="github.com/traefik/traefik"
|
||||
MODULE_VERSION="v3"
|
||||
KUBE_VERSION=v0.36.3
|
||||
KUBE_VERSION=v0.37.1
|
||||
CURRENT_DIR="$(pwd)"
|
||||
|
||||
go install "k8s.io/code-generator/cmd/deepcopy-gen@${KUBE_VERSION}"
|
||||
go install sigs.k8s.io/controller-tools/cmd/controller-gen@v0.21.0
|
||||
go install sigs.k8s.io/controller-tools/cmd/controller-gen@v0.23.0
|
||||
|
||||
CODEGEN_PKG="$(go env GOPATH)/pkg/mod/k8s.io/code-generator@${KUBE_VERSION}"
|
||||
# shellcheck disable=SC1091 # Cannot check source of this file
|
||||
|
||||
Reference in new issue
Block a user