From 6d78df438835f905e7d5c363f5fe692c0d1291c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20Larivi=C3=A8re?= Date: Fri, 3 Nov 2023 08:56:38 -0400 Subject: [PATCH] add initial support for gw apis 1.0.0 GA MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Christopher Larivière --- docs/tutorials/gateway-api.md | 2 +- go.mod | 67 +++-- go.sum | 148 +++++------ source/gateway.go | 48 ++-- source/gateway_grpcroute.go | 12 +- source/gateway_grpcroute_test.go | 9 +- source/gateway_httproute.go | 22 +- source/gateway_httproute_test.go | 439 ++++++++++++++++--------------- source/gateway_tcproute.go | 12 +- source/gateway_tcproute_test.go | 12 +- source/gateway_tlsroute.go | 12 +- source/gateway_tlsroute_test.go | 12 +- source/gateway_udproute.go | 12 +- source/gateway_udproute_test.go | 9 +- 14 files changed, 408 insertions(+), 408 deletions(-) diff --git a/docs/tutorials/gateway-api.md b/docs/tutorials/gateway-api.md index f1f39ca690..df3af4ff03 100644 --- a/docs/tutorials/gateway-api.md +++ b/docs/tutorials/gateway-api.md @@ -7,7 +7,7 @@ It is meant to supplement the other provider-specific setup tutorials. As the Gateway API is still in an experimental phase, ExternalDNS makes no backwards compatibilty guarantees regarding its support. However, it currently supports a mixture of -v1alpha2 and v1beta1 APIs. Gateways and HTTPRoutes are supported using the v1beta1 API. +v1alpha2, v1beta1, v1 APIs. Gateways and HTTPRoutes are supported using the v1 and v1beta1 API (which is converted to v1 when using the latest CRDs). GRPCRoutes, TLSRoutes, TCPRoutes, and UDPRoutes are supported using the v1alpha2 API. ## Hostnames diff --git a/go.mod b/go.mod index 23bcac1c4e..9a471beee9 100644 --- a/go.mod +++ b/go.mod @@ -30,8 +30,8 @@ require ( github.com/ffledgling/pdns-go v0.0.0-20180219074714-524e7daccd99 github.com/go-gandi/go-gandi v0.6.0 github.com/go-logr/logr v1.2.4 - github.com/google/go-cmp v0.5.9 - github.com/google/uuid v1.3.0 + github.com/google/go-cmp v0.6.0 + github.com/google/uuid v1.3.1 github.com/gophercloud/gophercloud v1.5.0 github.com/hooklift/gowsdl v0.5.0 github.com/infobloxopen/infoblox-go-client/v2 v2.3.0 @@ -50,7 +50,7 @@ require ( github.com/pkg/errors v0.9.1 github.com/pluralsh/gqlclient v1.6.0 github.com/projectcontour/contour v1.25.2 - github.com/prometheus/client_golang v1.16.0 + github.com/prometheus/client_golang v1.17.0 github.com/scaleway/scaleway-sdk-go v1.0.0-beta.20 github.com/sirupsen/logrus v1.9.3 github.com/stretchr/testify v1.8.4 @@ -65,19 +65,19 @@ require ( go.etcd.io/etcd/client/v3 v3.5.9 go.uber.org/ratelimit v0.3.0 golang.org/x/net v0.17.0 - golang.org/x/oauth2 v0.10.0 - golang.org/x/sync v0.3.0 + golang.org/x/oauth2 v0.13.0 + golang.org/x/sync v0.4.0 golang.org/x/time v0.3.0 google.golang.org/api v0.134.0 gopkg.in/ns1/ns1-go.v2 v2.7.8 gopkg.in/yaml.v2 v2.4.0 istio.io/api v1.19.0-alpha.1 istio.io/client-go v1.18.1 - k8s.io/api v0.27.4 - k8s.io/apimachinery v0.27.4 - k8s.io/client-go v0.27.4 + k8s.io/api v0.28.3 + k8s.io/apimachinery v0.28.3 + k8s.io/client-go v0.28.3 k8s.io/klog/v2 v2.100.1 - sigs.k8s.io/gateway-api v0.7.1 + sigs.k8s.io/gateway-api v1.0.0 ) require ( @@ -95,19 +95,19 @@ require ( github.com/benbjohnson/clock v1.3.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect - github.com/coreos/go-semver v0.3.0 // indirect - github.com/coreos/go-systemd/v22 v22.3.3-0.20220203105225-a9a7ef127534 // indirect + github.com/coreos/go-semver v0.3.1 // indirect + github.com/coreos/go-systemd/v22 v22.5.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/deepmap/oapi-codegen v1.9.1 // indirect - github.com/emicklei/go-restful/v3 v3.10.2 // indirect - github.com/evanphx/json-patch v5.6.0+incompatible // indirect + github.com/emicklei/go-restful/v3 v3.11.0 // indirect + github.com/evanphx/json-patch v5.7.0+incompatible // indirect github.com/fatih/structs v1.1.0 // indirect - github.com/fsnotify/fsnotify v1.6.0 // indirect + github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/go-openapi/errors v0.20.3 // indirect - github.com/go-openapi/jsonpointer v0.19.6 // indirect - github.com/go-openapi/jsonreference v0.20.1 // indirect + github.com/go-openapi/jsonpointer v0.20.0 // indirect + github.com/go-openapi/jsonreference v0.20.2 // indirect github.com/go-openapi/strfmt v0.21.5 // indirect - github.com/go-openapi/swag v0.22.3 // indirect + github.com/go-openapi/swag v0.22.4 // indirect github.com/go-playground/locales v0.14.1 // indirect github.com/go-playground/universal-translator v0.18.1 // indirect github.com/go-playground/validator/v10 v10.13.0 // indirect @@ -118,7 +118,7 @@ require ( github.com/golang-jwt/jwt/v4 v4.5.0 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.3 // indirect - github.com/google/gnostic v0.6.9 // indirect + github.com/google/gnostic-models v0.6.8 // indirect github.com/google/go-querystring v1.1.0 // indirect github.com/google/gofuzz v1.2.0 // indirect github.com/google/s2a-go v0.1.4 // indirect @@ -131,7 +131,7 @@ require ( github.com/hashicorp/go-retryablehttp v0.7.4 // indirect github.com/hashicorp/go-uuid v1.0.3 // indirect github.com/hashicorp/hcl v1.0.0 // indirect - github.com/imdario/mergo v0.3.15 // indirect + github.com/imdario/mergo v0.3.16 // indirect github.com/jcmturner/aescts/v2 v2.0.0 // indirect github.com/jcmturner/dnsutils/v2 v2.0.0 // indirect github.com/jcmturner/gofork v1.7.6 // indirect @@ -148,7 +148,7 @@ require ( github.com/mailru/easyjson v0.7.7 // indirect github.com/mattn/go-isatty v0.0.18 // indirect github.com/mattn/go-runewidth v0.0.13 // indirect - github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect + github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 // indirect github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect @@ -163,9 +163,9 @@ require ( github.com/peterhellberg/link v1.1.0 // indirect github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/prometheus/client_model v0.4.0 // indirect - github.com/prometheus/common v0.43.0 // indirect - github.com/prometheus/procfs v0.10.1 // indirect + github.com/prometheus/client_model v0.5.0 // indirect + github.com/prometheus/common v0.45.0 // indirect + github.com/prometheus/procfs v0.12.0 // indirect github.com/rivo/uniseg v0.2.0 // indirect github.com/schollz/progressbar/v3 v3.8.6 // indirect github.com/sergi/go-diff v1.2.0 // indirect @@ -184,16 +184,15 @@ require ( go.etcd.io/etcd/client/pkg/v3 v3.5.9 // indirect go.mongodb.org/mongo-driver v1.11.3 // indirect go.opencensus.io v0.24.0 // indirect - go.uber.org/atomic v1.9.0 // indirect - go.uber.org/multierr v1.8.0 // indirect - go.uber.org/zap v1.24.0 // indirect + go.uber.org/multierr v1.11.0 // indirect + go.uber.org/zap v1.26.0 // indirect golang.org/x/crypto v0.14.0 // indirect - golang.org/x/mod v0.10.0 // indirect + golang.org/x/mod v0.13.0 // indirect golang.org/x/sys v0.13.0 // indirect golang.org/x/term v0.13.0 // indirect golang.org/x/text v0.13.0 // indirect - golang.org/x/tools v0.8.0 // indirect - google.golang.org/appengine v1.6.7 // indirect + golang.org/x/tools v0.14.0 // indirect + google.golang.org/appengine v1.6.8 // indirect google.golang.org/genproto v0.0.0-20230706204954-ccb25ca9f130 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20230706204954-ccb25ca9f130 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230720185612-659f7aaaa771 // indirect @@ -205,11 +204,11 @@ require ( gopkg.in/resty.v1 v1.12.0 // indirect gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f // indirect - k8s.io/utils v0.0.0-20230505201702-9f6742963106 // indirect + k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00 // indirect + k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect moul.io/http2curl v1.0.0 // indirect - sigs.k8s.io/controller-runtime v0.14.6 // indirect + sigs.k8s.io/controller-runtime v0.16.3 // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect - sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect - sigs.k8s.io/yaml v1.3.0 // indirect + sigs.k8s.io/structured-merge-diff/v4 v4.3.0 // indirect + sigs.k8s.io/yaml v1.4.0 // indirect ) diff --git a/go.sum b/go.sum index 73d1228bb4..fcb7767181 100644 --- a/go.sum +++ b/go.sum @@ -170,7 +170,6 @@ github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dR github.com/bodgit/tsig v1.2.2 h1:RgxTCr8UFUHyU4D8Ygb2UtXtS4niw4B6XYYBpgCjl0k= github.com/bodgit/tsig v1.2.2/go.mod h1:rIGNOLZOV/UA03fmCUtEFbpWOrIoaOuETkpaeTvnLF4= github.com/bshuster-repo/logrus-logstash-hook v0.4.1/go.mod h1:zsTqEiSzDgAa/8GZR7E1qaXrhYNDKBYy5/dWPTIflbk= -github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0= github.com/bugsnag/bugsnag-go v0.0.0-20141110184014-b1d153021fcd/go.mod h1:2oa8nejYd4cQ/b0hMIopN0lCRxU0bueqREvZLWFrtK8= github.com/bugsnag/osext v0.0.0-20130617224835-0dd3f918b21b/go.mod h1:obH5gd0BsqsP2LwDJ9aOkm/6J86V6lyAXCoQWGw3K50= github.com/bugsnag/panicwrap v0.0.0-20151223152923-e2c28503fcd0/go.mod h1:D/8v3kj0zr8ZAKg1AQ6crr+5VwKN5eIywRkfhyM/+dE= @@ -199,7 +198,6 @@ github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGX github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= -github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= @@ -223,12 +221,13 @@ github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmfM= github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/coreos/go-semver v0.3.1 h1:yi21YpKnrx1gt5R+la8n5WgS0kCrsPp33dmEyHReZr4= +github.com/coreos/go-semver v0.3.1/go.mod h1:irMmmIw/7yzSRPWryHsK7EYSg09caPQL03VsM8rvUec= github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd/v22 v22.3.3-0.20220203105225-a9a7ef127534 h1:rtAn27wIbmOGUs7RIbVgPEjb31ehTVniDwPGXyMxm5U= -github.com/coreos/go-systemd/v22 v22.3.3-0.20220203105225-a9a7ef127534/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= +github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs= +github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/coreos/pkg v0.0.0-20180108230652-97fdf19511ea/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= @@ -291,8 +290,8 @@ github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkg github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/emicklei/go-restful/v3 v3.8.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= -github.com/emicklei/go-restful/v3 v3.10.2 h1:hIovbnmBTLjHXkqEBUz3HGpXZdM7ZrE9fJIZIqlJLqE= -github.com/emicklei/go-restful/v3 v3.10.2/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= +github.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxERmMY4rD+g= +github.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/enceve/crypto v0.0.0-20160707101852-34d48bb93815/go.mod h1:wYFFK4LYXbX7j+76mOq7aiC/EAw2S22CrzPHqgsisPw= github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -300,15 +299,14 @@ github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.m github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/envoyproxy/protoc-gen-validate v0.3.0-java.0.20200609174644-bd816e4522c1/go.mod h1:bjmEhrMDubXDd0uKxnWwRmgSsiEv2CkJliIHnj6ETm8= github.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/evanphx/json-patch v4.5.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/evanphx/json-patch v5.6.0+incompatible h1:jBYDEEiFBPxA0v50tFdvOzQQTCvpL6mnFh5mB2/l16U= -github.com/evanphx/json-patch v5.6.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= +github.com/evanphx/json-patch v5.7.0+incompatible h1:vgGkfT/9f8zE6tvSCe74nfpAVDQ2tG6yudJd8LBksgI= +github.com/evanphx/json-patch v5.7.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/exoscale/egoscale v0.100.3 h1:tXALrvTcwhnS0PG28a6PBWEUwuAwrNwoMjpuPrNIgeA= github.com/exoscale/egoscale v0.100.3/go.mod h1:szh4hWSVh+ylgfti4AFR4mkRaCfUyUXSKS3PihlcOco= github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZMPRZwes7CROmyNKgQzC3XPs6L/G2EJLHddWejkmf4= @@ -320,15 +318,14 @@ github.com/fatih/structs v1.1.0 h1:Q7juDM0QtcnhCpeyLGQKyg4TOIghuNXrkL32pHAUMxo= github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= github.com/ffledgling/pdns-go v0.0.0-20180219074714-524e7daccd99 h1:jmwW6QWvUO2OPe22YfgFvBaaZlSr8Rlrac5lZvG6IdM= github.com/ffledgling/pdns-go v0.0.0-20180219074714-524e7daccd99/go.mod h1:4mP9w9+vYGw2jUx2+2v03IA+phyQQjNRR4AL3uxlNrs= -github.com/flowstack/go-jsonschema v0.1.1/go.mod h1:yL7fNggx1o8rm9RlgXv7hTBWxdBM0rVwpMwimd3F3N0= github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4= github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20= github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE= github.com/frankban/quicktest v1.14.3/go.mod h1:mgiwOwqx65TmIk1wJ6Q7wvnVMocbUorkibMOrVTHZps= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= -github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= +github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= +github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= github.com/garyburd/redigo v0.0.0-20150301180006-535138d7bcd7/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY= github.com/getkin/kin-openapi v0.87.0/go.mod h1:660oXbgy5JFMKreazJaQTw7o+X00qeSyhcnluiMv+Xg= github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= @@ -376,15 +373,17 @@ github.com/go-openapi/jsonpointer v0.18.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwds github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= -github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE= github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs= +github.com/go-openapi/jsonpointer v0.20.0 h1:ESKJdU9ASRfaPNOPRx12IUyA1vn3R9GiE3KYD14BXdQ= +github.com/go-openapi/jsonpointer v0.20.0/go.mod h1:6PGzBjjIIumbLYysB73Klnms1mwnU4G3YHOECG3CedA= github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg= github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= github.com/go-openapi/jsonreference v0.18.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc= github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= -github.com/go-openapi/jsonreference v0.20.1 h1:FBLnyygC4/IZZr893oiomc9XaghoveYTrLC1F86HID8= github.com/go-openapi/jsonreference v0.20.1/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= +github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE= +github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= github.com/go-openapi/loads v0.17.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= github.com/go-openapi/loads v0.18.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= github.com/go-openapi/loads v0.19.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= @@ -409,8 +408,9 @@ github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/ github.com/go-openapi/swag v0.18.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g= github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= +github.com/go-openapi/swag v0.22.4 h1:QLMzNJnMGPRNDCbySlcj1x01tzU8/9LTTL9hZZZogBU= +github.com/go-openapi/swag v0.22.4/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4= github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA= github.com/go-openapi/validate v0.19.5/go.mod h1:8DJv2CVJQ6kGNpFW6eV9N3JviE1C85nY1c2z52x1Gk4= @@ -512,8 +512,8 @@ github.com/golangplus/testing v0.0.0-20180327235837-af21d9c3145e/go.mod h1:0AA// github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/gnostic v0.5.7-v3refs/go.mod h1:73MKFl6jIHelAJNaBGFzt3SPtZULs9dYrGFt8OiIsHQ= -github.com/google/gnostic v0.6.9 h1:ZK/5VhkoX835RikCHpSUJV9a+S3e1zLh59YnyWeBW+0= -github.com/google/gnostic v0.6.9/go.mod h1:Nm8234We1lq6iB9OmlgNv3nH91XLLVZHCDayfA3xq+E= +github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I= +github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -526,8 +526,9 @@ github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD/fhyJ8= github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU= @@ -558,8 +559,9 @@ github.com/google/shlex v0.0.0-20181106134648-c34317bd91bf/go.mod h1:RpwtwJQFrIE github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.3.1 h1:KjJaJ9iWZ3jOFZIf1Lqf4laDRCasjl0BCmnEGxkdLb4= +github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/enterprise-certificate-proxy v0.2.5 h1:UR4rDjcgpgEnqpIEvkiqTYKBCKLNmlge2eVjoZfySzM= github.com/googleapis/enterprise-certificate-proxy v0.2.5/go.mod h1:RxW0N9901Cko1VOCW3SXCpWP+mlIEkk2tP7jnHy9a3w= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= @@ -653,8 +655,8 @@ github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1: github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.9/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= -github.com/imdario/mergo v0.3.15 h1:M8XP7IuFNsqUx6VPK2P9OSmsYsI/YFaGil0uD21V3dM= -github.com/imdario/mergo v0.3.15/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY= +github.com/imdario/mergo v0.3.16 h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4= +github.com/imdario/mergo v0.3.16/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= github.com/infobloxopen/infoblox-go-client/v2 v2.3.0 h1:xLHcstumFvziz8dhrc+8gNRwfAyM2Q0nLSlyfK0+3XU= @@ -796,8 +798,8 @@ github.com/mattn/go-shellwords v1.0.10/go.mod h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lL github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/mattn/go-sqlite3 v1.12.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= -github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= +github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 h1:jWpvCLoY8Z/e3VKvlsiIGKtc+UG6U5vzxaoagmhXfyg= +github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0/go.mod h1:QUyp042oQthUoa9bqDv0ER0wrtXnBruoNd7aNjkbP+k= github.com/maxatome/go-testdeep v1.13.0 h1:EBmRelH7MhMfPvA+0kXAeOeJUXn3mzul5NmvjLDcQZI= github.com/maxatome/go-testdeep v1.13.0/go.mod h1:lPZc/HAcJMP92l7yI6TRz1aZN5URwUBUAfUNvrclaNM= github.com/mholt/archiver/v3 v3.3.0/go.mod h1:YnQtqsp+94Rwd0D/rk5cnLrxusUBUXg+08Ebtr1Mqao= @@ -883,8 +885,8 @@ github.com/onsi/ginkgo/v2 v2.7.0/go.mod h1:yjiuMwPokqY1XauOgju45q3sJt6VzQ/Fict1L github.com/onsi/ginkgo/v2 v2.8.1/go.mod h1:N1/NbDngAFcSLdyZ+/aYTYGSlq9qMCS/cNKGJjy+csc= github.com/onsi/ginkgo/v2 v2.9.0/go.mod h1:4xkjoL/tZv4SMWeww56BU5kAt19mVB47gTWxmrTcxyk= github.com/onsi/ginkgo/v2 v2.9.1/go.mod h1:FEcmzVcCHl+4o9bQZVab+4dC9+j+91t2FHSzmGAPfuo= -github.com/onsi/ginkgo/v2 v2.9.4 h1:xR7vG4IXt5RWx6FfIjyAtsoMAtnc3C/rFXBBd2AjZwE= -github.com/onsi/ginkgo/v2 v2.9.4/go.mod h1:gCQYp2Q+kSoIj7ykSVb9nskRSsR6PUj4AiLywzIhbKM= +github.com/onsi/ginkgo/v2 v2.11.0 h1:WgqUCUt/lT6yXoQ8Wef0fsNn5cAuMK7+KT9UFRz2tcU= +github.com/onsi/ginkgo/v2 v2.11.0/go.mod h1:ZhrRA5XmEE3x3rhlzamx/JJvujdZoJ2uvgI7kR0iZvM= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= @@ -902,8 +904,8 @@ github.com/onsi/gomega v1.26.0/go.mod h1:r+zV744Re+DiYCIPRlYOTxn0YkOLcAnW8k1xXdM github.com/onsi/gomega v1.27.1/go.mod h1:aHX5xOykVYzWOV4WqQy0sy8BQptgukenXpCXfadcIAw= github.com/onsi/gomega v1.27.3/go.mod h1:5vG284IBtfDAmDyrK+eGyZmUgUlmi+Wngqo557cZ6Gw= github.com/onsi/gomega v1.27.4/go.mod h1:riYq/GJKh8hhoM01HN6Vmuy93AarCXCBGpvFDK3q3fQ= -github.com/onsi/gomega v1.27.6 h1:ENqfyGeS5AX/rlXDd/ETokDz93u0YufY1Pgxuy/PvWE= -github.com/onsi/gomega v1.27.6/go.mod h1:PIQNjfQwkP3aQAH7lf7j87O/5FiNr+ZR8+ipb+qQlhg= +github.com/onsi/gomega v1.27.10 h1:naR28SdDFlqrG6kScpT8VWpu1xWY5nJRCF3XaYyBjhI= +github.com/onsi/gomega v1.27.10/go.mod h1:RsS8tutOdbdgzbPtzzATp12yT7kM5I5aElG3evPbQ0M= github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= github.com/opencontainers/go-digest v0.0.0-20170106003457-a6d0ee40d420/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= @@ -978,8 +980,8 @@ github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDf github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og= github.com/prometheus/client_golang v1.6.0/go.mod h1:ZLOG9ck3JLRdB5MgO8f+lLTe83AXG6ro35rLTxvnIl4= -github.com/prometheus/client_golang v1.16.0 h1:yk/hx9hDbrGHovbci4BY+pRMfSuuat626eFsHb7tmT8= -github.com/prometheus/client_golang v1.16.0/go.mod h1:Zsulrv/L9oM40tJ7T815tM89lFEugiJ9HzIqaAx4LKc= +github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= +github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= github.com/prometheus/client_model v0.0.0-20171117100541-99fa1f4be8e5/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= @@ -987,8 +989,8 @@ github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1: github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.1.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.4.0 h1:5lQXD3cAg1OXBf4Wq03gTrXHeaV0TQvGfUooCfx1yqY= -github.com/prometheus/client_model v0.4.0/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU= +github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= +github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= github.com/prometheus/common v0.0.0-20180110214958-89604d197083/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= @@ -996,8 +998,8 @@ github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y8 github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= -github.com/prometheus/common v0.43.0 h1:iq+BVjvYLei5f27wiuNiB1DN6DYQkp1c8Bx0Vykh5us= -github.com/prometheus/common v0.43.0/go.mod h1:NCvr5cQIh3Y/gy73/RdVtC9r8xxrxwJnB+2lB3BxrFc= +github.com/prometheus/common v0.45.0 h1:2BGz0eBc2hdMDLnO/8n0jeB3oPrt2D08CekT0lneoxM= +github.com/prometheus/common v0.45.0/go.mod h1:YJmSTw9BoKxJplESWWxlbyttQR4uaEcGyv9MZjVOJsY= github.com/prometheus/procfs v0.0.0-20180125133057-cb4147076ac7/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= @@ -1006,8 +1008,8 @@ github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsT github.com/prometheus/procfs v0.0.5/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.0.11/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.10.1 h1:kYK1Va/YMlutzCGazswoHKo//tZVlFpKYh+PymziUAg= -github.com/prometheus/procfs v0.10.1/go.mod h1:nwNm2aOCAYw8uTR/9bWRREkZFxAUcWzPHWJq+XBB/FM= +github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo= +github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= @@ -1020,9 +1022,8 @@ github.com/rogpeppe/go-internal v1.3.2/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTE github.com/rogpeppe/go-internal v1.4.0/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE= +github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= -github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= -github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= github.com/rubenv/sql-migrate v0.0.0-20200212082348-64f95ea68aa3/go.mod h1:rtQlpHw+eR6UrqaS3kX1VYeaCxzCVdimDS7g5Ln4pPc= github.com/rubenv/sql-migrate v0.0.0-20200616145509-8d140a17f351/go.mod h1:DCgfY80j8GYL7MLEfvcpSFvjD0L5yZq/aZUJmhZklyg= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= @@ -1206,22 +1207,21 @@ go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqe go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= -go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE= go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/goleak v1.2.0 h1:xqgm/S+aQvhWFTtR0XK3Jvg7z8kGV8P4X14IzwN3Eqk= -go.uber.org/goleak v1.2.0/go.mod h1:XJYK+MuIchqpmGmUSAzotztawfKvYLUIgg7guXrwVUo= +go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A= +go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= -go.uber.org/multierr v1.8.0 h1:dg6GjLku4EH+249NNmoIciG9N/jURbDG+pFlTkhzIC8= -go.uber.org/multierr v1.8.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak= +go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= +go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/ratelimit v0.3.0 h1:IdZd9wqvFXnvLvSEBo0KPcGfkoBGNkpTHlrE3Rcjkjw= go.uber.org/ratelimit v0.3.0/go.mod h1:So5LG7CV1zWpY1sHe+DXTJqQvOx+FFPFaAs2SnoyBaI= go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= -go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60= -go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg= +go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo= +go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so= golang.org/x/crypto v0.0.0-20171113213409-9f005a07e0d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= @@ -1295,8 +1295,8 @@ golang.org/x/mod v0.6.0/go.mod h1:4mET923SAdbXp2ki8ey+zGs1SLqsuM2Y0uvdZR/fUNI= golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.10.0 h1:lFO9qtOdlre5W1jxS3r/4szv2/6iXxScdzjoBMXNhYk= -golang.org/x/mod v0.10.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.13.0 h1:I/DsJXRlw/8l/0c24sM9yb0T4z9liZTduXvdAWYiysY= +golang.org/x/mod v0.13.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= 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= @@ -1349,7 +1349,6 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= golang.org/x/net v0.0.0-20210726213435-c6fcb2dbf985/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210913180222-943fd674d43e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211029224645-99673261e6eb/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= @@ -1378,8 +1377,8 @@ golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.10.0 h1:zHCpF2Khkwy4mMB4bv0U37YtJdTGW8jI0glAApi0Kh8= -golang.org/x/oauth2 v0.10.0/go.mod h1:kTpgurOux7LqtuxjuyZa4Gj2gdezIt/jQtGnNFfypQI= +golang.org/x/oauth2 v0.13.0 h1:jDDenyj+WgFtmV3zYVoi8aE2BwtXFLWOA67ZfNWftiY= +golang.org/x/oauth2 v0.13.0/go.mod h1:/JMhi4ZRXAf4HG9LiNmxvk+45+96RUlVThiH8FzNBn0= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1393,8 +1392,8 @@ golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= -golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= +golang.org/x/sync v0.4.0 h1:zxkM55ReGkDlKSM+Fu41A+zmbZuaPVbGMzvvdUPznYQ= +golang.org/x/sync v0.4.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20170830134202-bb24a47a89ea/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180425194835-bb9c189858d9/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1475,7 +1474,6 @@ golang.org/x/sys v0.0.0-20220422013727-9388b58f7150/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1503,7 +1501,6 @@ golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3 golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= @@ -1597,8 +1594,8 @@ golang.org/x/tools v0.2.0/go.mod h1:y4OqIKeOV/fWJetJ8bXPU1sEVniLMIyDAZWeHdV+NTA= golang.org/x/tools v0.4.0/go.mod h1:UE5sM2OK9E/d67R0ANs2xJizIymRP5gJU295PvKXxjQ= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= -golang.org/x/tools v0.8.0 h1:vSDcovVPld282ceKgDimkRSC8kpaH1dgyc9UMzlt84Y= -golang.org/x/tools v0.8.0/go.mod h1:JxBZ99ISMI5ViVkT1tr6tdNmXeTrcpVSD3vZ1RsRdN4= +golang.org/x/tools v0.14.0 h1:jvNa2pY0M4r62jkRQ6RwEZZyPcymeL9XZMLBbV7U2nc= +golang.org/x/tools v0.14.0/go.mod h1:uYBEerGOWcJyEORxN+Ek8+TT266gXkNlHdJBwexUsBg= 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= @@ -1635,8 +1632,9 @@ google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7 google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= +google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= google.golang.org/cloud v0.0.0-20151119220103-975617b05ea8/go.mod h1:0H1ncTHf11KCFhTc/+EFRbzSCOZx+VUbRMk55Yv5MYk= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= @@ -1677,7 +1675,6 @@ google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/genproto v0.0.0-20230706204954-ccb25ca9f130 h1:Au6te5hbKUV8pIYWHqOUZ1pva5qK/rwbIhoXEUB9Lu8= google.golang.org/genproto v0.0.0-20230706204954-ccb25ca9f130/go.mod h1:O9kGHb51iE/nOGvQaDUuadVYqovW56s5emA88lQnj6Y= google.golang.org/genproto/googleapis/api v0.0.0-20230706204954-ccb25ca9f130 h1:XVeBY8d/FaK4848myy41HBqnDwvxeV3zMZhwN1TvAMU= @@ -1708,7 +1705,6 @@ google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= google.golang.org/grpc v1.56.3 h1:8I4C0Yq1EjstUzUJzpcRVbuYA2mODtEmpWiQoN/b2nc= google.golang.org/grpc v1.56.3/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= @@ -1801,8 +1797,8 @@ k8s.io/api v0.18.0/go.mod h1:q2HRQkfDzHMBZL9l/y9rH63PkQl4vae0xRT+8prbrK8= k8s.io/api v0.18.2/go.mod h1:SJCWI7OLzhZSvbY7U8zwNl9UA4o1fizoug34OV/2r78= k8s.io/api v0.18.4/go.mod h1:lOIQAKYgai1+vz9J7YcDZwC26Z0zQewYOGWdyIPUUQ4= k8s.io/api v0.27.1/go.mod h1:z5g/BpAiD+f6AArpqNjkY+cji8ueZDU/WV1jcj5Jk4E= -k8s.io/api v0.27.4 h1:0pCo/AN9hONazBKlNUdhQymmnfLRbSZjd5H5H3f0bSs= -k8s.io/api v0.27.4/go.mod h1:O3smaaX15NfxjzILfiln1D8Z3+gEYpjEpiNA/1EVK1Y= +k8s.io/api v0.28.3 h1:Gj1HtbSdB4P08C8rs9AR94MfSGpRhJgsS+GF9V26xMM= +k8s.io/api v0.28.3/go.mod h1:MRCV/jr1dW87/qJnZ57U5Pak65LGmQVkKTzf3AtKFHc= k8s.io/apiextensions-apiserver v0.18.0/go.mod h1:18Cwn1Xws4xnWQNC00FLq1E350b9lUF+aOdIWDOZxgo= k8s.io/apiextensions-apiserver v0.18.2/go.mod h1:q3faSnRGmYimiocj6cHQ1I3WpLqmDgJFlKL37fC4ZvY= k8s.io/apiextensions-apiserver v0.18.4/go.mod h1:NYeyeYq4SIpFlPxSAB6jHPIdvu3hL0pc36wuRChybio= @@ -1810,8 +1806,8 @@ k8s.io/apimachinery v0.18.0/go.mod h1:9SnR/e11v5IbyPCGbvJViimtJ0SwHG4nfZFjU77ftc k8s.io/apimachinery v0.18.2/go.mod h1:9SnR/e11v5IbyPCGbvJViimtJ0SwHG4nfZFjU77ftcA= k8s.io/apimachinery v0.18.4/go.mod h1:OaXp26zu/5J7p0f92ASynJa1pZo06YlV9fG7BoWbCko= k8s.io/apimachinery v0.27.1/go.mod h1:5ikh59fK3AJ287GUvpUsryoMFtH9zj/ARfWCo3AyXTM= -k8s.io/apimachinery v0.27.4 h1:CdxflD4AF61yewuid0fLl6bM4a3q04jWel0IlP+aYjs= -k8s.io/apimachinery v0.27.4/go.mod h1:XNfZ6xklnMCOGGFNqXG7bUrQCoR04dh/E7FprV6pb+E= +k8s.io/apimachinery v0.28.3 h1:B1wYx8txOaCQG0HmYF6nbpU8dg6HvA06x5tEffvOe7A= +k8s.io/apimachinery v0.28.3/go.mod h1:uQTKmIqs+rAYaq+DFaoD2X7pcjLOqbQX2AOiO0nIpb8= k8s.io/apiserver v0.18.0/go.mod h1:3S2O6FeBBd6XTo0njUrLxiqk8GNy6wWOftjhJcXYnjw= k8s.io/apiserver v0.18.2/go.mod h1:Xbh066NqrZO8cbsoenCwyDJ1OSi8Ag8I2lezeHxzwzw= k8s.io/apiserver v0.18.4/go.mod h1:q+zoFct5ABNnYkGIaGQ3bcbUNdmPyOCoEBcg51LChY8= @@ -1820,8 +1816,8 @@ k8s.io/cli-runtime v0.18.4/go.mod h1:9/hS/Cuf7NVzWR5F/5tyS6xsnclxoPLVtwhnkJG1Y4g k8s.io/client-go v0.18.0/go.mod h1:uQSYDYs4WhVZ9i6AIoEZuwUggLVEF64HOD37boKAtF8= k8s.io/client-go v0.18.2/go.mod h1:Xcm5wVGXX9HAA2JJ2sSBUn3tCJ+4SVlCbl2MNNv+CIU= k8s.io/client-go v0.18.4/go.mod h1:f5sXwL4yAZRkAtzOxRWUhA/N8XzGCb+nPZI8PfobZ9g= -k8s.io/client-go v0.27.4 h1:vj2YTtSJ6J4KxaC88P4pMPEQECWMY8gqPqsTgUKzvjk= -k8s.io/client-go v0.27.4/go.mod h1:ragcly7lUlN0SRPk5/ZkGnDjPknzb37TICq07WhI6Xc= +k8s.io/client-go v0.28.3 h1:2OqNb72ZuTZPKCl+4gTKvqao0AMOl9f3o2ijbAj3LI4= +k8s.io/client-go v0.28.3/go.mod h1:LTykbBp9gsA7SwqirlCXBWtK0guzfhpoW4qSm7i9dxo= k8s.io/code-generator v0.18.0/go.mod h1:+UHX5rSbxmR8kzS+FAv7um6dtYrZokQvjHpDSYRVkTc= k8s.io/code-generator v0.18.2/go.mod h1:+UHX5rSbxmR8kzS+FAv7um6dtYrZokQvjHpDSYRVkTc= k8s.io/code-generator v0.18.4/go.mod h1:TgNEVx9hCyPGpdtCWA34olQYLkh3ok9ar7XfSsr8b6c= @@ -1844,8 +1840,8 @@ k8s.io/klog/v2 v2.100.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= k8s.io/kube-openapi v0.0.0-20200121204235-bf4fb3bd569c/go.mod h1:GRQhZsXIAJ1xR0C9bd8UpWHZ5plfAS9fzPjJuQ6JL3E= k8s.io/kube-openapi v0.0.0-20200410145947-61e04a5be9a6/go.mod h1:GRQhZsXIAJ1xR0C9bd8UpWHZ5plfAS9fzPjJuQ6JL3E= k8s.io/kube-openapi v0.0.0-20230308215209-15aac26d736a/go.mod h1:y5VtZWM9sHHc2ZodIH/6SHzXj+TPU5USoA8lcIeKEKY= -k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f h1:2kWPakN3i/k81b0gvD5C5FJ2kxm1WrQFanWchyKuqGg= -k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f/go.mod h1:byini6yhqGC14c3ebc/QwanvYwhuMWF6yz2F8uwW8eg= +k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00 h1:aVUu9fTY98ivBPKR9Y5w/AuzbMm96cd3YHRTU83I780= +k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00/go.mod h1:AsvuZPBlUDVuCdzJ87iajxtXuR9oktsTctW/R9wwouA= k8s.io/kubectl v0.18.0/go.mod h1:LOkWx9Z5DXMEg5KtOjHhRiC1fqJPLyCr3KtQgEolCkU= k8s.io/kubectl v0.18.4/go.mod h1:EzB+nfeUWk6fm6giXQ8P4Fayw3dsN+M7Wjy23mTRtB0= k8s.io/kubernetes v1.13.0/go.mod h1:ocZa8+6APFNC2tX1DZASIbocyYT5jHzqFVsY5aoB7Jk= @@ -1855,8 +1851,8 @@ k8s.io/utils v0.0.0-20200324210504-a9aa75ae1b89/go.mod h1:sZAwmy6armz5eXlNoLmJcl k8s.io/utils v0.0.0-20200603063816-c1c6865ac451/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20210802155522-efc7438f0176/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20230209194617-a36077c30491/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= -k8s.io/utils v0.0.0-20230505201702-9f6742963106 h1:EObNQ3TW2D+WptiYXlApGNLVy0zm/JIBVY9i+M4wpAU= -k8s.io/utils v0.0.0-20230505201702-9f6742963106/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +k8s.io/utils v0.0.0-20230726121419-3b25d923346b h1:sgn3ZU783SCgtaSJjpcVVlRqd6GSnlTLKgpAAttJvpI= +k8s.io/utils v0.0.0-20230726121419-3b25d923346b/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= moul.io/http2curl v1.0.0 h1:6XwpyZOYsgZJrU8exnG87ncVkU1FVCcTRpwzOkTDUi8= moul.io/http2curl v1.0.0/go.mod h1:f6cULg+e4Md/oW1cYmwW4IWQOVl2lGbmCNGOHvzX2kE= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= @@ -1865,21 +1861,23 @@ 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/apiserver-network-proxy/konnectivity-client v0.0.7/go.mod h1:PHgbrJT7lCHcxMU+mDHEm+nx46H4zuuHZkDP6icnhu0= sigs.k8s.io/controller-runtime v0.6.1/go.mod h1:XRYBPdbf5XJu9kpS84VJiZ7h/u1hF3gEORz0efEja7A= -sigs.k8s.io/controller-runtime v0.14.6 h1:oxstGVvXGNnMvY7TAESYk+lzr6S3V5VFxQ6d92KcwQA= -sigs.k8s.io/controller-runtime v0.14.6/go.mod h1:WqIdsAY6JBsjfc/CqO0CORmNtoCtE4S6qbPc9s68h+0= +sigs.k8s.io/controller-runtime v0.16.3 h1:2TuvuokmfXvDUamSx1SuAOO3eTyye+47mJCigwG62c4= +sigs.k8s.io/controller-runtime v0.16.3/go.mod h1:j7bialYoSn142nv9sCOJmQgDXQXxnroFU4VnX/brVJ0= sigs.k8s.io/controller-tools v0.3.1-0.20200517180335-820a4a27ea84/go.mod h1:enhtKGfxZD1GFEoMgP8Fdbu+uKQ/cq1/WGJhdVChfvI= -sigs.k8s.io/gateway-api v0.7.1 h1:Tts2jeepVkPA5rVG/iO+S43s9n7Vp7jCDhZDQYtPigQ= -sigs.k8s.io/gateway-api v0.7.1/go.mod h1:Xv0+ZMxX0lu1nSSDIIPEfbVztgNZ+3cfiYrJsa2Ooso= +sigs.k8s.io/gateway-api v1.0.0 h1:iPTStSv41+d9p0xFydll6d7f7MOBGuqXM6p2/zVYMAs= +sigs.k8s.io/gateway-api v1.0.0/go.mod h1:4cUgr0Lnp5FZ0Cdq8FdRwCvpiWws7LVhLHGIudLlf4c= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= sigs.k8s.io/kustomize v2.0.3+incompatible/go.mod h1:MkjgH3RdOWrievjo6c9T245dYlB5QeXV4WCbnt/PEpU= sigs.k8s.io/structured-merge-diff/v3 v3.0.0-20200116222232-67a7b8c61874/go.mod h1:PlARxl6Hbt/+BC80dRLi1qAmnMqwqDg62YvvVkZjemw= sigs.k8s.io/structured-merge-diff/v3 v3.0.0/go.mod h1:PlARxl6Hbt/+BC80dRLi1qAmnMqwqDg62YvvVkZjemw= -sigs.k8s.io/structured-merge-diff/v4 v4.2.3 h1:PRbqxJClWWYMNV1dhaG4NsibJbArud9kFxnAMREiWFE= sigs.k8s.io/structured-merge-diff/v4 v4.2.3/go.mod h1:qjx8mGObPmV2aSZepjQjbmb2ihdVs8cGKBraizNC69E= +sigs.k8s.io/structured-merge-diff/v4 v4.3.0 h1:UZbZAZfX0wV2zr7YZorDz6GXROfDFj6LvqCRm4VUVKk= +sigs.k8s.io/structured-merge-diff/v4 v4.3.0/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= -sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo= sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8= +sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= +sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU= vbom.ml/util v0.0.0-20160121211510-db5cfe13f5cc/go.mod h1:so/NYdZXCz+E3ZpW0uAoCj6uzU2+8OWDFv/HxUSs7kI= diff --git a/source/gateway.go b/source/gateway.go index 78e8ac5685..4d325d627a 100644 --- a/source/gateway.go +++ b/source/gateway.go @@ -32,10 +32,10 @@ import ( kubeinformers "k8s.io/client-go/informers" coreinformers "k8s.io/client-go/informers/core/v1" cache "k8s.io/client-go/tools/cache" - "sigs.k8s.io/gateway-api/apis/v1beta1" + v1 "sigs.k8s.io/gateway-api/apis/v1" gateway "sigs.k8s.io/gateway-api/pkg/client/clientset/versioned" informers "sigs.k8s.io/gateway-api/pkg/client/informers/externalversions" - informers_v1b1 "sigs.k8s.io/gateway-api/pkg/client/informers/externalversions/apis/v1beta1" + informers_v1 "sigs.k8s.io/gateway-api/pkg/client/informers/externalversions/apis/v1" "sigs.k8s.io/external-dns/endpoint" ) @@ -51,11 +51,11 @@ type gatewayRoute interface { // Metadata returns the route's metadata. Metadata() *metav1.ObjectMeta // Hostnames returns the route's specified hostnames. - Hostnames() []v1beta1.Hostname + Hostnames() []v1.Hostname // Protocol returns the route's protocol type. - Protocol() v1beta1.ProtocolType + Protocol() v1.ProtocolType // RouteStatus returns the route's common status. - RouteStatus() v1beta1.RouteStatus + RouteStatus() v1.RouteStatus } type newGatewayRouteInformerFunc func(informers.SharedInformerFactory) gatewayRouteInformer @@ -82,7 +82,7 @@ func newGatewayInformerFactory(client gateway.Interface, namespace string, label type gatewayRouteSource struct { gwNamespace string gwLabels labels.Selector - gwInformer informers_v1b1.GatewayInformer + gwInformer informers_v1.GatewayInformer rtKind string rtNamespace string @@ -123,8 +123,8 @@ func newGatewayRouteSource(clients ClientGenerator, config *Config, kind string, } informerFactory := newGatewayInformerFactory(client, config.GatewayNamespace, gwLabels) - gwInformer := informerFactory.Gateway().V1beta1().Gateways() // TODO: Gateway informer should be shared across gateway sources. - gwInformer.Informer() // Register with factory before starting. + gwInformer := informerFactory.Gateway().V1().Gateways() // TODO: Gateway informer should be shared across gateway sources. + gwInformer.Informer() // Register with factory before starting. rtInformerFactory := informerFactory if config.Namespace != config.GatewayNamespace || !selectorsEqual(rtLabels, gwLabels) { @@ -250,15 +250,15 @@ type gatewayRouteResolver struct { } type gatewayListeners struct { - gateway *v1beta1.Gateway - listeners map[v1beta1.SectionName][]v1beta1.Listener + gateway *v1.Gateway + listeners map[v1.SectionName][]v1.Listener } -func newGatewayRouteResolver(src *gatewayRouteSource, gateways []*v1beta1.Gateway, namespaces []*corev1.Namespace) *gatewayRouteResolver { +func newGatewayRouteResolver(src *gatewayRouteSource, gateways []*v1.Gateway, namespaces []*corev1.Namespace) *gatewayRouteResolver { // Create Gateway Listener lookup table. gws := make(map[types.NamespacedName]gatewayListeners, len(gateways)) for _, gw := range gateways { - lss := make(map[v1beta1.SectionName][]v1beta1.Listener, len(gw.Spec.Listeners)+1) + lss := make(map[v1.SectionName][]v1.Listener, len(gw.Spec.Listeners)+1) for i, lis := range gw.Spec.Listeners { lss[lis.Name] = gw.Spec.Listeners[i : i+1] } @@ -394,23 +394,23 @@ func (c *gatewayRouteResolver) hosts(rt gatewayRoute) ([]string, error) { return hostnames, nil } -func (c *gatewayRouteResolver) routeIsAllowed(gw *v1beta1.Gateway, lis *v1beta1.Listener, rt gatewayRoute) bool { +func (c *gatewayRouteResolver) routeIsAllowed(gw *v1.Gateway, lis *v1.Listener, rt gatewayRoute) bool { meta := rt.Metadata() allow := lis.AllowedRoutes // Check the route's namespace. - from := v1beta1.NamespacesFromSame + from := v1.NamespacesFromSame if allow != nil && allow.Namespaces != nil && allow.Namespaces.From != nil { from = *allow.Namespaces.From } switch from { - case v1beta1.NamespacesFromAll: + case v1.NamespacesFromAll: // OK - case v1beta1.NamespacesFromSame: + case v1.NamespacesFromSame: if gw.Namespace != meta.Namespace { return false } - case v1beta1.NamespacesFromSelector: + case v1.NamespacesFromSelector: selector, err := metav1.LabelSelectorAsSelector(allow.Namespaces.Selector) if err != nil { log.Debugf("Gateway %s/%s section %q has invalid namespace selector: %v", gw.Namespace, gw.Name, lis.Name, err) @@ -448,7 +448,7 @@ func (c *gatewayRouteResolver) routeIsAllowed(gw *v1beta1.Gateway, lis *v1beta1. func gwRouteIsAccepted(conds []metav1.Condition) bool { for _, c := range conds { - if v1beta1.RouteConditionType(c.Type) == v1beta1.RouteConditionAccepted { + if v1.RouteConditionType(c.Type) == v1.RouteConditionAccepted { return c.Status == metav1.ConditionTrue } } @@ -475,12 +475,12 @@ func uniqueTargets(targets endpoint.Targets) endpoint.Targets { // gwProtocolMatches returns whether a and b are the same protocol, // where HTTP and HTTPS are considered the same. -func gwProtocolMatches(a, b v1beta1.ProtocolType) bool { - if a == v1beta1.HTTPSProtocolType { - a = v1beta1.HTTPProtocolType +func gwProtocolMatches(a, b v1.ProtocolType) bool { + if a == v1.HTTPSProtocolType { + a = v1.HTTPProtocolType } - if b == v1beta1.HTTPSProtocolType { - b = v1beta1.HTTPProtocolType + if b == v1.HTTPSProtocolType { + b = v1.HTTPProtocolType } return a == b } @@ -528,7 +528,7 @@ func strVal(ptr *string, def string) string { return *ptr } -func sectionVal(ptr *v1beta1.SectionName, def v1beta1.SectionName) v1beta1.SectionName { +func sectionVal(ptr *v1.SectionName, def v1.SectionName) v1.SectionName { if ptr == nil || *ptr == "" { return def } diff --git a/source/gateway_grpcroute.go b/source/gateway_grpcroute.go index 020371cf04..a1091cbd8a 100644 --- a/source/gateway_grpcroute.go +++ b/source/gateway_grpcroute.go @@ -19,8 +19,8 @@ package source import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" + v1 "sigs.k8s.io/gateway-api/apis/v1" "sigs.k8s.io/gateway-api/apis/v1alpha2" - "sigs.k8s.io/gateway-api/apis/v1beta1" informers "sigs.k8s.io/gateway-api/pkg/client/informers/externalversions" informers_v1a2 "sigs.k8s.io/gateway-api/pkg/client/informers/externalversions/apis/v1alpha2" ) @@ -34,11 +34,11 @@ func NewGatewayGRPCRouteSource(clients ClientGenerator, config *Config) (Source, type gatewayGRPCRoute struct{ route v1alpha2.GRPCRoute } // NOTE: Must update TypeMeta in List when changing the APIVersion. -func (rt *gatewayGRPCRoute) Object() kubeObject { return &rt.route } -func (rt *gatewayGRPCRoute) Metadata() *metav1.ObjectMeta { return &rt.route.ObjectMeta } -func (rt *gatewayGRPCRoute) Hostnames() []v1beta1.Hostname { return rt.route.Spec.Hostnames } -func (rt *gatewayGRPCRoute) Protocol() v1beta1.ProtocolType { return v1beta1.HTTPSProtocolType } -func (rt *gatewayGRPCRoute) RouteStatus() v1beta1.RouteStatus { return rt.route.Status.RouteStatus } +func (rt *gatewayGRPCRoute) Object() kubeObject { return &rt.route } +func (rt *gatewayGRPCRoute) Metadata() *metav1.ObjectMeta { return &rt.route.ObjectMeta } +func (rt *gatewayGRPCRoute) Hostnames() []v1.Hostname { return rt.route.Spec.Hostnames } +func (rt *gatewayGRPCRoute) Protocol() v1.ProtocolType { return v1.HTTPSProtocolType } +func (rt *gatewayGRPCRoute) RouteStatus() v1.RouteStatus { return rt.route.Status.RouteStatus } type gatewayGRPCRouteInformer struct { informers_v1a2.GRPCRouteInformer diff --git a/source/gateway_grpcroute_test.go b/source/gateway_grpcroute_test.go index 94250030dc..a08b811168 100644 --- a/source/gateway_grpcroute_test.go +++ b/source/gateway_grpcroute_test.go @@ -25,6 +25,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kubefake "k8s.io/client-go/kubernetes/fake" "sigs.k8s.io/external-dns/endpoint" + v1 "sigs.k8s.io/gateway-api/apis/v1" "sigs.k8s.io/gateway-api/apis/v1alpha2" "sigs.k8s.io/gateway-api/apis/v1beta1" gatewayfake "sigs.k8s.io/gateway-api/pkg/client/clientset/versioned/fake" @@ -49,19 +50,19 @@ func TestGatewayGRPCRouteSourceEndpoints(t *testing.T) { require.NoError(t, err, "failed to create Namespace") ips := []string{"10.64.0.1", "10.64.0.2"} - gw := &v1beta1.Gateway{ + gw := &v1.Gateway{ ObjectMeta: metav1.ObjectMeta{ Name: "internal", Namespace: "default", }, Spec: v1beta1.GatewaySpec{ - Listeners: []v1beta1.Listener{{ - Protocol: v1beta1.HTTPSProtocolType, + Listeners: []v1.Listener{{ + Protocol: v1.HTTPSProtocolType, }}, }, Status: gatewayStatus(ips...), } - _, err = gwClient.GatewayV1beta1().Gateways(gw.Namespace).Create(ctx, gw, metav1.CreateOptions{}) + _, err = gwClient.GatewayV1().Gateways(gw.Namespace).Create(ctx, gw, metav1.CreateOptions{}) require.NoError(t, err, "failed to create Gateway") rt := &v1alpha2.GRPCRoute{ diff --git a/source/gateway_httproute.go b/source/gateway_httproute.go index e9e9b25ea9..4e028c93ff 100644 --- a/source/gateway_httproute.go +++ b/source/gateway_httproute.go @@ -19,28 +19,28 @@ package source import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" - "sigs.k8s.io/gateway-api/apis/v1beta1" + v1 "sigs.k8s.io/gateway-api/apis/v1" informers "sigs.k8s.io/gateway-api/pkg/client/informers/externalversions" - informers_v1b1 "sigs.k8s.io/gateway-api/pkg/client/informers/externalversions/apis/v1beta1" + informers_v1 "sigs.k8s.io/gateway-api/pkg/client/informers/externalversions/apis/v1" ) // NewGatewayHTTPRouteSource creates a new Gateway HTTPRoute source with the given config. func NewGatewayHTTPRouteSource(clients ClientGenerator, config *Config) (Source, error) { return newGatewayRouteSource(clients, config, "HTTPRoute", func(factory informers.SharedInformerFactory) gatewayRouteInformer { - return &gatewayHTTPRouteInformer{factory.Gateway().V1beta1().HTTPRoutes()} + return &gatewayHTTPRouteInformer{factory.Gateway().V1().HTTPRoutes()} }) } -type gatewayHTTPRoute struct{ route v1beta1.HTTPRoute } // NOTE: Must update TypeMeta in List when changing the APIVersion. +type gatewayHTTPRoute struct{ route v1.HTTPRoute } // NOTE: Must update TypeMeta in List when changing the APIVersion. -func (rt *gatewayHTTPRoute) Object() kubeObject { return &rt.route } -func (rt *gatewayHTTPRoute) Metadata() *metav1.ObjectMeta { return &rt.route.ObjectMeta } -func (rt *gatewayHTTPRoute) Hostnames() []v1beta1.Hostname { return rt.route.Spec.Hostnames } -func (rt *gatewayHTTPRoute) Protocol() v1beta1.ProtocolType { return v1beta1.HTTPProtocolType } -func (rt *gatewayHTTPRoute) RouteStatus() v1beta1.RouteStatus { return rt.route.Status.RouteStatus } +func (rt *gatewayHTTPRoute) Object() kubeObject { return &rt.route } +func (rt *gatewayHTTPRoute) Metadata() *metav1.ObjectMeta { return &rt.route.ObjectMeta } +func (rt *gatewayHTTPRoute) Hostnames() []v1.Hostname { return rt.route.Spec.Hostnames } +func (rt *gatewayHTTPRoute) Protocol() v1.ProtocolType { return v1.HTTPProtocolType } +func (rt *gatewayHTTPRoute) RouteStatus() v1.RouteStatus { return rt.route.Status.RouteStatus } type gatewayHTTPRouteInformer struct { - informers_v1b1.HTTPRouteInformer + informers_v1.HTTPRouteInformer } func (inf gatewayHTTPRouteInformer) List(namespace string, selector labels.Selector) ([]gatewayRoute, error) { @@ -54,7 +54,7 @@ func (inf gatewayHTTPRouteInformer) List(namespace string, selector labels.Selec // We make a shallow copy since we're only interested in setting the TypeMeta. clone := *rt clone.TypeMeta = metav1.TypeMeta{ - APIVersion: v1beta1.GroupVersion.String(), + APIVersion: v1.GroupVersion.String(), Kind: "HTTPRoute", } routes[i] = &gatewayHTTPRoute{clone} diff --git a/source/gateway_httproute_test.go b/source/gateway_httproute_test.go index f57969ec42..74bc44920b 100644 --- a/source/gateway_httproute_test.go +++ b/source/gateway_httproute_test.go @@ -26,7 +26,7 @@ import ( "k8s.io/apimachinery/pkg/labels" kubefake "k8s.io/client-go/kubernetes/fake" "sigs.k8s.io/external-dns/endpoint" - "sigs.k8s.io/gateway-api/apis/v1beta1" + v1 "sigs.k8s.io/gateway-api/apis/v1" gatewayfake "sigs.k8s.io/gateway-api/pkg/client/clientset/versioned/fake" ) @@ -38,23 +38,24 @@ func mustGetLabelSelector(s string) labels.Selector { return v } -func gatewayStatus(ips ...string) v1beta1.GatewayStatus { - typ := v1beta1.IPAddressType - addrs := make([]v1beta1.GatewayAddress, len(ips)) +func gatewayStatus(ips ...string) v1.GatewayStatus { + typ := v1.IPAddressType + addrs := make([]v1.GatewayStatusAddress, len(ips)) for i, ip := range ips { - addrs[i] = v1beta1.GatewayAddress{Type: &typ, Value: ip} + addrs[i] = v1.GatewayStatusAddress{ + Type: &typ, Value: ip} } - return v1beta1.GatewayStatus{Addresses: addrs} + return v1.GatewayStatus{Addresses: addrs} } -func routeStatus(refs ...v1beta1.ParentReference) v1beta1.RouteStatus { - var v v1beta1.RouteStatus +func routeStatus(refs ...v1.ParentReference) v1.RouteStatus { + var v v1.RouteStatus for _, ref := range refs { - v.Parents = append(v.Parents, v1beta1.RouteParentStatus{ + v.Parents = append(v.Parents, v1.RouteParentStatus{ ParentRef: ref, Conditions: []metav1.Condition{ { - Type: string(v1beta1.RouteConditionAccepted), + Type: string(v1.RouteConditionAccepted), Status: metav1.ConditionTrue, }, }, @@ -63,28 +64,28 @@ func routeStatus(refs ...v1beta1.ParentReference) v1beta1.RouteStatus { return v } -func httpRouteStatus(refs ...v1beta1.ParentReference) v1beta1.HTTPRouteStatus { - return v1beta1.HTTPRouteStatus{RouteStatus: routeStatus(refs...)} +func httpRouteStatus(refs ...v1.ParentReference) v1.HTTPRouteStatus { + return v1.HTTPRouteStatus{RouteStatus: routeStatus(refs...)} } -type parentRefOption func(*v1beta1.ParentReference) +type parentRefOption func(*v1.ParentReference) -func withSectionName(name v1beta1.SectionName) parentRefOption { - return func(ref *v1beta1.ParentReference) { ref.SectionName = &name } +func withSectionName(name v1.SectionName) parentRefOption { + return func(ref *v1.ParentReference) { ref.SectionName = &name } } -func withPortNumber(port v1beta1.PortNumber) parentRefOption { - return func(ref *v1beta1.ParentReference) { ref.Port = &port } +func withPortNumber(port v1.PortNumber) parentRefOption { + return func(ref *v1.ParentReference) { ref.Port = &port } } -func gatewayParentRef(namespace, name string, options ...parentRefOption) v1beta1.ParentReference { - group := v1beta1.Group("gateway.networking.k8s.io") - kind := v1beta1.Kind("Gateway") - ref := v1beta1.ParentReference{ +func gatewayParentRef(namespace, name string, options ...parentRefOption) v1.ParentReference { + group := v1.Group("gateway.networking.k8s.io") + kind := v1.Kind("Gateway") + ref := v1.ParentReference{ Group: &group, Kind: &kind, - Name: v1beta1.ObjectName(name), - Namespace: (*v1beta1.Namespace)(&namespace), + Name: v1.ObjectName(name), + Namespace: (*v1.Namespace)(&namespace), } for _, opt := range options { opt(&ref) @@ -108,11 +109,11 @@ func newTestEndpointWithTTL(dnsName, recordType string, ttl int64, targets ...st func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { t.Parallel() - fromAll := v1beta1.NamespacesFromAll - fromSame := v1beta1.NamespacesFromSame - fromSelector := v1beta1.NamespacesFromSelector - allowAllNamespaces := &v1beta1.AllowedRoutes{ - Namespaces: &v1beta1.RouteNamespaces{ + fromAll := v1.NamespacesFromAll + fromSame := v1.NamespacesFromSame + fromSelector := v1.NamespacesFromSelector + allowAllNamespaces := &v1.AllowedRoutes{ + Namespaces: &v1.RouteNamespaces{ From: &fromAll, }, } @@ -129,14 +130,14 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { } return v } - hostnames := func(names ...v1beta1.Hostname) []v1beta1.Hostname { return names } + hostnames := func(names ...v1.Hostname) []v1.Hostname { return names } tests := []struct { title string config Config namespaces []*corev1.Namespace - gateways []*v1beta1.Gateway - routes []*v1beta1.HTTPRoute + gateways []*v1.Gateway + routes []*v1.HTTPRoute endpoints []*endpoint.Endpoint }{ { @@ -145,12 +146,12 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { GatewayNamespace: "gateway-namespace", }, namespaces: namespaces("gateway-namespace", "not-gateway-namespace", "route-namespace"), - gateways: []*v1beta1.Gateway{ + gateways: []*v1.Gateway{ { ObjectMeta: objectMeta("gateway-namespace", "test"), - Spec: v1beta1.GatewaySpec{ - Listeners: []v1beta1.Listener{{ - Protocol: v1beta1.HTTPProtocolType, + Spec: v1.GatewaySpec{ + Listeners: []v1.Listener{{ + Protocol: v1.HTTPProtocolType, AllowedRoutes: allowAllNamespaces, }}, }, @@ -158,15 +159,15 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { }, { ObjectMeta: objectMeta("not-gateway-namespace", "test"), - Spec: v1beta1.GatewaySpec{ - Listeners: []v1beta1.Listener{{Protocol: v1beta1.HTTPProtocolType}}, + Spec: v1.GatewaySpec{ + Listeners: []v1.Listener{{Protocol: v1.HTTPProtocolType}}, }, Status: gatewayStatus("2.3.4.5"), }, }, - routes: []*v1beta1.HTTPRoute{{ + routes: []*v1.HTTPRoute{{ ObjectMeta: objectMeta("route-namespace", "test"), - Spec: v1beta1.HTTPRouteSpec{ + Spec: v1.HTTPRouteSpec{ Hostnames: hostnames("test.example.internal"), }, Status: httpRouteStatus( // The route is attached to both gateways. @@ -184,27 +185,27 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { Namespace: "route-namespace", }, namespaces: namespaces("gateway-namespace", "route-namespace", "not-route-namespace"), - gateways: []*v1beta1.Gateway{{ + gateways: []*v1.Gateway{{ ObjectMeta: objectMeta("gateway-namespace", "test"), - Spec: v1beta1.GatewaySpec{ - Listeners: []v1beta1.Listener{{ - Protocol: v1beta1.HTTPProtocolType, + Spec: v1.GatewaySpec{ + Listeners: []v1.Listener{{ + Protocol: v1.HTTPProtocolType, AllowedRoutes: allowAllNamespaces, }}, }, Status: gatewayStatus("1.2.3.4"), }}, - routes: []*v1beta1.HTTPRoute{ + routes: []*v1.HTTPRoute{ { ObjectMeta: objectMeta("route-namespace", "test"), - Spec: v1beta1.HTTPRouteSpec{ + Spec: v1.HTTPRouteSpec{ Hostnames: hostnames("route-namespace.example.internal"), }, Status: httpRouteStatus(gatewayParentRef("gateway-namespace", "test")), }, { ObjectMeta: objectMeta("not-route-namespace", "test"), - Spec: v1beta1.HTTPRouteSpec{ + Spec: v1.HTTPRouteSpec{ Hostnames: hostnames("not-route-namespace.example.internal"), }, Status: httpRouteStatus(gatewayParentRef("gateway-namespace", "test")), @@ -220,15 +221,15 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { GatewayLabelFilter: "foo=bar", }, namespaces: namespaces("default"), - gateways: []*v1beta1.Gateway{ + gateways: []*v1.Gateway{ { ObjectMeta: metav1.ObjectMeta{ Name: "labels-match", Namespace: "default", Labels: map[string]string{"foo": "bar"}, }, - Spec: v1beta1.GatewaySpec{ - Listeners: []v1beta1.Listener{{Protocol: v1beta1.HTTPProtocolType}}, + Spec: v1.GatewaySpec{ + Listeners: []v1.Listener{{Protocol: v1.HTTPProtocolType}}, }, Status: gatewayStatus("1.2.3.4"), }, @@ -238,15 +239,15 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { Namespace: "default", Labels: map[string]string{"foo": "qux"}, }, - Spec: v1beta1.GatewaySpec{ - Listeners: []v1beta1.Listener{{Protocol: v1beta1.HTTPProtocolType}}, + Spec: v1.GatewaySpec{ + Listeners: []v1.Listener{{Protocol: v1.HTTPProtocolType}}, }, Status: gatewayStatus("2.3.4.5"), }, }, - routes: []*v1beta1.HTTPRoute{{ + routes: []*v1.HTTPRoute{{ ObjectMeta: objectMeta("default", "test"), - Spec: v1beta1.HTTPRouteSpec{ + Spec: v1.HTTPRouteSpec{ Hostnames: hostnames("test.example.internal"), }, Status: httpRouteStatus( // The route is attached to both gateways. @@ -264,21 +265,21 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { LabelFilter: mustGetLabelSelector("foo=bar"), }, namespaces: namespaces("default"), - gateways: []*v1beta1.Gateway{{ + gateways: []*v1.Gateway{{ ObjectMeta: objectMeta("default", "test"), - Spec: v1beta1.GatewaySpec{ - Listeners: []v1beta1.Listener{{Protocol: v1beta1.HTTPProtocolType}}, + Spec: v1.GatewaySpec{ + Listeners: []v1.Listener{{Protocol: v1.HTTPProtocolType}}, }, Status: gatewayStatus("1.2.3.4"), }}, - routes: []*v1beta1.HTTPRoute{ + routes: []*v1.HTTPRoute{ { ObjectMeta: metav1.ObjectMeta{ Name: "labels-match", Namespace: "default", Labels: map[string]string{"foo": "bar"}, }, - Spec: v1beta1.HTTPRouteSpec{ + Spec: v1.HTTPRouteSpec{ Hostnames: hostnames("labels-match.example.internal"), }, Status: httpRouteStatus(gatewayParentRef("default", "test")), @@ -289,7 +290,7 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { Namespace: "default", Labels: map[string]string{"foo": "qux"}, }, - Spec: v1beta1.HTTPRouteSpec{ + Spec: v1.HTTPRouteSpec{ Hostnames: hostnames("labels-dont-match.example.internal"), }, Status: httpRouteStatus(gatewayParentRef("default", "test")), @@ -305,21 +306,21 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { AnnotationFilter: "foo=bar", }, namespaces: namespaces("default"), - gateways: []*v1beta1.Gateway{{ + gateways: []*v1.Gateway{{ ObjectMeta: objectMeta("default", "test"), - Spec: v1beta1.GatewaySpec{ - Listeners: []v1beta1.Listener{{Protocol: v1beta1.HTTPProtocolType}}, + Spec: v1.GatewaySpec{ + Listeners: []v1.Listener{{Protocol: v1.HTTPProtocolType}}, }, Status: gatewayStatus("1.2.3.4"), }}, - routes: []*v1beta1.HTTPRoute{ + routes: []*v1.HTTPRoute{ { ObjectMeta: metav1.ObjectMeta{ Name: "annotations-match", Namespace: "default", Annotations: map[string]string{"foo": "bar"}, }, - Spec: v1beta1.HTTPRouteSpec{ + Spec: v1.HTTPRouteSpec{ Hostnames: hostnames("annotations-match.example.internal"), }, Status: httpRouteStatus(gatewayParentRef("default", "test")), @@ -330,7 +331,7 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { Namespace: "default", Annotations: map[string]string{"foo": "qux"}, }, - Spec: v1beta1.HTTPRouteSpec{ + Spec: v1.HTTPRouteSpec{ Hostnames: hostnames("annotations-dont-match.example.internal"), }, Status: httpRouteStatus(gatewayParentRef("default", "test")), @@ -344,14 +345,14 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { title: "SkipControllerAnnotation", config: Config{}, namespaces: namespaces("default"), - gateways: []*v1beta1.Gateway{{ + gateways: []*v1.Gateway{{ ObjectMeta: objectMeta("default", "test"), - Spec: v1beta1.GatewaySpec{ - Listeners: []v1beta1.Listener{{Protocol: v1beta1.HTTPProtocolType}}, + Spec: v1.GatewaySpec{ + Listeners: []v1.Listener{{Protocol: v1.HTTPProtocolType}}, }, Status: gatewayStatus("1.2.3.4"), }}, - routes: []*v1beta1.HTTPRoute{{ + routes: []*v1.HTTPRoute{{ ObjectMeta: metav1.ObjectMeta{ Name: "api", Namespace: "default", @@ -359,7 +360,7 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { controllerAnnotationKey: "something-else", }, }, - Spec: v1beta1.HTTPRouteSpec{ + Spec: v1.HTTPRouteSpec{ Hostnames: hostnames("api.example.internal"), }, Status: httpRouteStatus(gatewayParentRef("default", "test")), @@ -370,25 +371,25 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { title: "MultipleGateways", config: Config{}, namespaces: namespaces("default"), - gateways: []*v1beta1.Gateway{ + gateways: []*v1.Gateway{ { ObjectMeta: objectMeta("default", "one"), - Spec: v1beta1.GatewaySpec{ - Listeners: []v1beta1.Listener{{Protocol: v1beta1.HTTPProtocolType}}, + Spec: v1.GatewaySpec{ + Listeners: []v1.Listener{{Protocol: v1.HTTPProtocolType}}, }, Status: gatewayStatus("1.2.3.4"), }, { ObjectMeta: objectMeta("default", "two"), - Spec: v1beta1.GatewaySpec{ - Listeners: []v1beta1.Listener{{Protocol: v1beta1.HTTPProtocolType}}, + Spec: v1.GatewaySpec{ + Listeners: []v1.Listener{{Protocol: v1.HTTPProtocolType}}, }, Status: gatewayStatus("2.3.4.5"), }, }, - routes: []*v1beta1.HTTPRoute{{ + routes: []*v1.HTTPRoute{{ ObjectMeta: objectMeta("default", "test"), - Spec: v1beta1.HTTPRouteSpec{ + Spec: v1.HTTPRouteSpec{ Hostnames: hostnames("test.example.internal"), }, Status: httpRouteStatus( @@ -404,27 +405,27 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { title: "MultipleListeners", config: Config{}, namespaces: namespaces("default"), - gateways: []*v1beta1.Gateway{{ + gateways: []*v1.Gateway{{ ObjectMeta: objectMeta("default", "one"), - Spec: v1beta1.GatewaySpec{ - Listeners: []v1beta1.Listener{ + Spec: v1.GatewaySpec{ + Listeners: []v1.Listener{ { Name: "foo", - Protocol: v1beta1.HTTPProtocolType, + Protocol: v1.HTTPProtocolType, Hostname: hostnamePtr("foo.example.internal"), }, { Name: "bar", - Protocol: v1beta1.HTTPProtocolType, + Protocol: v1.HTTPProtocolType, Hostname: hostnamePtr("bar.example.internal"), }, }, }, Status: gatewayStatus("1.2.3.4"), }}, - routes: []*v1beta1.HTTPRoute{{ + routes: []*v1.HTTPRoute{{ ObjectMeta: objectMeta("default", "test"), - Spec: v1beta1.HTTPRouteSpec{ + Spec: v1.HTTPRouteSpec{ Hostnames: hostnames("*.example.internal"), }, Status: httpRouteStatus( @@ -440,27 +441,27 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { title: "SectionNameMatch", config: Config{}, namespaces: namespaces("default"), - gateways: []*v1beta1.Gateway{{ + gateways: []*v1.Gateway{{ ObjectMeta: objectMeta("default", "test"), - Spec: v1beta1.GatewaySpec{ - Listeners: []v1beta1.Listener{ + Spec: v1.GatewaySpec{ + Listeners: []v1.Listener{ { Name: "foo", - Protocol: v1beta1.HTTPProtocolType, + Protocol: v1.HTTPProtocolType, Hostname: hostnamePtr("foo.example.internal"), }, { Name: "bar", - Protocol: v1beta1.HTTPProtocolType, + Protocol: v1.HTTPProtocolType, Hostname: hostnamePtr("bar.example.internal"), }, }, }, Status: gatewayStatus("1.2.3.4"), }}, - routes: []*v1beta1.HTTPRoute{{ + routes: []*v1.HTTPRoute{{ ObjectMeta: objectMeta("default", "test"), - Spec: v1beta1.HTTPRouteSpec{ + Spec: v1.HTTPRouteSpec{ Hostnames: hostnames("*.example.internal"), }, Status: httpRouteStatus( @@ -476,25 +477,25 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { title: "PortNumberMatch", config: Config{}, namespaces: namespaces("default"), - gateways: []*v1beta1.Gateway{{ + gateways: []*v1.Gateway{{ ObjectMeta: objectMeta("default", "test"), - Spec: v1beta1.GatewaySpec{ - Listeners: []v1beta1.Listener{ + Spec: v1.GatewaySpec{ + Listeners: []v1.Listener{ { Name: "foo", - Protocol: v1beta1.HTTPProtocolType, + Protocol: v1.HTTPProtocolType, Hostname: hostnamePtr("foo.example.internal"), Port: 80, }, { Name: "bar", - Protocol: v1beta1.HTTPProtocolType, + Protocol: v1.HTTPProtocolType, Hostname: hostnamePtr("bar.example.internal"), Port: 80, }, { Name: "qux", - Protocol: v1beta1.HTTPProtocolType, + Protocol: v1.HTTPProtocolType, Hostname: hostnamePtr("qux.example.internal"), Port: 8080, }, @@ -502,9 +503,9 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { }, Status: gatewayStatus("1.2.3.4"), }}, - routes: []*v1beta1.HTTPRoute{{ + routes: []*v1.HTTPRoute{{ ObjectMeta: objectMeta("default", "test"), - Spec: v1beta1.HTTPRouteSpec{ + Spec: v1.HTTPRouteSpec{ Hostnames: hostnames("*.example.internal"), }, Status: httpRouteStatus( @@ -520,20 +521,20 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { title: "WildcardInGateway", config: Config{}, namespaces: namespaces("default"), - gateways: []*v1beta1.Gateway{{ + gateways: []*v1.Gateway{{ ObjectMeta: objectMeta("default", "test"), - Spec: v1beta1.GatewaySpec{ - Listeners: []v1beta1.Listener{{ - Protocol: v1beta1.HTTPProtocolType, + Spec: v1.GatewaySpec{ + Listeners: []v1.Listener{{ + Protocol: v1.HTTPProtocolType, Hostname: hostnamePtr("*.example.internal"), }}, }, Status: gatewayStatus("1.2.3.4"), }}, - routes: []*v1beta1.HTTPRoute{{ + routes: []*v1.HTTPRoute{{ ObjectMeta: objectMeta("default", "no-hostname"), - Spec: v1beta1.HTTPRouteSpec{ - Hostnames: []v1beta1.Hostname{ + Spec: v1.HTTPRouteSpec{ + Hostnames: []v1.Hostname{ "foo.example.internal", }, }, @@ -547,20 +548,20 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { title: "WildcardInRoute", config: Config{}, namespaces: namespaces("default"), - gateways: []*v1beta1.Gateway{{ + gateways: []*v1.Gateway{{ ObjectMeta: objectMeta("default", "test"), - Spec: v1beta1.GatewaySpec{ - Listeners: []v1beta1.Listener{{ - Protocol: v1beta1.HTTPProtocolType, + Spec: v1.GatewaySpec{ + Listeners: []v1.Listener{{ + Protocol: v1.HTTPProtocolType, Hostname: hostnamePtr("foo.example.internal"), }}, }, Status: gatewayStatus("1.2.3.4"), }}, - routes: []*v1beta1.HTTPRoute{{ + routes: []*v1.HTTPRoute{{ ObjectMeta: objectMeta("default", "no-hostname"), - Spec: v1beta1.HTTPRouteSpec{ - Hostnames: []v1beta1.Hostname{ + Spec: v1.HTTPRouteSpec{ + Hostnames: []v1.Hostname{ "*.example.internal", }, }, @@ -574,20 +575,20 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { title: "WildcardInRouteAndGateway", config: Config{}, namespaces: namespaces("default"), - gateways: []*v1beta1.Gateway{{ + gateways: []*v1.Gateway{{ ObjectMeta: objectMeta("default", "test"), - Spec: v1beta1.GatewaySpec{ - Listeners: []v1beta1.Listener{{ - Protocol: v1beta1.HTTPProtocolType, + Spec: v1.GatewaySpec{ + Listeners: []v1.Listener{{ + Protocol: v1.HTTPProtocolType, Hostname: hostnamePtr("*.example.internal"), }}, }, Status: gatewayStatus("1.2.3.4"), }}, - routes: []*v1beta1.HTTPRoute{{ + routes: []*v1.HTTPRoute{{ ObjectMeta: objectMeta("default", "no-hostname"), - Spec: v1beta1.HTTPRouteSpec{ - Hostnames: []v1beta1.Hostname{ + Spec: v1.HTTPRouteSpec{ + Hostnames: []v1.Hostname{ "*.example.internal", }, }, @@ -601,19 +602,19 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { title: "NoRouteHostname", config: Config{}, namespaces: namespaces("default"), - gateways: []*v1beta1.Gateway{{ + gateways: []*v1.Gateway{{ ObjectMeta: objectMeta("default", "test"), - Spec: v1beta1.GatewaySpec{ - Listeners: []v1beta1.Listener{{ - Protocol: v1beta1.HTTPProtocolType, + Spec: v1.GatewaySpec{ + Listeners: []v1.Listener{{ + Protocol: v1.HTTPProtocolType, Hostname: hostnamePtr("foo.example.internal"), }}, }, Status: gatewayStatus("1.2.3.4"), }}, - routes: []*v1beta1.HTTPRoute{{ + routes: []*v1.HTTPRoute{{ ObjectMeta: objectMeta("default", "no-hostname"), - Spec: v1beta1.HTTPRouteSpec{ + Spec: v1.HTTPRouteSpec{ Hostnames: nil, }, Status: httpRouteStatus(gatewayParentRef("default", "test")), @@ -627,9 +628,9 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { config: Config{}, namespaces: namespaces("default"), gateways: nil, - routes: []*v1beta1.HTTPRoute{{ + routes: []*v1.HTTPRoute{{ ObjectMeta: objectMeta("default", "test"), - Spec: v1beta1.HTTPRouteSpec{ + Spec: v1.HTTPRouteSpec{ Hostnames: hostnames("example.internal"), }, Status: httpRouteStatus(), @@ -640,16 +641,16 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { title: "NoHostnames", config: Config{}, namespaces: namespaces("default"), - gateways: []*v1beta1.Gateway{{ + gateways: []*v1.Gateway{{ ObjectMeta: objectMeta("default", "test"), - Spec: v1beta1.GatewaySpec{ - Listeners: []v1beta1.Listener{{Protocol: v1beta1.HTTPProtocolType}}, + Spec: v1.GatewaySpec{ + Listeners: []v1.Listener{{Protocol: v1.HTTPProtocolType}}, }, Status: gatewayStatus("1.2.3.4"), }}, - routes: []*v1beta1.HTTPRoute{{ + routes: []*v1.HTTPRoute{{ ObjectMeta: objectMeta("default", "no-hostname"), - Spec: v1beta1.HTTPRouteSpec{ + Spec: v1.HTTPRouteSpec{ Hostnames: nil, }, Status: httpRouteStatus(gatewayParentRef("default", "test")), @@ -660,14 +661,14 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { title: "HostnameAnnotation", config: Config{}, namespaces: namespaces("default"), - gateways: []*v1beta1.Gateway{{ + gateways: []*v1.Gateway{{ ObjectMeta: objectMeta("default", "test"), - Spec: v1beta1.GatewaySpec{ - Listeners: []v1beta1.Listener{{Protocol: v1beta1.HTTPProtocolType}}, + Spec: v1.GatewaySpec{ + Listeners: []v1.Listener{{Protocol: v1.HTTPProtocolType}}, }, Status: gatewayStatus("1.2.3.4"), }}, - routes: []*v1beta1.HTTPRoute{ + routes: []*v1.HTTPRoute{ { ObjectMeta: metav1.ObjectMeta{ Name: "without-hostame", @@ -676,7 +677,7 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { hostnameAnnotationKey: "annotation.without-hostname.internal", }, }, - Spec: v1beta1.HTTPRouteSpec{ + Spec: v1.HTTPRouteSpec{ Hostnames: nil, }, Status: httpRouteStatus(gatewayParentRef("default", "test")), @@ -689,7 +690,7 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { hostnameAnnotationKey: "annotation.with-hostname.internal", }, }, - Spec: v1beta1.HTTPRouteSpec{ + Spec: v1.HTTPRouteSpec{ Hostnames: hostnames("with-hostname.internal"), }, Status: httpRouteStatus(gatewayParentRef("default", "test")), @@ -707,14 +708,14 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { IgnoreHostnameAnnotation: true, }, namespaces: namespaces("default"), - gateways: []*v1beta1.Gateway{{ + gateways: []*v1.Gateway{{ ObjectMeta: objectMeta("default", "test"), - Spec: v1beta1.GatewaySpec{ - Listeners: []v1beta1.Listener{{Protocol: v1beta1.HTTPProtocolType}}, + Spec: v1.GatewaySpec{ + Listeners: []v1.Listener{{Protocol: v1.HTTPProtocolType}}, }, Status: gatewayStatus("1.2.3.4"), }}, - routes: []*v1beta1.HTTPRoute{{ + routes: []*v1.HTTPRoute{{ ObjectMeta: metav1.ObjectMeta{ Name: "with-hostame", Namespace: "default", @@ -722,7 +723,7 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { hostnameAnnotationKey: "annotation.with-hostname.internal", }, }, - Spec: v1beta1.HTTPRouteSpec{ + Spec: v1.HTTPRouteSpec{ Hostnames: hostnames("with-hostname.internal"), }, Status: httpRouteStatus(gatewayParentRef("default", "test")), @@ -737,24 +738,24 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { FQDNTemplate: "{{.Name}}.zero.internal, {{.Name}}.one.internal. , {{.Name}}.two.internal ", }, namespaces: namespaces("default"), - gateways: []*v1beta1.Gateway{{ + gateways: []*v1.Gateway{{ ObjectMeta: objectMeta("default", "test"), - Spec: v1beta1.GatewaySpec{ - Listeners: []v1beta1.Listener{{Protocol: v1beta1.HTTPProtocolType}}, + Spec: v1.GatewaySpec{ + Listeners: []v1.Listener{{Protocol: v1.HTTPProtocolType}}, }, Status: gatewayStatus("1.2.3.4"), }}, - routes: []*v1beta1.HTTPRoute{ + routes: []*v1.HTTPRoute{ { ObjectMeta: objectMeta("default", "fqdn-with-hostnames"), - Spec: v1beta1.HTTPRouteSpec{ + Spec: v1.HTTPRouteSpec{ Hostnames: hostnames("fqdn-with-hostnames.internal"), }, Status: httpRouteStatus(gatewayParentRef("default", "test")), }, { ObjectMeta: objectMeta("default", "fqdn-without-hostnames"), - Spec: v1beta1.HTTPRouteSpec{ + Spec: v1.HTTPRouteSpec{ Hostnames: nil, }, Status: httpRouteStatus(gatewayParentRef("default", "test")), @@ -774,16 +775,16 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { CombineFQDNAndAnnotation: true, }, namespaces: namespaces("default"), - gateways: []*v1beta1.Gateway{{ + gateways: []*v1.Gateway{{ ObjectMeta: objectMeta("default", "test"), - Spec: v1beta1.GatewaySpec{ - Listeners: []v1beta1.Listener{{Protocol: v1beta1.HTTPProtocolType}}, + Spec: v1.GatewaySpec{ + Listeners: []v1.Listener{{Protocol: v1.HTTPProtocolType}}, }, Status: gatewayStatus("1.2.3.4"), }}, - routes: []*v1beta1.HTTPRoute{{ + routes: []*v1.HTTPRoute{{ ObjectMeta: objectMeta("default", "fqdn-with-hostnames"), - Spec: v1beta1.HTTPRouteSpec{ + Spec: v1.HTTPRouteSpec{ Hostnames: hostnames("fqdn-with-hostnames.internal"), }, Status: httpRouteStatus(gatewayParentRef("default", "test")), @@ -797,21 +798,21 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { title: "TTL", config: Config{}, namespaces: namespaces("default"), - gateways: []*v1beta1.Gateway{{ + gateways: []*v1.Gateway{{ ObjectMeta: objectMeta("default", "test"), - Spec: v1beta1.GatewaySpec{ - Listeners: []v1beta1.Listener{{Protocol: v1beta1.HTTPProtocolType}}, + Spec: v1.GatewaySpec{ + Listeners: []v1.Listener{{Protocol: v1.HTTPProtocolType}}, }, Status: gatewayStatus("1.2.3.4"), }}, - routes: []*v1beta1.HTTPRoute{ + routes: []*v1.HTTPRoute{ { ObjectMeta: metav1.ObjectMeta{ Name: "valid-ttl", Namespace: "default", Annotations: map[string]string{ttlAnnotationKey: "15s"}, }, - Spec: v1beta1.HTTPRouteSpec{ + Spec: v1.HTTPRouteSpec{ Hostnames: hostnames("valid-ttl.internal"), }, Status: httpRouteStatus(gatewayParentRef("default", "test")), @@ -822,7 +823,7 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { Namespace: "default", Annotations: map[string]string{ttlAnnotationKey: "abc"}, }, - Spec: v1beta1.HTTPRouteSpec{ + Spec: v1.HTTPRouteSpec{ Hostnames: hostnames("invalid-ttl.internal"), }, Status: httpRouteStatus(gatewayParentRef("default", "test")), @@ -837,14 +838,14 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { title: "ProviderAnnotations", config: Config{}, namespaces: namespaces("default"), - gateways: []*v1beta1.Gateway{{ + gateways: []*v1.Gateway{{ ObjectMeta: objectMeta("default", "test"), - Spec: v1beta1.GatewaySpec{ - Listeners: []v1beta1.Listener{{Protocol: v1beta1.HTTPProtocolType}}, + Spec: v1.GatewaySpec{ + Listeners: []v1.Listener{{Protocol: v1.HTTPProtocolType}}, }, Status: gatewayStatus("1.2.3.4"), }}, - routes: []*v1beta1.HTTPRoute{{ + routes: []*v1.HTTPRoute{{ ObjectMeta: metav1.ObjectMeta{ Name: "provider-annotations", Namespace: "default", @@ -853,7 +854,7 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { aliasAnnotationKey: "true", }, }, - Spec: v1beta1.HTTPRouteSpec{ + Spec: v1.HTTPRouteSpec{ Hostnames: hostnames("provider-annotations.com"), }, Status: httpRouteStatus(gatewayParentRef("default", "test")), @@ -868,31 +869,31 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { title: "DifferentHostnameDifferentGateway", config: Config{}, namespaces: namespaces("default"), - gateways: []*v1beta1.Gateway{ + gateways: []*v1.Gateway{ { ObjectMeta: objectMeta("default", "one"), - Spec: v1beta1.GatewaySpec{ - Listeners: []v1beta1.Listener{{ + Spec: v1.GatewaySpec{ + Listeners: []v1.Listener{{ Hostname: hostnamePtr("*.one.internal"), - Protocol: v1beta1.HTTPProtocolType, + Protocol: v1.HTTPProtocolType, }}, }, Status: gatewayStatus("1.2.3.4"), }, { ObjectMeta: objectMeta("default", "two"), - Spec: v1beta1.GatewaySpec{ - Listeners: []v1beta1.Listener{{ + Spec: v1.GatewaySpec{ + Listeners: []v1.Listener{{ Hostname: hostnamePtr("*.two.internal"), - Protocol: v1beta1.HTTPProtocolType, + Protocol: v1.HTTPProtocolType, }}, }, Status: gatewayStatus("2.3.4.5"), }, }, - routes: []*v1beta1.HTTPRoute{{ + routes: []*v1.HTTPRoute{{ ObjectMeta: objectMeta("default", "test"), - Spec: v1beta1.HTTPRouteSpec{ + Spec: v1.HTTPRouteSpec{ Hostnames: hostnames("test.one.internal", "test.two.internal"), }, Status: httpRouteStatus( @@ -909,13 +910,13 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { title: "AllowedRoutesSameNamespace", config: Config{}, namespaces: namespaces("same-namespace", "other-namespace"), - gateways: []*v1beta1.Gateway{{ + gateways: []*v1.Gateway{{ ObjectMeta: objectMeta("same-namespace", "test"), - Spec: v1beta1.GatewaySpec{ - Listeners: []v1beta1.Listener{{ - Protocol: v1beta1.HTTPProtocolType, - AllowedRoutes: &v1beta1.AllowedRoutes{ - Namespaces: &v1beta1.RouteNamespaces{ + Spec: v1.GatewaySpec{ + Listeners: []v1.Listener{{ + Protocol: v1.HTTPProtocolType, + AllowedRoutes: &v1.AllowedRoutes{ + Namespaces: &v1.RouteNamespaces{ From: &fromSame, }, }, @@ -923,17 +924,17 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { }, Status: gatewayStatus("1.2.3.4"), }}, - routes: []*v1beta1.HTTPRoute{ + routes: []*v1.HTTPRoute{ { ObjectMeta: objectMeta("same-namespace", "test"), - Spec: v1beta1.HTTPRouteSpec{ + Spec: v1.HTTPRouteSpec{ Hostnames: hostnames("same-namespace.example.internal"), }, Status: httpRouteStatus(gatewayParentRef("same-namespace", "test")), }, { ObjectMeta: objectMeta("other-namespace", "test"), - Spec: v1beta1.HTTPRouteSpec{ + Spec: v1.HTTPRouteSpec{ Hostnames: hostnames("other-namespace.example.internal"), }, Status: httpRouteStatus(gatewayParentRef("same-namespace", "test")), @@ -965,13 +966,13 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { }, }, }, - gateways: []*v1beta1.Gateway{{ + gateways: []*v1.Gateway{{ ObjectMeta: objectMeta("default", "test"), - Spec: v1beta1.GatewaySpec{ - Listeners: []v1beta1.Listener{{ - Protocol: v1beta1.HTTPProtocolType, - AllowedRoutes: &v1beta1.AllowedRoutes{ - Namespaces: &v1beta1.RouteNamespaces{ + Spec: v1.GatewaySpec{ + Listeners: []v1.Listener{{ + Protocol: v1.HTTPProtocolType, + AllowedRoutes: &v1.AllowedRoutes{ + Namespaces: &v1.RouteNamespaces{ From: &fromSelector, Selector: &metav1.LabelSelector{ MatchLabels: map[string]string{"team": "foo"}, @@ -982,17 +983,17 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { }, Status: gatewayStatus("1.2.3.4"), }}, - routes: []*v1beta1.HTTPRoute{ + routes: []*v1.HTTPRoute{ { ObjectMeta: objectMeta("foo", "test"), - Spec: v1beta1.HTTPRouteSpec{ + Spec: v1.HTTPRouteSpec{ Hostnames: hostnames("foo.example.internal"), }, Status: httpRouteStatus(gatewayParentRef("default", "test")), }, { ObjectMeta: objectMeta("bar", "test"), - Spec: v1beta1.HTTPRouteSpec{ + Spec: v1.HTTPRouteSpec{ Hostnames: hostnames("bar.example.internal"), }, Status: httpRouteStatus(gatewayParentRef("default", "test")), @@ -1006,13 +1007,13 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { title: "MissingNamespace", config: Config{}, namespaces: nil, - gateways: []*v1beta1.Gateway{{ + gateways: []*v1.Gateway{{ ObjectMeta: objectMeta("default", "test"), - Spec: v1beta1.GatewaySpec{ - Listeners: []v1beta1.Listener{{ - Protocol: v1beta1.HTTPProtocolType, - AllowedRoutes: &v1beta1.AllowedRoutes{ - Namespaces: &v1beta1.RouteNamespaces{ + Spec: v1.GatewaySpec{ + Listeners: []v1.Listener{{ + Protocol: v1.HTTPProtocolType, + AllowedRoutes: &v1.AllowedRoutes{ + Namespaces: &v1.RouteNamespaces{ // Namespace selector triggers namespace lookup. From: &fromSelector, Selector: &metav1.LabelSelector{ @@ -1024,9 +1025,9 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { }, Status: gatewayStatus("1.2.3.4"), }}, - routes: []*v1beta1.HTTPRoute{{ + routes: []*v1.HTTPRoute{{ ObjectMeta: objectMeta("default", "test"), - Spec: v1beta1.HTTPRouteSpec{ + Spec: v1.HTTPRouteSpec{ Hostnames: hostnames("example.internal"), }, Status: httpRouteStatus(gatewayParentRef("default", "test")), @@ -1039,7 +1040,7 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { GatewayNamespace: "gateway-namespace", }, namespaces: namespaces("gateway-namespace", "route-namespace"), - gateways: []*v1beta1.Gateway{ + gateways: []*v1.Gateway{ { ObjectMeta: metav1.ObjectMeta{ Name: "overriden-gateway", @@ -1048,18 +1049,18 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { targetAnnotationKey: "4.3.2.1", }, }, - Spec: v1beta1.GatewaySpec{ - Listeners: []v1beta1.Listener{{ - Protocol: v1beta1.HTTPProtocolType, + Spec: v1.GatewaySpec{ + Listeners: []v1.Listener{{ + Protocol: v1.HTTPProtocolType, AllowedRoutes: allowAllNamespaces, }}, }, Status: gatewayStatus("1.2.3.4"), }, }, - routes: []*v1beta1.HTTPRoute{{ + routes: []*v1.HTTPRoute{{ ObjectMeta: objectMeta("route-namespace", "test"), - Spec: v1beta1.HTTPRouteSpec{ + Spec: v1.HTTPRouteSpec{ Hostnames: hostnames("test.example.internal"), }, Status: httpRouteStatus( // The route is attached to both gateways. @@ -1076,7 +1077,7 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { GatewayNamespace: "gateway-namespace", }, namespaces: namespaces("gateway-namespace", "route-namespace"), - gateways: []*v1beta1.Gateway{ + gateways: []*v1.Gateway{ { ObjectMeta: metav1.ObjectMeta{ Name: "overriden-gateway", @@ -1085,9 +1086,9 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { targetAnnotationKey: "4.3.2.1", }, }, - Spec: v1beta1.GatewaySpec{ - Listeners: []v1beta1.Listener{{ - Protocol: v1beta1.HTTPProtocolType, + Spec: v1.GatewaySpec{ + Listeners: []v1.Listener{{ + Protocol: v1.HTTPProtocolType, AllowedRoutes: allowAllNamespaces, }}, }, @@ -1095,18 +1096,18 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { }, { ObjectMeta: objectMeta("gateway-namespace", "test"), - Spec: v1beta1.GatewaySpec{ - Listeners: []v1beta1.Listener{{ - Protocol: v1beta1.HTTPProtocolType, + Spec: v1.GatewaySpec{ + Listeners: []v1.Listener{{ + Protocol: v1.HTTPProtocolType, AllowedRoutes: allowAllNamespaces, }}, }, Status: gatewayStatus("2.3.4.5"), }, }, - routes: []*v1beta1.HTTPRoute{{ + routes: []*v1.HTTPRoute{{ ObjectMeta: objectMeta("route-namespace", "test"), - Spec: v1beta1.HTTPRouteSpec{ + Spec: v1.HTTPRouteSpec{ Hostnames: hostnames("test.example.internal"), }, Status: httpRouteStatus( // The route is attached to both gateways. @@ -1127,12 +1128,12 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { ctx := context.Background() gwClient := gatewayfake.NewSimpleClientset() for _, gw := range tt.gateways { - _, err := gwClient.GatewayV1beta1().Gateways(gw.Namespace).Create(ctx, gw, metav1.CreateOptions{}) + _, err := gwClient.GatewayV1().Gateways(gw.Namespace).Create(ctx, gw, metav1.CreateOptions{}) require.NoError(t, err, "failed to create Gateway") } for _, rt := range tt.routes { - _, err := gwClient.GatewayV1beta1().HTTPRoutes(rt.Namespace).Create(ctx, rt, metav1.CreateOptions{}) + _, err := gwClient.GatewayV1().HTTPRoutes(rt.Namespace).Create(ctx, rt, metav1.CreateOptions{}) require.NoError(t, err, "failed to create HTTPRoute") } kubeClient := kubefake.NewSimpleClientset() @@ -1155,4 +1156,4 @@ func TestGatewayHTTPRouteSourceEndpoints(t *testing.T) { } } -func hostnamePtr(val v1beta1.Hostname) *v1beta1.Hostname { return &val } +func hostnamePtr(val v1.Hostname) *v1.Hostname { return &val } diff --git a/source/gateway_tcproute.go b/source/gateway_tcproute.go index f6ea1f2cfd..863b4f62ff 100644 --- a/source/gateway_tcproute.go +++ b/source/gateway_tcproute.go @@ -19,8 +19,8 @@ package source import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" + v1 "sigs.k8s.io/gateway-api/apis/v1" "sigs.k8s.io/gateway-api/apis/v1alpha2" - "sigs.k8s.io/gateway-api/apis/v1beta1" informers "sigs.k8s.io/gateway-api/pkg/client/informers/externalversions" informers_v1a2 "sigs.k8s.io/gateway-api/pkg/client/informers/externalversions/apis/v1alpha2" ) @@ -34,11 +34,11 @@ func NewGatewayTCPRouteSource(clients ClientGenerator, config *Config) (Source, type gatewayTCPRoute struct{ route v1alpha2.TCPRoute } // NOTE: Must update TypeMeta in List when changing the APIVersion. -func (rt *gatewayTCPRoute) Object() kubeObject { return &rt.route } -func (rt *gatewayTCPRoute) Metadata() *metav1.ObjectMeta { return &rt.route.ObjectMeta } -func (rt *gatewayTCPRoute) Hostnames() []v1beta1.Hostname { return nil } -func (rt *gatewayTCPRoute) Protocol() v1beta1.ProtocolType { return v1beta1.TCPProtocolType } -func (rt *gatewayTCPRoute) RouteStatus() v1beta1.RouteStatus { return rt.route.Status.RouteStatus } +func (rt *gatewayTCPRoute) Object() kubeObject { return &rt.route } +func (rt *gatewayTCPRoute) Metadata() *metav1.ObjectMeta { return &rt.route.ObjectMeta } +func (rt *gatewayTCPRoute) Hostnames() []v1.Hostname { return nil } +func (rt *gatewayTCPRoute) Protocol() v1.ProtocolType { return v1.TCPProtocolType } +func (rt *gatewayTCPRoute) RouteStatus() v1.RouteStatus { return rt.route.Status.RouteStatus } type gatewayTCPRouteInformer struct { informers_v1a2.TCPRouteInformer diff --git a/source/gateway_tcproute_test.go b/source/gateway_tcproute_test.go index 678c4d3422..28a8e29df0 100644 --- a/source/gateway_tcproute_test.go +++ b/source/gateway_tcproute_test.go @@ -25,8 +25,8 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kubefake "k8s.io/client-go/kubernetes/fake" "sigs.k8s.io/external-dns/endpoint" + v1 "sigs.k8s.io/gateway-api/apis/v1" "sigs.k8s.io/gateway-api/apis/v1alpha2" - "sigs.k8s.io/gateway-api/apis/v1beta1" gatewayfake "sigs.k8s.io/gateway-api/pkg/client/clientset/versioned/fake" ) @@ -49,19 +49,19 @@ func TestGatewayTCPRouteSourceEndpoints(t *testing.T) { require.NoError(t, err, "failed to create Namespace") ips := []string{"10.64.0.1", "10.64.0.2"} - gw := &v1beta1.Gateway{ + gw := &v1.Gateway{ ObjectMeta: metav1.ObjectMeta{ Name: "internal", Namespace: "default", }, - Spec: v1beta1.GatewaySpec{ - Listeners: []v1beta1.Listener{{ - Protocol: v1beta1.TCPProtocolType, + Spec: v1.GatewaySpec{ + Listeners: []v1.Listener{{ + Protocol: v1.TCPProtocolType, }}, }, Status: gatewayStatus(ips...), } - _, err = gwClient.GatewayV1beta1().Gateways(gw.Namespace).Create(ctx, gw, metav1.CreateOptions{}) + _, err = gwClient.GatewayV1().Gateways(gw.Namespace).Create(ctx, gw, metav1.CreateOptions{}) require.NoError(t, err, "failed to create Gateway") rt := &v1alpha2.TCPRoute{ diff --git a/source/gateway_tlsroute.go b/source/gateway_tlsroute.go index af28820967..0c98558858 100644 --- a/source/gateway_tlsroute.go +++ b/source/gateway_tlsroute.go @@ -19,8 +19,8 @@ package source import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" + v1 "sigs.k8s.io/gateway-api/apis/v1" "sigs.k8s.io/gateway-api/apis/v1alpha2" - "sigs.k8s.io/gateway-api/apis/v1beta1" informers "sigs.k8s.io/gateway-api/pkg/client/informers/externalversions" informers_v1a2 "sigs.k8s.io/gateway-api/pkg/client/informers/externalversions/apis/v1alpha2" ) @@ -34,11 +34,11 @@ func NewGatewayTLSRouteSource(clients ClientGenerator, config *Config) (Source, type gatewayTLSRoute struct{ route v1alpha2.TLSRoute } // NOTE: Must update TypeMeta in List when changing the APIVersion. -func (rt *gatewayTLSRoute) Object() kubeObject { return &rt.route } -func (rt *gatewayTLSRoute) Metadata() *metav1.ObjectMeta { return &rt.route.ObjectMeta } -func (rt *gatewayTLSRoute) Hostnames() []v1beta1.Hostname { return rt.route.Spec.Hostnames } -func (rt *gatewayTLSRoute) Protocol() v1beta1.ProtocolType { return v1beta1.TLSProtocolType } -func (rt *gatewayTLSRoute) RouteStatus() v1beta1.RouteStatus { return rt.route.Status.RouteStatus } +func (rt *gatewayTLSRoute) Object() kubeObject { return &rt.route } +func (rt *gatewayTLSRoute) Metadata() *metav1.ObjectMeta { return &rt.route.ObjectMeta } +func (rt *gatewayTLSRoute) Hostnames() []v1.Hostname { return rt.route.Spec.Hostnames } +func (rt *gatewayTLSRoute) Protocol() v1.ProtocolType { return v1.TLSProtocolType } +func (rt *gatewayTLSRoute) RouteStatus() v1.RouteStatus { return rt.route.Status.RouteStatus } type gatewayTLSRouteInformer struct { informers_v1a2.TLSRouteInformer diff --git a/source/gateway_tlsroute_test.go b/source/gateway_tlsroute_test.go index f693ba9ace..4f939796d5 100644 --- a/source/gateway_tlsroute_test.go +++ b/source/gateway_tlsroute_test.go @@ -25,8 +25,8 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kubefake "k8s.io/client-go/kubernetes/fake" "sigs.k8s.io/external-dns/endpoint" + v1 "sigs.k8s.io/gateway-api/apis/v1" "sigs.k8s.io/gateway-api/apis/v1alpha2" - "sigs.k8s.io/gateway-api/apis/v1beta1" gatewayfake "sigs.k8s.io/gateway-api/pkg/client/clientset/versioned/fake" ) @@ -49,19 +49,19 @@ func TestGatewayTLSRouteSourceEndpoints(t *testing.T) { require.NoError(t, err, "failed to create Namespace") ips := []string{"10.64.0.1", "10.64.0.2"} - gw := &v1beta1.Gateway{ + gw := &v1.Gateway{ ObjectMeta: metav1.ObjectMeta{ Name: "internal", Namespace: "default", }, - Spec: v1beta1.GatewaySpec{ - Listeners: []v1beta1.Listener{{ - Protocol: v1beta1.TLSProtocolType, + Spec: v1.GatewaySpec{ + Listeners: []v1.Listener{{ + Protocol: v1.TLSProtocolType, }}, }, Status: gatewayStatus(ips...), } - _, err = gwClient.GatewayV1beta1().Gateways(gw.Namespace).Create(ctx, gw, metav1.CreateOptions{}) + _, err = gwClient.GatewayV1().Gateways(gw.Namespace).Create(ctx, gw, metav1.CreateOptions{}) require.NoError(t, err, "failed to create Gateway") rt := &v1alpha2.TLSRoute{ diff --git a/source/gateway_udproute.go b/source/gateway_udproute.go index d4dc033880..ffc0987f4d 100644 --- a/source/gateway_udproute.go +++ b/source/gateway_udproute.go @@ -19,8 +19,8 @@ package source import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" + v1 "sigs.k8s.io/gateway-api/apis/v1" "sigs.k8s.io/gateway-api/apis/v1alpha2" - "sigs.k8s.io/gateway-api/apis/v1beta1" informers "sigs.k8s.io/gateway-api/pkg/client/informers/externalversions" informers_v1a2 "sigs.k8s.io/gateway-api/pkg/client/informers/externalversions/apis/v1alpha2" ) @@ -34,11 +34,11 @@ func NewGatewayUDPRouteSource(clients ClientGenerator, config *Config) (Source, type gatewayUDPRoute struct{ route v1alpha2.UDPRoute } // NOTE: Must update TypeMeta in List when changing the APIVersion. -func (rt *gatewayUDPRoute) Object() kubeObject { return &rt.route } -func (rt *gatewayUDPRoute) Metadata() *metav1.ObjectMeta { return &rt.route.ObjectMeta } -func (rt *gatewayUDPRoute) Hostnames() []v1beta1.Hostname { return nil } -func (rt *gatewayUDPRoute) Protocol() v1beta1.ProtocolType { return v1beta1.UDPProtocolType } -func (rt *gatewayUDPRoute) RouteStatus() v1beta1.RouteStatus { return rt.route.Status.RouteStatus } +func (rt *gatewayUDPRoute) Object() kubeObject { return &rt.route } +func (rt *gatewayUDPRoute) Metadata() *metav1.ObjectMeta { return &rt.route.ObjectMeta } +func (rt *gatewayUDPRoute) Hostnames() []v1.Hostname { return nil } +func (rt *gatewayUDPRoute) Protocol() v1.ProtocolType { return v1.UDPProtocolType } +func (rt *gatewayUDPRoute) RouteStatus() v1.RouteStatus { return rt.route.Status.RouteStatus } type gatewayUDPRouteInformer struct { informers_v1a2.UDPRouteInformer diff --git a/source/gateway_udproute_test.go b/source/gateway_udproute_test.go index 9f1abc7aca..f6d3883ec0 100644 --- a/source/gateway_udproute_test.go +++ b/source/gateway_udproute_test.go @@ -25,6 +25,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" kubefake "k8s.io/client-go/kubernetes/fake" "sigs.k8s.io/external-dns/endpoint" + v1 "sigs.k8s.io/gateway-api/apis/v1" "sigs.k8s.io/gateway-api/apis/v1alpha2" "sigs.k8s.io/gateway-api/apis/v1beta1" gatewayfake "sigs.k8s.io/gateway-api/pkg/client/clientset/versioned/fake" @@ -49,19 +50,19 @@ func TestGatewayUDPRouteSourceEndpoints(t *testing.T) { require.NoError(t, err, "failed to create Namespace") ips := []string{"10.64.0.1", "10.64.0.2"} - gw := &v1beta1.Gateway{ + gw := &v1.Gateway{ ObjectMeta: metav1.ObjectMeta{ Name: "internal", Namespace: "default", }, Spec: v1beta1.GatewaySpec{ - Listeners: []v1beta1.Listener{{ - Protocol: v1beta1.UDPProtocolType, + Listeners: []v1.Listener{{ + Protocol: v1.UDPProtocolType, }}, }, Status: gatewayStatus(ips...), } - _, err = gwClient.GatewayV1beta1().Gateways(gw.Namespace).Create(ctx, gw, metav1.CreateOptions{}) + _, err = gwClient.GatewayV1().Gateways(gw.Namespace).Create(ctx, gw, metav1.CreateOptions{}) require.NoError(t, err, "failed to create Gateway") rt := &v1alpha2.UDPRoute{