diff --git a/.github/workflows/docs-gen-and-push.yaml b/.github/workflows/docs-gen-and-push.yaml index 0ecbf9bb3be..fd19ffd6a8c 100644 --- a/.github/workflows/docs-gen-and-push.yaml +++ b/.github/workflows/docs-gen-and-push.yaml @@ -34,7 +34,7 @@ jobs: - uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # tag=v6.3.0 with: - go-version: v1.24.13 + go-version: v1.25.7 cache: true - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 #tag=v6.2.0 diff --git a/.github/workflows/goreleaser.yml b/.github/workflows/goreleaser.yml index 9057a6b8963..23ac8e58bdc 100644 --- a/.github/workflows/goreleaser.yml +++ b/.github/workflows/goreleaser.yml @@ -46,7 +46,7 @@ jobs: - name: Setup Go uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # tag=v6.3.0 with: - go-version: v1.24.13 + go-version: v1.25.7 - name: Delete non-semver tags run: 'git tag -d $(git tag -l | grep -v "^v")' diff --git a/.prow.yaml b/.prow.yaml index 2b2cff2ca6b..d73d82bee80 100644 --- a/.prow.yaml +++ b/.prow.yaml @@ -7,7 +7,7 @@ presubmits: preset-goproxy: "true" spec: containers: - - image: ghcr.io/kcp-dev/infra/build:1.24.13-1 + - image: ghcr.io/kcp-dev/infra/build:1.25.7-1 command: - make - verify-boilerplate @@ -27,7 +27,7 @@ presubmits: preset-goproxy: "true" spec: containers: - - image: ghcr.io/kcp-dev/infra/build:1.24.13-1 + - image: ghcr.io/kcp-dev/infra/build:1.25.7-1 command: - make - verify-codegen @@ -44,7 +44,7 @@ presubmits: preset-goproxy: "true" spec: containers: - - image: ghcr.io/kcp-dev/infra/build:1.24.13-1 + - image: ghcr.io/kcp-dev/infra/build:1.25.7-1 command: - make - lint @@ -83,7 +83,7 @@ presubmits: preset-goproxy: "true" spec: containers: - - image: ghcr.io/kcp-dev/infra/build:1.24.13-1 + - image: ghcr.io/kcp-dev/infra/build:1.25.7-1 command: - make - test @@ -104,7 +104,7 @@ presubmits: preset-goproxy: "true" spec: containers: - - image: ghcr.io/kcp-dev/infra/build:1.24.13-1 + - image: ghcr.io/kcp-dev/infra/build:1.25.7-1 command: - ./hack/run-with-prow.sh - ./hack/run-with-prometheus.sh @@ -131,7 +131,7 @@ presubmits: preset-goproxy: "true" spec: containers: - - image: ghcr.io/kcp-dev/infra/build:1.24.13-1 + - image: ghcr.io/kcp-dev/infra/build:1.25.7-1 command: - ./hack/run-with-prow.sh - ./hack/run-with-prometheus.sh @@ -160,7 +160,7 @@ presubmits: preset-goproxy: "true" spec: containers: - - image: ghcr.io/kcp-dev/infra/build:1.24.13-1 + - image: ghcr.io/kcp-dev/infra/build:1.25.7-1 command: - ./hack/run-with-prow.sh - ./hack/run-with-prometheus.sh @@ -193,7 +193,7 @@ presubmits: preset-goproxy: "true" spec: containers: - - image: ghcr.io/kcp-dev/infra/build:1.24.13-1 + - image: ghcr.io/kcp-dev/infra/build:1.25.7-1 command: - ./hack/run-with-prow.sh - ./hack/run-with-prometheus.sh @@ -222,7 +222,7 @@ presubmits: preset-goproxy: "true" spec: containers: - - image: ghcr.io/kcp-dev/infra/build:1.24.13-1 + - image: ghcr.io/kcp-dev/infra/build:1.25.7-1 command: - ./hack/run-with-prow.sh - ./hack/run-with-prometheus.sh diff --git a/Dockerfile b/Dockerfile index 9afe7912fd5..05e1e77b3b2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -15,7 +15,7 @@ # limitations under the License. # Build the binary -FROM --platform=${BUILDPLATFORM} docker.io/golang:1.24.13 AS builder +FROM --platform=${BUILDPLATFORM} docker.io/golang:1.25.7 AS builder WORKDIR /workspace # Install dependencies. diff --git a/cmd/cache-server/main.go b/cmd/cache-server/main.go index 654c8ab90fd..8eaf818d31c 100644 --- a/cmd/cache-server/main.go +++ b/cmd/cache-server/main.go @@ -17,6 +17,7 @@ limitations under the License. package main import ( + "context" "flag" "os" "strings" @@ -89,9 +90,13 @@ func main() { } ctx := genericapiserver.SetupSignalContext() - // the etcd server must be up before NewServer because storage decorators access it right away + // the etcd server must be up before NewServer because storage decorators access it right away. + // Use a separate context for etcd so it outlives the apiserver during graceful shutdown. + // This prevents CRD watch cache lazy initialization from blocking on a dead etcd. + etcdCtx, etcdCancel := context.WithCancel(context.Background()) + defer etcdCancel() if completedConfig.EmbeddedEtcd.Config != nil { - if err := embeddedetcd.NewServer(completedConfig.EmbeddedEtcd).Run(ctx); err != nil { + if err := embeddedetcd.NewServer(completedConfig.EmbeddedEtcd).Run(etcdCtx); err != nil { return err } } diff --git a/cmd/kcp/kcp.go b/cmd/kcp/kcp.go index 83daff40824..9794ad5952d 100644 --- a/cmd/kcp/kcp.go +++ b/cmd/kcp/kcp.go @@ -17,6 +17,7 @@ limitations under the License. package main import ( + "context" "fmt" "os" "strings" @@ -143,9 +144,13 @@ func main() { return err } - // the etcd server must be up before NewServer because storage decorators access it right away + // the etcd server must be up before NewServer because storage decorators access it right away. + // Use a separate context for etcd so it outlives the apiserver during graceful shutdown. + // This prevents CRD watch cache lazy initialization from blocking on a dead etcd. + etcdCtx, etcdCancel := context.WithCancel(context.Background()) + defer etcdCancel() if completedConfig.EmbeddedEtcd.Config != nil { - if err := embeddedetcd.NewServer(completedConfig.EmbeddedEtcd).Run(ctx); err != nil { + if err := embeddedetcd.NewServer(completedConfig.EmbeddedEtcd).Run(etcdCtx); err != nil { return err } } diff --git a/docs/content/contributing/getting-started.md b/docs/content/contributing/getting-started.md index 5b78f1621c6..6f58191a8c7 100644 --- a/docs/content/contributing/getting-started.md +++ b/docs/content/contributing/getting-started.md @@ -3,7 +3,7 @@ ## Prerequisites 1. Clone the [kcp-dev/kcp](https://github.com/kcp-dev/kcp) repository. -2. [Install Go](https://golang.org/doc/install) (at least 1.24). +2. [Install Go](https://golang.org/doc/install) (at least 1.25). 3. Install [kubectl](https://kubernetes.io/docs/tasks/tools/#kubectl). Please note that the go language version numbers in these files must exactly agree: go/go.mod file, kcp/Dockerfile, and in all the kcp/.github/workflows yaml files that specify go-version. In kcp/Dockerfile it is indicated by the "golang" attribute. In go.mod it is indicated by the "go" directive." In the .github/workflows yaml files it is indicated by "go-version". diff --git a/docs/generators/cli-doc/go.mod b/docs/generators/cli-doc/go.mod index cfd5f5b9ec3..6b02e9b1332 100644 --- a/docs/generators/cli-doc/go.mod +++ b/docs/generators/cli-doc/go.mod @@ -1,11 +1,11 @@ module github.com/kcp-dev/kcp/docs/generators/cli-doc -go 1.24.0 +go 1.25.0 require ( github.com/kcp-dev/cli v0.0.0 github.com/kcp-dev/kcp v0.0.0 - github.com/spf13/cobra v1.9.1 + github.com/spf13/cobra v1.10.0 ) replace ( @@ -39,11 +39,10 @@ require ( github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect github.com/fxamacker/cbor/v2 v2.9.0 // indirect github.com/go-errors/errors v1.4.2 // indirect - github.com/go-logr/logr v1.4.2 // indirect + github.com/go-logr/logr v1.4.3 // indirect github.com/go-openapi/jsonpointer v0.21.0 // indirect github.com/go-openapi/jsonreference v0.21.0 // indirect github.com/go-openapi/swag v0.23.0 // indirect - github.com/gogo/protobuf v1.3.2 // indirect github.com/google/btree v1.1.3 // indirect github.com/google/gnostic-models v0.7.0 // indirect github.com/google/go-cmp v0.7.0 // indirect @@ -53,7 +52,7 @@ require ( github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect - github.com/kcp-dev/apimachinery/v2 v2.29.0-rc.1.0.20251112143648-9e5d2b714f33 // indirect + github.com/kcp-dev/apimachinery/v2 v2.29.1-0.20260223112726-38863b7c2c8e // indirect github.com/kcp-dev/logicalcluster/v3 v3.0.5 // indirect github.com/kcp-dev/sdk v0.0.0 // indirect github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de // indirect @@ -71,15 +70,14 @@ require ( github.com/muesli/reflow v0.3.0 // indirect github.com/muesli/termenv v0.16.0 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect - github.com/onsi/gomega v1.35.1 // indirect + github.com/onsi/gomega v1.38.2 // indirect github.com/peterbourgon/diskv v2.0.1+incompatible // indirect - github.com/pkg/errors v0.9.1 // indirect github.com/rivo/uniseg v0.4.7 // indirect - github.com/spf13/pflag v1.0.6 // indirect + github.com/spf13/pflag v1.0.9 // indirect github.com/x448/float16 v0.8.4 // indirect github.com/xlab/treeprint v1.2.0 // indirect github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect - go.yaml.in/yaml/v2 v2.4.2 // indirect + go.yaml.in/yaml/v2 v2.4.3 // indirect go.yaml.in/yaml/v3 v3.0.4 // indirect golang.org/x/net v0.48.0 // indirect golang.org/x/oauth2 v0.34.0 // indirect @@ -88,20 +86,20 @@ require ( golang.org/x/term v0.38.0 // indirect golang.org/x/text v0.32.0 // indirect golang.org/x/time v0.14.0 // indirect - google.golang.org/protobuf v1.36.5 // indirect - gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect + google.golang.org/protobuf v1.36.8 // indirect + gopkg.in/evanphx/json-patch.v4 v4.13.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/api v0.34.2 // indirect - k8s.io/apiextensions-apiserver v0.34.2 // indirect - k8s.io/apimachinery v0.34.2 // indirect + k8s.io/api v0.35.1 // indirect + k8s.io/apiextensions-apiserver v0.35.1 // indirect + k8s.io/apimachinery v0.35.1 // indirect k8s.io/cli-runtime v0.33.3 // indirect - k8s.io/client-go v0.34.2 // indirect - k8s.io/component-base v0.34.2 // indirect + k8s.io/client-go v0.35.1 // indirect + k8s.io/component-base v0.35.1 // indirect k8s.io/klog/v2 v2.130.1 // indirect - k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b // indirect - k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 // indirect - sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect + k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912 // indirect + k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 // indirect + sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 // indirect sigs.k8s.io/kustomize/api v0.19.0 // indirect sigs.k8s.io/kustomize/kyaml v0.19.0 // indirect sigs.k8s.io/randfill v1.0.0 // indirect diff --git a/docs/generators/cli-doc/go.sum b/docs/generators/cli-doc/go.sum index 83ef8d29345..c9f7fc8196b 100644 --- a/docs/generators/cli-doc/go.sum +++ b/docs/generators/cli-doc/go.sum @@ -4,6 +4,8 @@ github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25 github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/MakeNowJust/heredoc v1.0.0 h1:cXCdzVdstXyiTqTvfqk9SDHpKNjxuom+DOlyEeQ4pzQ= github.com/MakeNowJust/heredoc v1.0.0/go.mod h1:mG5amYoWBHf8vpLOuehzbGGw0EHxpZZ6lCpQ4fNJ8LE= +github.com/Masterminds/semver/v3 v3.4.0 h1:Zog+i5UMtVoCU8oKka5P7i9q9HgrJeGzI9SA1Xbatp0= +github.com/Masterminds/semver/v3 v3.4.0/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM= github.com/antlr4-go/antlr/v4 v4.13.1 h1:SqQKkuVZ+zWkMMNkjy5FZe5mr5WURWnlpmOuzYWrPrQ= github.com/antlr4-go/antlr/v4 v4.13.1/go.mod h1:GKmUxMtwp6ZgGwZSva4eWPC5mS6vUAmOABFgjdkM7Nw= github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k= @@ -43,8 +45,8 @@ github.com/fxamacker/cbor/v2 v2.9.0 h1:NpKPmjDBgUfBms6tr6JZkTHtfFGcMKsw3eGcmD/sa github.com/fxamacker/cbor/v2 v2.9.0/go.mod h1:vM4b+DJCtHn+zz7h3FFp/hDAI9WNWCsZj23V5ytsSxQ= github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= +github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ= github.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY= github.com/go-openapi/jsonreference v0.21.0 h1:Rs+Y7hSXT83Jacb7kFyjn4ijOuVGSvOdF2+tg1TRrwQ= @@ -53,8 +55,6 @@ github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+Gr github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ= github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= -github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= -github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/google/btree v1.1.3 h1:CVpQJjYgC4VbzxeGVHfvZrv1ctoYCAI8vbl07Fcxlyg= github.com/google/btree v1.1.3/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= github.com/google/cel-go v0.26.0 h1:DPGjXackMpJWH680oGY4lZhYjIameYmR+/6RBdDGmaI= @@ -64,8 +64,8 @@ github.com/google/gnostic-models v0.7.0/go.mod h1:whL5G0m6dmc5cPxKc5bdKdEN3UjI7O github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db h1:097atOisP2aRj7vFgYQBbFN4U4JNXUNYpxael3UzMyo= -github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= +github.com/google/pprof v0.0.0-20250403155104-27863c87afa6 h1:BHT72Gu3keYf3ZEu2J0b1vyeLSOYI8bm5wbJM/8yDe8= +github.com/google/pprof v0.0.0-20250403155104-27863c87afa6/go.mod h1:boTsfXsheKC2y+lKOCMpSfarhxDeIzfZG1jqGcPl3cA= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= @@ -80,8 +80,6 @@ github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnr github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/kcp-dev/logicalcluster/v3 v3.0.5 h1:JbYakokb+5Uinz09oTXomSUJVQsqfxEvU4RyHUYxHOU= github.com/kcp-dev/logicalcluster/v3 v3.0.5/go.mod h1:EWBUBxdr49fUB1cLMO4nOdBWmYifLbP1LfoL20KkXYY= -github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= -github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= @@ -119,38 +117,37 @@ github.com/muesli/termenv v0.16.0 h1:S5AlUN9dENB57rsbnkPyfdGuWIlkmzJjbFf0Tf5FWUc github.com/muesli/termenv v0.16.0/go.mod h1:ZRfOIKPFDYQoDFF4Olj7/QJbW60Ol/kL1pU3VfY/Cnk= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/onsi/ginkgo/v2 v2.21.0 h1:7rg/4f3rB88pb5obDgNZrNHrQ4e6WpjonchcpuBRnZM= -github.com/onsi/ginkgo/v2 v2.21.0/go.mod h1:7Du3c42kxCUegi0IImZ1wUQzMBVecgIHjR1C+NkhLQo= -github.com/onsi/gomega v1.35.1 h1:Cwbd75ZBPxFSuZ6T+rN/WCb/gOc6YgFBXLlZLhC7Ds4= -github.com/onsi/gomega v1.35.1/go.mod h1:PvZbdDc8J6XJEpDK4HCuRBm8a6Fzp9/DmhC9C7yFlog= +github.com/onsi/ginkgo/v2 v2.27.2 h1:LzwLj0b89qtIy6SSASkzlNvX6WktqurSHwkk2ipF/Ns= +github.com/onsi/ginkgo/v2 v2.27.2/go.mod h1:ArE1D/XhNXBXCBkKOLkbsb2c81dQHCRcF5zwn/ykDRo= +github.com/onsi/gomega v1.38.2 h1:eZCjf2xjZAqe+LeWvKb5weQ+NcPwX84kqJ0cZNxok2A= +github.com/onsi/gomega v1.38.2/go.mod h1:W2MJcYxRGV63b418Ai34Ud0hEdTVXq9NW9+Sx6uXf3k= github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI= github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= -github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= -github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v1.22.0 h1:rb93p9lokFEsctTys46VnV1kLCDpVZ0a/Y92Vm0Zc6Q= -github.com/prometheus/client_golang v1.22.0/go.mod h1:R7ljNsLXhuQXYZYtw6GAE9AZg8Y7vEW5scdCXrWRXC0= -github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= -github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= -github.com/prometheus/common v0.62.0 h1:xasJaQlnWAeyHdUBeGjXmutelfJHWMRr+Fg4QszZ2Io= -github.com/prometheus/common v0.62.0/go.mod h1:vyBcEuLSvWos9B1+CyL7JZ2up+uFzXhkqml0W5zIY1I= -github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= -github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= +github.com/prometheus/client_golang v1.23.2 h1:Je96obch5RDVy3FDMndoUsjAhG5Edi49h0RJWRi/o0o= +github.com/prometheus/client_golang v1.23.2/go.mod h1:Tb1a6LWHB3/SPIzCoaDXI4I8UHKeFTEQ1YCr+0Gyqmg= +github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk= +github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= +github.com/prometheus/common v0.66.1 h1:h5E0h5/Y8niHc5DlaLlWLArTQI7tMrsfQjHV+d9ZoGs= +github.com/prometheus/common v0.66.1/go.mod h1:gcaUsgf3KfRSwHY4dIMXLPV0K/Wg1oZ8+SbZk/HH/dA= +github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg= +github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is= github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= -github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= -github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= +github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= +github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/sergi/go-diff v1.2.0 h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ= github.com/sergi/go-diff v1.2.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= -github.com/spf13/cobra v1.9.1 h1:CXSaggrXdbHK9CF+8ywj8Amf7PBRmPCOJugH954Nnlo= -github.com/spf13/cobra v1.9.1/go.mod h1:nDyEzZ8ogv936Cinf6g1RU9MRY64Ir93oCnqb9wxYW0= -github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o= -github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/cobra v1.10.0 h1:a5/WeUlSDCvV5a45ljW2ZFtV0bTDpkfSAj3uqB6Sc+0= +github.com/spf13/cobra v1.10.0/go.mod h1:9dhySC7dnTtEiqzmqfkLj47BslqLCUPMXjG2lj/NgoE= +github.com/spf13/pflag v1.0.8/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/pflag v1.0.9 h1:9exaQaMOCwffKiiiYk6/BndUBv+iRViNW+4lEMi0PvY= +github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stoewer/go-strcase v1.3.0 h1:g0eASXYtp+yvN9fK8sH94oCIk0fau9uV1/ZdJ0AVEzs= github.com/stoewer/go-strcase v1.3.0/go.mod h1:fAH5hQ5pehh+j3nZfvwdk2RgEgQjAoM8wodgtPmh1xo= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -158,49 +155,34 @@ github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= -github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= +github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= github.com/xlab/treeprint v1.2.0 h1:HzHnuAF1plUN2zGlAFHbSQP2qJ0ZAD3XF5XD7OesXRQ= github.com/xlab/treeprint v1.2.0/go.mod h1:gj5Gd3gPdKtR1ikdDK6fnFLdmIS0X30kTTuNd/WEJu0= github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavMF/ppJZNG9ZpyihvCd0w101no= github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e/go.mod h1:RbqR21r5mrJuqunuUZ/Dhy/avygyECGrLceyNeo4LiM= -github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -go.opentelemetry.io/otel v1.35.0 h1:xKWKPxrxB6OtMCbmMY021CqC45J+3Onta9MqjhnusiQ= -go.opentelemetry.io/otel v1.35.0/go.mod h1:UEqy8Zp11hpkUrL73gSlELM0DupHoiq72dR+Zqel/+Y= -go.opentelemetry.io/otel/trace v1.35.0 h1:dPpEfJu1sDIqruz7BHFG3c7528f6ddfSWfFDVt/xgMs= -go.opentelemetry.io/otel/trace v1.35.0/go.mod h1:WUk7DtFp1Aw2MkvqGdwiXYDZZNvA/1J8o6xRXLrIkyc= +go.opentelemetry.io/otel v1.36.0 h1:UumtzIklRBY6cI/lllNZlALOF5nNIzJVb16APdvgTXg= +go.opentelemetry.io/otel v1.36.0/go.mod h1:/TcFMXYjyRNh8khOAO9ybYkqaDBb/70aVwkNML4pP8E= +go.opentelemetry.io/otel/trace v1.36.0 h1:ahxWNuqZjpdiFAyrIoQ4GIiAIhxAunQR6MUoKrsNd4w= +go.opentelemetry.io/otel/trace v1.36.0/go.mod h1:gQ+OnDZzrybY4k4seLzPAWNwVBBVlF2szhehOBB/tGA= go.uber.org/goleak v1.3.1-0.20251210191316-2b7fd8a0d244 h1:OdZ8e4E9yDUGiis9x2ta/Ec5yhMAKT6ZivRvakyxC7E= go.uber.org/goleak v1.3.1-0.20251210191316-2b7fd8a0d244/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= -go.yaml.in/yaml/v2 v2.4.2 h1:DzmwEr2rDGHl7lsFgAHxmNz/1NlQ7xLIrlN2h5d1eGI= -go.yaml.in/yaml/v2 v2.4.2/go.mod h1:081UH+NErpNdqlCXm3TtEran0rJZGxAYx9hb/ELlsPU= +go.yaml.in/yaml/v2 v2.4.3 h1:6gvOSjQoTB3vt1l+CU+tSyi/HOjfOjRLJ4YwYZGwRO0= +go.yaml.in/yaml/v2 v2.4.3/go.mod h1:zSxWcmIDjOzPXpjlTTbAsKokqkDNAVtZO0WOMiT90s8= go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/exp v0.0.0-20251125195548-87e1e737ad39 h1:DHNhtq3sNNzrvduZZIiFyXWOL9IWaDPHqTnLJp+rCBY= golang.org/x/exp v0.0.0-20251125195548-87e1e737ad39/go.mod h1:46edojNIoXTNOhySWIWdix628clX9ODXwPsQuG6hsK0= -golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/mod v0.31.0 h1:HaW9xtz0+kOcWKwli0ZXy79Ix+UW/vOfmWI5QVd2tgI= +golang.org/x/mod v0.31.0/go.mod h1:43JraMp9cGx1Rx3AqioxrbrhNsLl2l/iNAvuBkrezpg= golang.org/x/net v0.48.0 h1:zyQRTTrjc33Lhh0fBgT/H3oZq9WuvRR5gPC70xpDiQU= golang.org/x/net v0.48.0/go.mod h1:+ndRgGjkh8FGtu1w1FGbEC31if4VrNVMuKTgcAAnQRY= golang.org/x/oauth2 v0.34.0 h1:hqK/t4AKgbqWkdkcAeI8XLmbK+4m4G5YeQRrmiotGlw= golang.org/x/oauth2 v0.34.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4= golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -208,60 +190,50 @@ golang.org/x/sys v0.39.0 h1:CvCKL8MeisomCi6qNZ+wbb0DN9E5AATixKsvNtMoMFk= golang.org/x/sys v0.39.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= golang.org/x/term v0.38.0 h1:PQ5pkm/rLO6HnxFR7N2lJHOZX6Kez5Y1gDSJla6jo7Q= golang.org/x/term v0.38.0/go.mod h1:bSEAKrOT1W+VSu9TSCMtoGEOUcKxOKgl3LE5QEF/xVg= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.32.0 h1:ZD01bjUt1FQ9WJ0ClOL5vxgxOI/sVCNgX1YtKwcY0mU= golang.org/x/text v0.32.0/go.mod h1:o/rUWzghvpD5TXrTIBuJU77MTaN0ljMWE47kxGJQ7jY= golang.org/x/time v0.14.0 h1:MRx4UaLrDotUKUdCIqzPC48t1Y9hANFKIRpNx+Te8PI= golang.org/x/time v0.14.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.40.0 h1:yLkxfA+Qnul4cs9QA3KnlFu0lVmd8JJfoq+E41uSutA= golang.org/x/tools v0.40.0/go.mod h1:Ik/tzLRlbscWpqqMRjyWYDisX8bG13FrdXp3o4Sr9lc= -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= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/genproto/googleapis/api v0.0.0-20250303144028-a0af3efb3deb h1:p31xT4yrYrSM/G4Sn2+TNUkVhFCbG9y8itM2S6Th950= google.golang.org/genproto/googleapis/api v0.0.0-20250303144028-a0af3efb3deb/go.mod h1:jbe3Bkdp+Dh2IrslsFCklNhweNTBgSYanP1UXhJDhKg= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250303144028-a0af3efb3deb h1:TLPQVbx1GJ8VKZxz52VAxl1EBgKXXbTiU9Fc5fZeLn4= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250303144028-a0af3efb3deb/go.mod h1:LuRYeWDFV6WOn90g357N17oMCaxpgCnbi/44qJvDn2I= -google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM= -google.golang.org/protobuf v1.36.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250528174236-200df99c418a h1:v2PbRU4K3llS09c7zodFpNePeamkAwG3mPrAery9VeE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250528174236-200df99c418a/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A= +google.golang.org/protobuf v1.36.8 h1:xHScyCOEuuwZEc6UtSOvPbAT4zRh0xcNRYekJwfqyMc= +google.golang.org/protobuf v1.36.8/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/evanphx/json-patch.v4 v4.12.0 h1:n6jtcsulIzXPJaxegRbvFNNrZDjbij7ny3gmSPG+6V4= -gopkg.in/evanphx/json-patch.v4 v4.12.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M= +gopkg.in/evanphx/json-patch.v4 v4.13.0 h1:czT3CmqEaQ1aanPc5SdlgQrrEIb8w/wwCvWWnfEbYzo= +gopkg.in/evanphx/json-patch.v4 v4.13.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -k8s.io/api v0.34.2 h1:fsSUNZhV+bnL6Aqrp6O7lMTy6o5x2C4XLjnh//8SLYY= -k8s.io/api v0.34.2/go.mod h1:MMBPaWlED2a8w4RSeanD76f7opUoypY8TFYkSM+3XHw= -k8s.io/apiextensions-apiserver v0.34.2 h1:WStKftnGeoKP4AZRz/BaAAEJvYp4mlZGN0UCv+uvsqo= -k8s.io/apiextensions-apiserver v0.34.2/go.mod h1:398CJrsgXF1wytdaanynDpJ67zG4Xq7yj91GrmYN2SE= -k8s.io/apimachinery v0.34.2 h1:zQ12Uk3eMHPxrsbUJgNF8bTauTVR2WgqJsTmwTE/NW4= -k8s.io/apimachinery v0.34.2/go.mod h1:/GwIlEcWuTX9zKIg2mbw0LRFIsXwrfoVxn+ef0X13lw= -k8s.io/apiserver v0.34.2 h1:2/yu8suwkmES7IzwlehAovo8dDE07cFRC7KMDb1+MAE= -k8s.io/apiserver v0.34.2/go.mod h1:gqJQy2yDOB50R3JUReHSFr+cwJnL8G1dzTA0YLEqAPI= +k8s.io/api v0.35.1 h1:0PO/1FhlK/EQNVK5+txc4FuhQibV25VLSdLMmGpDE/Q= +k8s.io/api v0.35.1/go.mod h1:28uR9xlXWml9eT0uaGo6y71xK86JBELShLy4wR1XtxM= +k8s.io/apiextensions-apiserver v0.35.1 h1:p5vvALkknlOcAqARwjS20kJffgzHqwyQRM8vHLwgU7w= +k8s.io/apiextensions-apiserver v0.35.1/go.mod h1:2CN4fe1GZ3HMe4wBr25qXyJnJyZaquy4nNlNmb3R7AQ= +k8s.io/apimachinery v0.35.1 h1:yxO6gV555P1YV0SANtnTjXYfiivaTPvCTKX6w6qdDsU= +k8s.io/apimachinery v0.35.1/go.mod h1:jQCgFZFR1F4Ik7hvr2g84RTJSZegBc8yHgFWKn//hns= +k8s.io/apiserver v0.35.1 h1:potxdhhTL4i6AYAa2QCwtlhtB1eCdWQFvJV6fXgJzxs= +k8s.io/apiserver v0.35.1/go.mod h1:BiL6Dd3A2I/0lBnteXfWmCFobHM39vt5+hJQd7Lbpi4= k8s.io/cli-runtime v0.33.3 h1:Dgy4vPjNIu8LMJBSvs8W0LcdV0PX/8aGG1DA1W8lklA= k8s.io/cli-runtime v0.33.3/go.mod h1:yklhLklD4vLS8HNGgC9wGiuHWze4g7x6XQZ+8edsKEo= -k8s.io/client-go v0.34.2 h1:Co6XiknN+uUZqiddlfAjT68184/37PS4QAzYvQvDR8M= -k8s.io/client-go v0.34.2/go.mod h1:2VYDl1XXJsdcAxw7BenFslRQX28Dxz91U9MWKjX97fE= -k8s.io/component-base v0.34.2 h1:HQRqK9x2sSAsd8+R4xxRirlTjowsg6fWCPwWYeSvogQ= -k8s.io/component-base v0.34.2/go.mod h1:9xw2FHJavUHBFpiGkZoKuYZ5pdtLKe97DEByaA+hHbM= +k8s.io/client-go v0.35.1 h1:+eSfZHwuo/I19PaSxqumjqZ9l5XiTEKbIaJ+j1wLcLM= +k8s.io/client-go v0.35.1/go.mod h1:1p1KxDt3a0ruRfc/pG4qT/3oHmUj1AhSHEcxNSGg+OA= +k8s.io/component-base v0.35.1 h1:XgvpRf4srp037QWfGBLFsYMUQJkE5yMa94UsJU7pmcE= +k8s.io/component-base v0.35.1/go.mod h1:HI/6jXlwkiOL5zL9bqA3en1Ygv60F03oEpnuU1G56Bs= k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= -k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b h1:MloQ9/bdJyIu9lb1PzujOPolHyvO06MXG5TUIj2mNAA= -k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b/go.mod h1:UZ2yyWbFTpuhSbFhv24aGNOdoRdJZgsIObGBUaYVsts= -k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 h1:hwvWFiBzdWw1FhfY1FooPn3kzWuJ8tmbZBHi4zVsl1Y= -k8s.io/utils v0.0.0-20250604170112-4c0f3b243397/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= -sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 h1:gBQPwqORJ8d8/YNZWEjoZs7npUVDpVXUUOFfW6CgAqE= -sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg= +k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912 h1:Y3gxNAuB0OBLImH611+UDZcmKS3g6CthxToOb37KgwE= +k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912/go.mod h1:kdmbQkyfwUagLfXIad1y2TdrjPFWp2Q89B3qkRwf/pQ= +k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 h1:SjGebBtkBqHFOli+05xYbK8YF1Dzkbzn+gDM4X9T4Ck= +k8s.io/utils v0.0.0-20251002143259-bc988d571ff4/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 h1:IpInykpT6ceI+QxKBbEflcR5EXP7sU1kvOlxwZh5txg= +sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg= sigs.k8s.io/kustomize/api v0.19.0 h1:F+2HB2mU1MSiR9Hp1NEgoU2q9ItNOaBJl0I4Dlus5SQ= sigs.k8s.io/kustomize/api v0.19.0/go.mod h1:/BbwnivGVcBh1r+8m3tH1VNxJmHSk1PzP5fkP6lbL1o= sigs.k8s.io/kustomize/kyaml v0.19.0 h1:RFge5qsO1uHhwJsu3ipV7RNolC7Uozc0jUBC/61XSlA= diff --git a/go.mod b/go.mod index b90a0106296..ef4f6fa694b 100644 --- a/go.mod +++ b/go.mod @@ -6,8 +6,8 @@ module github.com/kcp-dev/kcp // The script hack/verify-go-versions.sh checks that all version // references across the codebase are consistent with the versions // maintained here. -// go-build-version 1.24.13 -go 1.24.0 +// go-build-version 1.25.7 +go 1.25.0 require ( github.com/abiosoft/lineprefix v0.1.4 @@ -15,75 +15,75 @@ require ( github.com/emicklei/go-restful/v3 v3.12.2 github.com/evanphx/json-patch v5.6.0+incompatible github.com/fatih/color v1.18.0 - github.com/go-logr/logr v1.4.2 + github.com/go-logr/logr v1.4.3 github.com/golang-jwt/jwt/v5 v5.2.2 github.com/google/go-cmp v0.7.0 github.com/google/uuid v1.6.0 - github.com/kcp-dev/apimachinery/v2 v2.29.0-rc.1.0.20251112143648-9e5d2b714f33 - github.com/kcp-dev/client-go v0.28.1-0.20251112153209-b37f4c1ff9a2 + github.com/kcp-dev/apimachinery/v2 v2.29.1-0.20260223112726-38863b7c2c8e + github.com/kcp-dev/client-go v0.28.1-0.20260223113551-9948318ac6d7 github.com/kcp-dev/code-generator/v3 v3.0.0-00010101000000-000000000000 github.com/kcp-dev/embeddedetcd v1.1.0 github.com/kcp-dev/logicalcluster/v3 v3.0.5 github.com/kcp-dev/sdk v0.0.0 github.com/martinlindhe/base36 v1.1.1 github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 - github.com/prometheus/client_golang v1.22.0 - github.com/spf13/cobra v1.9.1 - github.com/spf13/pflag v1.0.6 - github.com/stretchr/testify v1.10.0 + github.com/prometheus/client_golang v1.23.2 + github.com/spf13/cobra v1.10.0 + github.com/spf13/pflag v1.0.9 + github.com/stretchr/testify v1.11.1 github.com/xrstf/mockoidc v0.0.0-20250721141841-711cc4e835f6 go.uber.org/goleak v1.3.1-0.20251210191316-2b7fd8a0d244 go.uber.org/multierr v1.11.0 golang.org/x/sys v0.39.0 gopkg.in/square/go-jose.v2 v2.6.0 - k8s.io/api v0.34.2 - k8s.io/apiextensions-apiserver v0.34.2 - k8s.io/apimachinery v0.34.2 - k8s.io/apiserver v0.34.2 - k8s.io/client-go v0.34.2 - k8s.io/code-generator v0.34.2 - k8s.io/component-base v0.34.2 + k8s.io/api v0.35.1 + k8s.io/apiextensions-apiserver v0.35.1 + k8s.io/apimachinery v0.35.1 + k8s.io/apiserver v0.35.1 + k8s.io/client-go v0.35.1 + k8s.io/code-generator v0.35.1 + k8s.io/component-base v0.35.1 k8s.io/klog/v2 v2.130.1 - k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b - k8s.io/kubernetes v1.34.2 - k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 + k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912 + k8s.io/kubernetes v1.35.1 + k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 sigs.k8s.io/structured-merge-diff/v6 v6.3.0 sigs.k8s.io/yaml v1.6.0 ) replace ( - k8s.io/api => github.com/kcp-dev/kubernetes/staging/src/k8s.io/api v0.0.0-20260302103047-1393ab398c11 - k8s.io/apiextensions-apiserver => github.com/kcp-dev/kubernetes/staging/src/k8s.io/apiextensions-apiserver v0.0.0-20260302103047-1393ab398c11 - k8s.io/apimachinery => github.com/kcp-dev/kubernetes/staging/src/k8s.io/apimachinery v0.0.0-20260302103047-1393ab398c11 - k8s.io/apiserver => github.com/kcp-dev/kubernetes/staging/src/k8s.io/apiserver v0.0.0-20260302103047-1393ab398c11 - k8s.io/cli-runtime => github.com/kcp-dev/kubernetes/staging/src/k8s.io/cli-runtime v0.0.0-20260302103047-1393ab398c11 - k8s.io/client-go => github.com/kcp-dev/kubernetes/staging/src/k8s.io/client-go v0.0.0-20260302103047-1393ab398c11 - k8s.io/cloud-provider => github.com/kcp-dev/kubernetes/staging/src/k8s.io/cloud-provider v0.0.0-20260302103047-1393ab398c11 - k8s.io/cluster-bootstrap => github.com/kcp-dev/kubernetes/staging/src/k8s.io/cluster-bootstrap v0.0.0-20260302103047-1393ab398c11 - k8s.io/code-generator => github.com/kcp-dev/kubernetes/staging/src/k8s.io/code-generator v0.0.0-20260302103047-1393ab398c11 - k8s.io/component-base => github.com/kcp-dev/kubernetes/staging/src/k8s.io/component-base v0.0.0-20260302103047-1393ab398c11 - k8s.io/component-helpers => github.com/kcp-dev/kubernetes/staging/src/k8s.io/component-helpers v0.0.0-20260302103047-1393ab398c11 - k8s.io/controller-manager => github.com/kcp-dev/kubernetes/staging/src/k8s.io/controller-manager v0.0.0-20260302103047-1393ab398c11 - k8s.io/cri-api => github.com/kcp-dev/kubernetes/staging/src/k8s.io/cri-api v0.0.0-20260302103047-1393ab398c11 - k8s.io/cri-client => github.com/kcp-dev/kubernetes/staging/src/k8s.io/cri-client v0.0.0-20260302103047-1393ab398c11 - k8s.io/csi-translation-lib => github.com/kcp-dev/kubernetes/staging/src/k8s.io/csi-translation-lib v0.0.0-20260302103047-1393ab398c11 - k8s.io/dynamic-resource-allocation => github.com/kcp-dev/kubernetes/staging/src/k8s.io/dynamic-resource-allocation v0.0.0-20260302103047-1393ab398c11 - k8s.io/endpointslice => github.com/kcp-dev/kubernetes/staging/src/k8s.io/endpointslice v0.0.0-20260302103047-1393ab398c11 - k8s.io/externaljwt => github.com/kcp-dev/kubernetes/staging/src/k8s.io/externaljwt v0.0.0-20260302103047-1393ab398c11 - k8s.io/kms => github.com/kcp-dev/kubernetes/staging/src/k8s.io/kms v0.0.0-20260302103047-1393ab398c11 - k8s.io/kube-aggregator => github.com/kcp-dev/kubernetes/staging/src/k8s.io/kube-aggregator v0.0.0-20260302103047-1393ab398c11 - k8s.io/kube-controller-manager => github.com/kcp-dev/kubernetes/staging/src/k8s.io/kube-controller-manager v0.0.0-20260302103047-1393ab398c11 - k8s.io/kube-proxy => github.com/kcp-dev/kubernetes/staging/src/k8s.io/kube-proxy v0.0.0-20260302103047-1393ab398c11 - k8s.io/kube-scheduler => github.com/kcp-dev/kubernetes/staging/src/k8s.io/kube-scheduler v0.0.0-20260302103047-1393ab398c11 - k8s.io/kubectl => github.com/kcp-dev/kubernetes/staging/src/k8s.io/kubectl v0.0.0-20260302103047-1393ab398c11 - k8s.io/kubelet => github.com/kcp-dev/kubernetes/staging/src/k8s.io/kubelet v0.0.0-20260302103047-1393ab398c11 - k8s.io/kubernetes => github.com/kcp-dev/kubernetes v0.0.0-20260302103047-1393ab398c11 - k8s.io/metrics => github.com/kcp-dev/kubernetes/staging/src/k8s.io/metrics v0.0.0-20260302103047-1393ab398c11 - k8s.io/mount-utils => github.com/kcp-dev/kubernetes/staging/src/k8s.io/mount-utils v0.0.0-20260302103047-1393ab398c11 - k8s.io/pod-security-admission => github.com/kcp-dev/kubernetes/staging/src/k8s.io/pod-security-admission v0.0.0-20260302103047-1393ab398c11 - k8s.io/sample-apiserver => github.com/kcp-dev/kubernetes/staging/src/k8s.io/sample-apiserver v0.0.0-20260302103047-1393ab398c11 - k8s.io/sample-cli-plugin => github.com/kcp-dev/kubernetes/staging/src/k8s.io/sample-cli-plugin v0.0.0-20260302103047-1393ab398c11 - k8s.io/sample-controller => github.com/kcp-dev/kubernetes/staging/src/k8s.io/sample-controller v0.0.0-20260302103047-1393ab398c11 + k8s.io/api => github.com/kcp-dev/kubernetes/staging/src/k8s.io/api v0.0.0-20260312101608-ec0db8c748d6 + k8s.io/apiextensions-apiserver => github.com/kcp-dev/kubernetes/staging/src/k8s.io/apiextensions-apiserver v0.0.0-20260312101608-ec0db8c748d6 + k8s.io/apimachinery => github.com/kcp-dev/kubernetes/staging/src/k8s.io/apimachinery v0.0.0-20260312101608-ec0db8c748d6 + k8s.io/apiserver => github.com/kcp-dev/kubernetes/staging/src/k8s.io/apiserver v0.0.0-20260312101608-ec0db8c748d6 + k8s.io/cli-runtime => github.com/kcp-dev/kubernetes/staging/src/k8s.io/cli-runtime v0.0.0-20260312101608-ec0db8c748d6 + k8s.io/client-go => github.com/kcp-dev/kubernetes/staging/src/k8s.io/client-go v0.0.0-20260312101608-ec0db8c748d6 + k8s.io/cloud-provider => github.com/kcp-dev/kubernetes/staging/src/k8s.io/cloud-provider v0.0.0-20260312101608-ec0db8c748d6 + k8s.io/cluster-bootstrap => github.com/kcp-dev/kubernetes/staging/src/k8s.io/cluster-bootstrap v0.0.0-20260312101608-ec0db8c748d6 + k8s.io/code-generator => github.com/kcp-dev/kubernetes/staging/src/k8s.io/code-generator v0.0.0-20260312101608-ec0db8c748d6 + k8s.io/component-base => github.com/kcp-dev/kubernetes/staging/src/k8s.io/component-base v0.0.0-20260312101608-ec0db8c748d6 + k8s.io/component-helpers => github.com/kcp-dev/kubernetes/staging/src/k8s.io/component-helpers v0.0.0-20260312101608-ec0db8c748d6 + k8s.io/controller-manager => github.com/kcp-dev/kubernetes/staging/src/k8s.io/controller-manager v0.0.0-20260312101608-ec0db8c748d6 + k8s.io/cri-api => github.com/kcp-dev/kubernetes/staging/src/k8s.io/cri-api v0.0.0-20260312101608-ec0db8c748d6 + k8s.io/cri-client => github.com/kcp-dev/kubernetes/staging/src/k8s.io/cri-client v0.0.0-20260312101608-ec0db8c748d6 + k8s.io/csi-translation-lib => github.com/kcp-dev/kubernetes/staging/src/k8s.io/csi-translation-lib v0.0.0-20260312101608-ec0db8c748d6 + k8s.io/dynamic-resource-allocation => github.com/kcp-dev/kubernetes/staging/src/k8s.io/dynamic-resource-allocation v0.0.0-20260312101608-ec0db8c748d6 + k8s.io/endpointslice => github.com/kcp-dev/kubernetes/staging/src/k8s.io/endpointslice v0.0.0-20260312101608-ec0db8c748d6 + k8s.io/externaljwt => github.com/kcp-dev/kubernetes/staging/src/k8s.io/externaljwt v0.0.0-20260312101608-ec0db8c748d6 + k8s.io/kms => github.com/kcp-dev/kubernetes/staging/src/k8s.io/kms v0.0.0-20260312101608-ec0db8c748d6 + k8s.io/kube-aggregator => github.com/kcp-dev/kubernetes/staging/src/k8s.io/kube-aggregator v0.0.0-20260312101608-ec0db8c748d6 + k8s.io/kube-controller-manager => github.com/kcp-dev/kubernetes/staging/src/k8s.io/kube-controller-manager v0.0.0-20260312101608-ec0db8c748d6 + k8s.io/kube-proxy => github.com/kcp-dev/kubernetes/staging/src/k8s.io/kube-proxy v0.0.0-20260312101608-ec0db8c748d6 + k8s.io/kube-scheduler => github.com/kcp-dev/kubernetes/staging/src/k8s.io/kube-scheduler v0.0.0-20260312101608-ec0db8c748d6 + k8s.io/kubectl => github.com/kcp-dev/kubernetes/staging/src/k8s.io/kubectl v0.0.0-20260312101608-ec0db8c748d6 + k8s.io/kubelet => github.com/kcp-dev/kubernetes/staging/src/k8s.io/kubelet v0.0.0-20260312101608-ec0db8c748d6 + k8s.io/kubernetes => github.com/kcp-dev/kubernetes v0.0.0-20260312101608-ec0db8c748d6 + k8s.io/metrics => github.com/kcp-dev/kubernetes/staging/src/k8s.io/metrics v0.0.0-20260312101608-ec0db8c748d6 + k8s.io/mount-utils => github.com/kcp-dev/kubernetes/staging/src/k8s.io/mount-utils v0.0.0-20260312101608-ec0db8c748d6 + k8s.io/pod-security-admission => github.com/kcp-dev/kubernetes/staging/src/k8s.io/pod-security-admission v0.0.0-20260312101608-ec0db8c748d6 + k8s.io/sample-apiserver => github.com/kcp-dev/kubernetes/staging/src/k8s.io/sample-apiserver v0.0.0-20260312101608-ec0db8c748d6 + k8s.io/sample-cli-plugin => github.com/kcp-dev/kubernetes/staging/src/k8s.io/sample-cli-plugin v0.0.0-20260312101608-ec0db8c748d6 + k8s.io/sample-controller => github.com/kcp-dev/kubernetes/staging/src/k8s.io/sample-controller v0.0.0-20260312101608-ec0db8c748d6 ) replace ( @@ -95,6 +95,7 @@ replace ( require ( cel.dev/expr v0.24.0 // indirect + cyphar.com/go-pathrs v0.2.1 // indirect github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 // indirect github.com/MakeNowJust/heredoc v1.0.0 // indirect github.com/NYTimes/gziphandler v1.1.1 // indirect @@ -106,7 +107,7 @@ require ( github.com/coreos/go-oidc v2.3.0+incompatible // indirect github.com/coreos/go-semver v0.3.1 // indirect github.com/coreos/go-systemd/v22 v22.5.0 // indirect - github.com/cyphar/filepath-securejoin v0.5.1 // indirect + github.com/cyphar/filepath-securejoin v0.6.0 // indirect github.com/distribution/reference v0.6.0 // indirect github.com/dustin/go-humanize v1.0.1 // indirect github.com/egymgmbh/go-prefix-writer v0.0.0-20180609083313-7326ea162eca // indirect @@ -145,15 +146,15 @@ require ( github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // indirect github.com/muesli/reflow v0.3.0 // indirect github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f // indirect - github.com/onsi/gomega v1.35.1 // indirect + github.com/onsi/gomega v1.38.2 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opencontainers/selinux v1.13.1 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/pquerna/cachecontrol v0.1.0 // indirect - github.com/prometheus/client_model v0.6.1 // indirect - github.com/prometheus/common v0.62.0 // indirect - github.com/prometheus/procfs v0.15.1 // indirect + github.com/prometheus/client_model v0.6.2 // indirect + github.com/prometheus/common v0.66.1 // indirect + github.com/prometheus/procfs v0.16.1 // indirect github.com/rivo/uniseg v0.2.0 // indirect github.com/robfig/cron/v3 v3.0.1 // indirect github.com/sirupsen/logrus v1.9.3 // indirect @@ -162,25 +163,25 @@ require ( github.com/tmc/grpc-websocket-proxy v0.0.0-20220101234140-673ab2c3ae75 // indirect github.com/x448/float16 v0.8.4 // indirect github.com/xiang90/probing v0.0.0-20221125231312-a49e3df8f510 // indirect - go.etcd.io/bbolt v1.4.2 // indirect - go.etcd.io/etcd/api/v3 v3.6.4 // indirect - go.etcd.io/etcd/client/pkg/v3 v3.6.4 // indirect - go.etcd.io/etcd/client/v3 v3.6.4 // indirect - go.etcd.io/etcd/pkg/v3 v3.6.4 // indirect - go.etcd.io/etcd/server/v3 v3.6.4 // indirect + go.etcd.io/bbolt v1.4.3 // indirect + go.etcd.io/etcd/api/v3 v3.6.5 // indirect + go.etcd.io/etcd/client/pkg/v3 v3.6.5 // indirect + go.etcd.io/etcd/client/v3 v3.6.5 // indirect + go.etcd.io/etcd/pkg/v3 v3.6.5 // indirect + go.etcd.io/etcd/server/v3 v3.6.5 // indirect go.etcd.io/raft/v3 v3.6.0 // indirect go.opentelemetry.io/auto/sdk v1.1.0 // indirect go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 // indirect - go.opentelemetry.io/otel v1.35.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 // indirect + go.opentelemetry.io/otel v1.36.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.34.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.34.0 // indirect - go.opentelemetry.io/otel/metric v1.35.0 // indirect - go.opentelemetry.io/otel/sdk v1.34.0 // indirect - go.opentelemetry.io/otel/trace v1.35.0 // indirect + go.opentelemetry.io/otel/metric v1.36.0 // indirect + go.opentelemetry.io/otel/sdk v1.36.0 // indirect + go.opentelemetry.io/otel/trace v1.36.0 // indirect go.opentelemetry.io/proto/otlp v1.5.0 // indirect go.uber.org/zap v1.27.0 // indirect - go.yaml.in/yaml/v2 v2.4.2 // indirect + go.yaml.in/yaml/v2 v2.4.3 // indirect go.yaml.in/yaml/v3 v3.0.4 // indirect golang.org/x/crypto v0.46.0 // indirect golang.org/x/exp v0.0.0-20251125195548-87e1e737ad39 // indirect @@ -193,10 +194,10 @@ require ( golang.org/x/time v0.14.0 // indirect golang.org/x/tools v0.40.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20250303144028-a0af3efb3deb // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20250303144028-a0af3efb3deb // indirect - google.golang.org/grpc v1.72.1 // indirect - google.golang.org/protobuf v1.36.5 // indirect - gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20250528174236-200df99c418a // indirect + google.golang.org/grpc v1.72.2 // indirect + google.golang.org/protobuf v1.36.8 // indirect + gopkg.in/evanphx/json-patch.v4 v4.13.0 // indirect gopkg.in/go-jose/go-jose.v2 v2.6.3 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/natefinch/lumberjack.v2 v2.2.1 // indirect @@ -209,14 +210,18 @@ require ( k8s.io/dynamic-resource-allocation v0.0.0 // indirect k8s.io/endpointslice v0.0.0 // indirect k8s.io/externaljwt v0.0.0 // indirect - k8s.io/gengo/v2 v2.0.0-20250604051438-85fd79dbfd9f // indirect + k8s.io/gengo/v2 v2.0.0-20250922181213-ec3ebc5fd46b // indirect k8s.io/kms v0.34.2 // indirect k8s.io/kube-aggregator v0.0.0 // indirect k8s.io/kube-controller-manager v0.0.0 // indirect + k8s.io/kube-proxy v0.0.0 // indirect + k8s.io/kube-scheduler v0.0.0 // indirect + k8s.io/kubectl v0.0.0 // indirect k8s.io/kubelet v0.0.0 // indirect + k8s.io/metrics v0.0.0 // indirect k8s.io/mount-utils v0.0.0 // indirect k8s.io/pod-security-admission v0.0.0 // indirect sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.2 // indirect - sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect + sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 // indirect sigs.k8s.io/randfill v1.0.0 // indirect ) diff --git a/go.sum b/go.sum index ecf2b9edc82..6cf71ac8cd6 100644 --- a/go.sum +++ b/go.sum @@ -1,9 +1,13 @@ cel.dev/expr v0.24.0 h1:56OvJKSH3hDGL0ml5uSxZmz3/3Pq4tJ+fb1unVLAFcY= cel.dev/expr v0.24.0/go.mod h1:hLPLo1W4QUmuYdA72RBX06QTs6MXw941piREPl3Yfiw= +cyphar.com/go-pathrs v0.2.1 h1:9nx1vOgwVvX1mNBWDu93+vaceedpbsDqo+XuBGL40b8= +cyphar.com/go-pathrs v0.2.1/go.mod h1:y8f1EMG7r+hCuFf/rXsKqMJrJAUoADZGNh5/vZPKcGc= github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0= github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/MakeNowJust/heredoc v1.0.0 h1:cXCdzVdstXyiTqTvfqk9SDHpKNjxuom+DOlyEeQ4pzQ= github.com/MakeNowJust/heredoc v1.0.0/go.mod h1:mG5amYoWBHf8vpLOuehzbGGw0EHxpZZ6lCpQ4fNJ8LE= +github.com/Masterminds/semver/v3 v3.4.0 h1:Zog+i5UMtVoCU8oKka5P7i9q9HgrJeGzI9SA1Xbatp0= +github.com/Masterminds/semver/v3 v3.4.0/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/NYTimes/gziphandler v1.1.1 h1:ZUDjpQae29j0ryrS0u/B8HZfJBtBQHjqw2rQ2cqUQ3I= @@ -33,8 +37,8 @@ github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSV github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= -github.com/cyphar/filepath-securejoin v0.5.1 h1:eYgfMq5yryL4fbWfkLpFFy2ukSELzaJOTaUTuh+oF48= -github.com/cyphar/filepath-securejoin v0.5.1/go.mod h1:Sdj7gXlvMcPZsbhwhQ33GguGLDGQL7h7bg04C/+u9jI= +github.com/cyphar/filepath-securejoin v0.6.0 h1:BtGB77njd6SVO6VztOHfPxKitJvd/VPT+OFBFMOi1Is= +github.com/cyphar/filepath-securejoin v0.6.0/go.mod h1:A8hd4EnAeyujCJRrICiOWqjS1AX0a9kM5XL+NwKoYSc= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= @@ -61,8 +65,8 @@ github.com/fxamacker/cbor/v2 v2.9.0/go.mod h1:vM4b+DJCtHn+zz7h3FFp/hDAI9WNWCsZj2 github.com/go-jose/go-jose/v3 v3.0.4 h1:Wp5HA7bLQcKnf6YYao/4kpRpVMp/yf6+pJKV8WFSaNY= github.com/go-jose/go-jose/v3 v3.0.4/go.mod h1:5b+7YgP7ZICgJDBdfjZaIt+H/9L9T/YQrVfLAMboGkQ= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= +github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-logr/zapr v1.3.0 h1:XGdV8XW8zdwFiwOA2Dryh1gj2KRQyOOoNmBy4EplIcQ= @@ -92,8 +96,8 @@ github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db h1:097atOisP2aRj7vFgYQBbFN4U4JNXUNYpxael3UzMyo= -github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= +github.com/google/pprof v0.0.0-20250403155104-27863c87afa6 h1:BHT72Gu3keYf3ZEu2J0b1vyeLSOYI8bm5wbJM/8yDe8= +github.com/google/pprof v0.0.0-20250403155104-27863c87afa6/go.mod h1:boTsfXsheKC2y+lKOCMpSfarhxDeIzfZG1jqGcPl3cA= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= @@ -117,54 +121,62 @@ github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnr github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/kcp-dev/embeddedetcd v1.1.0 h1:4u5BwZdD43rMnZc3VOpj/VS/+WgJDknv1wuyy4rVkzM= github.com/kcp-dev/embeddedetcd v1.1.0/go.mod h1:KNR9s+3UcXtNamapwLH7M/8ZMZCHpIU5YalOAEjOwJg= -github.com/kcp-dev/kubernetes v0.0.0-20260302103047-1393ab398c11 h1:6GxhLQ+APQeuFSzqqvzHPewj9ZQhszng7aEI/NwI/WY= -github.com/kcp-dev/kubernetes v0.0.0-20260302103047-1393ab398c11/go.mod h1:5abjPkqQJKTbeBJpHD8ssZvASKmoYs0WN2WPyyhkwrw= -github.com/kcp-dev/kubernetes/staging/src/k8s.io/api v0.0.0-20260302103047-1393ab398c11 h1:AOWlM7cBv/rTjseQhvD4NRr9fCuaq9a5+GWC3yOz+zY= -github.com/kcp-dev/kubernetes/staging/src/k8s.io/api v0.0.0-20260302103047-1393ab398c11/go.mod h1:3Y5V97lz2MrKYzHlUaXejkj+coCmqde9E9WwVFuWRXE= -github.com/kcp-dev/kubernetes/staging/src/k8s.io/apiextensions-apiserver v0.0.0-20260302103047-1393ab398c11 h1:I5/wMs2LC0YKRSLQxxffyKlz4yjKEohqnYP+D0Vcu0U= -github.com/kcp-dev/kubernetes/staging/src/k8s.io/apiextensions-apiserver v0.0.0-20260302103047-1393ab398c11/go.mod h1:NL2CyapDmJ+5XVVY8qr6niVA3UHVF17kPl0zh6ohkVM= -github.com/kcp-dev/kubernetes/staging/src/k8s.io/apimachinery v0.0.0-20260302103047-1393ab398c11 h1:BpIuN+mJXhKEc2kDt6/NkQKCeIdcdMu1ZsO7jWX/mLE= -github.com/kcp-dev/kubernetes/staging/src/k8s.io/apimachinery v0.0.0-20260302103047-1393ab398c11/go.mod h1:/GwIlEcWuTX9zKIg2mbw0LRFIsXwrfoVxn+ef0X13lw= -github.com/kcp-dev/kubernetes/staging/src/k8s.io/apiserver v0.0.0-20260302103047-1393ab398c11 h1:ooK5jWN4TPqW8nrvlAwP7Mh/fb5ll6SXWJF9u9ttD34= -github.com/kcp-dev/kubernetes/staging/src/k8s.io/apiserver v0.0.0-20260302103047-1393ab398c11/go.mod h1:msyjTyI8TyfhYybEkao5LA8bUrVqz1xhic5zxsfejoM= -github.com/kcp-dev/kubernetes/staging/src/k8s.io/client-go v0.0.0-20260302103047-1393ab398c11 h1:NvwrA5KfGlgS0gPxRxGmGrA3X+0NQ2zPhOxFmB21Lnk= -github.com/kcp-dev/kubernetes/staging/src/k8s.io/client-go v0.0.0-20260302103047-1393ab398c11/go.mod h1:EA6EHLX97x5H59hA02pKPLlZBMQEYnYMsIMglrufpFo= -github.com/kcp-dev/kubernetes/staging/src/k8s.io/cloud-provider v0.0.0-20260302103047-1393ab398c11 h1:3ZONHeUU0goyOoCjovF8uGLb58lyV2xc5Ev9ygem+/M= -github.com/kcp-dev/kubernetes/staging/src/k8s.io/cloud-provider v0.0.0-20260302103047-1393ab398c11/go.mod h1:ZZzwSqYu465kx/03+L6Axo9WQxQxiJJuR7kx8i+km6o= -github.com/kcp-dev/kubernetes/staging/src/k8s.io/cluster-bootstrap v0.0.0-20260302103047-1393ab398c11 h1:P2mru3Gg7T6u8OxePl0PbOjEf+ucBGteIOKjLTJwipw= -github.com/kcp-dev/kubernetes/staging/src/k8s.io/cluster-bootstrap v0.0.0-20260302103047-1393ab398c11/go.mod h1:L+CgxxDLy//AhiEyqsCdiTs4TphPxXI1IQArc9jwMO8= -github.com/kcp-dev/kubernetes/staging/src/k8s.io/code-generator v0.0.0-20260302103047-1393ab398c11 h1:U/+YL/+FhEbtcSqswhC9cXkSLr6Ul7VN0D37i829ViY= -github.com/kcp-dev/kubernetes/staging/src/k8s.io/code-generator v0.0.0-20260302103047-1393ab398c11/go.mod h1:WO4jix1ghA2Qv/tXyNSQl6JXSm6G7jR2AVaOz4w6Z5M= -github.com/kcp-dev/kubernetes/staging/src/k8s.io/component-base v0.0.0-20260302103047-1393ab398c11 h1:MORn1qCuEF7mRgV/tsGZX3ApfydVldjU2v47IbOSEQA= -github.com/kcp-dev/kubernetes/staging/src/k8s.io/component-base v0.0.0-20260302103047-1393ab398c11/go.mod h1:ji6LERznCQ/l4DKb74Vd/5W8Q89b7SvBen7B4AMY0Oo= -github.com/kcp-dev/kubernetes/staging/src/k8s.io/component-helpers v0.0.0-20260302103047-1393ab398c11 h1:Ha4M1J0Oo+59YLevM6hLhNCqnTqqVIBDyihR9zRyWCY= -github.com/kcp-dev/kubernetes/staging/src/k8s.io/component-helpers v0.0.0-20260302103047-1393ab398c11/go.mod h1:l7hECO13A52pGPFD+SlZJ+EGCuRoVOm0wtdDCMQQkf4= -github.com/kcp-dev/kubernetes/staging/src/k8s.io/controller-manager v0.0.0-20260302103047-1393ab398c11 h1:3v8owO9eqHBQUczO0Rxh2H9lPyTHVbsB8HnsXmQv4wA= -github.com/kcp-dev/kubernetes/staging/src/k8s.io/controller-manager v0.0.0-20260302103047-1393ab398c11/go.mod h1:r87/fGxIfARYiYYbMjR8AIOqf25GMlSSqL/F05+OIzI= -github.com/kcp-dev/kubernetes/staging/src/k8s.io/cri-api v0.0.0-20260302103047-1393ab398c11 h1:jUUpQx1A73sUMMMAIZm9OXdt0L9z/2FgYF5PTzErJrs= -github.com/kcp-dev/kubernetes/staging/src/k8s.io/cri-api v0.0.0-20260302103047-1393ab398c11/go.mod h1:4qVUjidMg7/Z9YGZpqIDygbkPWkg3mkS1PvOx/kpHTE= -github.com/kcp-dev/kubernetes/staging/src/k8s.io/cri-client v0.0.0-20260302103047-1393ab398c11 h1:OobJlZ4RqQ2iCJZIk96B+faHtLoHhJzdj0eR8vqHSik= -github.com/kcp-dev/kubernetes/staging/src/k8s.io/cri-client v0.0.0-20260302103047-1393ab398c11/go.mod h1:WVLptW3AzZFX1zSlSxuN9oUO/R6A1+6I4XFZBjhOV4A= -github.com/kcp-dev/kubernetes/staging/src/k8s.io/csi-translation-lib v0.0.0-20260302103047-1393ab398c11 h1:MNkhI6yepnd+43miQQj0XgOLn+OBJrnz/g23k3jAuvw= -github.com/kcp-dev/kubernetes/staging/src/k8s.io/csi-translation-lib v0.0.0-20260302103047-1393ab398c11/go.mod h1:yIEfKOC6kDBKmPljSFyWf3OJl6qndPa1Z8CZnvM1zAk= -github.com/kcp-dev/kubernetes/staging/src/k8s.io/dynamic-resource-allocation v0.0.0-20260302103047-1393ab398c11 h1:vnsG2GOdzE7r4e74fn1gf7IdK7pDJE4YU/bppHniMuY= -github.com/kcp-dev/kubernetes/staging/src/k8s.io/dynamic-resource-allocation v0.0.0-20260302103047-1393ab398c11/go.mod h1:ScEkH9zs6QurmNvJvTPTbs1BbrUH6PBMrvT1qKee6U4= -github.com/kcp-dev/kubernetes/staging/src/k8s.io/endpointslice v0.0.0-20260302103047-1393ab398c11 h1:lePOQPC4WiCpY43viOEd+JR9ITO6ARMfKxK/WhANZ/I= -github.com/kcp-dev/kubernetes/staging/src/k8s.io/endpointslice v0.0.0-20260302103047-1393ab398c11/go.mod h1:RilV1eQyuARqygtpZNyB+JG59w6kCKMzLeYYQfMqZqM= -github.com/kcp-dev/kubernetes/staging/src/k8s.io/externaljwt v0.0.0-20260302103047-1393ab398c11 h1:lmLGC7pp+VSVT3MqC8Ru2Jr5Ix2JQfMOZnLmKj+/z0Q= -github.com/kcp-dev/kubernetes/staging/src/k8s.io/externaljwt v0.0.0-20260302103047-1393ab398c11/go.mod h1:LIqFAVwSkcWVlP3c78wxe2VGmgDySxfqX/wwXzVrV/Q= -github.com/kcp-dev/kubernetes/staging/src/k8s.io/kms v0.0.0-20260302103047-1393ab398c11 h1:isok89RLj5BGBQloFdOtbLGGHXxH83TVQNUOgJlwTXU= -github.com/kcp-dev/kubernetes/staging/src/k8s.io/kms v0.0.0-20260302103047-1393ab398c11/go.mod h1:s1CFkLG7w9eaTYvctOxosx88fl4spqmixnNpys0JAtM= -github.com/kcp-dev/kubernetes/staging/src/k8s.io/kube-aggregator v0.0.0-20260302103047-1393ab398c11 h1:fvXDUhGqE6IFHAQWSfP6mp+AR2NzwScT0OQN48Fv/64= -github.com/kcp-dev/kubernetes/staging/src/k8s.io/kube-aggregator v0.0.0-20260302103047-1393ab398c11/go.mod h1:GOPdnpyxb2xGzTzBC7NOr0rpnWcGH8/pY/tPHX0Ou44= -github.com/kcp-dev/kubernetes/staging/src/k8s.io/kube-controller-manager v0.0.0-20260302103047-1393ab398c11 h1:PMGdZOsvGrRx/Z/7F+UTA6S3UwKWqAMqItNTLnu790s= -github.com/kcp-dev/kubernetes/staging/src/k8s.io/kube-controller-manager v0.0.0-20260302103047-1393ab398c11/go.mod h1:IDd35yynkN5S0lWnaz/xF+/fZSf668aSIVe+GQpR5tI= -github.com/kcp-dev/kubernetes/staging/src/k8s.io/kubelet v0.0.0-20260302103047-1393ab398c11 h1:aYMr+w22+MQkBd0h5G/T0+fhzEimlw5P4jEXDHIamQ8= -github.com/kcp-dev/kubernetes/staging/src/k8s.io/kubelet v0.0.0-20260302103047-1393ab398c11/go.mod h1:5xnzJEi0iAetJLsqhsO5yMAnW3yPZ+zs32oh4VAKgc0= -github.com/kcp-dev/kubernetes/staging/src/k8s.io/mount-utils v0.0.0-20260302103047-1393ab398c11 h1:euSf1nraM66nS0nDR9LC2tfsWTVp9u+mJynja43Hdic= -github.com/kcp-dev/kubernetes/staging/src/k8s.io/mount-utils v0.0.0-20260302103047-1393ab398c11/go.mod h1:MIjjYlqJ0ziYQg0MO09kc9S96GIcMkhF/ay9MncF0GA= -github.com/kcp-dev/kubernetes/staging/src/k8s.io/pod-security-admission v0.0.0-20260302103047-1393ab398c11 h1:pwvQmzz+cwV6rt2HonVAgM26ABqVHATfXT4tx1sBp9w= -github.com/kcp-dev/kubernetes/staging/src/k8s.io/pod-security-admission v0.0.0-20260302103047-1393ab398c11/go.mod h1:3bwMqCfzs5exVFZydu9eBJkw5UbmNzDvxCYT7JWYVAo= +github.com/kcp-dev/kubernetes v0.0.0-20260312101608-ec0db8c748d6 h1:rHUAZ9N7u2rRCq0OeSP/AvOiWhh8jQB2YmBgC34Q9qg= +github.com/kcp-dev/kubernetes v0.0.0-20260312101608-ec0db8c748d6/go.mod h1:OWamAtYc/9r2ICXEDBDdH6Oh6X0m6UX6QYsdn2O3QE0= +github.com/kcp-dev/kubernetes/staging/src/k8s.io/api v0.0.0-20260312101608-ec0db8c748d6 h1:Wlh9NECkICaPWoYmASMY2dllngfkqCR3kVB+YYJI+cI= +github.com/kcp-dev/kubernetes/staging/src/k8s.io/api v0.0.0-20260312101608-ec0db8c748d6/go.mod h1:ORtWYHjWzOroksSDirox8pog9u4/vB7vV2cwgsvrAMc= +github.com/kcp-dev/kubernetes/staging/src/k8s.io/apiextensions-apiserver v0.0.0-20260312101608-ec0db8c748d6 h1:UjNQHDTZ41Uq730YWOZU/8f55vjz7T1SZKbzdbl3qd0= +github.com/kcp-dev/kubernetes/staging/src/k8s.io/apiextensions-apiserver v0.0.0-20260312101608-ec0db8c748d6/go.mod h1:TyU0Xqm9I1qNqKZPUz8o19VVjP/Fv2svhjIG5rdqiPw= +github.com/kcp-dev/kubernetes/staging/src/k8s.io/apimachinery v0.0.0-20260312101608-ec0db8c748d6 h1:6yD/BlHmjCLvaGoHEETVe2H+j7SyIrok4axOpBzDxic= +github.com/kcp-dev/kubernetes/staging/src/k8s.io/apimachinery v0.0.0-20260312101608-ec0db8c748d6/go.mod h1:jQCgFZFR1F4Ik7hvr2g84RTJSZegBc8yHgFWKn//hns= +github.com/kcp-dev/kubernetes/staging/src/k8s.io/apiserver v0.0.0-20260312101608-ec0db8c748d6 h1:Lm3A18oHefsL1N8bcSL7zra6SUcVqOkebiNox/7RXg4= +github.com/kcp-dev/kubernetes/staging/src/k8s.io/apiserver v0.0.0-20260312101608-ec0db8c748d6/go.mod h1:WOHgQh0eI+6DMRwQB2M4CYsmwMHgd04v7hhxi5YAw58= +github.com/kcp-dev/kubernetes/staging/src/k8s.io/client-go v0.0.0-20260312101608-ec0db8c748d6 h1:9TSt80CkTpB5XgWGT3otd4CApsdh2etESM84TVAdQQg= +github.com/kcp-dev/kubernetes/staging/src/k8s.io/client-go v0.0.0-20260312101608-ec0db8c748d6/go.mod h1:nC64c6nHuBAQMICDgY3OfK4PpcpQCparuBsJcEB7tWc= +github.com/kcp-dev/kubernetes/staging/src/k8s.io/cloud-provider v0.0.0-20260312101608-ec0db8c748d6 h1:iuNSEeyyQVOOkPgJVoLzvzvPCmhMliyxPvRa27QuKa0= +github.com/kcp-dev/kubernetes/staging/src/k8s.io/cloud-provider v0.0.0-20260312101608-ec0db8c748d6/go.mod h1:1w1mB4qg90PQRN2gxaYdZuSCad21TfKRKlB/aZSe9rk= +github.com/kcp-dev/kubernetes/staging/src/k8s.io/cluster-bootstrap v0.0.0-20260312101608-ec0db8c748d6 h1:+VD9WSpw9tmU9X9pyUScNIcziQngqXXipu7pligepfY= +github.com/kcp-dev/kubernetes/staging/src/k8s.io/cluster-bootstrap v0.0.0-20260312101608-ec0db8c748d6/go.mod h1:eE13MxAN3iuK6+wbXawOixd+lIJCN+FC+e5Cp7xJpfs= +github.com/kcp-dev/kubernetes/staging/src/k8s.io/code-generator v0.0.0-20260312101608-ec0db8c748d6 h1:WAvddu7TJR3l9p26wtf+QnfYLzyOqQtJRmPRPWtsFGI= +github.com/kcp-dev/kubernetes/staging/src/k8s.io/code-generator v0.0.0-20260312101608-ec0db8c748d6/go.mod h1:+K3JJ5qCHGUG11cLndcLWuM6cGhp2w3v6WVJ3seWwnU= +github.com/kcp-dev/kubernetes/staging/src/k8s.io/component-base v0.0.0-20260312101608-ec0db8c748d6 h1:Tn4qm1yZfBsX5lMZ73nFt9J3n1zKpI1G5dpWHFwkRxA= +github.com/kcp-dev/kubernetes/staging/src/k8s.io/component-base v0.0.0-20260312101608-ec0db8c748d6/go.mod h1:HOrpwrIREPdoQppvSAywMPdNrMvjw9kd0ZBYLUMGI+0= +github.com/kcp-dev/kubernetes/staging/src/k8s.io/component-helpers v0.0.0-20260312101608-ec0db8c748d6 h1:nTpQGc72TgXlF1zYN0qp4v9sgLkvjNZJzS7K3INMhA8= +github.com/kcp-dev/kubernetes/staging/src/k8s.io/component-helpers v0.0.0-20260312101608-ec0db8c748d6/go.mod h1:moNOpjaKZLA7e3UhARntuva07ZmmmVnPH6d2iSGsWr8= +github.com/kcp-dev/kubernetes/staging/src/k8s.io/controller-manager v0.0.0-20260312101608-ec0db8c748d6 h1:vzUTOEc7N9IleuWzKoAugzF8DPLWpfvcEXeCi5CokX4= +github.com/kcp-dev/kubernetes/staging/src/k8s.io/controller-manager v0.0.0-20260312101608-ec0db8c748d6/go.mod h1:vfCQUuJBzOrQy1uB7Oz/sdb3bwfxmbuTnfBNbJC/1qc= +github.com/kcp-dev/kubernetes/staging/src/k8s.io/cri-api v0.0.0-20260312101608-ec0db8c748d6 h1:AobIuLx/VzGV60lK94auB7qlJlYnLwrcV/ERNBLsWfY= +github.com/kcp-dev/kubernetes/staging/src/k8s.io/cri-api v0.0.0-20260312101608-ec0db8c748d6/go.mod h1:Cnt29u/tYl1Se1cBRL30uSZ/oJ5TaIp4sZm1xDLvcMc= +github.com/kcp-dev/kubernetes/staging/src/k8s.io/cri-client v0.0.0-20260312101608-ec0db8c748d6 h1:bd8tO2QyErJQESz3RaqOqZUo1iUCh5GLcKdOOfPLqII= +github.com/kcp-dev/kubernetes/staging/src/k8s.io/cri-client v0.0.0-20260312101608-ec0db8c748d6/go.mod h1:rIb5x+Hk8baBUGv4ogTGnHwS7Gi/wGI3PoU7fqe4Ba0= +github.com/kcp-dev/kubernetes/staging/src/k8s.io/csi-translation-lib v0.0.0-20260312101608-ec0db8c748d6 h1:oqDfTbMONy1Nx0WP7JhMH0FLn39dKqIcFIEuQjVlWmE= +github.com/kcp-dev/kubernetes/staging/src/k8s.io/csi-translation-lib v0.0.0-20260312101608-ec0db8c748d6/go.mod h1:HWVfuxeGQSDe22wWAyNSzQiNE7cwivKuCgS39VcmqHs= +github.com/kcp-dev/kubernetes/staging/src/k8s.io/dynamic-resource-allocation v0.0.0-20260312101608-ec0db8c748d6 h1:Snbajfssw4lkgSkl4VtZOAuVvI9MwM+l/YVWt4QO/2Y= +github.com/kcp-dev/kubernetes/staging/src/k8s.io/dynamic-resource-allocation v0.0.0-20260312101608-ec0db8c748d6/go.mod h1:Kp4mpnFsN3B35vVbKHrSxzMY8qzwrW9utaOsBGrVlIs= +github.com/kcp-dev/kubernetes/staging/src/k8s.io/endpointslice v0.0.0-20260312101608-ec0db8c748d6 h1:kJE1gIIKEPEblbRjUGUt6kPWGDZDalAscz6fnw9xPGU= +github.com/kcp-dev/kubernetes/staging/src/k8s.io/endpointslice v0.0.0-20260312101608-ec0db8c748d6/go.mod h1:BlOidvCjZqkOXr/FaydtgUX2bO0cRy1l48RiLlVvcDU= +github.com/kcp-dev/kubernetes/staging/src/k8s.io/externaljwt v0.0.0-20260312101608-ec0db8c748d6 h1:7Z3G17Ko71kDP2hsT5/TROdlynH+8UkunecuO9/FyMk= +github.com/kcp-dev/kubernetes/staging/src/k8s.io/externaljwt v0.0.0-20260312101608-ec0db8c748d6/go.mod h1:BbmVxkdvNrL2ukF4m/AN2D2FBD3vp2df497nfcVl2Nc= +github.com/kcp-dev/kubernetes/staging/src/k8s.io/kms v0.0.0-20260312101608-ec0db8c748d6 h1:YBifsWT+mSxE17f4jobyhlTlfrT8H3ffKIjCjvGmx70= +github.com/kcp-dev/kubernetes/staging/src/k8s.io/kms v0.0.0-20260312101608-ec0db8c748d6/go.mod h1:VT+4ekZAdrZDMgShK37vvlyHUVhwI9t/9tvh0AyCWmQ= +github.com/kcp-dev/kubernetes/staging/src/k8s.io/kube-aggregator v0.0.0-20260312101608-ec0db8c748d6 h1:WeSy3hQl2aUvUA0X4CS7L0fR3SwX8SnxNWxN79RavW8= +github.com/kcp-dev/kubernetes/staging/src/k8s.io/kube-aggregator v0.0.0-20260312101608-ec0db8c748d6/go.mod h1:VusctlKN57XAwg3vbkEzHjGlRJyucrciDq1h6cUrWpQ= +github.com/kcp-dev/kubernetes/staging/src/k8s.io/kube-controller-manager v0.0.0-20260312101608-ec0db8c748d6 h1:KsvzsaTqkd+RvOEZzZhpXtuANj9SH736oVibhFGULE8= +github.com/kcp-dev/kubernetes/staging/src/k8s.io/kube-controller-manager v0.0.0-20260312101608-ec0db8c748d6/go.mod h1:SmC1cn7HWgU4SsiCmaxEK0+/7HsLYy9xELGO95z9Aq4= +github.com/kcp-dev/kubernetes/staging/src/k8s.io/kube-proxy v0.0.0-20260312101608-ec0db8c748d6 h1:LjiOFSF8gvwHcTw1UaHTlKZ3t1YQptD79vEEzPmBHg8= +github.com/kcp-dev/kubernetes/staging/src/k8s.io/kube-proxy v0.0.0-20260312101608-ec0db8c748d6/go.mod h1:McndRN0aRQGTZVw+YsBAPNp3D0HuVTf/dZzP8iILR7E= +github.com/kcp-dev/kubernetes/staging/src/k8s.io/kube-scheduler v0.0.0-20260312101608-ec0db8c748d6 h1:33y3jNpLAFe8zUF7wu7mz11w/CSv76E2OjeTQhCOqZM= +github.com/kcp-dev/kubernetes/staging/src/k8s.io/kube-scheduler v0.0.0-20260312101608-ec0db8c748d6/go.mod h1:LEYr1qeKskRIUMO2zmllqRGzU8zjczvf9OUHa25XdJ0= +github.com/kcp-dev/kubernetes/staging/src/k8s.io/kubectl v0.0.0-20260312101608-ec0db8c748d6 h1:eaVZ8f8QreOr5gilagIwcuS/oFz3Pbd6HyqmUCAnPeA= +github.com/kcp-dev/kubernetes/staging/src/k8s.io/kubectl v0.0.0-20260312101608-ec0db8c748d6/go.mod h1:1xu+YonEGWJM+y5aAIpzkOuJeI2xjohB+W+AkXUo4EU= +github.com/kcp-dev/kubernetes/staging/src/k8s.io/kubelet v0.0.0-20260312101608-ec0db8c748d6 h1:5ZL0n1e6fvmTkvtP2iqH3WNNyavrhe03u8iLl1PzHck= +github.com/kcp-dev/kubernetes/staging/src/k8s.io/kubelet v0.0.0-20260312101608-ec0db8c748d6/go.mod h1:yyYM+fSElQfRmh6rhfpOLXA85nM05NvCQj1voOQPaFM= +github.com/kcp-dev/kubernetes/staging/src/k8s.io/metrics v0.0.0-20260312101608-ec0db8c748d6 h1:ahAwnJ8ZozowDQItxjWUE88r8TidgwIGwk3c8Oqlg5k= +github.com/kcp-dev/kubernetes/staging/src/k8s.io/metrics v0.0.0-20260312101608-ec0db8c748d6/go.mod h1:ktcp86upAHKPpG7wV6mb9i0mAbP4rsA4hmlgx2J/RhY= +github.com/kcp-dev/kubernetes/staging/src/k8s.io/mount-utils v0.0.0-20260312101608-ec0db8c748d6 h1:0w8wnCK6R+3fG+sZPN3S2mprxDsWk1oQmykQsZdiaxA= +github.com/kcp-dev/kubernetes/staging/src/k8s.io/mount-utils v0.0.0-20260312101608-ec0db8c748d6/go.mod h1:ppC4d+mUpfbAJr/V2E8vvxeCEckNM+S5b0kQBQjd3Pw= +github.com/kcp-dev/kubernetes/staging/src/k8s.io/pod-security-admission v0.0.0-20260312101608-ec0db8c748d6 h1:fI0gM23sDf4smWKJW8/uHeid+GoL5MWrw0frnnyEgqA= +github.com/kcp-dev/kubernetes/staging/src/k8s.io/pod-security-admission v0.0.0-20260312101608-ec0db8c748d6/go.mod h1:d9GOrSEyhY/cWSXmi/jeMCosTydd9jH3NRrNZHQ3Gmk= github.com/kcp-dev/logicalcluster/v3 v3.0.5 h1:JbYakokb+5Uinz09oTXomSUJVQsqfxEvU4RyHUYxHOU= github.com/kcp-dev/logicalcluster/v3 v3.0.5/go.mod h1:EWBUBxdr49fUB1cLMO4nOdBWmYifLbP1LfoL20KkXYY= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= @@ -208,10 +220,10 @@ github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f h1:y5//uYreIhSUg3J1GEMiLbxo1LJaP8RfCpH6pymGZus= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= -github.com/onsi/ginkgo/v2 v2.21.0 h1:7rg/4f3rB88pb5obDgNZrNHrQ4e6WpjonchcpuBRnZM= -github.com/onsi/ginkgo/v2 v2.21.0/go.mod h1:7Du3c42kxCUegi0IImZ1wUQzMBVecgIHjR1C+NkhLQo= -github.com/onsi/gomega v1.35.1 h1:Cwbd75ZBPxFSuZ6T+rN/WCb/gOc6YgFBXLlZLhC7Ds4= -github.com/onsi/gomega v1.35.1/go.mod h1:PvZbdDc8J6XJEpDK4HCuRBm8a6Fzp9/DmhC9C7yFlog= +github.com/onsi/ginkgo/v2 v2.27.2 h1:LzwLj0b89qtIy6SSASkzlNvX6WktqurSHwkk2ipF/Ns= +github.com/onsi/ginkgo/v2 v2.27.2/go.mod h1:ArE1D/XhNXBXCBkKOLkbsb2c81dQHCRcF5zwn/ykDRo= +github.com/onsi/gomega v1.38.2 h1:eZCjf2xjZAqe+LeWvKb5weQ+NcPwX84kqJ0cZNxok2A= +github.com/onsi/gomega v1.38.2/go.mod h1:W2MJcYxRGV63b418Ai34Ud0hEdTVXq9NW9+Sx6uXf3k= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/selinux v1.13.1 h1:A8nNeceYngH9Ow++M+VVEwJVpdFmrlxsN22F+ISDCJE= @@ -223,31 +235,32 @@ github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRI github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pquerna/cachecontrol v0.1.0 h1:yJMy84ti9h/+OEWa752kBTKv4XC30OtVVHYv/8cTqKc= github.com/pquerna/cachecontrol v0.1.0/go.mod h1:NrUG3Z7Rdu85UNR3vm7SOsl1nFIeSiQnrHV5K9mBcUI= -github.com/prometheus/client_golang v1.22.0 h1:rb93p9lokFEsctTys46VnV1kLCDpVZ0a/Y92Vm0Zc6Q= -github.com/prometheus/client_golang v1.22.0/go.mod h1:R7ljNsLXhuQXYZYtw6GAE9AZg8Y7vEW5scdCXrWRXC0= -github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= -github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= -github.com/prometheus/common v0.62.0 h1:xasJaQlnWAeyHdUBeGjXmutelfJHWMRr+Fg4QszZ2Io= -github.com/prometheus/common v0.62.0/go.mod h1:vyBcEuLSvWos9B1+CyL7JZ2up+uFzXhkqml0W5zIY1I= -github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= -github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= +github.com/prometheus/client_golang v1.23.2 h1:Je96obch5RDVy3FDMndoUsjAhG5Edi49h0RJWRi/o0o= +github.com/prometheus/client_golang v1.23.2/go.mod h1:Tb1a6LWHB3/SPIzCoaDXI4I8UHKeFTEQ1YCr+0Gyqmg= +github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk= +github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= +github.com/prometheus/common v0.66.1 h1:h5E0h5/Y8niHc5DlaLlWLArTQI7tMrsfQjHV+d9ZoGs= +github.com/prometheus/common v0.66.1/go.mod h1:gcaUsgf3KfRSwHY4dIMXLPV0K/Wg1oZ8+SbZk/HH/dA= +github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg= +github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is= github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs= github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro= -github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= -github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= +github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= +github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/soheilhy/cmux v0.1.5 h1:jjzc5WVemNEDTLwv9tlmemhC73tI08BNOIGwBOo10Js= github.com/soheilhy/cmux v0.1.5/go.mod h1:T7TcVDs9LWfQgPlPsdngu6I6QIoyIFZDDC6sNE1GqG0= -github.com/spf13/cobra v1.9.1 h1:CXSaggrXdbHK9CF+8ywj8Amf7PBRmPCOJugH954Nnlo= -github.com/spf13/cobra v1.9.1/go.mod h1:nDyEzZ8ogv936Cinf6g1RU9MRY64Ir93oCnqb9wxYW0= -github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o= -github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/cobra v1.10.0 h1:a5/WeUlSDCvV5a45ljW2ZFtV0bTDpkfSAj3uqB6Sc+0= +github.com/spf13/cobra v1.10.0/go.mod h1:9dhySC7dnTtEiqzmqfkLj47BslqLCUPMXjG2lj/NgoE= +github.com/spf13/pflag v1.0.8/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/pflag v1.0.9 h1:9exaQaMOCwffKiiiYk6/BndUBv+iRViNW+4lEMi0PvY= +github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stoewer/go-strcase v1.3.0 h1:g0eASXYtp+yvN9fK8sH94oCIk0fau9uV1/ZdJ0AVEzs= github.com/stoewer/go-strcase v1.3.0/go.mod h1:fAH5hQ5pehh+j3nZfvwdk2RgEgQjAoM8wodgtPmh1xo= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -262,8 +275,8 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= -github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= +github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= github.com/tmc/grpc-websocket-proxy v0.0.0-20220101234140-673ab2c3ae75 h1:6fotK7otjonDflCTK0BCfls4SPy3NcCVb5dqqmbRknE= github.com/tmc/grpc-websocket-proxy v0.0.0-20220101234140-673ab2c3ae75/go.mod h1:KO6IkyS8Y3j8OdNO85qEYBsRPuteD+YciPomcXdrMnk= github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= @@ -275,40 +288,40 @@ github.com/xrstf/mockoidc v0.0.0-20250721141841-711cc4e835f6/go.mod h1:VqIgTtKVz github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -go.etcd.io/bbolt v1.4.2 h1:IrUHp260R8c+zYx/Tm8QZr04CX+qWS5PGfPdevhdm1I= -go.etcd.io/bbolt v1.4.2/go.mod h1:Is8rSHO/b4f3XigBC0lL0+4FwAQv3HXEEIgFMuKHceM= -go.etcd.io/etcd/api/v3 v3.6.4 h1:7F6N7toCKcV72QmoUKa23yYLiiljMrT4xCeBL9BmXdo= -go.etcd.io/etcd/api/v3 v3.6.4/go.mod h1:eFhhvfR8Px1P6SEuLT600v+vrhdDTdcfMzmnxVXXSbk= -go.etcd.io/etcd/client/pkg/v3 v3.6.4 h1:9HBYrjppeOfFjBjaMTRxT3R7xT0GLK8EJMVC4xg6ok0= -go.etcd.io/etcd/client/pkg/v3 v3.6.4/go.mod h1:sbdzr2cl3HzVmxNw//PH7aLGVtY4QySjQFuaCgcRFAI= -go.etcd.io/etcd/client/v3 v3.6.4 h1:YOMrCfMhRzY8NgtzUsHl8hC2EBSnuqbR3dh84Uryl7A= -go.etcd.io/etcd/client/v3 v3.6.4/go.mod h1:jaNNHCyg2FdALyKWnd7hxZXZxZANb0+KGY+YQaEMISo= -go.etcd.io/etcd/pkg/v3 v3.6.4 h1:fy8bmXIec1Q35/jRZ0KOes8vuFxbvdN0aAFqmEfJZWA= -go.etcd.io/etcd/pkg/v3 v3.6.4/go.mod h1:kKcYWP8gHuBRcteyv6MXWSN0+bVMnfgqiHueIZnKMtE= -go.etcd.io/etcd/server/v3 v3.6.4 h1:LsCA7CzjVt+8WGrdsnh6RhC0XqCsLkBly3ve5rTxMAU= -go.etcd.io/etcd/server/v3 v3.6.4/go.mod h1:aYCL/h43yiONOv0QIR82kH/2xZ7m+IWYjzRmyQfnCAg= +go.etcd.io/bbolt v1.4.3 h1:dEadXpI6G79deX5prL3QRNP6JB8UxVkqo4UPnHaNXJo= +go.etcd.io/bbolt v1.4.3/go.mod h1:tKQlpPaYCVFctUIgFKFnAlvbmB3tpy1vkTnDWohtc0E= +go.etcd.io/etcd/api/v3 v3.6.5 h1:pMMc42276sgR1j1raO/Qv3QI9Af/AuyQUW6CBAWuntA= +go.etcd.io/etcd/api/v3 v3.6.5/go.mod h1:ob0/oWA/UQQlT1BmaEkWQzI0sJ1M0Et0mMpaABxguOQ= +go.etcd.io/etcd/client/pkg/v3 v3.6.5 h1:Duz9fAzIZFhYWgRjp/FgNq2gO1jId9Yae/rLn3RrBP8= +go.etcd.io/etcd/client/pkg/v3 v3.6.5/go.mod h1:8Wx3eGRPiy0qOFMZT/hfvdos+DjEaPxdIDiCDUv/FQk= +go.etcd.io/etcd/client/v3 v3.6.5 h1:yRwZNFBx/35VKHTcLDeO7XVLbCBFbPi+XV4OC3QJf2U= +go.etcd.io/etcd/client/v3 v3.6.5/go.mod h1:ZqwG/7TAFZ0BJ0jXRPoJjKQJtbFo/9NIY8uoFFKcCyo= +go.etcd.io/etcd/pkg/v3 v3.6.5 h1:byxWB4AqIKI4SBmquZUG1WGtvMfMaorXFoCcFbVeoxM= +go.etcd.io/etcd/pkg/v3 v3.6.5/go.mod h1:uqrXrzmMIJDEy5j00bCqhVLzR5jEJIwDp5wTlLwPGOU= +go.etcd.io/etcd/server/v3 v3.6.5 h1:4RbUb1Bd4y1WkBHmuF+cZII83JNQMuNXzyjwigQ06y0= +go.etcd.io/etcd/server/v3 v3.6.5/go.mod h1:PLuhyVXz8WWRhzXDsl3A3zv/+aK9e4A9lpQkqawIaH0= go.etcd.io/raft/v3 v3.6.0 h1:5NtvbDVYpnfZWcIHgGRk9DyzkBIXOi8j+DDp1IcnUWQ= go.etcd.io/raft/v3 v3.6.0/go.mod h1:nLvLevg6+xrVtHUmVaTcTz603gQPHfh7kUAwV6YpfGo= go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0 h1:x7wzEgXfnzJcHDwStJT+mxOz4etr2EcexjqhBvmoakw= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0/go.mod h1:rg+RlpR5dKwaS95IyyZqj5Wd4E13lk/msnTS0Xl9lJM= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 h1:yd02MEjBdJkG3uabWP9apV+OuWRIXGDuJEUJbOHmCFU= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0/go.mod h1:umTcuxiv1n/s/S6/c2AT/g2CQ7u5C59sHDNmfSwgz7Q= -go.opentelemetry.io/otel v1.35.0 h1:xKWKPxrxB6OtMCbmMY021CqC45J+3Onta9MqjhnusiQ= -go.opentelemetry.io/otel v1.35.0/go.mod h1:UEqy8Zp11hpkUrL73gSlELM0DupHoiq72dR+Zqel/+Y= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 h1:F7Jx+6hwnZ41NSFTO5q4LYDtJRXBf2PD0rNBkeB/lus= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0/go.mod h1:UHB22Z8QsdRDrnAtX4PntOl36ajSxcdUMt1sF7Y6E7Q= +go.opentelemetry.io/otel v1.36.0 h1:UumtzIklRBY6cI/lllNZlALOF5nNIzJVb16APdvgTXg= +go.opentelemetry.io/otel v1.36.0/go.mod h1:/TcFMXYjyRNh8khOAO9ybYkqaDBb/70aVwkNML4pP8E= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.34.0 h1:OeNbIYk/2C15ckl7glBlOBp5+WlYsOElzTNmiPW/x60= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.34.0/go.mod h1:7Bept48yIeqxP2OZ9/AqIpYS94h2or0aB4FypJTc8ZM= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.34.0 h1:tgJ0uaNS4c98WRNUEx5U3aDlrDOI5Rs+1Vifcw4DJ8U= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.34.0/go.mod h1:U7HYyW0zt/a9x5J1Kjs+r1f/d4ZHnYFclhYY2+YbeoE= -go.opentelemetry.io/otel/metric v1.35.0 h1:0znxYu2SNyuMSQT4Y9WDWej0VpcsxkuklLa4/siN90M= -go.opentelemetry.io/otel/metric v1.35.0/go.mod h1:nKVFgxBZ2fReX6IlyW28MgZojkoAkJGaE8CpgeAU3oE= -go.opentelemetry.io/otel/sdk v1.34.0 h1:95zS4k/2GOy069d321O8jWgYsW3MzVV+KuSPKp7Wr1A= -go.opentelemetry.io/otel/sdk v1.34.0/go.mod h1:0e/pNiaMAqaykJGKbi+tSjWfNNHMTxoC9qANsCzbyxU= -go.opentelemetry.io/otel/sdk/metric v1.34.0 h1:5CeK9ujjbFVL5c1PhLuStg1wxA7vQv7ce1EK0Gyvahk= -go.opentelemetry.io/otel/sdk/metric v1.34.0/go.mod h1:jQ/r8Ze28zRKoNRdkjCZxfs6YvBTG1+YIqyFVFYec5w= -go.opentelemetry.io/otel/trace v1.35.0 h1:dPpEfJu1sDIqruz7BHFG3c7528f6ddfSWfFDVt/xgMs= -go.opentelemetry.io/otel/trace v1.35.0/go.mod h1:WUk7DtFp1Aw2MkvqGdwiXYDZZNvA/1J8o6xRXLrIkyc= +go.opentelemetry.io/otel/metric v1.36.0 h1:MoWPKVhQvJ+eeXWHFBOPoBOi20jh6Iq2CcCREuTYufE= +go.opentelemetry.io/otel/metric v1.36.0/go.mod h1:zC7Ks+yeyJt4xig9DEw9kuUFe5C3zLbVjV2PzT6qzbs= +go.opentelemetry.io/otel/sdk v1.36.0 h1:b6SYIuLRs88ztox4EyrvRti80uXIFy+Sqzoh9kFULbs= +go.opentelemetry.io/otel/sdk v1.36.0/go.mod h1:+lC+mTgD+MUWfjJubi2vvXWcVxyr9rmlshZni72pXeY= +go.opentelemetry.io/otel/sdk/metric v1.36.0 h1:r0ntwwGosWGaa0CrSt8cuNuTcccMXERFwHX4dThiPis= +go.opentelemetry.io/otel/sdk/metric v1.36.0/go.mod h1:qTNOhFDfKRwX0yXOqJYegL5WRaW376QbB7P4Pb0qva4= +go.opentelemetry.io/otel/trace v1.36.0 h1:ahxWNuqZjpdiFAyrIoQ4GIiAIhxAunQR6MUoKrsNd4w= +go.opentelemetry.io/otel/trace v1.36.0/go.mod h1:gQ+OnDZzrybY4k4seLzPAWNwVBBVlF2szhehOBB/tGA= go.opentelemetry.io/proto/otlp v1.5.0 h1:xJvq7gMzB31/d406fB8U5CBdyQGw4P399D1aQWU/3i4= go.opentelemetry.io/proto/otlp v1.5.0/go.mod h1:keN8WnHxOy8PG0rQZjJJ5A2ebUoafqWp0eVQ4yIXvJ4= go.uber.org/goleak v1.3.1-0.20251210191316-2b7fd8a0d244 h1:OdZ8e4E9yDUGiis9x2ta/Ec5yhMAKT6ZivRvakyxC7E= @@ -317,8 +330,8 @@ 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/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= -go.yaml.in/yaml/v2 v2.4.2 h1:DzmwEr2rDGHl7lsFgAHxmNz/1NlQ7xLIrlN2h5d1eGI= -go.yaml.in/yaml/v2 v2.4.2/go.mod h1:081UH+NErpNdqlCXm3TtEran0rJZGxAYx9hb/ELlsPU= +go.yaml.in/yaml/v2 v2.4.3 h1:6gvOSjQoTB3vt1l+CU+tSyi/HOjfOjRLJ4YwYZGwRO0= +go.yaml.in/yaml/v2 v2.4.3/go.mod h1:zSxWcmIDjOzPXpjlTTbAsKokqkDNAVtZO0WOMiT90s8= go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= @@ -410,17 +423,17 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/genproto/googleapis/api v0.0.0-20250303144028-a0af3efb3deb h1:p31xT4yrYrSM/G4Sn2+TNUkVhFCbG9y8itM2S6Th950= google.golang.org/genproto/googleapis/api v0.0.0-20250303144028-a0af3efb3deb/go.mod h1:jbe3Bkdp+Dh2IrslsFCklNhweNTBgSYanP1UXhJDhKg= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250303144028-a0af3efb3deb h1:TLPQVbx1GJ8VKZxz52VAxl1EBgKXXbTiU9Fc5fZeLn4= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250303144028-a0af3efb3deb/go.mod h1:LuRYeWDFV6WOn90g357N17oMCaxpgCnbi/44qJvDn2I= -google.golang.org/grpc v1.72.1 h1:HR03wO6eyZ7lknl75XlxABNVLLFc2PAb6mHlYh756mA= -google.golang.org/grpc v1.72.1/go.mod h1:wH5Aktxcg25y1I3w7H69nHfXdOG3UiadoBtjh3izSDM= -google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM= -google.golang.org/protobuf v1.36.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250528174236-200df99c418a h1:v2PbRU4K3llS09c7zodFpNePeamkAwG3mPrAery9VeE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250528174236-200df99c418a/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A= +google.golang.org/grpc v1.72.2 h1:TdbGzwb82ty4OusHWepvFWGLgIbNo1/SUynEN0ssqv8= +google.golang.org/grpc v1.72.2/go.mod h1:wH5Aktxcg25y1I3w7H69nHfXdOG3UiadoBtjh3izSDM= +google.golang.org/protobuf v1.36.8 h1:xHScyCOEuuwZEc6UtSOvPbAT4zRh0xcNRYekJwfqyMc= +google.golang.org/protobuf v1.36.8/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/evanphx/json-patch.v4 v4.12.0 h1:n6jtcsulIzXPJaxegRbvFNNrZDjbij7ny3gmSPG+6V4= -gopkg.in/evanphx/json-patch.v4 v4.12.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M= +gopkg.in/evanphx/json-patch.v4 v4.13.0 h1:czT3CmqEaQ1aanPc5SdlgQrrEIb8w/wwCvWWnfEbYzo= +gopkg.in/evanphx/json-patch.v4 v4.13.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M= gopkg.in/go-jose/go-jose.v2 v2.6.3 h1:nt80fvSDlhKWQgSWyHyy5CfmlQr+asih51R8PTWNKKs= gopkg.in/go-jose/go-jose.v2 v2.6.3/go.mod h1:zzZDPkNNw/c9IE7Z9jr11mBZQhKQTMzoEEIoEdZlFBI= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= @@ -432,18 +445,18 @@ gopkg.in/square/go-jose.v2 v2.6.0/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76 gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -k8s.io/gengo/v2 v2.0.0-20250604051438-85fd79dbfd9f h1:SLb+kxmzfA87x4E4brQzB33VBbT2+x7Zq9ROIHmGn9Q= -k8s.io/gengo/v2 v2.0.0-20250604051438-85fd79dbfd9f/go.mod h1:EJykeLsmFC60UQbYJezXkEsG2FLrt0GPNkU5iK5GWxU= +k8s.io/gengo/v2 v2.0.0-20250922181213-ec3ebc5fd46b h1:gMplByicHV/TJBizHd9aVEsTYoJBnnUAT5MHlTkbjhQ= +k8s.io/gengo/v2 v2.0.0-20250922181213-ec3ebc5fd46b/go.mod h1:CgujABENc3KuTrcsdpGmrrASjtQsWCT7R99mEV4U/fM= k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= -k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b h1:MloQ9/bdJyIu9lb1PzujOPolHyvO06MXG5TUIj2mNAA= -k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b/go.mod h1:UZ2yyWbFTpuhSbFhv24aGNOdoRdJZgsIObGBUaYVsts= -k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 h1:hwvWFiBzdWw1FhfY1FooPn3kzWuJ8tmbZBHi4zVsl1Y= -k8s.io/utils v0.0.0-20250604170112-4c0f3b243397/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912 h1:Y3gxNAuB0OBLImH611+UDZcmKS3g6CthxToOb37KgwE= +k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912/go.mod h1:kdmbQkyfwUagLfXIad1y2TdrjPFWp2Q89B3qkRwf/pQ= +k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 h1:SjGebBtkBqHFOli+05xYbK8YF1Dzkbzn+gDM4X9T4Ck= +k8s.io/utils v0.0.0-20251002143259-bc988d571ff4/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.2 h1:jpcvIRr3GLoUoEKRkHKSmGjxb6lWwrBlJsXc+eUYQHM= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.2/go.mod h1:Ve9uj1L+deCXFrPOk1LpFXqTg7LCFzFso6PA48q/XZw= -sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 h1:gBQPwqORJ8d8/YNZWEjoZs7npUVDpVXUUOFfW6CgAqE= -sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg= +sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 h1:IpInykpT6ceI+QxKBbEflcR5EXP7sU1kvOlxwZh5txg= +sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg= sigs.k8s.io/randfill v1.0.0 h1:JfjMILfT8A6RbawdsK2JXGBR5AQVfd+9TbzrlneTyrU= sigs.k8s.io/randfill v1.0.0/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY= sigs.k8s.io/structured-merge-diff/v6 v6.3.0 h1:jTijUJbW353oVOd9oTlifJqOGEkUw2jB/fXCbTiQEco= diff --git a/hack/update-codegen-clients.sh b/hack/update-codegen-clients.sh index 9c9db307200..089a7cda663 100755 --- a/hack/update-codegen-clients.sh +++ b/hack/update-codegen-clients.sh @@ -131,6 +131,26 @@ cd - go install "${OPENAPI_PKG}"/cmd/openapi-gen +# Run openapi-gen in two passes: +# 1) First pass (only kcp APIs) generates zz_generated.model_name.go. +# 2) Second pass (kcp APIs + upstream k8s.io types) generates the full zz_generated.openapi.go. +# +# We cannot do this in a single pass because when model_name generation includes k8s.io inputs, +# openapi-gen tries to rewrite license headers in k8s.io packages, which fails with permission errors. +"$GOPATH"/bin/openapi-gen \ + --go-header-file "${BOILERPLATE_HEADER}" \ + --output-pkg github.com/kcp-dev/kcp/pkg/openapi \ + --output-file zz_generated.openapi.go \ + --output-model-name-file zz_generated.model_name.go \ + --output-dir "${SCRIPT_ROOT}/pkg/openapi" \ + github.com/kcp-dev/sdk/apis/core/v1alpha1 \ + github.com/kcp-dev/sdk/apis/tenancy/v1alpha1 \ + github.com/kcp-dev/sdk/apis/apis/v1alpha1 \ + github.com/kcp-dev/sdk/apis/apis/v1alpha2 \ + github.com/kcp-dev/sdk/apis/topology/v1alpha1 \ + github.com/kcp-dev/sdk/apis/cache/v1alpha1 \ + github.com/kcp-dev/sdk/apis/third_party/conditions/apis/conditions/v1alpha1 + "$GOPATH"/bin/openapi-gen \ --go-header-file "${BOILERPLATE_HEADER}" \ --output-pkg github.com/kcp-dev/kcp/pkg/openapi \ diff --git a/pkg/admission/apiresourceschema/validation.go b/pkg/admission/apiresourceschema/validation.go index 8b96b885de2..c4c83f363cb 100644 --- a/pkg/admission/apiresourceschema/validation.go +++ b/pkg/admission/apiresourceschema/validation.go @@ -183,7 +183,7 @@ var defaultValidationOpts = crdvalidation.ValidationOptions{ RequireAtomicSetType: true, RequireMapListKeysMapSetValidation: true, - CELEnvironmentSet: environment.MustBaseEnvSet(environment.DefaultCompatibilityVersion(), true), + CELEnvironmentSet: environment.MustBaseEnvSet(environment.DefaultCompatibilityVersion()), } func ValidateAPIResourceVersion(ctx context.Context, version *apisv1alpha1.APIResourceVersion, fldPath *field.Path) field.ErrorList { diff --git a/pkg/admission/apiresourceschema/validation_test.go b/pkg/admission/apiresourceschema/validation_test.go index 09501c14aeb..d1f663c1e9d 100644 --- a/pkg/admission/apiresourceschema/validation_test.go +++ b/pkg/admission/apiresourceschema/validation_test.go @@ -23,6 +23,7 @@ import ( func TestValidationOptionDrift(t *testing.T) { expectedNonBool := map[string]reflect.Kind{ + "AllowTooManySelectableFields": reflect.Map, "DisallowDefaultsReason": reflect.String, "CELEnvironmentSet": reflect.Ptr, "PreexistingExpressions": reflect.Struct, diff --git a/pkg/admission/plugins.go b/pkg/admission/plugins.go index db4452d55d2..6b2fcc19fc9 100644 --- a/pkg/admission/plugins.go +++ b/pkg/admission/plugins.go @@ -33,6 +33,7 @@ import ( "k8s.io/kubernetes/plugin/pkg/admission/defaulttolerationseconds" "k8s.io/kubernetes/plugin/pkg/admission/limitranger" "k8s.io/kubernetes/plugin/pkg/admission/network/defaultingressclass" + "k8s.io/kubernetes/plugin/pkg/admission/nodedeclaredfeatures" "k8s.io/kubernetes/plugin/pkg/admission/nodetaint" "k8s.io/kubernetes/plugin/pkg/admission/podtopologylabels" podpriority "k8s.io/kubernetes/plugin/pkg/admission/priority" @@ -196,6 +197,7 @@ var defaultOnKubePluginsInKube = sets.New[string]( podsecurity.PluginName, // PodSecurity podtopologylabels.PluginName, // PodTopologyLabels mutatingadmissionpolicy.PluginName, // MutatingAdmissionPolicy + nodedeclaredfeatures.PluginName, // NodeDeclaredFeatureValidator ) // DefaultOffAdmissionPlugins get admission plugins off by default for kcp. diff --git a/pkg/authorization/workspace_content_authorizer_test.go b/pkg/authorization/workspace_content_authorizer_test.go index cf73b1408af..51c2d7461a8 100644 --- a/pkg/authorization/workspace_content_authorizer_test.go +++ b/pkg/authorization/workspace_content_authorizer_test.go @@ -228,9 +228,10 @@ func TestWorkspaceContentAuthorizer(t *testing.T) { }, } { t.Run(tt.testName, func(t *testing.T) { - ctx := context.Background() + ctx, cancel := context.WithCancel(context.Background()) + t.Cleanup(cancel) - localKubeClient := kcpfakeclient.NewSimpleClientset( + localKubeClient := kcpfakeclient.NewSimpleClientset( //nolint:staticcheck &v1.ClusterRole{ ObjectMeta: metav1.ObjectMeta{ Annotations: map[string]string{ @@ -326,7 +327,7 @@ func TestWorkspaceContentAuthorizer(t *testing.T) { }, }, ) - globalKubeClient := kcpfakeclient.NewSimpleClientset() // TODO(sttts): add some global fixtures + globalKubeClient := kcpfakeclient.NewSimpleClientset() //nolint:staticcheck // TODO(sttts): add some global fixtures local := kcpkubernetesinformers.NewSharedInformerFactory(localKubeClient, controller.NoResyncPeriodFunc()) global := kcpkubernetesinformers.NewSharedInformerFactory(globalKubeClient, controller.NoResyncPeriodFunc()) informers := []cache.SharedIndexInformer{ diff --git a/pkg/openapi/zz_generated.openapi.go b/pkg/openapi/zz_generated.openapi.go index 9cdb0914dee..e57dd1cedfd 100644 --- a/pkg/openapi/zz_generated.openapi.go +++ b/pkg/openapi/zz_generated.openapi.go @@ -23,189 +23,199 @@ package openapi import ( v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + version "k8s.io/apimachinery/pkg/version" common "k8s.io/kube-openapi/pkg/common" spec "k8s.io/kube-openapi/pkg/validation/spec" + + v1alpha1 "github.com/kcp-dev/sdk/apis/apis/v1alpha1" + v1alpha2 "github.com/kcp-dev/sdk/apis/apis/v1alpha2" + cachev1alpha1 "github.com/kcp-dev/sdk/apis/cache/v1alpha1" + corev1alpha1 "github.com/kcp-dev/sdk/apis/core/v1alpha1" + tenancyv1alpha1 "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1" + conditionsv1alpha1 "github.com/kcp-dev/sdk/apis/third_party/conditions/apis/conditions/v1alpha1" + topologyv1alpha1 "github.com/kcp-dev/sdk/apis/topology/v1alpha1" ) func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenAPIDefinition { return map[string]common.OpenAPIDefinition{ - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIBinding": schema_sdk_apis_apis_v1alpha1_APIBinding(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIBindingList": schema_sdk_apis_apis_v1alpha1_APIBindingList(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIBindingSpec": schema_sdk_apis_apis_v1alpha1_APIBindingSpec(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIBindingStatus": schema_sdk_apis_apis_v1alpha1_APIBindingStatus(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIConversion": schema_sdk_apis_apis_v1alpha1_APIConversion(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIConversionList": schema_sdk_apis_apis_v1alpha1_APIConversionList(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIConversionRule": schema_sdk_apis_apis_v1alpha1_APIConversionRule(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIConversionSpec": schema_sdk_apis_apis_v1alpha1_APIConversionSpec(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIExport": schema_sdk_apis_apis_v1alpha1_APIExport(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIExportEndpoint": schema_sdk_apis_apis_v1alpha1_APIExportEndpoint(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIExportEndpointSlice": schema_sdk_apis_apis_v1alpha1_APIExportEndpointSlice(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIExportEndpointSliceList": schema_sdk_apis_apis_v1alpha1_APIExportEndpointSliceList(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIExportEndpointSliceSpec": schema_sdk_apis_apis_v1alpha1_APIExportEndpointSliceSpec(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIExportEndpointSliceStatus": schema_sdk_apis_apis_v1alpha1_APIExportEndpointSliceStatus(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIExportList": schema_sdk_apis_apis_v1alpha1_APIExportList(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIExportSpec": schema_sdk_apis_apis_v1alpha1_APIExportSpec(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIExportStatus": schema_sdk_apis_apis_v1alpha1_APIExportStatus(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIResourceSchema": schema_sdk_apis_apis_v1alpha1_APIResourceSchema(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIResourceSchemaList": schema_sdk_apis_apis_v1alpha1_APIResourceSchemaList(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIResourceSchemaSpec": schema_sdk_apis_apis_v1alpha1_APIResourceSchemaSpec(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIResourceVersion": schema_sdk_apis_apis_v1alpha1_APIResourceVersion(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIVersionConversion": schema_sdk_apis_apis_v1alpha1_APIVersionConversion(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.AcceptablePermissionClaim": schema_sdk_apis_apis_v1alpha1_AcceptablePermissionClaim(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.BindingReference": schema_sdk_apis_apis_v1alpha1_BindingReference(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.BoundAPIResource": schema_sdk_apis_apis_v1alpha1_BoundAPIResource(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.BoundAPIResourceSchema": schema_sdk_apis_apis_v1alpha1_BoundAPIResourceSchema(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.CustomResourceConversion": schema_sdk_apis_apis_v1alpha1_CustomResourceConversion(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.ExportBindingReference": schema_sdk_apis_apis_v1alpha1_ExportBindingReference(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.GroupResource": schema_sdk_apis_apis_v1alpha1_GroupResource(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.Identity": schema_sdk_apis_apis_v1alpha1_Identity(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.LocalAPIExportPolicy": schema_sdk_apis_apis_v1alpha1_LocalAPIExportPolicy(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.MaximalPermissionPolicy": schema_sdk_apis_apis_v1alpha1_MaximalPermissionPolicy(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.PermissionClaim": schema_sdk_apis_apis_v1alpha1_PermissionClaim(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.ResourceSelector": schema_sdk_apis_apis_v1alpha1_ResourceSelector(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.VirtualWorkspace": schema_sdk_apis_apis_v1alpha1_VirtualWorkspace(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.WebhookClientConfig": schema_sdk_apis_apis_v1alpha1_WebhookClientConfig(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.WebhookConversion": schema_sdk_apis_apis_v1alpha1_WebhookConversion(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha2.APIBinding": schema_sdk_apis_apis_v1alpha2_APIBinding(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha2.APIBindingList": schema_sdk_apis_apis_v1alpha2_APIBindingList(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha2.APIBindingSpec": schema_sdk_apis_apis_v1alpha2_APIBindingSpec(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha2.APIBindingStatus": schema_sdk_apis_apis_v1alpha2_APIBindingStatus(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha2.APIExport": schema_sdk_apis_apis_v1alpha2_APIExport(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha2.APIExportList": schema_sdk_apis_apis_v1alpha2_APIExportList(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha2.APIExportSpec": schema_sdk_apis_apis_v1alpha2_APIExportSpec(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha2.APIExportStatus": schema_sdk_apis_apis_v1alpha2_APIExportStatus(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha2.AcceptablePermissionClaim": schema_sdk_apis_apis_v1alpha2_AcceptablePermissionClaim(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha2.BindingReference": schema_sdk_apis_apis_v1alpha2_BindingReference(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha2.BoundAPIResource": schema_sdk_apis_apis_v1alpha2_BoundAPIResource(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha2.BoundAPIResourceSchema": schema_sdk_apis_apis_v1alpha2_BoundAPIResourceSchema(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha2.ExportBindingReference": schema_sdk_apis_apis_v1alpha2_ExportBindingReference(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha2.GroupResource": schema_sdk_apis_apis_v1alpha2_GroupResource(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha2.Identity": schema_sdk_apis_apis_v1alpha2_Identity(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha2.LocalAPIExportPolicy": schema_sdk_apis_apis_v1alpha2_LocalAPIExportPolicy(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha2.MaximalPermissionPolicy": schema_sdk_apis_apis_v1alpha2_MaximalPermissionPolicy(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha2.PermissionClaim": schema_sdk_apis_apis_v1alpha2_PermissionClaim(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha2.PermissionClaimSelector": schema_sdk_apis_apis_v1alpha2_PermissionClaimSelector(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha2.ResourceSchema": schema_sdk_apis_apis_v1alpha2_ResourceSchema(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha2.ResourceSchemaStorage": schema_sdk_apis_apis_v1alpha2_ResourceSchemaStorage(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha2.ResourceSchemaStorageCRD": schema_sdk_apis_apis_v1alpha2_ResourceSchemaStorageCRD(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha2.ResourceSchemaStorageVirtual": schema_sdk_apis_apis_v1alpha2_ResourceSchemaStorageVirtual(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha2.ResourceSelector": schema_sdk_apis_apis_v1alpha2_ResourceSelector(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha2.ScopedPermissionClaim": schema_sdk_apis_apis_v1alpha2_ScopedPermissionClaim(ref), - "github.com/kcp-dev/sdk/apis/apis/v1alpha2.VirtualWorkspace": schema_sdk_apis_apis_v1alpha2_VirtualWorkspace(ref), - "github.com/kcp-dev/sdk/apis/cache/v1alpha1.CachedObject": schema_sdk_apis_cache_v1alpha1_CachedObject(ref), - "github.com/kcp-dev/sdk/apis/cache/v1alpha1.CachedObjectList": schema_sdk_apis_cache_v1alpha1_CachedObjectList(ref), - "github.com/kcp-dev/sdk/apis/cache/v1alpha1.CachedObjectSpec": schema_sdk_apis_cache_v1alpha1_CachedObjectSpec(ref), - "github.com/kcp-dev/sdk/apis/cache/v1alpha1.CachedResource": schema_sdk_apis_cache_v1alpha1_CachedResource(ref), - "github.com/kcp-dev/sdk/apis/cache/v1alpha1.CachedResourceEndpoint": schema_sdk_apis_cache_v1alpha1_CachedResourceEndpoint(ref), - "github.com/kcp-dev/sdk/apis/cache/v1alpha1.CachedResourceEndpointSlice": schema_sdk_apis_cache_v1alpha1_CachedResourceEndpointSlice(ref), - "github.com/kcp-dev/sdk/apis/cache/v1alpha1.CachedResourceEndpointSliceList": schema_sdk_apis_cache_v1alpha1_CachedResourceEndpointSliceList(ref), - "github.com/kcp-dev/sdk/apis/cache/v1alpha1.CachedResourceEndpointSliceSpec": schema_sdk_apis_cache_v1alpha1_CachedResourceEndpointSliceSpec(ref), - "github.com/kcp-dev/sdk/apis/cache/v1alpha1.CachedResourceEndpointSliceStatus": schema_sdk_apis_cache_v1alpha1_CachedResourceEndpointSliceStatus(ref), - "github.com/kcp-dev/sdk/apis/cache/v1alpha1.CachedResourceList": schema_sdk_apis_cache_v1alpha1_CachedResourceList(ref), - "github.com/kcp-dev/sdk/apis/cache/v1alpha1.CachedResourceReference": schema_sdk_apis_cache_v1alpha1_CachedResourceReference(ref), - "github.com/kcp-dev/sdk/apis/cache/v1alpha1.CachedResourceSpec": schema_sdk_apis_cache_v1alpha1_CachedResourceSpec(ref), - "github.com/kcp-dev/sdk/apis/cache/v1alpha1.CachedResourceStatus": schema_sdk_apis_cache_v1alpha1_CachedResourceStatus(ref), - "github.com/kcp-dev/sdk/apis/cache/v1alpha1.GroupVersionResource": schema_sdk_apis_cache_v1alpha1_GroupVersionResource(ref), - "github.com/kcp-dev/sdk/apis/cache/v1alpha1.Identity": schema_sdk_apis_cache_v1alpha1_Identity(ref), - "github.com/kcp-dev/sdk/apis/cache/v1alpha1.ResourceCount": schema_sdk_apis_cache_v1alpha1_ResourceCount(ref), - "github.com/kcp-dev/sdk/apis/core/v1alpha1.LogicalCluster": schema_sdk_apis_core_v1alpha1_LogicalCluster(ref), - "github.com/kcp-dev/sdk/apis/core/v1alpha1.LogicalClusterList": schema_sdk_apis_core_v1alpha1_LogicalClusterList(ref), - "github.com/kcp-dev/sdk/apis/core/v1alpha1.LogicalClusterOwner": schema_sdk_apis_core_v1alpha1_LogicalClusterOwner(ref), - "github.com/kcp-dev/sdk/apis/core/v1alpha1.LogicalClusterSpec": schema_sdk_apis_core_v1alpha1_LogicalClusterSpec(ref), - "github.com/kcp-dev/sdk/apis/core/v1alpha1.LogicalClusterStatus": schema_sdk_apis_core_v1alpha1_LogicalClusterStatus(ref), - "github.com/kcp-dev/sdk/apis/core/v1alpha1.Shard": schema_sdk_apis_core_v1alpha1_Shard(ref), - "github.com/kcp-dev/sdk/apis/core/v1alpha1.ShardList": schema_sdk_apis_core_v1alpha1_ShardList(ref), - "github.com/kcp-dev/sdk/apis/core/v1alpha1.ShardSpec": schema_sdk_apis_core_v1alpha1_ShardSpec(ref), - "github.com/kcp-dev/sdk/apis/core/v1alpha1.ShardStatus": schema_sdk_apis_core_v1alpha1_ShardStatus(ref), - "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.APIExportReference": schema_sdk_apis_tenancy_v1alpha1_APIExportReference(ref), - "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.AuthenticationConfigurationReference": schema_sdk_apis_tenancy_v1alpha1_AuthenticationConfigurationReference(ref), - "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.ClaimMappings": schema_sdk_apis_tenancy_v1alpha1_ClaimMappings(ref), - "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.ClaimOrExpression": schema_sdk_apis_tenancy_v1alpha1_ClaimOrExpression(ref), - "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.ClaimValidationRule": schema_sdk_apis_tenancy_v1alpha1_ClaimValidationRule(ref), - "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.ExtraMapping": schema_sdk_apis_tenancy_v1alpha1_ExtraMapping(ref), - "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.Issuer": schema_sdk_apis_tenancy_v1alpha1_Issuer(ref), - "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.JWTAuthenticator": schema_sdk_apis_tenancy_v1alpha1_JWTAuthenticator(ref), - "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.Mount": schema_sdk_apis_tenancy_v1alpha1_Mount(ref), - "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.ObjectReference": schema_sdk_apis_tenancy_v1alpha1_ObjectReference(ref), - "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.PrefixedClaimOrExpression": schema_sdk_apis_tenancy_v1alpha1_PrefixedClaimOrExpression(ref), - "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.UserValidationRule": schema_sdk_apis_tenancy_v1alpha1_UserValidationRule(ref), - "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.VirtualWorkspace": schema_sdk_apis_tenancy_v1alpha1_VirtualWorkspace(ref), - "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.Workspace": schema_sdk_apis_tenancy_v1alpha1_Workspace(ref), - "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.WorkspaceAuthenticationConfiguration": schema_sdk_apis_tenancy_v1alpha1_WorkspaceAuthenticationConfiguration(ref), - "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.WorkspaceAuthenticationConfigurationList": schema_sdk_apis_tenancy_v1alpha1_WorkspaceAuthenticationConfigurationList(ref), - "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.WorkspaceAuthenticationConfigurationSpec": schema_sdk_apis_tenancy_v1alpha1_WorkspaceAuthenticationConfigurationSpec(ref), - "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.WorkspaceList": schema_sdk_apis_tenancy_v1alpha1_WorkspaceList(ref), - "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.WorkspaceLocation": schema_sdk_apis_tenancy_v1alpha1_WorkspaceLocation(ref), - "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.WorkspaceSpec": schema_sdk_apis_tenancy_v1alpha1_WorkspaceSpec(ref), - "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.WorkspaceStatus": schema_sdk_apis_tenancy_v1alpha1_WorkspaceStatus(ref), - "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.WorkspaceType": schema_sdk_apis_tenancy_v1alpha1_WorkspaceType(ref), - "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.WorkspaceTypeExtension": schema_sdk_apis_tenancy_v1alpha1_WorkspaceTypeExtension(ref), - "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.WorkspaceTypeList": schema_sdk_apis_tenancy_v1alpha1_WorkspaceTypeList(ref), - "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.WorkspaceTypeReference": schema_sdk_apis_tenancy_v1alpha1_WorkspaceTypeReference(ref), - "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.WorkspaceTypeSelector": schema_sdk_apis_tenancy_v1alpha1_WorkspaceTypeSelector(ref), - "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.WorkspaceTypeSpec": schema_sdk_apis_tenancy_v1alpha1_WorkspaceTypeSpec(ref), - "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.WorkspaceTypeStatus": schema_sdk_apis_tenancy_v1alpha1_WorkspaceTypeStatus(ref), - "github.com/kcp-dev/sdk/apis/third_party/conditions/apis/conditions/v1alpha1.Condition": schema_conditions_apis_conditions_v1alpha1_Condition(ref), - "github.com/kcp-dev/sdk/apis/topology/v1alpha1.Partition": schema_sdk_apis_topology_v1alpha1_Partition(ref), - "github.com/kcp-dev/sdk/apis/topology/v1alpha1.PartitionList": schema_sdk_apis_topology_v1alpha1_PartitionList(ref), - "github.com/kcp-dev/sdk/apis/topology/v1alpha1.PartitionSet": schema_sdk_apis_topology_v1alpha1_PartitionSet(ref), - "github.com/kcp-dev/sdk/apis/topology/v1alpha1.PartitionSetList": schema_sdk_apis_topology_v1alpha1_PartitionSetList(ref), - "github.com/kcp-dev/sdk/apis/topology/v1alpha1.PartitionSetSpec": schema_sdk_apis_topology_v1alpha1_PartitionSetSpec(ref), - "github.com/kcp-dev/sdk/apis/topology/v1alpha1.PartitionSetStatus": schema_sdk_apis_topology_v1alpha1_PartitionSetStatus(ref), - "github.com/kcp-dev/sdk/apis/topology/v1alpha1.PartitionSpec": schema_sdk_apis_topology_v1alpha1_PartitionSpec(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.APIGroup": schema_pkg_apis_meta_v1_APIGroup(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.APIGroupList": schema_pkg_apis_meta_v1_APIGroupList(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.APIResource": schema_pkg_apis_meta_v1_APIResource(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.APIResourceList": schema_pkg_apis_meta_v1_APIResourceList(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.APIVersions": schema_pkg_apis_meta_v1_APIVersions(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.ApplyOptions": schema_pkg_apis_meta_v1_ApplyOptions(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.Condition": schema_pkg_apis_meta_v1_Condition(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.CreateOptions": schema_pkg_apis_meta_v1_CreateOptions(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.DeleteOptions": schema_pkg_apis_meta_v1_DeleteOptions(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.Duration": schema_pkg_apis_meta_v1_Duration(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.FieldSelectorRequirement": schema_pkg_apis_meta_v1_FieldSelectorRequirement(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.FieldsV1": schema_pkg_apis_meta_v1_FieldsV1(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.GetOptions": schema_pkg_apis_meta_v1_GetOptions(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.GroupKind": schema_pkg_apis_meta_v1_GroupKind(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.GroupResource": schema_pkg_apis_meta_v1_GroupResource(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.GroupVersion": schema_pkg_apis_meta_v1_GroupVersion(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.GroupVersionForDiscovery": schema_pkg_apis_meta_v1_GroupVersionForDiscovery(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.GroupVersionKind": schema_pkg_apis_meta_v1_GroupVersionKind(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.GroupVersionResource": schema_pkg_apis_meta_v1_GroupVersionResource(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.InternalEvent": schema_pkg_apis_meta_v1_InternalEvent(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector": schema_pkg_apis_meta_v1_LabelSelector(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelectorRequirement": schema_pkg_apis_meta_v1_LabelSelectorRequirement(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.List": schema_pkg_apis_meta_v1_List(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta": schema_pkg_apis_meta_v1_ListMeta(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.ListOptions": schema_pkg_apis_meta_v1_ListOptions(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.ManagedFieldsEntry": schema_pkg_apis_meta_v1_ManagedFieldsEntry(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.MicroTime": schema_pkg_apis_meta_v1_MicroTime(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta": schema_pkg_apis_meta_v1_ObjectMeta(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.OwnerReference": schema_pkg_apis_meta_v1_OwnerReference(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.PartialObjectMetadata": schema_pkg_apis_meta_v1_PartialObjectMetadata(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.PartialObjectMetadataList": schema_pkg_apis_meta_v1_PartialObjectMetadataList(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.Patch": schema_pkg_apis_meta_v1_Patch(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.PatchOptions": schema_pkg_apis_meta_v1_PatchOptions(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.Preconditions": schema_pkg_apis_meta_v1_Preconditions(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.RootPaths": schema_pkg_apis_meta_v1_RootPaths(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.ServerAddressByClientCIDR": schema_pkg_apis_meta_v1_ServerAddressByClientCIDR(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.Status": schema_pkg_apis_meta_v1_Status(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.StatusCause": schema_pkg_apis_meta_v1_StatusCause(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.StatusDetails": schema_pkg_apis_meta_v1_StatusDetails(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.Table": schema_pkg_apis_meta_v1_Table(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.TableColumnDefinition": schema_pkg_apis_meta_v1_TableColumnDefinition(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.TableOptions": schema_pkg_apis_meta_v1_TableOptions(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.TableRow": schema_pkg_apis_meta_v1_TableRow(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.TableRowCondition": schema_pkg_apis_meta_v1_TableRowCondition(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.Time": schema_pkg_apis_meta_v1_Time(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.Timestamp": schema_pkg_apis_meta_v1_Timestamp(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.TypeMeta": schema_pkg_apis_meta_v1_TypeMeta(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.UpdateOptions": schema_pkg_apis_meta_v1_UpdateOptions(ref), - "k8s.io/apimachinery/pkg/apis/meta/v1.WatchEvent": schema_pkg_apis_meta_v1_WatchEvent(ref), - "k8s.io/apimachinery/pkg/runtime.RawExtension": schema_k8sio_apimachinery_pkg_runtime_RawExtension(ref), - "k8s.io/apimachinery/pkg/runtime.TypeMeta": schema_k8sio_apimachinery_pkg_runtime_TypeMeta(ref), - "k8s.io/apimachinery/pkg/runtime.Unknown": schema_k8sio_apimachinery_pkg_runtime_Unknown(ref), - "k8s.io/apimachinery/pkg/version.Info": schema_k8sio_apimachinery_pkg_version_Info(ref), + v1alpha1.APIBinding{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha1_APIBinding(ref), + v1alpha1.APIBindingList{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha1_APIBindingList(ref), + v1alpha1.APIBindingSpec{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha1_APIBindingSpec(ref), + v1alpha1.APIBindingStatus{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha1_APIBindingStatus(ref), + v1alpha1.APIConversion{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha1_APIConversion(ref), + v1alpha1.APIConversionList{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha1_APIConversionList(ref), + v1alpha1.APIConversionRule{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha1_APIConversionRule(ref), + v1alpha1.APIConversionSpec{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha1_APIConversionSpec(ref), + v1alpha1.APIExport{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha1_APIExport(ref), + v1alpha1.APIExportEndpoint{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha1_APIExportEndpoint(ref), + v1alpha1.APIExportEndpointSlice{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha1_APIExportEndpointSlice(ref), + v1alpha1.APIExportEndpointSliceList{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha1_APIExportEndpointSliceList(ref), + v1alpha1.APIExportEndpointSliceSpec{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha1_APIExportEndpointSliceSpec(ref), + v1alpha1.APIExportEndpointSliceStatus{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha1_APIExportEndpointSliceStatus(ref), + v1alpha1.APIExportList{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha1_APIExportList(ref), + v1alpha1.APIExportSpec{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha1_APIExportSpec(ref), + v1alpha1.APIExportStatus{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha1_APIExportStatus(ref), + v1alpha1.APIResourceSchema{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha1_APIResourceSchema(ref), + v1alpha1.APIResourceSchemaList{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha1_APIResourceSchemaList(ref), + v1alpha1.APIResourceSchemaSpec{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha1_APIResourceSchemaSpec(ref), + v1alpha1.APIResourceVersion{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha1_APIResourceVersion(ref), + v1alpha1.APIVersionConversion{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha1_APIVersionConversion(ref), + v1alpha1.AcceptablePermissionClaim{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha1_AcceptablePermissionClaim(ref), + v1alpha1.BindingReference{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha1_BindingReference(ref), + v1alpha1.BoundAPIResource{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha1_BoundAPIResource(ref), + v1alpha1.BoundAPIResourceSchema{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha1_BoundAPIResourceSchema(ref), + v1alpha1.CustomResourceConversion{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha1_CustomResourceConversion(ref), + v1alpha1.ExportBindingReference{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha1_ExportBindingReference(ref), + v1alpha1.GroupResource{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha1_GroupResource(ref), + v1alpha1.Identity{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha1_Identity(ref), + v1alpha1.LocalAPIExportPolicy{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha1_LocalAPIExportPolicy(ref), + v1alpha1.MaximalPermissionPolicy{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha1_MaximalPermissionPolicy(ref), + v1alpha1.PermissionClaim{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha1_PermissionClaim(ref), + v1alpha1.ResourceSelector{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha1_ResourceSelector(ref), + v1alpha1.VirtualWorkspace{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha1_VirtualWorkspace(ref), + v1alpha1.WebhookClientConfig{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha1_WebhookClientConfig(ref), + v1alpha1.WebhookConversion{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha1_WebhookConversion(ref), + v1alpha2.APIBinding{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha2_APIBinding(ref), + v1alpha2.APIBindingList{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha2_APIBindingList(ref), + v1alpha2.APIBindingSpec{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha2_APIBindingSpec(ref), + v1alpha2.APIBindingStatus{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha2_APIBindingStatus(ref), + v1alpha2.APIExport{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha2_APIExport(ref), + v1alpha2.APIExportList{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha2_APIExportList(ref), + v1alpha2.APIExportSpec{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha2_APIExportSpec(ref), + v1alpha2.APIExportStatus{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha2_APIExportStatus(ref), + v1alpha2.AcceptablePermissionClaim{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha2_AcceptablePermissionClaim(ref), + v1alpha2.BindingReference{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha2_BindingReference(ref), + v1alpha2.BoundAPIResource{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha2_BoundAPIResource(ref), + v1alpha2.BoundAPIResourceSchema{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha2_BoundAPIResourceSchema(ref), + v1alpha2.ExportBindingReference{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha2_ExportBindingReference(ref), + v1alpha2.GroupResource{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha2_GroupResource(ref), + v1alpha2.Identity{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha2_Identity(ref), + v1alpha2.LocalAPIExportPolicy{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha2_LocalAPIExportPolicy(ref), + v1alpha2.MaximalPermissionPolicy{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha2_MaximalPermissionPolicy(ref), + v1alpha2.PermissionClaim{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha2_PermissionClaim(ref), + v1alpha2.PermissionClaimSelector{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha2_PermissionClaimSelector(ref), + v1alpha2.ResourceSchema{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha2_ResourceSchema(ref), + v1alpha2.ResourceSchemaStorage{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha2_ResourceSchemaStorage(ref), + v1alpha2.ResourceSchemaStorageCRD{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha2_ResourceSchemaStorageCRD(ref), + v1alpha2.ResourceSchemaStorageVirtual{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha2_ResourceSchemaStorageVirtual(ref), + v1alpha2.ResourceSelector{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha2_ResourceSelector(ref), + v1alpha2.ScopedPermissionClaim{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha2_ScopedPermissionClaim(ref), + v1alpha2.VirtualWorkspace{}.OpenAPIModelName(): schema_sdk_apis_apis_v1alpha2_VirtualWorkspace(ref), + cachev1alpha1.CachedObject{}.OpenAPIModelName(): schema_sdk_apis_cache_v1alpha1_CachedObject(ref), + cachev1alpha1.CachedObjectList{}.OpenAPIModelName(): schema_sdk_apis_cache_v1alpha1_CachedObjectList(ref), + cachev1alpha1.CachedObjectSpec{}.OpenAPIModelName(): schema_sdk_apis_cache_v1alpha1_CachedObjectSpec(ref), + cachev1alpha1.CachedResource{}.OpenAPIModelName(): schema_sdk_apis_cache_v1alpha1_CachedResource(ref), + cachev1alpha1.CachedResourceEndpoint{}.OpenAPIModelName(): schema_sdk_apis_cache_v1alpha1_CachedResourceEndpoint(ref), + cachev1alpha1.CachedResourceEndpointSlice{}.OpenAPIModelName(): schema_sdk_apis_cache_v1alpha1_CachedResourceEndpointSlice(ref), + cachev1alpha1.CachedResourceEndpointSliceList{}.OpenAPIModelName(): schema_sdk_apis_cache_v1alpha1_CachedResourceEndpointSliceList(ref), + cachev1alpha1.CachedResourceEndpointSliceSpec{}.OpenAPIModelName(): schema_sdk_apis_cache_v1alpha1_CachedResourceEndpointSliceSpec(ref), + cachev1alpha1.CachedResourceEndpointSliceStatus{}.OpenAPIModelName(): schema_sdk_apis_cache_v1alpha1_CachedResourceEndpointSliceStatus(ref), + cachev1alpha1.CachedResourceList{}.OpenAPIModelName(): schema_sdk_apis_cache_v1alpha1_CachedResourceList(ref), + cachev1alpha1.CachedResourceReference{}.OpenAPIModelName(): schema_sdk_apis_cache_v1alpha1_CachedResourceReference(ref), + cachev1alpha1.CachedResourceSpec{}.OpenAPIModelName(): schema_sdk_apis_cache_v1alpha1_CachedResourceSpec(ref), + cachev1alpha1.CachedResourceStatus{}.OpenAPIModelName(): schema_sdk_apis_cache_v1alpha1_CachedResourceStatus(ref), + cachev1alpha1.GroupVersionResource{}.OpenAPIModelName(): schema_sdk_apis_cache_v1alpha1_GroupVersionResource(ref), + cachev1alpha1.Identity{}.OpenAPIModelName(): schema_sdk_apis_cache_v1alpha1_Identity(ref), + cachev1alpha1.ResourceCount{}.OpenAPIModelName(): schema_sdk_apis_cache_v1alpha1_ResourceCount(ref), + corev1alpha1.LogicalCluster{}.OpenAPIModelName(): schema_sdk_apis_core_v1alpha1_LogicalCluster(ref), + corev1alpha1.LogicalClusterList{}.OpenAPIModelName(): schema_sdk_apis_core_v1alpha1_LogicalClusterList(ref), + corev1alpha1.LogicalClusterOwner{}.OpenAPIModelName(): schema_sdk_apis_core_v1alpha1_LogicalClusterOwner(ref), + corev1alpha1.LogicalClusterSpec{}.OpenAPIModelName(): schema_sdk_apis_core_v1alpha1_LogicalClusterSpec(ref), + corev1alpha1.LogicalClusterStatus{}.OpenAPIModelName(): schema_sdk_apis_core_v1alpha1_LogicalClusterStatus(ref), + corev1alpha1.Shard{}.OpenAPIModelName(): schema_sdk_apis_core_v1alpha1_Shard(ref), + corev1alpha1.ShardList{}.OpenAPIModelName(): schema_sdk_apis_core_v1alpha1_ShardList(ref), + corev1alpha1.ShardSpec{}.OpenAPIModelName(): schema_sdk_apis_core_v1alpha1_ShardSpec(ref), + corev1alpha1.ShardStatus{}.OpenAPIModelName(): schema_sdk_apis_core_v1alpha1_ShardStatus(ref), + tenancyv1alpha1.APIExportReference{}.OpenAPIModelName(): schema_sdk_apis_tenancy_v1alpha1_APIExportReference(ref), + tenancyv1alpha1.AuthenticationConfigurationReference{}.OpenAPIModelName(): schema_sdk_apis_tenancy_v1alpha1_AuthenticationConfigurationReference(ref), + tenancyv1alpha1.ClaimMappings{}.OpenAPIModelName(): schema_sdk_apis_tenancy_v1alpha1_ClaimMappings(ref), + tenancyv1alpha1.ClaimOrExpression{}.OpenAPIModelName(): schema_sdk_apis_tenancy_v1alpha1_ClaimOrExpression(ref), + tenancyv1alpha1.ClaimValidationRule{}.OpenAPIModelName(): schema_sdk_apis_tenancy_v1alpha1_ClaimValidationRule(ref), + tenancyv1alpha1.ExtraMapping{}.OpenAPIModelName(): schema_sdk_apis_tenancy_v1alpha1_ExtraMapping(ref), + tenancyv1alpha1.Issuer{}.OpenAPIModelName(): schema_sdk_apis_tenancy_v1alpha1_Issuer(ref), + tenancyv1alpha1.JWTAuthenticator{}.OpenAPIModelName(): schema_sdk_apis_tenancy_v1alpha1_JWTAuthenticator(ref), + tenancyv1alpha1.Mount{}.OpenAPIModelName(): schema_sdk_apis_tenancy_v1alpha1_Mount(ref), + tenancyv1alpha1.ObjectReference{}.OpenAPIModelName(): schema_sdk_apis_tenancy_v1alpha1_ObjectReference(ref), + tenancyv1alpha1.PrefixedClaimOrExpression{}.OpenAPIModelName(): schema_sdk_apis_tenancy_v1alpha1_PrefixedClaimOrExpression(ref), + tenancyv1alpha1.UserValidationRule{}.OpenAPIModelName(): schema_sdk_apis_tenancy_v1alpha1_UserValidationRule(ref), + tenancyv1alpha1.VirtualWorkspace{}.OpenAPIModelName(): schema_sdk_apis_tenancy_v1alpha1_VirtualWorkspace(ref), + tenancyv1alpha1.Workspace{}.OpenAPIModelName(): schema_sdk_apis_tenancy_v1alpha1_Workspace(ref), + tenancyv1alpha1.WorkspaceAuthenticationConfiguration{}.OpenAPIModelName(): schema_sdk_apis_tenancy_v1alpha1_WorkspaceAuthenticationConfiguration(ref), + tenancyv1alpha1.WorkspaceAuthenticationConfigurationList{}.OpenAPIModelName(): schema_sdk_apis_tenancy_v1alpha1_WorkspaceAuthenticationConfigurationList(ref), + tenancyv1alpha1.WorkspaceAuthenticationConfigurationSpec{}.OpenAPIModelName(): schema_sdk_apis_tenancy_v1alpha1_WorkspaceAuthenticationConfigurationSpec(ref), + tenancyv1alpha1.WorkspaceList{}.OpenAPIModelName(): schema_sdk_apis_tenancy_v1alpha1_WorkspaceList(ref), + tenancyv1alpha1.WorkspaceLocation{}.OpenAPIModelName(): schema_sdk_apis_tenancy_v1alpha1_WorkspaceLocation(ref), + tenancyv1alpha1.WorkspaceSpec{}.OpenAPIModelName(): schema_sdk_apis_tenancy_v1alpha1_WorkspaceSpec(ref), + tenancyv1alpha1.WorkspaceStatus{}.OpenAPIModelName(): schema_sdk_apis_tenancy_v1alpha1_WorkspaceStatus(ref), + tenancyv1alpha1.WorkspaceType{}.OpenAPIModelName(): schema_sdk_apis_tenancy_v1alpha1_WorkspaceType(ref), + tenancyv1alpha1.WorkspaceTypeExtension{}.OpenAPIModelName(): schema_sdk_apis_tenancy_v1alpha1_WorkspaceTypeExtension(ref), + tenancyv1alpha1.WorkspaceTypeList{}.OpenAPIModelName(): schema_sdk_apis_tenancy_v1alpha1_WorkspaceTypeList(ref), + tenancyv1alpha1.WorkspaceTypeReference{}.OpenAPIModelName(): schema_sdk_apis_tenancy_v1alpha1_WorkspaceTypeReference(ref), + tenancyv1alpha1.WorkspaceTypeSelector{}.OpenAPIModelName(): schema_sdk_apis_tenancy_v1alpha1_WorkspaceTypeSelector(ref), + tenancyv1alpha1.WorkspaceTypeSpec{}.OpenAPIModelName(): schema_sdk_apis_tenancy_v1alpha1_WorkspaceTypeSpec(ref), + tenancyv1alpha1.WorkspaceTypeStatus{}.OpenAPIModelName(): schema_sdk_apis_tenancy_v1alpha1_WorkspaceTypeStatus(ref), + conditionsv1alpha1.Condition{}.OpenAPIModelName(): schema_conditions_apis_conditions_v1alpha1_Condition(ref), + topologyv1alpha1.Partition{}.OpenAPIModelName(): schema_sdk_apis_topology_v1alpha1_Partition(ref), + topologyv1alpha1.PartitionList{}.OpenAPIModelName(): schema_sdk_apis_topology_v1alpha1_PartitionList(ref), + topologyv1alpha1.PartitionSet{}.OpenAPIModelName(): schema_sdk_apis_topology_v1alpha1_PartitionSet(ref), + topologyv1alpha1.PartitionSetList{}.OpenAPIModelName(): schema_sdk_apis_topology_v1alpha1_PartitionSetList(ref), + topologyv1alpha1.PartitionSetSpec{}.OpenAPIModelName(): schema_sdk_apis_topology_v1alpha1_PartitionSetSpec(ref), + topologyv1alpha1.PartitionSetStatus{}.OpenAPIModelName(): schema_sdk_apis_topology_v1alpha1_PartitionSetStatus(ref), + topologyv1alpha1.PartitionSpec{}.OpenAPIModelName(): schema_sdk_apis_topology_v1alpha1_PartitionSpec(ref), + v1.APIGroup{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_APIGroup(ref), + v1.APIGroupList{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_APIGroupList(ref), + v1.APIResource{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_APIResource(ref), + v1.APIResourceList{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_APIResourceList(ref), + v1.APIVersions{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_APIVersions(ref), + v1.ApplyOptions{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_ApplyOptions(ref), + v1.Condition{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_Condition(ref), + v1.CreateOptions{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_CreateOptions(ref), + v1.DeleteOptions{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_DeleteOptions(ref), + v1.Duration{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_Duration(ref), + v1.FieldSelectorRequirement{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_FieldSelectorRequirement(ref), + v1.FieldsV1{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_FieldsV1(ref), + v1.GetOptions{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_GetOptions(ref), + v1.GroupKind{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_GroupKind(ref), + v1.GroupResource{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_GroupResource(ref), + v1.GroupVersion{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_GroupVersion(ref), + v1.GroupVersionForDiscovery{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_GroupVersionForDiscovery(ref), + v1.GroupVersionKind{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_GroupVersionKind(ref), + v1.GroupVersionResource{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_GroupVersionResource(ref), + v1.InternalEvent{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_InternalEvent(ref), + v1.LabelSelector{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_LabelSelector(ref), + v1.LabelSelectorRequirement{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_LabelSelectorRequirement(ref), + v1.List{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_List(ref), + v1.ListMeta{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_ListMeta(ref), + v1.ListOptions{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_ListOptions(ref), + v1.ManagedFieldsEntry{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_ManagedFieldsEntry(ref), + v1.MicroTime{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_MicroTime(ref), + v1.ObjectMeta{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_ObjectMeta(ref), + v1.OwnerReference{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_OwnerReference(ref), + v1.PartialObjectMetadata{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_PartialObjectMetadata(ref), + v1.PartialObjectMetadataList{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_PartialObjectMetadataList(ref), + v1.Patch{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_Patch(ref), + v1.PatchOptions{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_PatchOptions(ref), + v1.Preconditions{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_Preconditions(ref), + v1.RootPaths{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_RootPaths(ref), + v1.ServerAddressByClientCIDR{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_ServerAddressByClientCIDR(ref), + v1.Status{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_Status(ref), + v1.StatusCause{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_StatusCause(ref), + v1.StatusDetails{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_StatusDetails(ref), + v1.Table{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_Table(ref), + v1.TableColumnDefinition{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_TableColumnDefinition(ref), + v1.TableOptions{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_TableOptions(ref), + v1.TableRow{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_TableRow(ref), + v1.TableRowCondition{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_TableRowCondition(ref), + v1.Time{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_Time(ref), + v1.Timestamp{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_Timestamp(ref), + v1.TypeMeta{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_TypeMeta(ref), + v1.UpdateOptions{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_UpdateOptions(ref), + v1.WatchEvent{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_WatchEvent(ref), + runtime.RawExtension{}.OpenAPIModelName(): schema_k8sio_apimachinery_pkg_runtime_RawExtension(ref), + runtime.TypeMeta{}.OpenAPIModelName(): schema_k8sio_apimachinery_pkg_runtime_TypeMeta(ref), + runtime.Unknown{}.OpenAPIModelName(): schema_k8sio_apimachinery_pkg_runtime_Unknown(ref), + version.Info{}.OpenAPIModelName(): schema_k8sio_apimachinery_pkg_version_Info(ref), } } @@ -233,21 +243,21 @@ func schema_sdk_apis_apis_v1alpha1_APIBinding(ref common.ReferenceCallback) comm "metadata": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), + Ref: ref(v1.ObjectMeta{}.OpenAPIModelName()), }, }, "spec": { SchemaProps: spec.SchemaProps{ Description: "Spec holds the desired state.", Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIBindingSpec"), + Ref: ref(v1alpha1.APIBindingSpec{}.OpenAPIModelName()), }, }, "status": { SchemaProps: spec.SchemaProps{ Description: "Status communicates the observed state.", Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIBindingStatus"), + Ref: ref(v1alpha1.APIBindingStatus{}.OpenAPIModelName()), }, }, }, @@ -255,7 +265,7 @@ func schema_sdk_apis_apis_v1alpha1_APIBinding(ref common.ReferenceCallback) comm }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIBindingSpec", "github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIBindingStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + v1alpha1.APIBindingSpec{}.OpenAPIModelName(), v1alpha1.APIBindingStatus{}.OpenAPIModelName(), v1.ObjectMeta{}.OpenAPIModelName()}, } } @@ -283,7 +293,7 @@ func schema_sdk_apis_apis_v1alpha1_APIBindingList(ref common.ReferenceCallback) "metadata": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), + Ref: ref(v1.ListMeta{}.OpenAPIModelName()), }, }, "items": { @@ -293,7 +303,7 @@ func schema_sdk_apis_apis_v1alpha1_APIBindingList(ref common.ReferenceCallback) Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIBinding"), + Ref: ref(v1alpha1.APIBinding{}.OpenAPIModelName()), }, }, }, @@ -304,7 +314,7 @@ func schema_sdk_apis_apis_v1alpha1_APIBindingList(ref common.ReferenceCallback) }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIBinding", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + v1alpha1.APIBinding{}.OpenAPIModelName(), v1.ListMeta{}.OpenAPIModelName()}, } } @@ -319,7 +329,7 @@ func schema_sdk_apis_apis_v1alpha1_APIBindingSpec(ref common.ReferenceCallback) SchemaProps: spec.SchemaProps{ Description: "reference uniquely identifies an API to bind to.", Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha1.BindingReference"), + Ref: ref(v1alpha1.BindingReference{}.OpenAPIModelName()), }, }, "permissionClaims": { @@ -330,7 +340,7 @@ func schema_sdk_apis_apis_v1alpha1_APIBindingSpec(ref common.ReferenceCallback) Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha1.AcceptablePermissionClaim"), + Ref: ref(v1alpha1.AcceptablePermissionClaim{}.OpenAPIModelName()), }, }, }, @@ -341,7 +351,7 @@ func schema_sdk_apis_apis_v1alpha1_APIBindingSpec(ref common.ReferenceCallback) }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.AcceptablePermissionClaim", "github.com/kcp-dev/sdk/apis/apis/v1alpha1.BindingReference"}, + v1alpha1.AcceptablePermissionClaim{}.OpenAPIModelName(), v1alpha1.BindingReference{}.OpenAPIModelName()}, } } @@ -376,7 +386,7 @@ func schema_sdk_apis_apis_v1alpha1_APIBindingStatus(ref common.ReferenceCallback Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha1.BoundAPIResource"), + Ref: ref(v1alpha1.BoundAPIResource{}.OpenAPIModelName()), }, }, }, @@ -397,7 +407,7 @@ func schema_sdk_apis_apis_v1alpha1_APIBindingStatus(ref common.ReferenceCallback Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/third_party/conditions/apis/conditions/v1alpha1.Condition"), + Ref: ref(conditionsv1alpha1.Condition{}.OpenAPIModelName()), }, }, }, @@ -411,7 +421,7 @@ func schema_sdk_apis_apis_v1alpha1_APIBindingStatus(ref common.ReferenceCallback Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha1.PermissionClaim"), + Ref: ref(v1alpha1.PermissionClaim{}.OpenAPIModelName()), }, }, }, @@ -425,7 +435,7 @@ func schema_sdk_apis_apis_v1alpha1_APIBindingStatus(ref common.ReferenceCallback Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha1.PermissionClaim"), + Ref: ref(v1alpha1.PermissionClaim{}.OpenAPIModelName()), }, }, }, @@ -435,7 +445,7 @@ func schema_sdk_apis_apis_v1alpha1_APIBindingStatus(ref common.ReferenceCallback }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.BoundAPIResource", "github.com/kcp-dev/sdk/apis/apis/v1alpha1.PermissionClaim", "github.com/kcp-dev/sdk/apis/third_party/conditions/apis/conditions/v1alpha1.Condition"}, + v1alpha1.BoundAPIResource{}.OpenAPIModelName(), v1alpha1.PermissionClaim{}.OpenAPIModelName(), conditionsv1alpha1.Condition{}.OpenAPIModelName()}, } } @@ -463,14 +473,14 @@ func schema_sdk_apis_apis_v1alpha1_APIConversion(ref common.ReferenceCallback) c "metadata": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), + Ref: ref(v1.ObjectMeta{}.OpenAPIModelName()), }, }, "spec": { SchemaProps: spec.SchemaProps{ Description: "Spec holds the desired state.", Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIConversionSpec"), + Ref: ref(v1alpha1.APIConversionSpec{}.OpenAPIModelName()), }, }, }, @@ -478,7 +488,7 @@ func schema_sdk_apis_apis_v1alpha1_APIConversion(ref common.ReferenceCallback) c }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIConversionSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + v1alpha1.APIConversionSpec{}.OpenAPIModelName(), v1.ObjectMeta{}.OpenAPIModelName()}, } } @@ -506,7 +516,7 @@ func schema_sdk_apis_apis_v1alpha1_APIConversionList(ref common.ReferenceCallbac "metadata": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), + Ref: ref(v1.ListMeta{}.OpenAPIModelName()), }, }, "items": { @@ -516,7 +526,7 @@ func schema_sdk_apis_apis_v1alpha1_APIConversionList(ref common.ReferenceCallbac Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIConversion"), + Ref: ref(v1alpha1.APIConversion{}.OpenAPIModelName()), }, }, }, @@ -527,7 +537,7 @@ func schema_sdk_apis_apis_v1alpha1_APIConversionList(ref common.ReferenceCallbac }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIConversion", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + v1alpha1.APIConversion{}.OpenAPIModelName(), v1.ListMeta{}.OpenAPIModelName()}, } } @@ -592,7 +602,7 @@ func schema_sdk_apis_apis_v1alpha1_APIConversionSpec(ref common.ReferenceCallbac Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIVersionConversion"), + Ref: ref(v1alpha1.APIVersionConversion{}.OpenAPIModelName()), }, }, }, @@ -603,7 +613,7 @@ func schema_sdk_apis_apis_v1alpha1_APIConversionSpec(ref common.ReferenceCallbac }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIVersionConversion"}, + v1alpha1.APIVersionConversion{}.OpenAPIModelName()}, } } @@ -631,28 +641,28 @@ func schema_sdk_apis_apis_v1alpha1_APIExport(ref common.ReferenceCallback) commo "metadata": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), + Ref: ref(v1.ObjectMeta{}.OpenAPIModelName()), }, }, "spec": { SchemaProps: spec.SchemaProps{ Description: "Spec holds the desired state.", Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIExportSpec"), + Ref: ref(v1alpha1.APIExportSpec{}.OpenAPIModelName()), }, }, "status": { SchemaProps: spec.SchemaProps{ Description: "Status communicates the observed state.", Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIExportStatus"), + Ref: ref(v1alpha1.APIExportStatus{}.OpenAPIModelName()), }, }, }, }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIExportSpec", "github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIExportStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + v1alpha1.APIExportSpec{}.OpenAPIModelName(), v1alpha1.APIExportStatus{}.OpenAPIModelName(), v1.ObjectMeta{}.OpenAPIModelName()}, } } @@ -702,28 +712,28 @@ func schema_sdk_apis_apis_v1alpha1_APIExportEndpointSlice(ref common.ReferenceCa "metadata": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), + Ref: ref(v1.ObjectMeta{}.OpenAPIModelName()), }, }, "spec": { SchemaProps: spec.SchemaProps{ Description: "spec holds the desired state: - the targeted APIExport - an optional partition for filtering", Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIExportEndpointSliceSpec"), + Ref: ref(v1alpha1.APIExportEndpointSliceSpec{}.OpenAPIModelName()), }, }, "status": { SchemaProps: spec.SchemaProps{ Description: "status communicates the observed state: the filtered list of endpoints for the APIExport service.", Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIExportEndpointSliceStatus"), + Ref: ref(v1alpha1.APIExportEndpointSliceStatus{}.OpenAPIModelName()), }, }, }, }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIExportEndpointSliceSpec", "github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIExportEndpointSliceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + v1alpha1.APIExportEndpointSliceSpec{}.OpenAPIModelName(), v1alpha1.APIExportEndpointSliceStatus{}.OpenAPIModelName(), v1.ObjectMeta{}.OpenAPIModelName()}, } } @@ -751,7 +761,7 @@ func schema_sdk_apis_apis_v1alpha1_APIExportEndpointSliceList(ref common.Referen "metadata": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), + Ref: ref(v1.ListMeta{}.OpenAPIModelName()), }, }, "items": { @@ -761,7 +771,7 @@ func schema_sdk_apis_apis_v1alpha1_APIExportEndpointSliceList(ref common.Referen Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIExportEndpointSlice"), + Ref: ref(v1alpha1.APIExportEndpointSlice{}.OpenAPIModelName()), }, }, }, @@ -772,7 +782,7 @@ func schema_sdk_apis_apis_v1alpha1_APIExportEndpointSliceList(ref common.Referen }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIExportEndpointSlice", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + v1alpha1.APIExportEndpointSlice{}.OpenAPIModelName(), v1.ListMeta{}.OpenAPIModelName()}, } } @@ -787,7 +797,7 @@ func schema_sdk_apis_apis_v1alpha1_APIExportEndpointSliceSpec(ref common.Referen SchemaProps: spec.SchemaProps{ Description: "export points to the API export.", Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha1.ExportBindingReference"), + Ref: ref(v1alpha1.ExportBindingReference{}.OpenAPIModelName()), }, }, "partition": { @@ -802,7 +812,7 @@ func schema_sdk_apis_apis_v1alpha1_APIExportEndpointSliceSpec(ref common.Referen }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.ExportBindingReference"}, + v1alpha1.ExportBindingReference{}.OpenAPIModelName()}, } } @@ -821,7 +831,7 @@ func schema_sdk_apis_apis_v1alpha1_APIExportEndpointSliceStatus(ref common.Refer Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/third_party/conditions/apis/conditions/v1alpha1.Condition"), + Ref: ref(conditionsv1alpha1.Condition{}.OpenAPIModelName()), }, }, }, @@ -843,7 +853,7 @@ func schema_sdk_apis_apis_v1alpha1_APIExportEndpointSliceStatus(ref common.Refer Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIExportEndpoint"), + Ref: ref(v1alpha1.APIExportEndpoint{}.OpenAPIModelName()), }, }, }, @@ -860,7 +870,7 @@ func schema_sdk_apis_apis_v1alpha1_APIExportEndpointSliceStatus(ref common.Refer }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIExportEndpoint", "github.com/kcp-dev/sdk/apis/third_party/conditions/apis/conditions/v1alpha1.Condition"}, + v1alpha1.APIExportEndpoint{}.OpenAPIModelName(), conditionsv1alpha1.Condition{}.OpenAPIModelName()}, } } @@ -888,7 +898,7 @@ func schema_sdk_apis_apis_v1alpha1_APIExportList(ref common.ReferenceCallback) c "metadata": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), + Ref: ref(v1.ListMeta{}.OpenAPIModelName()), }, }, "items": { @@ -898,7 +908,7 @@ func schema_sdk_apis_apis_v1alpha1_APIExportList(ref common.ReferenceCallback) c Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIExport"), + Ref: ref(v1alpha1.APIExport{}.OpenAPIModelName()), }, }, }, @@ -909,7 +919,7 @@ func schema_sdk_apis_apis_v1alpha1_APIExportList(ref common.ReferenceCallback) c }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIExport", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + v1alpha1.APIExport{}.OpenAPIModelName(), v1.ListMeta{}.OpenAPIModelName()}, } } @@ -943,13 +953,13 @@ func schema_sdk_apis_apis_v1alpha1_APIExportSpec(ref common.ReferenceCallback) c "identity": { SchemaProps: spec.SchemaProps{ Description: "identity points to a secret that contains the API identity in the 'key' file. The API identity determines an unique etcd prefix for objects stored via this APIExport.\n\nDifferent APIExport in a workspace can share a common identity, or have different ones. The identity (the secret) can also be transferred to another workspace when the APIExport is moved.\n\nThe identity is a secret of the API provider. The APIBindings referencing this APIExport will store a derived, non-sensitive value of this identity.\n\nThe identity of an APIExport cannot be changed. A derived, non-sensitive value of the identity key is stored in the APIExport status and this value is immutable.\n\nThe identity is defaulted. A secret with the name of the APIExport is automatically created.", - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha1.Identity"), + Ref: ref(v1alpha1.Identity{}.OpenAPIModelName()), }, }, "maximalPermissionPolicy": { SchemaProps: spec.SchemaProps{ Description: "maximalPermissionPolicy will allow for a service provider to set an upper bound on what is allowed for a consumer of this API. If the policy is not set, no upper bound is applied, i.e the consuming users can do whatever the user workspace allows the user to do.\n\nThe policy consists of RBAC (Cluster)Roles and (Cluster)Bindings. A request of a user in a workspace that binds to this APIExport via an APIBinding is additionally checked against these rules, with the user name and the groups prefixed with `apis.kcp.io:binding:`.\n\nFor example: assume a user `adam` with groups `system:authenticated` and `a-team` binds to this APIExport in another workspace root:org:ws. Then a request in that workspace against a resource of this APIExport is authorized as every other request in that workspace, but in addition the RBAC policy here in the APIExport workspace has to grant access to the user `apis.kcp.io:binding:adam` with the groups `apis.kcp.io:binding:system:authenticated` and `apis.kcp.io:binding:a-team`.\n\nIf an APIExport with a maximalPermissionPolicy is deleted, these additional checks will no longer be applied to resources of this APIExport.\n\nFor example: Assume an APIExport with a maximalPermissionPolicy that only allows creation and deletion of resources, but not updates - if the APIExport is deleted users will be able to update the resources of the APIExport again (given the constraints of their workspace's RBAC policies).", - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha1.MaximalPermissionPolicy"), + Ref: ref(v1alpha1.MaximalPermissionPolicy{}.OpenAPIModelName()), }, }, "permissionClaims": { @@ -969,7 +979,7 @@ func schema_sdk_apis_apis_v1alpha1_APIExportSpec(ref common.ReferenceCallback) c Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha1.PermissionClaim"), + Ref: ref(v1alpha1.PermissionClaim{}.OpenAPIModelName()), }, }, }, @@ -979,7 +989,7 @@ func schema_sdk_apis_apis_v1alpha1_APIExportSpec(ref common.ReferenceCallback) c }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.Identity", "github.com/kcp-dev/sdk/apis/apis/v1alpha1.MaximalPermissionPolicy", "github.com/kcp-dev/sdk/apis/apis/v1alpha1.PermissionClaim"}, + v1alpha1.Identity{}.OpenAPIModelName(), v1alpha1.MaximalPermissionPolicy{}.OpenAPIModelName(), v1alpha1.PermissionClaim{}.OpenAPIModelName()}, } } @@ -1005,7 +1015,7 @@ func schema_sdk_apis_apis_v1alpha1_APIExportStatus(ref common.ReferenceCallback) Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/third_party/conditions/apis/conditions/v1alpha1.Condition"), + Ref: ref(conditionsv1alpha1.Condition{}.OpenAPIModelName()), }, }, }, @@ -1019,7 +1029,7 @@ func schema_sdk_apis_apis_v1alpha1_APIExportStatus(ref common.ReferenceCallback) Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha1.VirtualWorkspace"), + Ref: ref(v1alpha1.VirtualWorkspace{}.OpenAPIModelName()), }, }, }, @@ -1029,7 +1039,7 @@ func schema_sdk_apis_apis_v1alpha1_APIExportStatus(ref common.ReferenceCallback) }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.VirtualWorkspace", "github.com/kcp-dev/sdk/apis/third_party/conditions/apis/conditions/v1alpha1.Condition"}, + v1alpha1.VirtualWorkspace{}.OpenAPIModelName(), conditionsv1alpha1.Condition{}.OpenAPIModelName()}, } } @@ -1057,21 +1067,21 @@ func schema_sdk_apis_apis_v1alpha1_APIResourceSchema(ref common.ReferenceCallbac "metadata": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), + Ref: ref(v1.ObjectMeta{}.OpenAPIModelName()), }, }, "spec": { SchemaProps: spec.SchemaProps{ Description: "Spec holds the desired state.", Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIResourceSchemaSpec"), + Ref: ref(v1alpha1.APIResourceSchemaSpec{}.OpenAPIModelName()), }, }, }, }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIResourceSchemaSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + v1alpha1.APIResourceSchemaSpec{}.OpenAPIModelName(), v1.ObjectMeta{}.OpenAPIModelName()}, } } @@ -1099,7 +1109,7 @@ func schema_sdk_apis_apis_v1alpha1_APIResourceSchemaList(ref common.ReferenceCal "metadata": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), + Ref: ref(v1.ListMeta{}.OpenAPIModelName()), }, }, "items": { @@ -1109,7 +1119,7 @@ func schema_sdk_apis_apis_v1alpha1_APIResourceSchemaList(ref common.ReferenceCal Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIResourceSchema"), + Ref: ref(v1alpha1.APIResourceSchema{}.OpenAPIModelName()), }, }, }, @@ -1120,7 +1130,7 @@ func schema_sdk_apis_apis_v1alpha1_APIResourceSchemaList(ref common.ReferenceCal }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIResourceSchema", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + v1alpha1.APIResourceSchema{}.OpenAPIModelName(), v1.ListMeta{}.OpenAPIModelName()}, } } @@ -1170,7 +1180,7 @@ func schema_sdk_apis_apis_v1alpha1_APIResourceSchemaSpec(ref common.ReferenceCal Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIResourceVersion"), + Ref: ref(v1alpha1.APIResourceVersion{}.OpenAPIModelName()), }, }, }, @@ -1186,7 +1196,7 @@ func schema_sdk_apis_apis_v1alpha1_APIResourceSchemaSpec(ref common.ReferenceCal "conversion": { SchemaProps: spec.SchemaProps{ Description: "conversion defines conversion settings for the defined custom resource.", - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha1.CustomResourceConversion"), + Ref: ref(v1alpha1.CustomResourceConversion{}.OpenAPIModelName()), }, }, }, @@ -1194,7 +1204,7 @@ func schema_sdk_apis_apis_v1alpha1_APIResourceSchemaSpec(ref common.ReferenceCal }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIResourceVersion", "github.com/kcp-dev/sdk/apis/apis/v1alpha1.CustomResourceConversion", "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.CustomResourceDefinitionNames"}, + v1alpha1.APIResourceVersion{}.OpenAPIModelName(), v1alpha1.CustomResourceConversion{}.OpenAPIModelName(), "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.CustomResourceDefinitionNames"}, } } @@ -1251,7 +1261,7 @@ func schema_sdk_apis_apis_v1alpha1_APIResourceVersion(ref common.ReferenceCallba }, SchemaProps: spec.SchemaProps{ Description: "schema describes the structural schema used for validation, pruning, and defaulting of this version of the custom resource.", - Ref: ref("k8s.io/apimachinery/pkg/runtime.RawExtension"), + Ref: ref(runtime.RawExtension{}.OpenAPIModelName()), }, }, "subresources": { @@ -1288,7 +1298,7 @@ func schema_sdk_apis_apis_v1alpha1_APIResourceVersion(ref common.ReferenceCallba }, }, Dependencies: []string{ - "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.CustomResourceColumnDefinition", "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.CustomResourceSubresources", "k8s.io/apimachinery/pkg/runtime.RawExtension"}, + "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.CustomResourceColumnDefinition", "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.CustomResourceSubresources", runtime.RawExtension{}.OpenAPIModelName()}, } } @@ -1331,7 +1341,7 @@ func schema_sdk_apis_apis_v1alpha1_APIVersionConversion(ref common.ReferenceCall Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIConversionRule"), + Ref: ref(v1alpha1.APIConversionRule{}.OpenAPIModelName()), }, }, }, @@ -1357,7 +1367,7 @@ func schema_sdk_apis_apis_v1alpha1_APIVersionConversion(ref common.ReferenceCall }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.APIConversionRule"}, + v1alpha1.APIConversionRule{}.OpenAPIModelName()}, } } @@ -1398,7 +1408,7 @@ func schema_sdk_apis_apis_v1alpha1_AcceptablePermissionClaim(ref common.Referenc Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha1.ResourceSelector"), + Ref: ref(v1alpha1.ResourceSelector{}.OpenAPIModelName()), }, }, }, @@ -1423,7 +1433,7 @@ func schema_sdk_apis_apis_v1alpha1_AcceptablePermissionClaim(ref common.Referenc }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.ResourceSelector"}, + v1alpha1.ResourceSelector{}.OpenAPIModelName()}, } } @@ -1437,14 +1447,14 @@ func schema_sdk_apis_apis_v1alpha1_BindingReference(ref common.ReferenceCallback "export": { SchemaProps: spec.SchemaProps{ Description: "export is a reference to an APIExport by cluster name and export name. The creator of the APIBinding needs to have access to the APIExport with the verb `bind` in order to bind to it.", - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha1.ExportBindingReference"), + Ref: ref(v1alpha1.ExportBindingReference{}.OpenAPIModelName()), }, }, }, }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.ExportBindingReference"}, + v1alpha1.ExportBindingReference{}.OpenAPIModelName()}, } } @@ -1475,7 +1485,7 @@ func schema_sdk_apis_apis_v1alpha1_BoundAPIResource(ref common.ReferenceCallback SchemaProps: spec.SchemaProps{ Description: "Schema references the APIResourceSchema that is bound to this API.", Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha1.BoundAPIResourceSchema"), + Ref: ref(v1alpha1.BoundAPIResourceSchema{}.OpenAPIModelName()), }, }, "storageVersions": { @@ -1503,7 +1513,7 @@ func schema_sdk_apis_apis_v1alpha1_BoundAPIResource(ref common.ReferenceCallback }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.BoundAPIResourceSchema"}, + v1alpha1.BoundAPIResourceSchema{}.OpenAPIModelName()}, } } @@ -1563,7 +1573,7 @@ func schema_sdk_apis_apis_v1alpha1_CustomResourceConversion(ref common.Reference "webhook": { SchemaProps: spec.SchemaProps{ Description: "webhook describes how to call the conversion webhook. Required when `strategy` is set to `\"Webhook\"`.", - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha1.WebhookConversion"), + Ref: ref(v1alpha1.WebhookConversion{}.OpenAPIModelName()), }, }, }, @@ -1571,7 +1581,7 @@ func schema_sdk_apis_apis_v1alpha1_CustomResourceConversion(ref common.Reference }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.WebhookConversion"}, + v1alpha1.WebhookConversion{}.OpenAPIModelName()}, } } @@ -1675,14 +1685,14 @@ func schema_sdk_apis_apis_v1alpha1_MaximalPermissionPolicy(ref common.ReferenceC "local": { SchemaProps: spec.SchemaProps{ Description: "local is the policy that is defined in same workspace as the API Export.", - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha1.LocalAPIExportPolicy"), + Ref: ref(v1alpha1.LocalAPIExportPolicy{}.OpenAPIModelName()), }, }, }, }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.LocalAPIExportPolicy"}, + v1alpha1.LocalAPIExportPolicy{}.OpenAPIModelName()}, } } @@ -1723,7 +1733,7 @@ func schema_sdk_apis_apis_v1alpha1_PermissionClaim(ref common.ReferenceCallback) Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha1.ResourceSelector"), + Ref: ref(v1alpha1.ResourceSelector{}.OpenAPIModelName()), }, }, }, @@ -1741,7 +1751,7 @@ func schema_sdk_apis_apis_v1alpha1_PermissionClaim(ref common.ReferenceCallback) }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.ResourceSelector"}, + v1alpha1.ResourceSelector{}.OpenAPIModelName()}, } } @@ -1829,7 +1839,7 @@ func schema_sdk_apis_apis_v1alpha1_WebhookConversion(ref common.ReferenceCallbac "clientConfig": { SchemaProps: spec.SchemaProps{ Description: "clientConfig is the instructions for how to call the webhook if strategy is `Webhook`.", - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha1.WebhookClientConfig"), + Ref: ref(v1alpha1.WebhookClientConfig{}.OpenAPIModelName()), }, }, "conversionReviewVersions": { @@ -1857,7 +1867,7 @@ func schema_sdk_apis_apis_v1alpha1_WebhookConversion(ref common.ReferenceCallbac }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/apis/v1alpha1.WebhookClientConfig"}, + v1alpha1.WebhookClientConfig{}.OpenAPIModelName()}, } } @@ -1885,21 +1895,21 @@ func schema_sdk_apis_apis_v1alpha2_APIBinding(ref common.ReferenceCallback) comm "metadata": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), + Ref: ref(v1.ObjectMeta{}.OpenAPIModelName()), }, }, "spec": { SchemaProps: spec.SchemaProps{ Description: "Spec holds the desired state.", Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha2.APIBindingSpec"), + Ref: ref(v1alpha2.APIBindingSpec{}.OpenAPIModelName()), }, }, "status": { SchemaProps: spec.SchemaProps{ Description: "Status communicates the observed state.", Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha2.APIBindingStatus"), + Ref: ref(v1alpha2.APIBindingStatus{}.OpenAPIModelName()), }, }, }, @@ -1907,7 +1917,7 @@ func schema_sdk_apis_apis_v1alpha2_APIBinding(ref common.ReferenceCallback) comm }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/apis/v1alpha2.APIBindingSpec", "github.com/kcp-dev/sdk/apis/apis/v1alpha2.APIBindingStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + v1alpha2.APIBindingSpec{}.OpenAPIModelName(), v1alpha2.APIBindingStatus{}.OpenAPIModelName(), v1.ObjectMeta{}.OpenAPIModelName()}, } } @@ -1935,7 +1945,7 @@ func schema_sdk_apis_apis_v1alpha2_APIBindingList(ref common.ReferenceCallback) "metadata": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), + Ref: ref(v1.ListMeta{}.OpenAPIModelName()), }, }, "items": { @@ -1945,7 +1955,7 @@ func schema_sdk_apis_apis_v1alpha2_APIBindingList(ref common.ReferenceCallback) Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha2.APIBinding"), + Ref: ref(v1alpha2.APIBinding{}.OpenAPIModelName()), }, }, }, @@ -1956,7 +1966,7 @@ func schema_sdk_apis_apis_v1alpha2_APIBindingList(ref common.ReferenceCallback) }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/apis/v1alpha2.APIBinding", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + v1alpha2.APIBinding{}.OpenAPIModelName(), v1.ListMeta{}.OpenAPIModelName()}, } } @@ -1971,7 +1981,7 @@ func schema_sdk_apis_apis_v1alpha2_APIBindingSpec(ref common.ReferenceCallback) SchemaProps: spec.SchemaProps{ Description: "reference uniquely identifies an API to bind to.", Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha2.BindingReference"), + Ref: ref(v1alpha2.BindingReference{}.OpenAPIModelName()), }, }, "permissionClaims": { @@ -1992,7 +2002,7 @@ func schema_sdk_apis_apis_v1alpha2_APIBindingSpec(ref common.ReferenceCallback) Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha2.AcceptablePermissionClaim"), + Ref: ref(v1alpha2.AcceptablePermissionClaim{}.OpenAPIModelName()), }, }, }, @@ -2003,7 +2013,7 @@ func schema_sdk_apis_apis_v1alpha2_APIBindingSpec(ref common.ReferenceCallback) }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/apis/v1alpha2.AcceptablePermissionClaim", "github.com/kcp-dev/sdk/apis/apis/v1alpha2.BindingReference"}, + v1alpha2.AcceptablePermissionClaim{}.OpenAPIModelName(), v1alpha2.BindingReference{}.OpenAPIModelName()}, } } @@ -2038,7 +2048,7 @@ func schema_sdk_apis_apis_v1alpha2_APIBindingStatus(ref common.ReferenceCallback Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha2.BoundAPIResource"), + Ref: ref(v1alpha2.BoundAPIResource{}.OpenAPIModelName()), }, }, }, @@ -2059,7 +2069,7 @@ func schema_sdk_apis_apis_v1alpha2_APIBindingStatus(ref common.ReferenceCallback Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/third_party/conditions/apis/conditions/v1alpha1.Condition"), + Ref: ref(conditionsv1alpha1.Condition{}.OpenAPIModelName()), }, }, }, @@ -2083,7 +2093,7 @@ func schema_sdk_apis_apis_v1alpha2_APIBindingStatus(ref common.ReferenceCallback Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha2.ScopedPermissionClaim"), + Ref: ref(v1alpha2.ScopedPermissionClaim{}.OpenAPIModelName()), }, }, }, @@ -2097,7 +2107,7 @@ func schema_sdk_apis_apis_v1alpha2_APIBindingStatus(ref common.ReferenceCallback Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha2.PermissionClaim"), + Ref: ref(v1alpha2.PermissionClaim{}.OpenAPIModelName()), }, }, }, @@ -2107,7 +2117,7 @@ func schema_sdk_apis_apis_v1alpha2_APIBindingStatus(ref common.ReferenceCallback }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/apis/v1alpha2.BoundAPIResource", "github.com/kcp-dev/sdk/apis/apis/v1alpha2.PermissionClaim", "github.com/kcp-dev/sdk/apis/apis/v1alpha2.ScopedPermissionClaim", "github.com/kcp-dev/sdk/apis/third_party/conditions/apis/conditions/v1alpha1.Condition"}, + v1alpha2.BoundAPIResource{}.OpenAPIModelName(), v1alpha2.PermissionClaim{}.OpenAPIModelName(), v1alpha2.ScopedPermissionClaim{}.OpenAPIModelName(), conditionsv1alpha1.Condition{}.OpenAPIModelName()}, } } @@ -2135,28 +2145,28 @@ func schema_sdk_apis_apis_v1alpha2_APIExport(ref common.ReferenceCallback) commo "metadata": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), + Ref: ref(v1.ObjectMeta{}.OpenAPIModelName()), }, }, "spec": { SchemaProps: spec.SchemaProps{ Description: "Spec holds the desired state.", Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha2.APIExportSpec"), + Ref: ref(v1alpha2.APIExportSpec{}.OpenAPIModelName()), }, }, "status": { SchemaProps: spec.SchemaProps{ Description: "Status communicates the observed state.", Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha2.APIExportStatus"), + Ref: ref(v1alpha2.APIExportStatus{}.OpenAPIModelName()), }, }, }, }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/apis/v1alpha2.APIExportSpec", "github.com/kcp-dev/sdk/apis/apis/v1alpha2.APIExportStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + v1alpha2.APIExportSpec{}.OpenAPIModelName(), v1alpha2.APIExportStatus{}.OpenAPIModelName(), v1.ObjectMeta{}.OpenAPIModelName()}, } } @@ -2184,7 +2194,7 @@ func schema_sdk_apis_apis_v1alpha2_APIExportList(ref common.ReferenceCallback) c "metadata": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), + Ref: ref(v1.ListMeta{}.OpenAPIModelName()), }, }, "items": { @@ -2194,7 +2204,7 @@ func schema_sdk_apis_apis_v1alpha2_APIExportList(ref common.ReferenceCallback) c Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha2.APIExport"), + Ref: ref(v1alpha2.APIExport{}.OpenAPIModelName()), }, }, }, @@ -2205,7 +2215,7 @@ func schema_sdk_apis_apis_v1alpha2_APIExportList(ref common.ReferenceCallback) c }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/apis/v1alpha2.APIExport", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + v1alpha2.APIExport{}.OpenAPIModelName(), v1.ListMeta{}.OpenAPIModelName()}, } } @@ -2233,7 +2243,7 @@ func schema_sdk_apis_apis_v1alpha2_APIExportSpec(ref common.ReferenceCallback) c Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha2.ResourceSchema"), + Ref: ref(v1alpha2.ResourceSchema{}.OpenAPIModelName()), }, }, }, @@ -2242,13 +2252,13 @@ func schema_sdk_apis_apis_v1alpha2_APIExportSpec(ref common.ReferenceCallback) c "identity": { SchemaProps: spec.SchemaProps{ Description: "identity points to a secret that contains the API identity in the 'key' file. The API identity determines an unique etcd prefix for objects stored via this APIExport.\n\nDifferent APIExport in a workspace can share a common identity, or have different ones. The identity (the secret) can also be transferred to another workspace when the APIExport is moved.\n\nThe identity is a secret of the API provider. The APIBindings referencing this APIExport will store a derived, non-sensitive value of this identity.\n\nThe identity of an APIExport cannot be changed. A derived, non-sensitive value of the identity key is stored in the APIExport status and this value is immutable.\n\nThe identity is defaulted. A secret with the name of the APIExport is automatically created.", - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha2.Identity"), + Ref: ref(v1alpha2.Identity{}.OpenAPIModelName()), }, }, "maximalPermissionPolicy": { SchemaProps: spec.SchemaProps{ Description: "maximalPermissionPolicy will allow for a service provider to set an upper bound on what is allowed for a consumer of this API. If the policy is not set, no upper bound is applied, i.e the consuming users can do whatever the user workspace allows the user to do.\n\nThe policy consists of RBAC (Cluster)Roles and (Cluster)Bindings. A request of a user in a workspace that binds to this APIExport via an APIBinding is additionally checked against these rules, with the user name and the groups prefixed with `apis.kcp.io:binding:`.\n\nFor example: assume a user `adam` with groups `system:authenticated` and `a-team` binds to this APIExport in another workspace root:org:ws. Then a request in that workspace against a resource of this APIExport is authorized as every other request in that workspace, but in addition the RBAC policy here in the APIExport workspace has to grant access to the user `apis.kcp.io:binding:adam` with the groups `apis.kcp.io:binding:system:authenticated` and `apis.kcp.io:binding:a-team`.", - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha2.MaximalPermissionPolicy"), + Ref: ref(v1alpha2.MaximalPermissionPolicy{}.OpenAPIModelName()), }, }, "permissionClaims": { @@ -2268,7 +2278,7 @@ func schema_sdk_apis_apis_v1alpha2_APIExportSpec(ref common.ReferenceCallback) c Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha2.PermissionClaim"), + Ref: ref(v1alpha2.PermissionClaim{}.OpenAPIModelName()), }, }, }, @@ -2278,7 +2288,7 @@ func schema_sdk_apis_apis_v1alpha2_APIExportSpec(ref common.ReferenceCallback) c }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/apis/v1alpha2.Identity", "github.com/kcp-dev/sdk/apis/apis/v1alpha2.MaximalPermissionPolicy", "github.com/kcp-dev/sdk/apis/apis/v1alpha2.PermissionClaim", "github.com/kcp-dev/sdk/apis/apis/v1alpha2.ResourceSchema"}, + v1alpha2.Identity{}.OpenAPIModelName(), v1alpha2.MaximalPermissionPolicy{}.OpenAPIModelName(), v1alpha2.PermissionClaim{}.OpenAPIModelName(), v1alpha2.ResourceSchema{}.OpenAPIModelName()}, } } @@ -2304,7 +2314,7 @@ func schema_sdk_apis_apis_v1alpha2_APIExportStatus(ref common.ReferenceCallback) Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/third_party/conditions/apis/conditions/v1alpha1.Condition"), + Ref: ref(conditionsv1alpha1.Condition{}.OpenAPIModelName()), }, }, }, @@ -2318,7 +2328,7 @@ func schema_sdk_apis_apis_v1alpha2_APIExportStatus(ref common.ReferenceCallback) Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha2.VirtualWorkspace"), + Ref: ref(v1alpha2.VirtualWorkspace{}.OpenAPIModelName()), }, }, }, @@ -2328,7 +2338,7 @@ func schema_sdk_apis_apis_v1alpha2_APIExportStatus(ref common.ReferenceCallback) }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/apis/v1alpha2.VirtualWorkspace", "github.com/kcp-dev/sdk/apis/third_party/conditions/apis/conditions/v1alpha1.Condition"}, + v1alpha2.VirtualWorkspace{}.OpenAPIModelName(), conditionsv1alpha1.Condition{}.OpenAPIModelName()}, } } @@ -2384,13 +2394,13 @@ func schema_sdk_apis_apis_v1alpha2_AcceptablePermissionClaim(ref common.Referenc "defaultSelector": { SchemaProps: spec.SchemaProps{ Description: "defaultSelector is the default selector to use when creating APIBindings via WorkspaceType's defaultAPIBindings. If not set, the APIBinding will default to matchAll: true.\n\nThis allows API providers to suggest a default scope for permission claims that will be used when workspaces are automatically created with default APIBindings. Users can always override the default selector by accepting the claim with a different selector or by manually creating APIBindings with a custom selector.", - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha2.PermissionClaimSelector"), + Ref: ref(v1alpha2.PermissionClaimSelector{}.OpenAPIModelName()), }, }, "selector": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha2.PermissionClaimSelector"), + Ref: ref(v1alpha2.PermissionClaimSelector{}.OpenAPIModelName()), }, }, "state": { @@ -2405,7 +2415,7 @@ func schema_sdk_apis_apis_v1alpha2_AcceptablePermissionClaim(ref common.Referenc }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/apis/v1alpha2.PermissionClaimSelector"}, + v1alpha2.PermissionClaimSelector{}.OpenAPIModelName()}, } } @@ -2419,14 +2429,14 @@ func schema_sdk_apis_apis_v1alpha2_BindingReference(ref common.ReferenceCallback "export": { SchemaProps: spec.SchemaProps{ Description: "export is a reference to an APIExport by cluster name and export name. The creator of the APIBinding needs to have access to the APIExport with the verb `bind` in order to bind to it.", - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha2.ExportBindingReference"), + Ref: ref(v1alpha2.ExportBindingReference{}.OpenAPIModelName()), }, }, }, }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/apis/v1alpha2.ExportBindingReference"}, + v1alpha2.ExportBindingReference{}.OpenAPIModelName()}, } } @@ -2457,7 +2467,7 @@ func schema_sdk_apis_apis_v1alpha2_BoundAPIResource(ref common.ReferenceCallback SchemaProps: spec.SchemaProps{ Description: "Schema references the APIResourceSchema that is bound to this API.", Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha2.BoundAPIResourceSchema"), + Ref: ref(v1alpha2.BoundAPIResourceSchema{}.OpenAPIModelName()), }, }, "storageVersions": { @@ -2485,7 +2495,7 @@ func schema_sdk_apis_apis_v1alpha2_BoundAPIResource(ref common.ReferenceCallback }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/apis/v1alpha2.BoundAPIResourceSchema"}, + v1alpha2.BoundAPIResourceSchema{}.OpenAPIModelName()}, } } @@ -2627,14 +2637,14 @@ func schema_sdk_apis_apis_v1alpha2_MaximalPermissionPolicy(ref common.ReferenceC "local": { SchemaProps: spec.SchemaProps{ Description: "local is the policy that is defined in same workspace as the API Export.", - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha2.LocalAPIExportPolicy"), + Ref: ref(v1alpha2.LocalAPIExportPolicy{}.OpenAPIModelName()), }, }, }, }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/apis/v1alpha2.LocalAPIExportPolicy"}, + v1alpha2.LocalAPIExportPolicy{}.OpenAPIModelName()}, } } @@ -2690,7 +2700,7 @@ func schema_sdk_apis_apis_v1alpha2_PermissionClaim(ref common.ReferenceCallback) "defaultSelector": { SchemaProps: spec.SchemaProps{ Description: "defaultSelector is the default selector to use when creating APIBindings via WorkspaceType's defaultAPIBindings. If not set, the APIBinding will default to matchAll: true.\n\nThis allows API providers to suggest a default scope for permission claims that will be used when workspaces are automatically created with default APIBindings. Users can always override the default selector by accepting the claim with a different selector or by manually creating APIBindings with a custom selector.", - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha2.PermissionClaimSelector"), + Ref: ref(v1alpha2.PermissionClaimSelector{}.OpenAPIModelName()), }, }, }, @@ -2698,7 +2708,7 @@ func schema_sdk_apis_apis_v1alpha2_PermissionClaim(ref common.ReferenceCallback) }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/apis/v1alpha2.PermissionClaimSelector"}, + v1alpha2.PermissionClaimSelector{}.OpenAPIModelName()}, } } @@ -2738,7 +2748,7 @@ func schema_sdk_apis_apis_v1alpha2_PermissionClaimSelector(ref common.ReferenceC Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelectorRequirement"), + Ref: ref(v1.LabelSelectorRequirement{}.OpenAPIModelName()), }, }, }, @@ -2755,7 +2765,7 @@ func schema_sdk_apis_apis_v1alpha2_PermissionClaimSelector(ref common.ReferenceC }, }, Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelectorRequirement"}, + v1.LabelSelectorRequirement{}.OpenAPIModelName()}, } } @@ -2794,7 +2804,7 @@ func schema_sdk_apis_apis_v1alpha2_ResourceSchema(ref common.ReferenceCallback) SchemaProps: spec.SchemaProps{ Description: "Storage defines how the resource is stored.", Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha2.ResourceSchemaStorage"), + Ref: ref(v1alpha2.ResourceSchemaStorage{}.OpenAPIModelName()), }, }, }, @@ -2802,7 +2812,7 @@ func schema_sdk_apis_apis_v1alpha2_ResourceSchema(ref common.ReferenceCallback) }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/apis/v1alpha2.ResourceSchemaStorage"}, + v1alpha2.ResourceSchemaStorage{}.OpenAPIModelName()}, } } @@ -2816,20 +2826,20 @@ func schema_sdk_apis_apis_v1alpha2_ResourceSchemaStorage(ref common.ReferenceCal "crd": { SchemaProps: spec.SchemaProps{ Description: "CRD storage defines that this APIResourceSchema is exposed as CustomResourceDefinitions inside the workspaces that bind to the APIExport. Like in vanilla Kubernetes, users can then create, update and delete custom resources.", - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha2.ResourceSchemaStorageCRD"), + Ref: ref(v1alpha2.ResourceSchemaStorageCRD{}.OpenAPIModelName()), }, }, "virtual": { SchemaProps: spec.SchemaProps{ Description: "Virtual storage defines that this APIResourceSchema is exposed as a projection of the referenced resource inside the workspaces that bind to the APIExport.", - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha2.ResourceSchemaStorageVirtual"), + Ref: ref(v1alpha2.ResourceSchemaStorageVirtual{}.OpenAPIModelName()), }, }, }, }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/apis/v1alpha2.ResourceSchemaStorageCRD", "github.com/kcp-dev/sdk/apis/apis/v1alpha2.ResourceSchemaStorageVirtual"}, + v1alpha2.ResourceSchemaStorageCRD{}.OpenAPIModelName(), v1alpha2.ResourceSchemaStorageVirtual{}.OpenAPIModelName()}, } } @@ -2952,13 +2962,13 @@ func schema_sdk_apis_apis_v1alpha2_ScopedPermissionClaim(ref common.ReferenceCal "defaultSelector": { SchemaProps: spec.SchemaProps{ Description: "defaultSelector is the default selector to use when creating APIBindings via WorkspaceType's defaultAPIBindings. If not set, the APIBinding will default to matchAll: true.\n\nThis allows API providers to suggest a default scope for permission claims that will be used when workspaces are automatically created with default APIBindings. Users can always override the default selector by accepting the claim with a different selector or by manually creating APIBindings with a custom selector.", - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha2.PermissionClaimSelector"), + Ref: ref(v1alpha2.PermissionClaimSelector{}.OpenAPIModelName()), }, }, "selector": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/apis/v1alpha2.PermissionClaimSelector"), + Ref: ref(v1alpha2.PermissionClaimSelector{}.OpenAPIModelName()), }, }, }, @@ -2966,7 +2976,7 @@ func schema_sdk_apis_apis_v1alpha2_ScopedPermissionClaim(ref common.ReferenceCal }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/apis/v1alpha2.PermissionClaimSelector"}, + v1alpha2.PermissionClaimSelector{}.OpenAPIModelName()}, } } @@ -3015,13 +3025,13 @@ func schema_sdk_apis_cache_v1alpha1_CachedObject(ref common.ReferenceCallback) c "metadata": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), + Ref: ref(v1.ObjectMeta{}.OpenAPIModelName()), }, }, "spec": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/cache/v1alpha1.CachedObjectSpec"), + Ref: ref(cachev1alpha1.CachedObjectSpec{}.OpenAPIModelName()), }, }, }, @@ -3029,7 +3039,7 @@ func schema_sdk_apis_cache_v1alpha1_CachedObject(ref common.ReferenceCallback) c }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/cache/v1alpha1.CachedObjectSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + cachev1alpha1.CachedObjectSpec{}.OpenAPIModelName(), v1.ObjectMeta{}.OpenAPIModelName()}, } } @@ -3057,7 +3067,7 @@ func schema_sdk_apis_cache_v1alpha1_CachedObjectList(ref common.ReferenceCallbac "metadata": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), + Ref: ref(v1.ListMeta{}.OpenAPIModelName()), }, }, "items": { @@ -3067,7 +3077,7 @@ func schema_sdk_apis_cache_v1alpha1_CachedObjectList(ref common.ReferenceCallbac Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/cache/v1alpha1.CachedObject"), + Ref: ref(cachev1alpha1.CachedObject{}.OpenAPIModelName()), }, }, }, @@ -3078,7 +3088,7 @@ func schema_sdk_apis_cache_v1alpha1_CachedObjectList(ref common.ReferenceCallbac }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/cache/v1alpha1.CachedObject", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + cachev1alpha1.CachedObject{}.OpenAPIModelName(), v1.ListMeta{}.OpenAPIModelName()}, } } @@ -3091,7 +3101,7 @@ func schema_sdk_apis_cache_v1alpha1_CachedObjectSpec(ref common.ReferenceCallbac Properties: map[string]spec.Schema{ "raw": { SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/runtime.RawExtension"), + Ref: ref(runtime.RawExtension{}.OpenAPIModelName()), }, }, }, @@ -3099,7 +3109,7 @@ func schema_sdk_apis_cache_v1alpha1_CachedObjectSpec(ref common.ReferenceCallbac }, }, Dependencies: []string{ - "k8s.io/apimachinery/pkg/runtime.RawExtension"}, + runtime.RawExtension{}.OpenAPIModelName()}, } } @@ -3127,19 +3137,19 @@ func schema_sdk_apis_cache_v1alpha1_CachedResource(ref common.ReferenceCallback) "metadata": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), + Ref: ref(v1.ObjectMeta{}.OpenAPIModelName()), }, }, "spec": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/cache/v1alpha1.CachedResourceSpec"), + Ref: ref(cachev1alpha1.CachedResourceSpec{}.OpenAPIModelName()), }, }, "status": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/cache/v1alpha1.CachedResourceStatus"), + Ref: ref(cachev1alpha1.CachedResourceStatus{}.OpenAPIModelName()), }, }, }, @@ -3147,7 +3157,7 @@ func schema_sdk_apis_cache_v1alpha1_CachedResource(ref common.ReferenceCallback) }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/cache/v1alpha1.CachedResourceSpec", "github.com/kcp-dev/sdk/apis/cache/v1alpha1.CachedResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + cachev1alpha1.CachedResourceSpec{}.OpenAPIModelName(), cachev1alpha1.CachedResourceStatus{}.OpenAPIModelName(), v1.ObjectMeta{}.OpenAPIModelName()}, } } @@ -3197,28 +3207,28 @@ func schema_sdk_apis_cache_v1alpha1_CachedResourceEndpointSlice(ref common.Refer "metadata": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), + Ref: ref(v1.ObjectMeta{}.OpenAPIModelName()), }, }, "spec": { SchemaProps: spec.SchemaProps{ Description: "spec holds the desired state: - the targeted CachedResource", Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/cache/v1alpha1.CachedResourceEndpointSliceSpec"), + Ref: ref(cachev1alpha1.CachedResourceEndpointSliceSpec{}.OpenAPIModelName()), }, }, "status": { SchemaProps: spec.SchemaProps{ Description: "status communicates the observed state: the filtered list of endpoints for the Replication service.", Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/cache/v1alpha1.CachedResourceEndpointSliceStatus"), + Ref: ref(cachev1alpha1.CachedResourceEndpointSliceStatus{}.OpenAPIModelName()), }, }, }, }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/cache/v1alpha1.CachedResourceEndpointSliceSpec", "github.com/kcp-dev/sdk/apis/cache/v1alpha1.CachedResourceEndpointSliceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + cachev1alpha1.CachedResourceEndpointSliceSpec{}.OpenAPIModelName(), cachev1alpha1.CachedResourceEndpointSliceStatus{}.OpenAPIModelName(), v1.ObjectMeta{}.OpenAPIModelName()}, } } @@ -3246,7 +3256,7 @@ func schema_sdk_apis_cache_v1alpha1_CachedResourceEndpointSliceList(ref common.R "metadata": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), + Ref: ref(v1.ListMeta{}.OpenAPIModelName()), }, }, "items": { @@ -3256,7 +3266,7 @@ func schema_sdk_apis_cache_v1alpha1_CachedResourceEndpointSliceList(ref common.R Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/cache/v1alpha1.CachedResourceEndpointSlice"), + Ref: ref(cachev1alpha1.CachedResourceEndpointSlice{}.OpenAPIModelName()), }, }, }, @@ -3267,7 +3277,7 @@ func schema_sdk_apis_cache_v1alpha1_CachedResourceEndpointSliceList(ref common.R }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/cache/v1alpha1.CachedResourceEndpointSlice", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + cachev1alpha1.CachedResourceEndpointSlice{}.OpenAPIModelName(), v1.ListMeta{}.OpenAPIModelName()}, } } @@ -3282,7 +3292,7 @@ func schema_sdk_apis_cache_v1alpha1_CachedResourceEndpointSliceSpec(ref common.R SchemaProps: spec.SchemaProps{ Description: "CachedResource points to the real CachedResource the slice is created for.", Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/cache/v1alpha1.CachedResourceReference"), + Ref: ref(cachev1alpha1.CachedResourceReference{}.OpenAPIModelName()), }, }, "partition": { @@ -3297,7 +3307,7 @@ func schema_sdk_apis_cache_v1alpha1_CachedResourceEndpointSliceSpec(ref common.R }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/cache/v1alpha1.CachedResourceReference"}, + cachev1alpha1.CachedResourceReference{}.OpenAPIModelName()}, } } @@ -3316,7 +3326,7 @@ func schema_sdk_apis_cache_v1alpha1_CachedResourceEndpointSliceStatus(ref common Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/third_party/conditions/apis/conditions/v1alpha1.Condition"), + Ref: ref(conditionsv1alpha1.Condition{}.OpenAPIModelName()), }, }, }, @@ -3338,7 +3348,7 @@ func schema_sdk_apis_cache_v1alpha1_CachedResourceEndpointSliceStatus(ref common Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/cache/v1alpha1.CachedResourceEndpoint"), + Ref: ref(cachev1alpha1.CachedResourceEndpoint{}.OpenAPIModelName()), }, }, }, @@ -3355,7 +3365,7 @@ func schema_sdk_apis_cache_v1alpha1_CachedResourceEndpointSliceStatus(ref common }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/cache/v1alpha1.CachedResourceEndpoint", "github.com/kcp-dev/sdk/apis/third_party/conditions/apis/conditions/v1alpha1.Condition"}, + cachev1alpha1.CachedResourceEndpoint{}.OpenAPIModelName(), conditionsv1alpha1.Condition{}.OpenAPIModelName()}, } } @@ -3383,7 +3393,7 @@ func schema_sdk_apis_cache_v1alpha1_CachedResourceList(ref common.ReferenceCallb "metadata": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), + Ref: ref(v1.ListMeta{}.OpenAPIModelName()), }, }, "items": { @@ -3393,7 +3403,7 @@ func schema_sdk_apis_cache_v1alpha1_CachedResourceList(ref common.ReferenceCallb Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/cache/v1alpha1.CachedResource"), + Ref: ref(cachev1alpha1.CachedResource{}.OpenAPIModelName()), }, }, }, @@ -3404,7 +3414,7 @@ func schema_sdk_apis_cache_v1alpha1_CachedResourceList(ref common.ReferenceCallb }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/cache/v1alpha1.CachedResource", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + cachev1alpha1.CachedResource{}.OpenAPIModelName(), v1.ListMeta{}.OpenAPIModelName()}, } } @@ -3469,13 +3479,13 @@ func schema_sdk_apis_cache_v1alpha1_CachedResourceSpec(ref common.ReferenceCallb "identity": { SchemaProps: spec.SchemaProps{ Description: "identity points to a secret that contains the API identity in the 'key' file. The API identity allows access to CachedResource's resources via the APIExport.\n\nDifferent CachedResource in a workspace can share a common identity, or have different ones. The identity (the secret) can also be transferred to another workspace when the ublishedResource is moved.\n\nThe identity is defaulted. A secret with the name of the CachedResource is automatically created.", - Ref: ref("github.com/kcp-dev/sdk/apis/cache/v1alpha1.Identity"), + Ref: ref(cachev1alpha1.Identity{}.OpenAPIModelName()), }, }, "labelSelector": { SchemaProps: spec.SchemaProps{ Description: "LabelSelector is used to filter which resources should be published", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), + Ref: ref(v1.LabelSelector{}.OpenAPIModelName()), }, }, }, @@ -3483,7 +3493,7 @@ func schema_sdk_apis_cache_v1alpha1_CachedResourceSpec(ref common.ReferenceCallb }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/cache/v1alpha1.Identity", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, + cachev1alpha1.Identity{}.OpenAPIModelName(), v1.LabelSelector{}.OpenAPIModelName()}, } } @@ -3504,7 +3514,7 @@ func schema_sdk_apis_cache_v1alpha1_CachedResourceStatus(ref common.ReferenceCal "resourceCounts": { SchemaProps: spec.SchemaProps{ Description: "ResourceCount is the number of resources that match the label selector", - Ref: ref("github.com/kcp-dev/sdk/apis/cache/v1alpha1.ResourceCount"), + Ref: ref(cachev1alpha1.ResourceCount{}.OpenAPIModelName()), }, }, "phase": { @@ -3522,7 +3532,7 @@ func schema_sdk_apis_cache_v1alpha1_CachedResourceStatus(ref common.ReferenceCal Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/third_party/conditions/apis/conditions/v1alpha1.Condition"), + Ref: ref(conditionsv1alpha1.Condition{}.OpenAPIModelName()), }, }, }, @@ -3532,7 +3542,7 @@ func schema_sdk_apis_cache_v1alpha1_CachedResourceStatus(ref common.ReferenceCal }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/cache/v1alpha1.ResourceCount", "github.com/kcp-dev/sdk/apis/third_party/conditions/apis/conditions/v1alpha1.Condition"}, + cachev1alpha1.ResourceCount{}.OpenAPIModelName(), conditionsv1alpha1.Condition{}.OpenAPIModelName()}, } } @@ -3645,26 +3655,26 @@ func schema_sdk_apis_core_v1alpha1_LogicalCluster(ref common.ReferenceCallback) "metadata": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), + Ref: ref(v1.ObjectMeta{}.OpenAPIModelName()), }, }, "spec": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/core/v1alpha1.LogicalClusterSpec"), + Ref: ref(corev1alpha1.LogicalClusterSpec{}.OpenAPIModelName()), }, }, "status": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/core/v1alpha1.LogicalClusterStatus"), + Ref: ref(corev1alpha1.LogicalClusterStatus{}.OpenAPIModelName()), }, }, }, }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/core/v1alpha1.LogicalClusterSpec", "github.com/kcp-dev/sdk/apis/core/v1alpha1.LogicalClusterStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + corev1alpha1.LogicalClusterSpec{}.OpenAPIModelName(), corev1alpha1.LogicalClusterStatus{}.OpenAPIModelName(), v1.ObjectMeta{}.OpenAPIModelName()}, } } @@ -3692,7 +3702,7 @@ func schema_sdk_apis_core_v1alpha1_LogicalClusterList(ref common.ReferenceCallba "metadata": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), + Ref: ref(v1.ListMeta{}.OpenAPIModelName()), }, }, "items": { @@ -3702,7 +3712,7 @@ func schema_sdk_apis_core_v1alpha1_LogicalClusterList(ref common.ReferenceCallba Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/core/v1alpha1.LogicalCluster"), + Ref: ref(corev1alpha1.LogicalCluster{}.OpenAPIModelName()), }, }, }, @@ -3713,7 +3723,7 @@ func schema_sdk_apis_core_v1alpha1_LogicalClusterList(ref common.ReferenceCallba }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/core/v1alpha1.LogicalCluster", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + corev1alpha1.LogicalCluster{}.OpenAPIModelName(), v1.ListMeta{}.OpenAPIModelName()}, } } @@ -3795,7 +3805,7 @@ func schema_sdk_apis_core_v1alpha1_LogicalClusterSpec(ref common.ReferenceCallba "owner": { SchemaProps: spec.SchemaProps{ Description: "owner is a reference to a resource controlling the life-cycle of this logical cluster. On deletion of the LogicalCluster, the finalizer core.kcp.io/logicalcluster is removed from the owner.\n\nWhen this object is deleted, but the owner is not deleted, the owner is deleted too.", - Ref: ref("github.com/kcp-dev/sdk/apis/core/v1alpha1.LogicalClusterOwner"), + Ref: ref(corev1alpha1.LogicalClusterOwner{}.OpenAPIModelName()), }, }, "initializers": { @@ -3832,7 +3842,7 @@ func schema_sdk_apis_core_v1alpha1_LogicalClusterSpec(ref common.ReferenceCallba }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/core/v1alpha1.LogicalClusterOwner"}, + corev1alpha1.LogicalClusterOwner{}.OpenAPIModelName()}, } } @@ -3865,7 +3875,7 @@ func schema_sdk_apis_core_v1alpha1_LogicalClusterStatus(ref common.ReferenceCall Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/third_party/conditions/apis/conditions/v1alpha1.Condition"), + Ref: ref(conditionsv1alpha1.Condition{}.OpenAPIModelName()), }, }, }, @@ -3905,7 +3915,7 @@ func schema_sdk_apis_core_v1alpha1_LogicalClusterStatus(ref common.ReferenceCall }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/third_party/conditions/apis/conditions/v1alpha1.Condition"}, + conditionsv1alpha1.Condition{}.OpenAPIModelName()}, } } @@ -3933,26 +3943,26 @@ func schema_sdk_apis_core_v1alpha1_Shard(ref common.ReferenceCallback) common.Op "metadata": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), + Ref: ref(v1.ObjectMeta{}.OpenAPIModelName()), }, }, "spec": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/core/v1alpha1.ShardSpec"), + Ref: ref(corev1alpha1.ShardSpec{}.OpenAPIModelName()), }, }, "status": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/core/v1alpha1.ShardStatus"), + Ref: ref(corev1alpha1.ShardStatus{}.OpenAPIModelName()), }, }, }, }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/core/v1alpha1.ShardSpec", "github.com/kcp-dev/sdk/apis/core/v1alpha1.ShardStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + corev1alpha1.ShardSpec{}.OpenAPIModelName(), corev1alpha1.ShardStatus{}.OpenAPIModelName(), v1.ObjectMeta{}.OpenAPIModelName()}, } } @@ -3980,7 +3990,7 @@ func schema_sdk_apis_core_v1alpha1_ShardList(ref common.ReferenceCallback) commo "metadata": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), + Ref: ref(v1.ListMeta{}.OpenAPIModelName()), }, }, "items": { @@ -3990,7 +4000,7 @@ func schema_sdk_apis_core_v1alpha1_ShardList(ref common.ReferenceCallback) commo Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/core/v1alpha1.Shard"), + Ref: ref(corev1alpha1.Shard{}.OpenAPIModelName()), }, }, }, @@ -4001,7 +4011,7 @@ func schema_sdk_apis_core_v1alpha1_ShardList(ref common.ReferenceCallback) commo }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/core/v1alpha1.Shard", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + corev1alpha1.Shard{}.OpenAPIModelName(), v1.ListMeta{}.OpenAPIModelName()}, } } @@ -4070,7 +4080,7 @@ func schema_sdk_apis_core_v1alpha1_ShardStatus(ref common.ReferenceCallback) com Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/third_party/conditions/apis/conditions/v1alpha1.Condition"), + Ref: ref(conditionsv1alpha1.Condition{}.OpenAPIModelName()), }, }, }, @@ -4080,7 +4090,7 @@ func schema_sdk_apis_core_v1alpha1_ShardStatus(ref common.ReferenceCallback) com }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/third_party/conditions/apis/conditions/v1alpha1.Condition", "k8s.io/apimachinery/pkg/api/resource.Quantity"}, + conditionsv1alpha1.Condition{}.OpenAPIModelName(), "k8s.io/apimachinery/pkg/api/resource.Quantity"}, } } @@ -4145,19 +4155,19 @@ func schema_sdk_apis_tenancy_v1alpha1_ClaimMappings(ref common.ReferenceCallback "username": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.PrefixedClaimOrExpression"), + Ref: ref(tenancyv1alpha1.PrefixedClaimOrExpression{}.OpenAPIModelName()), }, }, "groups": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.PrefixedClaimOrExpression"), + Ref: ref(tenancyv1alpha1.PrefixedClaimOrExpression{}.OpenAPIModelName()), }, }, "uid": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.ClaimOrExpression"), + Ref: ref(tenancyv1alpha1.ClaimOrExpression{}.OpenAPIModelName()), }, }, "extra": { @@ -4167,7 +4177,7 @@ func schema_sdk_apis_tenancy_v1alpha1_ClaimMappings(ref common.ReferenceCallback Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.ExtraMapping"), + Ref: ref(tenancyv1alpha1.ExtraMapping{}.OpenAPIModelName()), }, }, }, @@ -4177,7 +4187,7 @@ func schema_sdk_apis_tenancy_v1alpha1_ClaimMappings(ref common.ReferenceCallback }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.ClaimOrExpression", "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.ExtraMapping", "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.PrefixedClaimOrExpression"}, + tenancyv1alpha1.ClaimOrExpression{}.OpenAPIModelName(), tenancyv1alpha1.ExtraMapping{}.OpenAPIModelName(), tenancyv1alpha1.PrefixedClaimOrExpression{}.OpenAPIModelName()}, } } @@ -4335,7 +4345,7 @@ func schema_sdk_apis_tenancy_v1alpha1_JWTAuthenticator(ref common.ReferenceCallb "issuer": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.Issuer"), + Ref: ref(tenancyv1alpha1.Issuer{}.OpenAPIModelName()), }, }, "claimValidationRules": { @@ -4345,7 +4355,7 @@ func schema_sdk_apis_tenancy_v1alpha1_JWTAuthenticator(ref common.ReferenceCallb Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.ClaimValidationRule"), + Ref: ref(tenancyv1alpha1.ClaimValidationRule{}.OpenAPIModelName()), }, }, }, @@ -4354,7 +4364,7 @@ func schema_sdk_apis_tenancy_v1alpha1_JWTAuthenticator(ref common.ReferenceCallb "claimMappings": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.ClaimMappings"), + Ref: ref(tenancyv1alpha1.ClaimMappings{}.OpenAPIModelName()), }, }, "userValidationRules": { @@ -4364,7 +4374,7 @@ func schema_sdk_apis_tenancy_v1alpha1_JWTAuthenticator(ref common.ReferenceCallb Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.UserValidationRule"), + Ref: ref(tenancyv1alpha1.UserValidationRule{}.OpenAPIModelName()), }, }, }, @@ -4375,7 +4385,7 @@ func schema_sdk_apis_tenancy_v1alpha1_JWTAuthenticator(ref common.ReferenceCallb }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.ClaimMappings", "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.ClaimValidationRule", "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.Issuer", "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.UserValidationRule"}, + tenancyv1alpha1.ClaimMappings{}.OpenAPIModelName(), tenancyv1alpha1.ClaimValidationRule{}.OpenAPIModelName(), tenancyv1alpha1.Issuer{}.OpenAPIModelName(), tenancyv1alpha1.UserValidationRule{}.OpenAPIModelName()}, } } @@ -4390,7 +4400,7 @@ func schema_sdk_apis_tenancy_v1alpha1_Mount(ref common.ReferenceCallback) common SchemaProps: spec.SchemaProps{ Description: "Reference is an ObjectReference to the object that is mounted.", Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.ObjectReference"), + Ref: ref(tenancyv1alpha1.ObjectReference{}.OpenAPIModelName()), }, }, }, @@ -4398,7 +4408,7 @@ func schema_sdk_apis_tenancy_v1alpha1_Mount(ref common.ReferenceCallback) common }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.ObjectReference"}, + tenancyv1alpha1.ObjectReference{}.OpenAPIModelName()}, } } @@ -4557,19 +4567,19 @@ func schema_sdk_apis_tenancy_v1alpha1_Workspace(ref common.ReferenceCallback) co "metadata": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), + Ref: ref(v1.ObjectMeta{}.OpenAPIModelName()), }, }, "spec": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.WorkspaceSpec"), + Ref: ref(tenancyv1alpha1.WorkspaceSpec{}.OpenAPIModelName()), }, }, "status": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.WorkspaceStatus"), + Ref: ref(tenancyv1alpha1.WorkspaceStatus{}.OpenAPIModelName()), }, }, }, @@ -4577,7 +4587,7 @@ func schema_sdk_apis_tenancy_v1alpha1_Workspace(ref common.ReferenceCallback) co }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.WorkspaceSpec", "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.WorkspaceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + tenancyv1alpha1.WorkspaceSpec{}.OpenAPIModelName(), tenancyv1alpha1.WorkspaceStatus{}.OpenAPIModelName(), v1.ObjectMeta{}.OpenAPIModelName()}, } } @@ -4605,13 +4615,13 @@ func schema_sdk_apis_tenancy_v1alpha1_WorkspaceAuthenticationConfiguration(ref c "metadata": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), + Ref: ref(v1.ObjectMeta{}.OpenAPIModelName()), }, }, "spec": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.WorkspaceAuthenticationConfigurationSpec"), + Ref: ref(tenancyv1alpha1.WorkspaceAuthenticationConfigurationSpec{}.OpenAPIModelName()), }, }, }, @@ -4619,7 +4629,7 @@ func schema_sdk_apis_tenancy_v1alpha1_WorkspaceAuthenticationConfiguration(ref c }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.WorkspaceAuthenticationConfigurationSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + tenancyv1alpha1.WorkspaceAuthenticationConfigurationSpec{}.OpenAPIModelName(), v1.ObjectMeta{}.OpenAPIModelName()}, } } @@ -4647,7 +4657,7 @@ func schema_sdk_apis_tenancy_v1alpha1_WorkspaceAuthenticationConfigurationList(r "metadata": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), + Ref: ref(v1.ListMeta{}.OpenAPIModelName()), }, }, "items": { @@ -4657,7 +4667,7 @@ func schema_sdk_apis_tenancy_v1alpha1_WorkspaceAuthenticationConfigurationList(r Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.WorkspaceAuthenticationConfiguration"), + Ref: ref(tenancyv1alpha1.WorkspaceAuthenticationConfiguration{}.OpenAPIModelName()), }, }, }, @@ -4668,7 +4678,7 @@ func schema_sdk_apis_tenancy_v1alpha1_WorkspaceAuthenticationConfigurationList(r }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.WorkspaceAuthenticationConfiguration", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + tenancyv1alpha1.WorkspaceAuthenticationConfiguration{}.OpenAPIModelName(), v1.ListMeta{}.OpenAPIModelName()}, } } @@ -4685,7 +4695,7 @@ func schema_sdk_apis_tenancy_v1alpha1_WorkspaceAuthenticationConfigurationSpec(r Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.JWTAuthenticator"), + Ref: ref(tenancyv1alpha1.JWTAuthenticator{}.OpenAPIModelName()), }, }, }, @@ -4696,7 +4706,7 @@ func schema_sdk_apis_tenancy_v1alpha1_WorkspaceAuthenticationConfigurationSpec(r }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.JWTAuthenticator"}, + tenancyv1alpha1.JWTAuthenticator{}.OpenAPIModelName()}, } } @@ -4724,7 +4734,7 @@ func schema_sdk_apis_tenancy_v1alpha1_WorkspaceList(ref common.ReferenceCallback "metadata": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), + Ref: ref(v1.ListMeta{}.OpenAPIModelName()), }, }, "items": { @@ -4734,7 +4744,7 @@ func schema_sdk_apis_tenancy_v1alpha1_WorkspaceList(ref common.ReferenceCallback Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.Workspace"), + Ref: ref(tenancyv1alpha1.Workspace{}.OpenAPIModelName()), }, }, }, @@ -4745,7 +4755,7 @@ func schema_sdk_apis_tenancy_v1alpha1_WorkspaceList(ref common.ReferenceCallback }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.Workspace", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + tenancyv1alpha1.Workspace{}.OpenAPIModelName(), v1.ListMeta{}.OpenAPIModelName()}, } } @@ -4758,14 +4768,14 @@ func schema_sdk_apis_tenancy_v1alpha1_WorkspaceLocation(ref common.ReferenceCall "selector": { SchemaProps: spec.SchemaProps{ Description: "selector is a label selector that filters workspace scheduling targets.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), + Ref: ref(v1.LabelSelector{}.OpenAPIModelName()), }, }, }, }, }, Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, + v1.LabelSelector{}.OpenAPIModelName()}, } } @@ -4779,13 +4789,13 @@ func schema_sdk_apis_tenancy_v1alpha1_WorkspaceSpec(ref common.ReferenceCallback "type": { SchemaProps: spec.SchemaProps{ Description: "type defines properties of the workspace both on creation (e.g. initial resources and initially installed APIs) and during runtime (e.g. permissions). If no type is provided, the default type for the workspace in which this workspace is nesting will be used.\n\nThe type is a reference to a WorkspaceType in the listed workspace, but lower-cased. The WorkspaceType existence is validated at admission during creation. The type is immutable after creation. The use of a type is gated via the RBAC workspacetypes/use resource permission.", - Ref: ref("github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.WorkspaceTypeReference"), + Ref: ref(tenancyv1alpha1.WorkspaceTypeReference{}.OpenAPIModelName()), }, }, "location": { SchemaProps: spec.SchemaProps{ Description: "location constraints where this workspace can be scheduled to.\n\nIf the no location is specified, an arbitrary location is chosen.", - Ref: ref("github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.WorkspaceLocation"), + Ref: ref(tenancyv1alpha1.WorkspaceLocation{}.OpenAPIModelName()), }, }, "cluster": { @@ -4805,14 +4815,14 @@ func schema_sdk_apis_tenancy_v1alpha1_WorkspaceSpec(ref common.ReferenceCallback "mount": { SchemaProps: spec.SchemaProps{ Description: "Mount is a reference to an object implementing a mounting feature. It is used to orchestrate where the traffic, intended for the workspace, is sent. If specified, logicalcluster will not be created and the workspace will be mounted using reference mount object.", - Ref: ref("github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.Mount"), + Ref: ref(tenancyv1alpha1.Mount{}.OpenAPIModelName()), }, }, }, }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.Mount", "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.WorkspaceLocation", "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.WorkspaceTypeReference"}, + tenancyv1alpha1.Mount{}.OpenAPIModelName(), tenancyv1alpha1.WorkspaceLocation{}.OpenAPIModelName(), tenancyv1alpha1.WorkspaceTypeReference{}.OpenAPIModelName()}, } } @@ -4838,7 +4848,7 @@ func schema_sdk_apis_tenancy_v1alpha1_WorkspaceStatus(ref common.ReferenceCallba Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/third_party/conditions/apis/conditions/v1alpha1.Condition"), + Ref: ref(conditionsv1alpha1.Condition{}.OpenAPIModelName()), }, }, }, @@ -4878,7 +4888,7 @@ func schema_sdk_apis_tenancy_v1alpha1_WorkspaceStatus(ref common.ReferenceCallba }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/third_party/conditions/apis/conditions/v1alpha1.Condition"}, + conditionsv1alpha1.Condition{}.OpenAPIModelName()}, } } @@ -4906,26 +4916,26 @@ func schema_sdk_apis_tenancy_v1alpha1_WorkspaceType(ref common.ReferenceCallback "metadata": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), + Ref: ref(v1.ObjectMeta{}.OpenAPIModelName()), }, }, "spec": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.WorkspaceTypeSpec"), + Ref: ref(tenancyv1alpha1.WorkspaceTypeSpec{}.OpenAPIModelName()), }, }, "status": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.WorkspaceTypeStatus"), + Ref: ref(tenancyv1alpha1.WorkspaceTypeStatus{}.OpenAPIModelName()), }, }, }, }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.WorkspaceTypeSpec", "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.WorkspaceTypeStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + tenancyv1alpha1.WorkspaceTypeSpec{}.OpenAPIModelName(), tenancyv1alpha1.WorkspaceTypeStatus{}.OpenAPIModelName(), v1.ObjectMeta{}.OpenAPIModelName()}, } } @@ -4944,7 +4954,7 @@ func schema_sdk_apis_tenancy_v1alpha1_WorkspaceTypeExtension(ref common.Referenc Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.WorkspaceTypeReference"), + Ref: ref(tenancyv1alpha1.WorkspaceTypeReference{}.OpenAPIModelName()), }, }, }, @@ -4954,7 +4964,7 @@ func schema_sdk_apis_tenancy_v1alpha1_WorkspaceTypeExtension(ref common.Referenc }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.WorkspaceTypeReference"}, + tenancyv1alpha1.WorkspaceTypeReference{}.OpenAPIModelName()}, } } @@ -4982,7 +4992,7 @@ func schema_sdk_apis_tenancy_v1alpha1_WorkspaceTypeList(ref common.ReferenceCall "metadata": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), + Ref: ref(v1.ListMeta{}.OpenAPIModelName()), }, }, "items": { @@ -4992,7 +5002,7 @@ func schema_sdk_apis_tenancy_v1alpha1_WorkspaceTypeList(ref common.ReferenceCall Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.WorkspaceType"), + Ref: ref(tenancyv1alpha1.WorkspaceType{}.OpenAPIModelName()), }, }, }, @@ -5003,7 +5013,7 @@ func schema_sdk_apis_tenancy_v1alpha1_WorkspaceTypeList(ref common.ReferenceCall }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.WorkspaceType", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + tenancyv1alpha1.WorkspaceType{}.OpenAPIModelName(), v1.ListMeta{}.OpenAPIModelName()}, } } @@ -5058,7 +5068,7 @@ func schema_sdk_apis_tenancy_v1alpha1_WorkspaceTypeSelector(ref common.Reference Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.WorkspaceTypeReference"), + Ref: ref(tenancyv1alpha1.WorkspaceTypeReference{}.OpenAPIModelName()), }, }, }, @@ -5068,7 +5078,7 @@ func schema_sdk_apis_tenancy_v1alpha1_WorkspaceTypeSelector(ref common.Reference }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.WorkspaceTypeReference"}, + tenancyv1alpha1.WorkspaceTypeReference{}.OpenAPIModelName()}, } } @@ -5096,7 +5106,7 @@ func schema_sdk_apis_tenancy_v1alpha1_WorkspaceTypeSpec(ref common.ReferenceCall SchemaProps: spec.SchemaProps{ Description: "extend is a list of other WorkspaceTypes whose initializers and limitAllowedChildren and limitAllowedParents this WorkspaceType is inheriting. By (transitively) extending another WorkspaceType, this WorkspaceType will be considered as that other type in evaluation of limitAllowedChildren and limitAllowedParents constraints.\n\nA dependency cycle stop this WorkspaceType from being admitted as the type of a Workspace.\n\nA non-existing dependency stop this WorkspaceType from being admitted as the type of a Workspace.", Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.WorkspaceTypeExtension"), + Ref: ref(tenancyv1alpha1.WorkspaceTypeExtension{}.OpenAPIModelName()), }, }, "additionalWorkspaceLabels": { @@ -5118,19 +5128,19 @@ func schema_sdk_apis_tenancy_v1alpha1_WorkspaceTypeSpec(ref common.ReferenceCall "defaultChildWorkspaceType": { SchemaProps: spec.SchemaProps{ Description: "defaultChildWorkspaceType is the WorkspaceType that will be used by default if another, nested Workspace is created in a workspace of this type. When this field is unset, the user must specify a type when creating nested workspaces. Extending another WorkspaceType does not inherit its defaultChildWorkspaceType.", - Ref: ref("github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.WorkspaceTypeReference"), + Ref: ref(tenancyv1alpha1.WorkspaceTypeReference{}.OpenAPIModelName()), }, }, "limitAllowedChildren": { SchemaProps: spec.SchemaProps{ Description: "limitAllowedChildren specifies constraints for sub-workspaces created in workspaces of this type. These are in addition to child constraints of types this one extends.", - Ref: ref("github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.WorkspaceTypeSelector"), + Ref: ref(tenancyv1alpha1.WorkspaceTypeSelector{}.OpenAPIModelName()), }, }, "limitAllowedParents": { SchemaProps: spec.SchemaProps{ Description: "limitAllowedParents specifies constraints for the parent workspace that workspaces of this type are created in. These are in addition to parent constraints of types this one extends.", - Ref: ref("github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.WorkspaceTypeSelector"), + Ref: ref(tenancyv1alpha1.WorkspaceTypeSelector{}.OpenAPIModelName()), }, }, "defaultAPIBindings": { @@ -5141,7 +5151,7 @@ func schema_sdk_apis_tenancy_v1alpha1_WorkspaceTypeSpec(ref common.ReferenceCall Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.APIExportReference"), + Ref: ref(tenancyv1alpha1.APIExportReference{}.OpenAPIModelName()), }, }, }, @@ -5162,7 +5172,7 @@ func schema_sdk_apis_tenancy_v1alpha1_WorkspaceTypeSpec(ref common.ReferenceCall Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.AuthenticationConfigurationReference"), + Ref: ref(tenancyv1alpha1.AuthenticationConfigurationReference{}.OpenAPIModelName()), }, }, }, @@ -5172,7 +5182,7 @@ func schema_sdk_apis_tenancy_v1alpha1_WorkspaceTypeSpec(ref common.ReferenceCall }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.APIExportReference", "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.AuthenticationConfigurationReference", "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.WorkspaceTypeExtension", "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.WorkspaceTypeReference", "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.WorkspaceTypeSelector"}, + tenancyv1alpha1.APIExportReference{}.OpenAPIModelName(), tenancyv1alpha1.AuthenticationConfigurationReference{}.OpenAPIModelName(), tenancyv1alpha1.WorkspaceTypeExtension{}.OpenAPIModelName(), tenancyv1alpha1.WorkspaceTypeReference{}.OpenAPIModelName(), tenancyv1alpha1.WorkspaceTypeSelector{}.OpenAPIModelName()}, } } @@ -5191,7 +5201,7 @@ func schema_sdk_apis_tenancy_v1alpha1_WorkspaceTypeStatus(ref common.ReferenceCa Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/third_party/conditions/apis/conditions/v1alpha1.Condition"), + Ref: ref(conditionsv1alpha1.Condition{}.OpenAPIModelName()), }, }, }, @@ -5205,7 +5215,7 @@ func schema_sdk_apis_tenancy_v1alpha1_WorkspaceTypeStatus(ref common.ReferenceCa Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.VirtualWorkspace"), + Ref: ref(tenancyv1alpha1.VirtualWorkspace{}.OpenAPIModelName()), }, }, }, @@ -5215,7 +5225,7 @@ func schema_sdk_apis_tenancy_v1alpha1_WorkspaceTypeStatus(ref common.ReferenceCa }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/tenancy/v1alpha1.VirtualWorkspace", "github.com/kcp-dev/sdk/apis/third_party/conditions/apis/conditions/v1alpha1.Condition"}, + tenancyv1alpha1.VirtualWorkspace{}.OpenAPIModelName(), conditionsv1alpha1.Condition{}.OpenAPIModelName()}, } } @@ -5252,7 +5262,7 @@ func schema_conditions_apis_conditions_v1alpha1_Condition(ref common.ReferenceCa "lastTransitionTime": { SchemaProps: spec.SchemaProps{ Description: "Last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + Ref: ref(v1.Time{}.OpenAPIModelName()), }, }, "reason": { @@ -5274,7 +5284,7 @@ func schema_conditions_apis_conditions_v1alpha1_Condition(ref common.ReferenceCa }, }, Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, + v1.Time{}.OpenAPIModelName()}, } } @@ -5302,21 +5312,21 @@ func schema_sdk_apis_topology_v1alpha1_Partition(ref common.ReferenceCallback) c "metadata": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), + Ref: ref(v1.ObjectMeta{}.OpenAPIModelName()), }, }, "spec": { SchemaProps: spec.SchemaProps{ Description: "spec holds the desired state.", Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/topology/v1alpha1.PartitionSpec"), + Ref: ref(topologyv1alpha1.PartitionSpec{}.OpenAPIModelName()), }, }, }, }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/topology/v1alpha1.PartitionSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + topologyv1alpha1.PartitionSpec{}.OpenAPIModelName(), v1.ObjectMeta{}.OpenAPIModelName()}, } } @@ -5344,7 +5354,7 @@ func schema_sdk_apis_topology_v1alpha1_PartitionList(ref common.ReferenceCallbac "metadata": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), + Ref: ref(v1.ListMeta{}.OpenAPIModelName()), }, }, "items": { @@ -5354,7 +5364,7 @@ func schema_sdk_apis_topology_v1alpha1_PartitionList(ref common.ReferenceCallbac Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/topology/v1alpha1.Partition"), + Ref: ref(topologyv1alpha1.Partition{}.OpenAPIModelName()), }, }, }, @@ -5365,7 +5375,7 @@ func schema_sdk_apis_topology_v1alpha1_PartitionList(ref common.ReferenceCallbac }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/topology/v1alpha1.Partition", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + topologyv1alpha1.Partition{}.OpenAPIModelName(), v1.ListMeta{}.OpenAPIModelName()}, } } @@ -5393,28 +5403,28 @@ func schema_sdk_apis_topology_v1alpha1_PartitionSet(ref common.ReferenceCallback "metadata": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), + Ref: ref(v1.ObjectMeta{}.OpenAPIModelName()), }, }, "spec": { SchemaProps: spec.SchemaProps{ Description: "spec holds the desired state.", Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/topology/v1alpha1.PartitionSetSpec"), + Ref: ref(topologyv1alpha1.PartitionSetSpec{}.OpenAPIModelName()), }, }, "status": { SchemaProps: spec.SchemaProps{ Description: "status holds information about the current status", Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/topology/v1alpha1.PartitionSetStatus"), + Ref: ref(topologyv1alpha1.PartitionSetStatus{}.OpenAPIModelName()), }, }, }, }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/topology/v1alpha1.PartitionSetSpec", "github.com/kcp-dev/sdk/apis/topology/v1alpha1.PartitionSetStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + topologyv1alpha1.PartitionSetSpec{}.OpenAPIModelName(), topologyv1alpha1.PartitionSetStatus{}.OpenAPIModelName(), v1.ObjectMeta{}.OpenAPIModelName()}, } } @@ -5442,7 +5452,7 @@ func schema_sdk_apis_topology_v1alpha1_PartitionSetList(ref common.ReferenceCall "metadata": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), + Ref: ref(v1.ListMeta{}.OpenAPIModelName()), }, }, "items": { @@ -5452,7 +5462,7 @@ func schema_sdk_apis_topology_v1alpha1_PartitionSetList(ref common.ReferenceCall Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/topology/v1alpha1.PartitionSet"), + Ref: ref(topologyv1alpha1.PartitionSet{}.OpenAPIModelName()), }, }, }, @@ -5463,7 +5473,7 @@ func schema_sdk_apis_topology_v1alpha1_PartitionSetList(ref common.ReferenceCall }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/topology/v1alpha1.PartitionSet", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + topologyv1alpha1.PartitionSet{}.OpenAPIModelName(), v1.ListMeta{}.OpenAPIModelName()}, } } @@ -5492,14 +5502,14 @@ func schema_sdk_apis_topology_v1alpha1_PartitionSetSpec(ref common.ReferenceCall "shardSelector": { SchemaProps: spec.SchemaProps{ Description: "shardSelector (optional) specifies filtering for shard targets.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), + Ref: ref(v1.LabelSelector{}.OpenAPIModelName()), }, }, }, }, }, Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, + v1.LabelSelector{}.OpenAPIModelName()}, } } @@ -5525,7 +5535,7 @@ func schema_sdk_apis_topology_v1alpha1_PartitionSetStatus(ref common.ReferenceCa Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/kcp-dev/sdk/apis/third_party/conditions/apis/conditions/v1alpha1.Condition"), + Ref: ref(conditionsv1alpha1.Condition{}.OpenAPIModelName()), }, }, }, @@ -5535,7 +5545,7 @@ func schema_sdk_apis_topology_v1alpha1_PartitionSetStatus(ref common.ReferenceCa }, }, Dependencies: []string{ - "github.com/kcp-dev/sdk/apis/third_party/conditions/apis/conditions/v1alpha1.Condition"}, + conditionsv1alpha1.Condition{}.OpenAPIModelName()}, } } @@ -5549,14 +5559,14 @@ func schema_sdk_apis_topology_v1alpha1_PartitionSpec(ref common.ReferenceCallbac "selector": { SchemaProps: spec.SchemaProps{ Description: "selector (optional) is a label selector that filters shard targets.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), + Ref: ref(v1.LabelSelector{}.OpenAPIModelName()), }, }, }, }, }, Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, + v1.LabelSelector{}.OpenAPIModelName()}, } } @@ -5602,7 +5612,7 @@ func schema_pkg_apis_meta_v1_APIGroup(ref common.ReferenceCallback) common.OpenA Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.GroupVersionForDiscovery"), + Ref: ref(v1.GroupVersionForDiscovery{}.OpenAPIModelName()), }, }, }, @@ -5612,7 +5622,7 @@ func schema_pkg_apis_meta_v1_APIGroup(ref common.ReferenceCallback) common.OpenA SchemaProps: spec.SchemaProps{ Description: "preferredVersion is the version preferred by the API server, which probably is the storage version.", Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.GroupVersionForDiscovery"), + Ref: ref(v1.GroupVersionForDiscovery{}.OpenAPIModelName()), }, }, "serverAddressByClientCIDRs": { @@ -5628,7 +5638,7 @@ func schema_pkg_apis_meta_v1_APIGroup(ref common.ReferenceCallback) common.OpenA Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ServerAddressByClientCIDR"), + Ref: ref(v1.ServerAddressByClientCIDR{}.OpenAPIModelName()), }, }, }, @@ -5639,7 +5649,7 @@ func schema_pkg_apis_meta_v1_APIGroup(ref common.ReferenceCallback) common.OpenA }, }, Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.GroupVersionForDiscovery", "k8s.io/apimachinery/pkg/apis/meta/v1.ServerAddressByClientCIDR"}, + v1.GroupVersionForDiscovery{}.OpenAPIModelName(), v1.ServerAddressByClientCIDR{}.OpenAPIModelName()}, } } @@ -5677,7 +5687,7 @@ func schema_pkg_apis_meta_v1_APIGroupList(ref common.ReferenceCallback) common.O Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.APIGroup"), + Ref: ref(v1.APIGroup{}.OpenAPIModelName()), }, }, }, @@ -5688,7 +5698,7 @@ func schema_pkg_apis_meta_v1_APIGroupList(ref common.ReferenceCallback) common.O }, }, Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.APIGroup"}, + v1.APIGroup{}.OpenAPIModelName()}, } } @@ -5856,7 +5866,7 @@ func schema_pkg_apis_meta_v1_APIResourceList(ref common.ReferenceCallback) commo Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.APIResource"), + Ref: ref(v1.APIResource{}.OpenAPIModelName()), }, }, }, @@ -5867,7 +5877,7 @@ func schema_pkg_apis_meta_v1_APIResourceList(ref common.ReferenceCallback) commo }, }, Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.APIResource"}, + v1.APIResource{}.OpenAPIModelName()}, } } @@ -5925,7 +5935,7 @@ func schema_pkg_apis_meta_v1_APIVersions(ref common.ReferenceCallback) common.Op Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ServerAddressByClientCIDR"), + Ref: ref(v1.ServerAddressByClientCIDR{}.OpenAPIModelName()), }, }, }, @@ -5936,7 +5946,7 @@ func schema_pkg_apis_meta_v1_APIVersions(ref common.ReferenceCallback) common.Op }, }, Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.ServerAddressByClientCIDR"}, + v1.ServerAddressByClientCIDR{}.OpenAPIModelName()}, } } @@ -6037,7 +6047,7 @@ func schema_pkg_apis_meta_v1_Condition(ref common.ReferenceCallback) common.Open "lastTransitionTime": { SchemaProps: spec.SchemaProps{ Description: "lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + Ref: ref(v1.Time{}.OpenAPIModelName()), }, }, "reason": { @@ -6061,7 +6071,7 @@ func schema_pkg_apis_meta_v1_Condition(ref common.ReferenceCallback) common.Open }, }, Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, + v1.Time{}.OpenAPIModelName()}, } } @@ -6157,7 +6167,7 @@ func schema_pkg_apis_meta_v1_DeleteOptions(ref common.ReferenceCallback) common. "preconditions": { SchemaProps: spec.SchemaProps{ Description: "Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Preconditions"), + Ref: ref(v1.Preconditions{}.OpenAPIModelName()), }, }, "orphanDependents": { @@ -6205,7 +6215,7 @@ func schema_pkg_apis_meta_v1_DeleteOptions(ref common.ReferenceCallback) common. }, }, Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Preconditions"}, + v1.Preconditions{}.OpenAPIModelName()}, } } @@ -6517,15 +6527,12 @@ func schema_pkg_apis_meta_v1_InternalEvent(ref common.ReferenceCallback) common. "Object": { SchemaProps: spec.SchemaProps{ Description: "Object is:\n * If Type is Added or Modified: the new state of the object.\n * If Type is Deleted: the state of the object immediately before deletion.\n * If Type is Bookmark: the object (instance of a type being watched) where\n only ResourceVersion field is set. On successful restart of watch from a\n bookmark resourceVersion, client is guaranteed to not get repeat event\n nor miss any events.\n * If Type is Error: *api.Status is recommended; other types may make sense\n depending on context.", - Ref: ref("k8s.io/apimachinery/pkg/runtime.Object"), }, }, }, Required: []string{"Type", "Object"}, }, }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/runtime.Object"}, } } @@ -6565,7 +6572,7 @@ func schema_pkg_apis_meta_v1_LabelSelector(ref common.ReferenceCallback) common. Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelectorRequirement"), + Ref: ref(v1.LabelSelectorRequirement{}.OpenAPIModelName()), }, }, }, @@ -6580,7 +6587,7 @@ func schema_pkg_apis_meta_v1_LabelSelector(ref common.ReferenceCallback) common. }, }, Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelectorRequirement"}, + v1.LabelSelectorRequirement{}.OpenAPIModelName()}, } } @@ -6659,7 +6666,7 @@ func schema_pkg_apis_meta_v1_List(ref common.ReferenceCallback) common.OpenAPIDe SchemaProps: spec.SchemaProps{ Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), + Ref: ref(v1.ListMeta{}.OpenAPIModelName()), }, }, "items": { @@ -6669,7 +6676,7 @@ func schema_pkg_apis_meta_v1_List(ref common.ReferenceCallback) common.OpenAPIDe Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Ref: ref("k8s.io/apimachinery/pkg/runtime.RawExtension"), + Ref: ref(runtime.RawExtension{}.OpenAPIModelName()), }, }, }, @@ -6680,7 +6687,7 @@ func schema_pkg_apis_meta_v1_List(ref common.ReferenceCallback) common.OpenAPIDe }, }, Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta", "k8s.io/apimachinery/pkg/runtime.RawExtension"}, + v1.ListMeta{}.OpenAPIModelName(), runtime.RawExtension{}.OpenAPIModelName()}, } } @@ -6853,7 +6860,7 @@ func schema_pkg_apis_meta_v1_ManagedFieldsEntry(ref common.ReferenceCallback) co "time": { SchemaProps: spec.SchemaProps{ Description: "Time is the timestamp of when the ManagedFields entry was added. The timestamp will also be updated if a field is added, the manager changes any of the owned fields value or removes a field. The timestamp does not update when a field is removed from the entry because another manager took it over.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + Ref: ref(v1.Time{}.OpenAPIModelName()), }, }, "fieldsType": { @@ -6866,7 +6873,7 @@ func schema_pkg_apis_meta_v1_ManagedFieldsEntry(ref common.ReferenceCallback) co "fieldsV1": { SchemaProps: spec.SchemaProps{ Description: "FieldsV1 holds the first JSON version format as described in the \"FieldsV1\" type.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.FieldsV1"), + Ref: ref(v1.FieldsV1{}.OpenAPIModelName()), }, }, "subresource": { @@ -6880,7 +6887,7 @@ func schema_pkg_apis_meta_v1_ManagedFieldsEntry(ref common.ReferenceCallback) co }, }, Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.FieldsV1", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, + v1.FieldsV1{}.OpenAPIModelName(), v1.Time{}.OpenAPIModelName()}, } } @@ -6955,13 +6962,13 @@ func schema_pkg_apis_meta_v1_ObjectMeta(ref common.ReferenceCallback) common.Ope "creationTimestamp": { SchemaProps: spec.SchemaProps{ Description: "CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\n\nPopulated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + Ref: ref(v1.Time{}.OpenAPIModelName()), }, }, "deletionTimestamp": { SchemaProps: spec.SchemaProps{ Description: "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + Ref: ref(v1.Time{}.OpenAPIModelName()), }, }, "deletionGracePeriodSeconds": { @@ -7021,7 +7028,7 @@ func schema_pkg_apis_meta_v1_ObjectMeta(ref common.ReferenceCallback) common.Ope Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.OwnerReference"), + Ref: ref(v1.OwnerReference{}.OpenAPIModelName()), }, }, }, @@ -7061,7 +7068,7 @@ func schema_pkg_apis_meta_v1_ObjectMeta(ref common.ReferenceCallback) common.Ope Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ManagedFieldsEntry"), + Ref: ref(v1.ManagedFieldsEntry{}.OpenAPIModelName()), }, }, }, @@ -7071,7 +7078,7 @@ func schema_pkg_apis_meta_v1_ObjectMeta(ref common.ReferenceCallback) common.Ope }, }, Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.ManagedFieldsEntry", "k8s.io/apimachinery/pkg/apis/meta/v1.OwnerReference", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, + v1.ManagedFieldsEntry{}.OpenAPIModelName(), v1.OwnerReference{}.OpenAPIModelName(), v1.Time{}.OpenAPIModelName()}, } } @@ -7165,14 +7172,14 @@ func schema_pkg_apis_meta_v1_PartialObjectMetadata(ref common.ReferenceCallback) SchemaProps: spec.SchemaProps{ Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), + Ref: ref(v1.ObjectMeta{}.OpenAPIModelName()), }, }, }, }, }, Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + v1.ObjectMeta{}.OpenAPIModelName()}, } } @@ -7201,7 +7208,7 @@ func schema_pkg_apis_meta_v1_PartialObjectMetadataList(ref common.ReferenceCallb SchemaProps: spec.SchemaProps{ Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), + Ref: ref(v1.ListMeta{}.OpenAPIModelName()), }, }, "items": { @@ -7212,7 +7219,7 @@ func schema_pkg_apis_meta_v1_PartialObjectMetadataList(ref common.ReferenceCallb Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.PartialObjectMetadata"), + Ref: ref(v1.PartialObjectMetadata{}.OpenAPIModelName()), }, }, }, @@ -7223,7 +7230,7 @@ func schema_pkg_apis_meta_v1_PartialObjectMetadataList(ref common.ReferenceCallb }, }, Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta", "k8s.io/apimachinery/pkg/apis/meta/v1.PartialObjectMetadata"}, + v1.ListMeta{}.OpenAPIModelName(), v1.PartialObjectMetadata{}.OpenAPIModelName()}, } } @@ -7422,7 +7429,7 @@ func schema_pkg_apis_meta_v1_Status(ref common.ReferenceCallback) common.OpenAPI SchemaProps: spec.SchemaProps{ Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), + Ref: ref(v1.ListMeta{}.OpenAPIModelName()), }, }, "status": { @@ -7447,14 +7454,9 @@ func schema_pkg_apis_meta_v1_Status(ref common.ReferenceCallback) common.OpenAPI }, }, "details": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, SchemaProps: spec.SchemaProps{ Description: "Extended data associated with the reason. Each reason may define its own extended details. This field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.StatusDetails"), + Ref: ref(v1.StatusDetails{}.OpenAPIModelName()), }, }, "code": { @@ -7468,7 +7470,7 @@ func schema_pkg_apis_meta_v1_Status(ref common.ReferenceCallback) common.OpenAPI }, }, Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta", "k8s.io/apimachinery/pkg/apis/meta/v1.StatusDetails"}, + v1.ListMeta{}.OpenAPIModelName(), v1.StatusDetails{}.OpenAPIModelName()}, } } @@ -7554,7 +7556,7 @@ func schema_pkg_apis_meta_v1_StatusDetails(ref common.ReferenceCallback) common. Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.StatusCause"), + Ref: ref(v1.StatusCause{}.OpenAPIModelName()), }, }, }, @@ -7571,7 +7573,7 @@ func schema_pkg_apis_meta_v1_StatusDetails(ref common.ReferenceCallback) common. }, }, Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.StatusCause"}, + v1.StatusCause{}.OpenAPIModelName()}, } } @@ -7600,7 +7602,7 @@ func schema_pkg_apis_meta_v1_Table(ref common.ReferenceCallback) common.OpenAPID SchemaProps: spec.SchemaProps{ Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), + Ref: ref(v1.ListMeta{}.OpenAPIModelName()), }, }, "columnDefinitions": { @@ -7616,7 +7618,7 @@ func schema_pkg_apis_meta_v1_Table(ref common.ReferenceCallback) common.OpenAPID Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.TableColumnDefinition"), + Ref: ref(v1.TableColumnDefinition{}.OpenAPIModelName()), }, }, }, @@ -7635,7 +7637,7 @@ func schema_pkg_apis_meta_v1_Table(ref common.ReferenceCallback) common.OpenAPID Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.TableRow"), + Ref: ref(v1.TableRow{}.OpenAPIModelName()), }, }, }, @@ -7646,7 +7648,7 @@ func schema_pkg_apis_meta_v1_Table(ref common.ReferenceCallback) common.OpenAPID }, }, Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta", "k8s.io/apimachinery/pkg/apis/meta/v1.TableColumnDefinition", "k8s.io/apimachinery/pkg/apis/meta/v1.TableRow"}, + v1.ListMeta{}.OpenAPIModelName(), v1.TableColumnDefinition{}.OpenAPIModelName(), v1.TableRow{}.OpenAPIModelName()}, } } @@ -7777,7 +7779,7 @@ func schema_pkg_apis_meta_v1_TableRow(ref common.ReferenceCallback) common.OpenA Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.TableRowCondition"), + Ref: ref(v1.TableRowCondition{}.OpenAPIModelName()), }, }, }, @@ -7786,7 +7788,7 @@ func schema_pkg_apis_meta_v1_TableRow(ref common.ReferenceCallback) common.OpenA "object": { SchemaProps: spec.SchemaProps{ Description: "This field contains the requested additional information about each object based on the includeObject policy when requesting the Table. If \"None\", this field is empty, if \"Object\" this will be the default serialization of the object for the current API version, and if \"Metadata\" (the default) will contain the object metadata. Check the returned kind and apiVersion of the object before parsing. The media type of the object will always match the enclosing list - if this as a JSON table, these will be JSON encoded objects.", - Ref: ref("k8s.io/apimachinery/pkg/runtime.RawExtension"), + Ref: ref(runtime.RawExtension{}.OpenAPIModelName()), }, }, }, @@ -7794,7 +7796,7 @@ func schema_pkg_apis_meta_v1_TableRow(ref common.ReferenceCallback) common.OpenA }, }, Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.TableRowCondition", "k8s.io/apimachinery/pkg/runtime.RawExtension"}, + v1.TableRowCondition{}.OpenAPIModelName(), runtime.RawExtension{}.OpenAPIModelName()}, } } @@ -7989,7 +7991,7 @@ func schema_pkg_apis_meta_v1_WatchEvent(ref common.ReferenceCallback) common.Ope "object": { SchemaProps: spec.SchemaProps{ Description: "Object is:\n * If Type is Added or Modified: the new state of the object.\n * If Type is Deleted: the state of the object immediately before deletion.\n * If Type is Error: *Status is recommended; other types may make sense\n depending on context.", - Ref: ref("k8s.io/apimachinery/pkg/runtime.RawExtension"), + Ref: ref(runtime.RawExtension{}.OpenAPIModelName()), }, }, }, @@ -7997,7 +7999,7 @@ func schema_pkg_apis_meta_v1_WatchEvent(ref common.ReferenceCallback) common.Ope }, }, Dependencies: []string{ - "k8s.io/apimachinery/pkg/runtime.RawExtension"}, + runtime.RawExtension{}.OpenAPIModelName()}, } } diff --git a/pkg/proxy/lookup/lookup.go b/pkg/proxy/lookup/lookup.go index 30f9305c833..604dc00fa55 100644 --- a/pkg/proxy/lookup/lookup.go +++ b/pkg/proxy/lookup/lookup.go @@ -178,7 +178,7 @@ func resolveClusterName(w http.ResponseWriter, req *http.Request, index proxyind if !clusterPath.IsValid() { // this includes wildcards logger.WithValues("requestPath", req.URL.Path).V(4).Info("Invalid cluster path") - responsewriters.Forbidden(req.Context(), attributes, w, req, kcpauthorization.WorkspaceAccessNotPermittedReason, kubernetesscheme.Codecs) + responsewriters.Forbidden(attributes, w, req, kcpauthorization.WorkspaceAccessNotPermittedReason, kubernetesscheme.Codecs) return nil, nil } @@ -189,7 +189,7 @@ func resolveClusterName(w http.ResponseWriter, req *http.Request, index proxyind } if !found { logger.WithValues("clusterPath", clusterPath).V(4).Info("Unknown cluster path") - responsewriters.Forbidden(req.Context(), attributes, w, req, kcpauthorization.WorkspaceAccessNotPermittedReason, kubernetesscheme.Codecs) + responsewriters.Forbidden(attributes, w, req, kcpauthorization.WorkspaceAccessNotPermittedReason, kubernetesscheme.Codecs) return nil, nil } diff --git a/pkg/reconciler/tenancy/workspace/workspace_reconcile_scheduling_test.go b/pkg/reconciler/tenancy/workspace/workspace_reconcile_scheduling_test.go index 6fcdd158b07..c71dd8045c6 100644 --- a/pkg/reconciler/tenancy/workspace/workspace_reconcile_scheduling_test.go +++ b/pkg/reconciler/tenancy/workspace/workspace_reconcile_scheduling_test.go @@ -283,8 +283,8 @@ func TestReconcileScheduling(t *testing.T) { } for _, scenario := range scenarios { t.Run(scenario.name, func(t *testing.T) { - fakeKubeClient := kcpfakekubeclient.NewSimpleClientset(scenario.initialKubeClientObjects...) - fakeKcpClient := kcpfakeclient.NewSimpleClientset(scenario.initialKcpClientObjects...) + fakeKubeClient := kcpfakekubeclient.NewSimpleClientset(scenario.initialKubeClientObjects...) //nolint:staticcheck + fakeKcpClient := kcpfakeclient.NewSimpleClientset(scenario.initialKcpClientObjects...) //nolint:staticcheck workspaceTypeIndexer := cache.NewIndexer(kcpcache.MetaClusterNamespaceKeyFunc, cache.Indexers{}) indexers.AddIfNotPresentOrDie(workspaceTypeIndexer, cache.Indexers{ diff --git a/pkg/server/controllers.go b/pkg/server/controllers.go index 52d84394584..49678f37482 100644 --- a/pkg/server/controllers.go +++ b/pkg/server/controllers.go @@ -238,6 +238,7 @@ func (s *Server) installKubeServiceAccountController(ctx context.Context, config } c, err := serviceaccountcontroller.NewServiceAccountsController( + klog.FromContext(ctx).WithValues("controller", controllerName), s.KubeSharedInformerFactory.Core().V1().ServiceAccounts(), s.KubeSharedInformerFactory.Core().V1().Namespaces(), kubeClient, diff --git a/pkg/server/home_workspaces.go b/pkg/server/home_workspaces.go index 42fa6f90393..343f60100a1 100644 --- a/pkg/server/home_workspaces.go +++ b/pkg/server/home_workspaces.go @@ -206,11 +206,11 @@ func (h *homeWorkspaceHandler) ServeHTTP(rw http.ResponseWriter, req *http.Reque decision, _, err := h.authz.Authorize(ctx, attr) if err != nil { logger.WithValues("cluster", homeClusterName, "user", effectiveUser.GetName()).Error(err, "error authorizing request") - responsewriters.Forbidden(ctx, attr, rw, req, authorization.WorkspaceAccessNotPermittedReason, homeWorkspaceCodecs) + responsewriters.Forbidden(attr, rw, req, authorization.WorkspaceAccessNotPermittedReason, homeWorkspaceCodecs) return } if decision != authorizer.DecisionAllow { - responsewriters.Forbidden(ctx, attr, rw, req, authorization.WorkspaceAccessNotPermittedReason, homeWorkspaceCodecs) + responsewriters.Forbidden(attr, rw, req, authorization.WorkspaceAccessNotPermittedReason, homeWorkspaceCodecs) return } diff --git a/pkg/server/options/flags.go b/pkg/server/options/flags.go index 9a2b180049b..7ae981e453c 100644 --- a/pkg/server/options/flags.go +++ b/pkg/server/options/flags.go @@ -175,6 +175,7 @@ var ( "feature-gates", // A set of key=value pairs that describe feature gates for alpha/experimental features. Options are: "max-mutating-requests-inflight", // This and --max-requests-inflight are summed to determine the server's total concurrency limit (which must be positive) if --enable-priority-and-fairness is true. Otherwise, this flag limits the maximum number of mutating requests in flight, or a zero value disables the limit completely. "max-requests-inflight", // This and --max-mutating-requests-inflight are summed to determine the server's total concurrency limit (which must be positive) if --enable-priority-and-fairness is true. Otherwise, this flag limits the maximum number of non-mutating requests in flight, or a zero value disables the limit completely. + "min-compatibility-version", // The min version of control plane components the server should be compatible with. "min-request-timeout", // An optional field indicating the minimum number of seconds a handler must keep a request open before timing it out. Currently only honored by the watch request handler, which picks a randomized value above this number as the connection timeout, to spread out load. "request-timeout", // An optional field indicating the duration a handler must keep a request open before timing it out. This is the default request timeout for requests but may be overridden by flags such as --min-request-timeout for specific types of requests. "external-hostname", // The hostname to use when generating externalized URLs for this master (e.g. Swagger API Docs or OpenID Discovery). diff --git a/staging/src/github.com/kcp-dev/apimachinery/go.mod b/staging/src/github.com/kcp-dev/apimachinery/go.mod index aeff057330c..494e6d46aaa 100644 --- a/staging/src/github.com/kcp-dev/apimachinery/go.mod +++ b/staging/src/github.com/kcp-dev/apimachinery/go.mod @@ -1,23 +1,22 @@ module github.com/kcp-dev/apimachinery/v2 -go 1.24.0 +go 1.25.0 require ( github.com/google/go-cmp v0.7.0 github.com/kcp-dev/logicalcluster/v3 v3.0.4 - github.com/stretchr/testify v1.10.0 - k8s.io/api v0.34.2 - k8s.io/apimachinery v0.34.2 - k8s.io/client-go v0.34.2 + github.com/stretchr/testify v1.11.1 + k8s.io/api v0.35.1 + k8s.io/apimachinery v0.35.1 + k8s.io/client-go v0.35.1 k8s.io/klog/v2 v2.130.1 - k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 + k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 ) require ( github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/fxamacker/cbor/v2 v2.9.0 // indirect - github.com/go-logr/logr v1.4.2 // indirect - github.com/gogo/protobuf v1.3.2 // indirect + github.com/go-logr/logr v1.4.3 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/kr/text v0.2.0 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect @@ -25,16 +24,17 @@ require ( github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/x448/float16 v0.8.4 // indirect - go.yaml.in/yaml/v2 v2.4.2 // indirect - golang.org/x/net v0.38.0 // indirect - golang.org/x/oauth2 v0.27.0 // indirect - golang.org/x/sys v0.31.0 // indirect - golang.org/x/term v0.30.0 // indirect - golang.org/x/text v0.23.0 // indirect + go.yaml.in/yaml/v2 v2.4.3 // indirect + golang.org/x/net v0.47.0 // indirect + golang.org/x/oauth2 v0.30.0 // indirect + golang.org/x/sys v0.38.0 // indirect + golang.org/x/term v0.37.0 // indirect + golang.org/x/text v0.31.0 // indirect golang.org/x/time v0.9.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect + k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912 // indirect + sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 // indirect sigs.k8s.io/randfill v1.0.0 // indirect sigs.k8s.io/structured-merge-diff/v6 v6.3.0 // indirect sigs.k8s.io/yaml v1.6.0 // indirect diff --git a/staging/src/github.com/kcp-dev/apimachinery/go.sum b/staging/src/github.com/kcp-dev/apimachinery/go.sum index ec318852f1d..3d2ba3bf47d 100644 --- a/staging/src/github.com/kcp-dev/apimachinery/go.sum +++ b/staging/src/github.com/kcp-dev/apimachinery/go.sum @@ -7,16 +7,14 @@ github.com/emicklei/go-restful/v3 v3.12.2 h1:DhwDP0vY3k8ZzE0RunuJy8GhNpPL6zqLkDf github.com/emicklei/go-restful/v3 v3.12.2/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/fxamacker/cbor/v2 v2.9.0 h1:NpKPmjDBgUfBms6tr6JZkTHtfFGcMKsw3eGcmD/sapM= github.com/fxamacker/cbor/v2 v2.9.0/go.mod h1:vM4b+DJCtHn+zz7h3FFp/hDAI9WNWCsZj23V5ytsSxQ= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= +github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ= github.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY= 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/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE= github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ= -github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= -github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/google/gnostic-models v0.7.0 h1:qwTtogB15McXDaNqTZdzPJRHvaVJlAl+HVQnLmJEJxo= github.com/google/gnostic-models v0.7.0/go.mod h1:whL5G0m6dmc5cPxKc5bdKdEN3UjI7OUGxBlw57miDrQ= github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= @@ -30,8 +28,6 @@ github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnr github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/kcp-dev/logicalcluster/v3 v3.0.4 h1:q7KngML/QM7sWl8aVzmfZF0TPMnBwYNxsPKfwUvvBvU= github.com/kcp-dev/logicalcluster/v3 v3.0.4/go.mod h1:EWBUBxdr49fUB1cLMO4nOdBWmYifLbP1LfoL20KkXYY= -github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= -github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= @@ -46,93 +42,64 @@ github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee h1:W5t00kpgFd github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= -github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= -github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= -github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o= -github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= +github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= +github.com/spf13/pflag v1.0.9 h1:9exaQaMOCwffKiiiYk6/BndUBv+iRViNW+4lEMi0PvY= +github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= -github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= +github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= -github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= -go.yaml.in/yaml/v2 v2.4.2 h1:DzmwEr2rDGHl7lsFgAHxmNz/1NlQ7xLIrlN2h5d1eGI= -go.yaml.in/yaml/v2 v2.4.2/go.mod h1:081UH+NErpNdqlCXm3TtEran0rJZGxAYx9hb/ELlsPU= +go.yaml.in/yaml/v2 v2.4.3 h1:6gvOSjQoTB3vt1l+CU+tSyi/HOjfOjRLJ4YwYZGwRO0= +go.yaml.in/yaml/v2 v2.4.3/go.mod h1:zSxWcmIDjOzPXpjlTTbAsKokqkDNAVtZO0WOMiT90s8= go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.38.0 h1:vRMAPTMaeGqVhG5QyLJHqNDwecKTomGeqbnfZyKlBI8= -golang.org/x/net v0.38.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8= -golang.org/x/oauth2 v0.27.0 h1:da9Vo7/tDv5RH/7nZDz1eMGS/q1Vv1N/7FCrBhI9I3M= -golang.org/x/oauth2 v0.27.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik= -golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= -golang.org/x/term v0.30.0 h1:PQ39fJZ+mfadBm0y5WlL4vlM7Sx1Hgf13sMIY2+QS9Y= -golang.org/x/term v0.30.0/go.mod h1:NYYFdzHoI5wRh/h5tDMdMqCqPJZEuNqVR5xJLd/n67g= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY= -golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4= +golang.org/x/net v0.47.0 h1:Mx+4dIFzqraBXUugkia1OOvlD6LemFo1ALMHjrXDOhY= +golang.org/x/net v0.47.0/go.mod h1:/jNxtkgq5yWUGYkaZGqo27cfGZ1c5Nen03aYrrKpVRU= +golang.org/x/oauth2 v0.30.0 h1:dnDm7JmhM45NNpd8FDDeLhK6FwqbOf4MLCM9zb1BOHI= +golang.org/x/oauth2 v0.30.0/go.mod h1:B++QgG3ZKulg6sRPGD/mqlHQs5rB3Ml9erfeDY7xKlU= +golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc= +golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/term v0.37.0 h1:8EGAD0qCmHYZg6J17DvsMy9/wJ7/D/4pV/wfnld5lTU= +golang.org/x/term v0.37.0/go.mod h1:5pB4lxRNYYVZuTLmy8oR2BH8dflOR+IbTYFD8fi3254= +golang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM= +golang.org/x/text v0.31.0/go.mod h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM= golang.org/x/time v0.9.0 h1:EsRrnYcQiGH+5FfbgvV4AP7qEZstoyrHB0DzarOQ4ZY= golang.org/x/time v0.9.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -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= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM= -google.golang.org/protobuf v1.36.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.36.8 h1:xHScyCOEuuwZEc6UtSOvPbAT4zRh0xcNRYekJwfqyMc= +google.golang.org/protobuf v1.36.8/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/evanphx/json-patch.v4 v4.12.0 h1:n6jtcsulIzXPJaxegRbvFNNrZDjbij7ny3gmSPG+6V4= -gopkg.in/evanphx/json-patch.v4 v4.12.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M= +gopkg.in/evanphx/json-patch.v4 v4.13.0 h1:czT3CmqEaQ1aanPc5SdlgQrrEIb8w/wwCvWWnfEbYzo= +gopkg.in/evanphx/json-patch.v4 v4.13.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -k8s.io/api v0.34.2 h1:fsSUNZhV+bnL6Aqrp6O7lMTy6o5x2C4XLjnh//8SLYY= -k8s.io/api v0.34.2/go.mod h1:MMBPaWlED2a8w4RSeanD76f7opUoypY8TFYkSM+3XHw= -k8s.io/apimachinery v0.34.2 h1:zQ12Uk3eMHPxrsbUJgNF8bTauTVR2WgqJsTmwTE/NW4= -k8s.io/apimachinery v0.34.2/go.mod h1:/GwIlEcWuTX9zKIg2mbw0LRFIsXwrfoVxn+ef0X13lw= -k8s.io/client-go v0.34.2 h1:Co6XiknN+uUZqiddlfAjT68184/37PS4QAzYvQvDR8M= -k8s.io/client-go v0.34.2/go.mod h1:2VYDl1XXJsdcAxw7BenFslRQX28Dxz91U9MWKjX97fE= +k8s.io/api v0.35.1 h1:0PO/1FhlK/EQNVK5+txc4FuhQibV25VLSdLMmGpDE/Q= +k8s.io/api v0.35.1/go.mod h1:28uR9xlXWml9eT0uaGo6y71xK86JBELShLy4wR1XtxM= +k8s.io/apimachinery v0.35.1 h1:yxO6gV555P1YV0SANtnTjXYfiivaTPvCTKX6w6qdDsU= +k8s.io/apimachinery v0.35.1/go.mod h1:jQCgFZFR1F4Ik7hvr2g84RTJSZegBc8yHgFWKn//hns= +k8s.io/client-go v0.35.1 h1:+eSfZHwuo/I19PaSxqumjqZ9l5XiTEKbIaJ+j1wLcLM= +k8s.io/client-go v0.35.1/go.mod h1:1p1KxDt3a0ruRfc/pG4qT/3oHmUj1AhSHEcxNSGg+OA= k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= -k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b h1:MloQ9/bdJyIu9lb1PzujOPolHyvO06MXG5TUIj2mNAA= -k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b/go.mod h1:UZ2yyWbFTpuhSbFhv24aGNOdoRdJZgsIObGBUaYVsts= -k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 h1:hwvWFiBzdWw1FhfY1FooPn3kzWuJ8tmbZBHi4zVsl1Y= -k8s.io/utils v0.0.0-20250604170112-4c0f3b243397/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= -sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 h1:gBQPwqORJ8d8/YNZWEjoZs7npUVDpVXUUOFfW6CgAqE= -sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg= +k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912 h1:Y3gxNAuB0OBLImH611+UDZcmKS3g6CthxToOb37KgwE= +k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912/go.mod h1:kdmbQkyfwUagLfXIad1y2TdrjPFWp2Q89B3qkRwf/pQ= +k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 h1:SjGebBtkBqHFOli+05xYbK8YF1Dzkbzn+gDM4X9T4Ck= +k8s.io/utils v0.0.0-20251002143259-bc988d571ff4/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 h1:IpInykpT6ceI+QxKBbEflcR5EXP7sU1kvOlxwZh5txg= +sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg= sigs.k8s.io/randfill v1.0.0 h1:JfjMILfT8A6RbawdsK2JXGBR5AQVfd+9TbzrlneTyrU= sigs.k8s.io/randfill v1.0.0/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY= sigs.k8s.io/structured-merge-diff/v6 v6.3.0 h1:jTijUJbW353oVOd9oTlifJqOGEkUw2jB/fXCbTiQEco= diff --git a/staging/src/github.com/kcp-dev/apimachinery/third_party/informers/shared_informer.go b/staging/src/github.com/kcp-dev/apimachinery/third_party/informers/shared_informer.go index d5cf2a4fb1a..50c9ba48f3b 100644 --- a/staging/src/github.com/kcp-dev/apimachinery/third_party/informers/shared_informer.go +++ b/staging/src/github.com/kcp-dev/apimachinery/third_party/informers/shared_informer.go @@ -317,7 +317,12 @@ func (s *sharedIndexInformer) RunWithContext(ctx context.Context) { var fifo cache.Queue if clientgofeaturegate.FeatureGates().Enabled(clientgofeaturegate.InOrderInformers) { - fifo = cache.NewRealFIFO(kcpcache.MetaClusterNamespaceKeyFunc, s.indexer, s.transform) + fifo = cache.NewRealFIFOWithOptions(cache.RealFIFOOptions{ + // KCP modification: We changed the keyfunction passed to NewDeltaFIFOWithOptions + KeyFunction: kcpcache.MetaClusterNamespaceKeyFunc, + KnownObjects: s.indexer, + Transformer: s.transform, + }) } else { fifo = cache.NewDeltaFIFOWithOptions(cache.DeltaFIFOOptions{ KnownObjects: s.indexer, @@ -340,6 +345,7 @@ func (s *sharedIndexInformer) RunWithContext(ctx context.Context) { ShouldResync: s.processor.shouldResync, Process: s.HandleDeltas, + ProcessBatch: s.HandleBatchDeltas, WatchErrorHandlerWithContext: s.watchErrorHandler, KeyFunction: kcpcache.DeletionHandlingMetaClusterNamespaceKeyFunc, } @@ -510,6 +516,12 @@ func (s *sharedIndexInformer) HandleDeltas(obj interface{}, isInInitialList bool return errors.New("object given as Process argument is not Deltas") } +func (s *sharedIndexInformer) HandleBatchDeltas(deltas []cache.Delta, isInInitialList bool) error { + s.blockDeltas.Lock() + defer s.blockDeltas.Unlock() + return processDeltasInBatch(s, s.indexer, deltas, isInInitialList) +} + // Conforms to cache.ResourceEventHandler func (s *sharedIndexInformer) OnAdd(obj interface{}, isInInitialList bool) { // Invocation of this function is locked under s.blockDeltas, so it is @@ -930,3 +942,88 @@ func processDeltas( } return nil } + +// processDeltasInBatch applies a batch of Delta objects to the given Store and +// notifies the ResourceEventHandler of add, update, or delete events. +// +// If the Store supports transactions (TransactionStore), all Deltas are applied +// atomically in a single transaction and corresponding handler callbacks are +// executed afterward. Otherwise, each Delta is processed individually. +// +// Returns an error if any Delta or transaction fails. For TransactionError, +// only successful operations trigger callbacks. +func processDeltasInBatch( + handler cache.ResourceEventHandler, + clientState cache.Store, + deltas []cache.Delta, + isInInitialList bool, +) error { + // from oldest to newest + txns := make([]cache.Transaction, 0) + callbacks := make([]func(), 0) + txnStore, txnSupported := clientState.(cache.TransactionStore) + if !txnSupported { + var errs []error + for _, delta := range deltas { + if err := processDeltas(handler, clientState, cache.Deltas{delta}, isInInitialList); err != nil { + errs = append(errs, err) + } + } + if len(errs) > 0 { + return fmt.Errorf("unexpected error when handling deltas: %v", errs) + } + return nil + } + // deltasList is a list of unique objects + for _, d := range deltas { + obj := d.Object + switch d.Type { + case cache.Sync, cache.Replaced, cache.Added, cache.Updated: + // it will only return one old object for each because items are unique + if old, exists, err := clientState.Get(obj); err == nil && exists { + txn := cache.Transaction{ + Type: cache.TransactionTypeUpdate, + Object: obj, + } + txns = append(txns, txn) + callbacks = append(callbacks, func() { + handler.OnUpdate(old, obj) + }) + } else { + txn := cache.Transaction{ + Type: cache.TransactionTypeAdd, + Object: obj, + } + txns = append(txns, txn) + callbacks = append(callbacks, func() { + handler.OnAdd(obj, isInInitialList) + }) + } + case cache.Deleted: + txn := cache.Transaction{ + Type: cache.TransactionTypeDelete, + Object: obj, + } + txns = append(txns, txn) + callbacks = append(callbacks, func() { + handler.OnDelete(obj) + }) + } + } + + err := txnStore.Transaction(txns...) + if err != nil { + // if txn had error, only execute the callbacks for the successful ones + for _, i := range err.SuccessfulIndices { + if i < len(callbacks) { + callbacks[i]() + } + } + // formatting the error so txns doesn't escape and keeps allocated in the stack. + return fmt.Errorf("not all items in the batch successfully processed: %s", err.Error()) + } + for _, callback := range callbacks { + callback() + } + return nil +} diff --git a/staging/src/github.com/kcp-dev/apimachinery/third_party/reflector/controller.go b/staging/src/github.com/kcp-dev/apimachinery/third_party/reflector/controller.go index 87ce7bffd21..819b7464ce7 100644 --- a/staging/src/github.com/kcp-dev/apimachinery/third_party/reflector/controller.go +++ b/staging/src/github.com/kcp-dev/apimachinery/third_party/reflector/controller.go @@ -19,12 +19,14 @@ package reflector import ( "context" + "errors" "sync" "time" "k8s.io/apimachinery/pkg/runtime" utilruntime "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/apimachinery/pkg/util/wait" + clientgofeaturegate "k8s.io/client-go/features" "k8s.io/client-go/tools/cache" "k8s.io/utils/clock" ) @@ -43,6 +45,17 @@ type Config struct { // Process can process a popped Deltas. Process cache.ProcessFunc + // ProcessBatch can process a batch of popped Deltas, which should return `TransactionError` if not all items + // in the batch were successfully processed. + // + // For batch processing to be used: + // * ProcessBatch must be non-nil + // * Queue must implement QueueWithBatch + // * The client InOrderInformersBatchProcess feature gate must be enabled + // + // If any of those are false, Process is used and no batch processing is done. + ProcessBatch cache.ProcessBatchFunc + // ObjectType is an example object of the type this controller is // expected to handle. ObjectType runtime.Object @@ -161,21 +174,28 @@ func (c *controller) RunWithContext(ctx context.Context) { // to make sure that we don't end up processing the same object multiple times // concurrently. func (c *controller) processLoop(ctx context.Context) { + useBatchProcess := false + batchQueue, ok := c.config.Queue.(cache.QueueWithBatch) + if ok && c.config.ProcessBatch != nil && clientgofeaturegate.FeatureGates().Enabled(clientgofeaturegate.InOrderInformersBatchProcess) { + useBatchProcess = true + } for { - obj, err := c.config.Queue.Pop(cache.PopProcessFunc(c.config.Process)) - if err != nil { - if err == cache.ErrFIFOClosed { - return + select { + case <-ctx.Done(): + return + default: + var err error + if useBatchProcess { + err = batchQueue.PopBatch(c.config.ProcessBatch) + } else { + // otherwise fallback to non-batch process behavior + _, err = c.config.Pop(cache.PopProcessFunc(c.config.Process)) } - if c.config.ShouldResync != nil && c.config.ShouldResync() { - // If ShouldResync returned true, the queue item couldn't be processed - // and we should retry. We could be more clever here and only retry - // if the error was specific to this item. + if err != nil { + if errors.Is(err, cache.ErrFIFOClosed) { + return + } } - utilruntime.HandleErrorWithContext(ctx, err, "Failed to process object from queue") - } - if obj == nil { - return } } } diff --git a/staging/src/github.com/kcp-dev/apimachinery/third_party/reflector/reflector.go b/staging/src/github.com/kcp-dev/apimachinery/third_party/reflector/reflector.go index 04c37d9ad4b..3ac7c226ab4 100644 --- a/staging/src/github.com/kcp-dev/apimachinery/third_party/reflector/reflector.go +++ b/staging/src/github.com/kcp-dev/apimachinery/third_party/reflector/reflector.go @@ -43,6 +43,7 @@ import ( clientfeatures "k8s.io/client-go/features" "k8s.io/client-go/tools/cache" "k8s.io/client-go/tools/pager" + "k8s.io/client-go/util/watchlist" "k8s.io/klog/v2" "k8s.io/utils/clock" "k8s.io/utils/ptr" @@ -256,6 +257,16 @@ func NewReflectorWithOptions(lw cache.ListerWatcher, expectedType interface{}, s } r.useWatchList = clientfeatures.FeatureGates().Enabled(clientfeatures.WatchListClient) + if r.useWatchList && watchlist.DoesClientNotSupportWatchListSemantics(lw) { + // Using klog.TODO() here because switching to a caller-provided contextual logger + // would require an API change and updating all existing call sites. + klog.TODO().V(2).Info( + "The provided ListWatcher doesn't support WatchList semantics. The feature will be disabled. If you are using a custom client, check the documentation of watchlist.DoesClientNotSupportWatchListSemantics() method", + "listWatcherType", fmt.Sprintf("%T", lw), + "feature", clientfeatures.WatchListClient, + ) + r.useWatchList = false + } return r } diff --git a/staging/src/github.com/kcp-dev/cli/go.mod b/staging/src/github.com/kcp-dev/cli/go.mod index 8a1f8c9b006..68d30db283f 100644 --- a/staging/src/github.com/kcp-dev/cli/go.mod +++ b/staging/src/github.com/kcp-dev/cli/go.mod @@ -1,6 +1,6 @@ module github.com/kcp-dev/cli -go 1.24.0 +go 1.25.0 require ( github.com/charmbracelet/bubbletea v1.3.10 @@ -9,15 +9,15 @@ require ( github.com/kcp-dev/client-go v0.0.0 github.com/kcp-dev/logicalcluster/v3 v3.0.5 github.com/kcp-dev/sdk v0.0.0 - github.com/spf13/cobra v1.9.1 - github.com/spf13/pflag v1.0.6 - github.com/stretchr/testify v1.10.0 + github.com/spf13/cobra v1.10.0 + github.com/spf13/pflag v1.0.9 + github.com/stretchr/testify v1.11.1 github.com/xlab/treeprint v1.2.0 - k8s.io/apiextensions-apiserver v0.34.2 - k8s.io/apimachinery v0.34.2 + k8s.io/apiextensions-apiserver v0.35.1 + k8s.io/apimachinery v0.35.1 k8s.io/cli-runtime v0.33.3 - k8s.io/client-go v0.34.2 - k8s.io/component-base v0.34.2 + k8s.io/client-go v0.35.1 + k8s.io/component-base v0.35.1 k8s.io/klog/v2 v2.130.1 ) @@ -48,11 +48,10 @@ require ( github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect github.com/fxamacker/cbor/v2 v2.9.0 // indirect github.com/go-errors/errors v1.4.2 // indirect - github.com/go-logr/logr v1.4.2 // indirect + github.com/go-logr/logr v1.4.3 // indirect github.com/go-openapi/jsonpointer v0.21.0 // indirect github.com/go-openapi/jsonreference v0.21.0 // indirect github.com/go-openapi/swag v0.23.0 // indirect - github.com/gogo/protobuf v1.3.2 // indirect github.com/google/btree v1.1.3 // indirect github.com/google/gnostic-models v0.7.0 // indirect github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect @@ -77,30 +76,29 @@ require ( github.com/muesli/reflow v0.3.0 // indirect github.com/muesli/termenv v0.16.0 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect - github.com/onsi/gomega v1.35.1 // indirect + github.com/onsi/gomega v1.38.2 // indirect github.com/peterbourgon/diskv v2.0.1+incompatible // indirect - github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/rivo/uniseg v0.4.7 // indirect github.com/x448/float16 v0.8.4 // indirect github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect - go.yaml.in/yaml/v2 v2.4.2 // indirect + go.yaml.in/yaml/v2 v2.4.3 // indirect go.yaml.in/yaml/v3 v3.0.4 // indirect - golang.org/x/net v0.40.0 // indirect - golang.org/x/oauth2 v0.29.0 // indirect - golang.org/x/sync v0.14.0 // indirect - golang.org/x/sys v0.36.0 // indirect - golang.org/x/term v0.32.0 // indirect - golang.org/x/text v0.25.0 // indirect + golang.org/x/net v0.47.0 // indirect + golang.org/x/oauth2 v0.30.0 // indirect + golang.org/x/sync v0.18.0 // indirect + golang.org/x/sys v0.38.0 // indirect + golang.org/x/term v0.37.0 // indirect + golang.org/x/text v0.31.0 // indirect golang.org/x/time v0.11.0 // indirect - google.golang.org/protobuf v1.36.5 // indirect - gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect + google.golang.org/protobuf v1.36.8 // indirect + gopkg.in/evanphx/json-patch.v4 v4.13.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/api v0.34.2 // indirect - k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b // indirect - k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 // indirect - sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect + k8s.io/api v0.35.1 // indirect + k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912 // indirect + k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 // indirect + sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 // indirect sigs.k8s.io/kustomize/api v0.19.0 // indirect sigs.k8s.io/kustomize/kyaml v0.19.0 // indirect sigs.k8s.io/randfill v1.0.0 // indirect diff --git a/staging/src/github.com/kcp-dev/cli/go.sum b/staging/src/github.com/kcp-dev/cli/go.sum index 13f6f43db60..a0204270ba1 100644 --- a/staging/src/github.com/kcp-dev/cli/go.sum +++ b/staging/src/github.com/kcp-dev/cli/go.sum @@ -4,6 +4,8 @@ github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25 github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/MakeNowJust/heredoc v1.0.0 h1:cXCdzVdstXyiTqTvfqk9SDHpKNjxuom+DOlyEeQ4pzQ= github.com/MakeNowJust/heredoc v1.0.0/go.mod h1:mG5amYoWBHf8vpLOuehzbGGw0EHxpZZ6lCpQ4fNJ8LE= +github.com/Masterminds/semver/v3 v3.4.0 h1:Zog+i5UMtVoCU8oKka5P7i9q9HgrJeGzI9SA1Xbatp0= +github.com/Masterminds/semver/v3 v3.4.0/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM= github.com/antlr4-go/antlr/v4 v4.13.1 h1:SqQKkuVZ+zWkMMNkjy5FZe5mr5WURWnlpmOuzYWrPrQ= github.com/antlr4-go/antlr/v4 v4.13.1/go.mod h1:GKmUxMtwp6ZgGwZSva4eWPC5mS6vUAmOABFgjdkM7Nw= github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k= @@ -43,8 +45,8 @@ github.com/fxamacker/cbor/v2 v2.9.0 h1:NpKPmjDBgUfBms6tr6JZkTHtfFGcMKsw3eGcmD/sa github.com/fxamacker/cbor/v2 v2.9.0/go.mod h1:vM4b+DJCtHn+zz7h3FFp/hDAI9WNWCsZj23V5ytsSxQ= github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= +github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ= github.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY= github.com/go-openapi/jsonreference v0.21.0 h1:Rs+Y7hSXT83Jacb7kFyjn4ijOuVGSvOdF2+tg1TRrwQ= @@ -53,8 +55,6 @@ github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+Gr github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ= github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= -github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= -github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/google/btree v1.1.3 h1:CVpQJjYgC4VbzxeGVHfvZrv1ctoYCAI8vbl07Fcxlyg= github.com/google/btree v1.1.3/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= github.com/google/cel-go v0.26.0 h1:DPGjXackMpJWH680oGY4lZhYjIameYmR+/6RBdDGmaI= @@ -64,8 +64,8 @@ github.com/google/gnostic-models v0.7.0/go.mod h1:whL5G0m6dmc5cPxKc5bdKdEN3UjI7O github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db h1:097atOisP2aRj7vFgYQBbFN4U4JNXUNYpxael3UzMyo= -github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= +github.com/google/pprof v0.0.0-20250403155104-27863c87afa6 h1:BHT72Gu3keYf3ZEu2J0b1vyeLSOYI8bm5wbJM/8yDe8= +github.com/google/pprof v0.0.0-20250403155104-27863c87afa6/go.mod h1:boTsfXsheKC2y+lKOCMpSfarhxDeIzfZG1jqGcPl3cA= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= @@ -80,8 +80,6 @@ github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnr github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/kcp-dev/logicalcluster/v3 v3.0.5 h1:JbYakokb+5Uinz09oTXomSUJVQsqfxEvU4RyHUYxHOU= github.com/kcp-dev/logicalcluster/v3 v3.0.5/go.mod h1:EWBUBxdr49fUB1cLMO4nOdBWmYifLbP1LfoL20KkXYY= -github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= -github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= @@ -119,38 +117,37 @@ github.com/muesli/termenv v0.16.0 h1:S5AlUN9dENB57rsbnkPyfdGuWIlkmzJjbFf0Tf5FWUc github.com/muesli/termenv v0.16.0/go.mod h1:ZRfOIKPFDYQoDFF4Olj7/QJbW60Ol/kL1pU3VfY/Cnk= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/onsi/ginkgo/v2 v2.21.0 h1:7rg/4f3rB88pb5obDgNZrNHrQ4e6WpjonchcpuBRnZM= -github.com/onsi/ginkgo/v2 v2.21.0/go.mod h1:7Du3c42kxCUegi0IImZ1wUQzMBVecgIHjR1C+NkhLQo= -github.com/onsi/gomega v1.35.1 h1:Cwbd75ZBPxFSuZ6T+rN/WCb/gOc6YgFBXLlZLhC7Ds4= -github.com/onsi/gomega v1.35.1/go.mod h1:PvZbdDc8J6XJEpDK4HCuRBm8a6Fzp9/DmhC9C7yFlog= +github.com/onsi/ginkgo/v2 v2.27.2 h1:LzwLj0b89qtIy6SSASkzlNvX6WktqurSHwkk2ipF/Ns= +github.com/onsi/ginkgo/v2 v2.27.2/go.mod h1:ArE1D/XhNXBXCBkKOLkbsb2c81dQHCRcF5zwn/ykDRo= +github.com/onsi/gomega v1.38.2 h1:eZCjf2xjZAqe+LeWvKb5weQ+NcPwX84kqJ0cZNxok2A= +github.com/onsi/gomega v1.38.2/go.mod h1:W2MJcYxRGV63b418Ai34Ud0hEdTVXq9NW9+Sx6uXf3k= github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI= github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= -github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= -github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v1.22.0 h1:rb93p9lokFEsctTys46VnV1kLCDpVZ0a/Y92Vm0Zc6Q= -github.com/prometheus/client_golang v1.22.0/go.mod h1:R7ljNsLXhuQXYZYtw6GAE9AZg8Y7vEW5scdCXrWRXC0= -github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= -github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= -github.com/prometheus/common v0.62.0 h1:xasJaQlnWAeyHdUBeGjXmutelfJHWMRr+Fg4QszZ2Io= -github.com/prometheus/common v0.62.0/go.mod h1:vyBcEuLSvWos9B1+CyL7JZ2up+uFzXhkqml0W5zIY1I= -github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= -github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= +github.com/prometheus/client_golang v1.23.2 h1:Je96obch5RDVy3FDMndoUsjAhG5Edi49h0RJWRi/o0o= +github.com/prometheus/client_golang v1.23.2/go.mod h1:Tb1a6LWHB3/SPIzCoaDXI4I8UHKeFTEQ1YCr+0Gyqmg= +github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk= +github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= +github.com/prometheus/common v0.66.1 h1:h5E0h5/Y8niHc5DlaLlWLArTQI7tMrsfQjHV+d9ZoGs= +github.com/prometheus/common v0.66.1/go.mod h1:gcaUsgf3KfRSwHY4dIMXLPV0K/Wg1oZ8+SbZk/HH/dA= +github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg= +github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is= github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= -github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= -github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= +github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= +github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/sergi/go-diff v1.2.0 h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ= github.com/sergi/go-diff v1.2.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= -github.com/spf13/cobra v1.9.1 h1:CXSaggrXdbHK9CF+8ywj8Amf7PBRmPCOJugH954Nnlo= -github.com/spf13/cobra v1.9.1/go.mod h1:nDyEzZ8ogv936Cinf6g1RU9MRY64Ir93oCnqb9wxYW0= -github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o= -github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/cobra v1.10.0 h1:a5/WeUlSDCvV5a45ljW2ZFtV0bTDpkfSAj3uqB6Sc+0= +github.com/spf13/cobra v1.10.0/go.mod h1:9dhySC7dnTtEiqzmqfkLj47BslqLCUPMXjG2lj/NgoE= +github.com/spf13/pflag v1.0.8/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/pflag v1.0.9 h1:9exaQaMOCwffKiiiYk6/BndUBv+iRViNW+4lEMi0PvY= +github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stoewer/go-strcase v1.3.0 h1:g0eASXYtp+yvN9fK8sH94oCIk0fau9uV1/ZdJ0AVEzs= github.com/stoewer/go-strcase v1.3.0/go.mod h1:fAH5hQ5pehh+j3nZfvwdk2RgEgQjAoM8wodgtPmh1xo= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -158,110 +155,85 @@ github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= -github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= +github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= github.com/xlab/treeprint v1.2.0 h1:HzHnuAF1plUN2zGlAFHbSQP2qJ0ZAD3XF5XD7OesXRQ= github.com/xlab/treeprint v1.2.0/go.mod h1:gj5Gd3gPdKtR1ikdDK6fnFLdmIS0X30kTTuNd/WEJu0= github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavMF/ppJZNG9ZpyihvCd0w101no= github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e/go.mod h1:RbqR21r5mrJuqunuUZ/Dhy/avygyECGrLceyNeo4LiM= -github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -go.opentelemetry.io/otel v1.35.0 h1:xKWKPxrxB6OtMCbmMY021CqC45J+3Onta9MqjhnusiQ= -go.opentelemetry.io/otel v1.35.0/go.mod h1:UEqy8Zp11hpkUrL73gSlELM0DupHoiq72dR+Zqel/+Y= -go.opentelemetry.io/otel/trace v1.35.0 h1:dPpEfJu1sDIqruz7BHFG3c7528f6ddfSWfFDVt/xgMs= -go.opentelemetry.io/otel/trace v1.35.0/go.mod h1:WUk7DtFp1Aw2MkvqGdwiXYDZZNvA/1J8o6xRXLrIkyc= +go.opentelemetry.io/otel v1.36.0 h1:UumtzIklRBY6cI/lllNZlALOF5nNIzJVb16APdvgTXg= +go.opentelemetry.io/otel v1.36.0/go.mod h1:/TcFMXYjyRNh8khOAO9ybYkqaDBb/70aVwkNML4pP8E= +go.opentelemetry.io/otel/trace v1.36.0 h1:ahxWNuqZjpdiFAyrIoQ4GIiAIhxAunQR6MUoKrsNd4w= +go.opentelemetry.io/otel/trace v1.36.0/go.mod h1:gQ+OnDZzrybY4k4seLzPAWNwVBBVlF2szhehOBB/tGA= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= -go.yaml.in/yaml/v2 v2.4.2 h1:DzmwEr2rDGHl7lsFgAHxmNz/1NlQ7xLIrlN2h5d1eGI= -go.yaml.in/yaml/v2 v2.4.2/go.mod h1:081UH+NErpNdqlCXm3TtEran0rJZGxAYx9hb/ELlsPU= +go.yaml.in/yaml/v2 v2.4.3 h1:6gvOSjQoTB3vt1l+CU+tSyi/HOjfOjRLJ4YwYZGwRO0= +go.yaml.in/yaml/v2 v2.4.3/go.mod h1:zSxWcmIDjOzPXpjlTTbAsKokqkDNAVtZO0WOMiT90s8= go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 h1:R84qjqJb5nVJMxqWYb3np9L5ZsaDtB+a39EqjV0JSUM= golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0/go.mod h1:S9Xr4PYopiDyqSyp5NjCrhFrqg6A5zA2E/iPHPhqnS8= -golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.40.0 h1:79Xs7wF06Gbdcg4kdCCIQArK11Z1hr5POQ6+fIYHNuY= -golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds= -golang.org/x/oauth2 v0.29.0 h1:WdYw2tdTK1S8olAzWHdgeqfy+Mtm9XNhv/xJsY65d98= -golang.org/x/oauth2 v0.29.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.14.0 h1:woo0S4Yywslg6hp4eUFjTVOyKt0RookbpAHG4c1HmhQ= -golang.org/x/sync v0.14.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/mod v0.29.0 h1:HV8lRxZC4l2cr3Zq1LvtOsi/ThTgWnUk/y64QSs8GwA= +golang.org/x/mod v0.29.0/go.mod h1:NyhrlYXJ2H4eJiRy/WDBO6HMqZQ6q9nk4JzS3NuCK+w= +golang.org/x/net v0.47.0 h1:Mx+4dIFzqraBXUugkia1OOvlD6LemFo1ALMHjrXDOhY= +golang.org/x/net v0.47.0/go.mod h1:/jNxtkgq5yWUGYkaZGqo27cfGZ1c5Nen03aYrrKpVRU= +golang.org/x/oauth2 v0.30.0 h1:dnDm7JmhM45NNpd8FDDeLhK6FwqbOf4MLCM9zb1BOHI= +golang.org/x/oauth2 v0.30.0/go.mod h1:B++QgG3ZKulg6sRPGD/mqlHQs5rB3Ml9erfeDY7xKlU= +golang.org/x/sync v0.18.0 h1:kr88TuHDroi+UVf+0hZnirlk8o8T+4MrK6mr60WkH/I= +golang.org/x/sync v0.18.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.36.0 h1:KVRy2GtZBrk1cBYA7MKu5bEZFxQk4NIDV6RLVcC8o0k= -golang.org/x/sys v0.36.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= -golang.org/x/term v0.32.0 h1:DR4lr0TjUs3epypdhTOkMmuF5CDFJ/8pOnbzMZPQ7bg= -golang.org/x/term v0.32.0/go.mod h1:uZG1FhGx848Sqfsq4/DlJr3xGGsYMu/L5GW4abiaEPQ= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4= -golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA= +golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc= +golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/term v0.37.0 h1:8EGAD0qCmHYZg6J17DvsMy9/wJ7/D/4pV/wfnld5lTU= +golang.org/x/term v0.37.0/go.mod h1:5pB4lxRNYYVZuTLmy8oR2BH8dflOR+IbTYFD8fi3254= +golang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM= +golang.org/x/text v0.31.0/go.mod h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM= golang.org/x/time v0.11.0 h1:/bpjEDfN9tkoN/ryeYHnv5hcMlc8ncjMcM4XBk5NWV0= golang.org/x/time v0.11.0/go.mod h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.33.0 h1:4qz2S3zmRxbGIhDIAgjxvFutSvH5EfnsYrRBj0UI0bc= -golang.org/x/tools v0.33.0/go.mod h1:CIJMaWEY88juyUfo7UbgPqbC8rU2OqfAV1h2Qp0oMYI= -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= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/tools v0.38.0 h1:Hx2Xv8hISq8Lm16jvBZ2VQf+RLmbd7wVUsALibYI/IQ= +golang.org/x/tools v0.38.0/go.mod h1:yEsQ/d/YK8cjh0L6rZlY8tgtlKiBNTL14pGDJPJpYQs= google.golang.org/genproto/googleapis/api v0.0.0-20250303144028-a0af3efb3deb h1:p31xT4yrYrSM/G4Sn2+TNUkVhFCbG9y8itM2S6Th950= google.golang.org/genproto/googleapis/api v0.0.0-20250303144028-a0af3efb3deb/go.mod h1:jbe3Bkdp+Dh2IrslsFCklNhweNTBgSYanP1UXhJDhKg= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250303144028-a0af3efb3deb h1:TLPQVbx1GJ8VKZxz52VAxl1EBgKXXbTiU9Fc5fZeLn4= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250303144028-a0af3efb3deb/go.mod h1:LuRYeWDFV6WOn90g357N17oMCaxpgCnbi/44qJvDn2I= -google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM= -google.golang.org/protobuf v1.36.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250528174236-200df99c418a h1:v2PbRU4K3llS09c7zodFpNePeamkAwG3mPrAery9VeE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250528174236-200df99c418a/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A= +google.golang.org/protobuf v1.36.8 h1:xHScyCOEuuwZEc6UtSOvPbAT4zRh0xcNRYekJwfqyMc= +google.golang.org/protobuf v1.36.8/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/evanphx/json-patch.v4 v4.12.0 h1:n6jtcsulIzXPJaxegRbvFNNrZDjbij7ny3gmSPG+6V4= -gopkg.in/evanphx/json-patch.v4 v4.12.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M= +gopkg.in/evanphx/json-patch.v4 v4.13.0 h1:czT3CmqEaQ1aanPc5SdlgQrrEIb8w/wwCvWWnfEbYzo= +gopkg.in/evanphx/json-patch.v4 v4.13.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -k8s.io/api v0.34.2 h1:fsSUNZhV+bnL6Aqrp6O7lMTy6o5x2C4XLjnh//8SLYY= -k8s.io/api v0.34.2/go.mod h1:MMBPaWlED2a8w4RSeanD76f7opUoypY8TFYkSM+3XHw= -k8s.io/apiextensions-apiserver v0.34.2 h1:WStKftnGeoKP4AZRz/BaAAEJvYp4mlZGN0UCv+uvsqo= -k8s.io/apiextensions-apiserver v0.34.2/go.mod h1:398CJrsgXF1wytdaanynDpJ67zG4Xq7yj91GrmYN2SE= -k8s.io/apimachinery v0.34.2 h1:zQ12Uk3eMHPxrsbUJgNF8bTauTVR2WgqJsTmwTE/NW4= -k8s.io/apimachinery v0.34.2/go.mod h1:/GwIlEcWuTX9zKIg2mbw0LRFIsXwrfoVxn+ef0X13lw= -k8s.io/apiserver v0.34.2 h1:2/yu8suwkmES7IzwlehAovo8dDE07cFRC7KMDb1+MAE= -k8s.io/apiserver v0.34.2/go.mod h1:gqJQy2yDOB50R3JUReHSFr+cwJnL8G1dzTA0YLEqAPI= +k8s.io/api v0.35.1 h1:0PO/1FhlK/EQNVK5+txc4FuhQibV25VLSdLMmGpDE/Q= +k8s.io/api v0.35.1/go.mod h1:28uR9xlXWml9eT0uaGo6y71xK86JBELShLy4wR1XtxM= +k8s.io/apiextensions-apiserver v0.35.1 h1:p5vvALkknlOcAqARwjS20kJffgzHqwyQRM8vHLwgU7w= +k8s.io/apiextensions-apiserver v0.35.1/go.mod h1:2CN4fe1GZ3HMe4wBr25qXyJnJyZaquy4nNlNmb3R7AQ= +k8s.io/apimachinery v0.35.1 h1:yxO6gV555P1YV0SANtnTjXYfiivaTPvCTKX6w6qdDsU= +k8s.io/apimachinery v0.35.1/go.mod h1:jQCgFZFR1F4Ik7hvr2g84RTJSZegBc8yHgFWKn//hns= +k8s.io/apiserver v0.35.1 h1:potxdhhTL4i6AYAa2QCwtlhtB1eCdWQFvJV6fXgJzxs= +k8s.io/apiserver v0.35.1/go.mod h1:BiL6Dd3A2I/0lBnteXfWmCFobHM39vt5+hJQd7Lbpi4= k8s.io/cli-runtime v0.33.3 h1:Dgy4vPjNIu8LMJBSvs8W0LcdV0PX/8aGG1DA1W8lklA= k8s.io/cli-runtime v0.33.3/go.mod h1:yklhLklD4vLS8HNGgC9wGiuHWze4g7x6XQZ+8edsKEo= -k8s.io/client-go v0.34.2 h1:Co6XiknN+uUZqiddlfAjT68184/37PS4QAzYvQvDR8M= -k8s.io/client-go v0.34.2/go.mod h1:2VYDl1XXJsdcAxw7BenFslRQX28Dxz91U9MWKjX97fE= -k8s.io/component-base v0.34.2 h1:HQRqK9x2sSAsd8+R4xxRirlTjowsg6fWCPwWYeSvogQ= -k8s.io/component-base v0.34.2/go.mod h1:9xw2FHJavUHBFpiGkZoKuYZ5pdtLKe97DEByaA+hHbM= +k8s.io/client-go v0.35.1 h1:+eSfZHwuo/I19PaSxqumjqZ9l5XiTEKbIaJ+j1wLcLM= +k8s.io/client-go v0.35.1/go.mod h1:1p1KxDt3a0ruRfc/pG4qT/3oHmUj1AhSHEcxNSGg+OA= +k8s.io/component-base v0.35.1 h1:XgvpRf4srp037QWfGBLFsYMUQJkE5yMa94UsJU7pmcE= +k8s.io/component-base v0.35.1/go.mod h1:HI/6jXlwkiOL5zL9bqA3en1Ygv60F03oEpnuU1G56Bs= k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= -k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b h1:MloQ9/bdJyIu9lb1PzujOPolHyvO06MXG5TUIj2mNAA= -k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b/go.mod h1:UZ2yyWbFTpuhSbFhv24aGNOdoRdJZgsIObGBUaYVsts= -k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 h1:hwvWFiBzdWw1FhfY1FooPn3kzWuJ8tmbZBHi4zVsl1Y= -k8s.io/utils v0.0.0-20250604170112-4c0f3b243397/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= -sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 h1:gBQPwqORJ8d8/YNZWEjoZs7npUVDpVXUUOFfW6CgAqE= -sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg= +k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912 h1:Y3gxNAuB0OBLImH611+UDZcmKS3g6CthxToOb37KgwE= +k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912/go.mod h1:kdmbQkyfwUagLfXIad1y2TdrjPFWp2Q89B3qkRwf/pQ= +k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 h1:SjGebBtkBqHFOli+05xYbK8YF1Dzkbzn+gDM4X9T4Ck= +k8s.io/utils v0.0.0-20251002143259-bc988d571ff4/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 h1:IpInykpT6ceI+QxKBbEflcR5EXP7sU1kvOlxwZh5txg= +sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg= sigs.k8s.io/kustomize/api v0.19.0 h1:F+2HB2mU1MSiR9Hp1NEgoU2q9ItNOaBJl0I4Dlus5SQ= sigs.k8s.io/kustomize/api v0.19.0/go.mod h1:/BbwnivGVcBh1r+8m3tH1VNxJmHSk1PzP5fkP6lbL1o= sigs.k8s.io/kustomize/kyaml v0.19.0 h1:RFge5qsO1uHhwJsu3ipV7RNolC7Uozc0jUBC/61XSlA= diff --git a/staging/src/github.com/kcp-dev/cli/pkg/workspace/plugin/create_test.go b/staging/src/github.com/kcp-dev/cli/pkg/workspace/plugin/create_test.go index 9d00cac7c01..a591e895f1a 100644 --- a/staging/src/github.com/kcp-dev/cli/pkg/workspace/plugin/create_test.go +++ b/staging/src/github.com/kcp-dev/cli/pkg/workspace/plugin/create_test.go @@ -285,7 +285,7 @@ func TestCreate(t *testing.T) { }, }) } - client := kcpfakeclient.NewSimpleClientset(objects...) + client := kcpfakeclient.NewSimpleClientset(objects...) //nolint:staticcheck // Fill up the resources map for the discovery client for _, name := range append(tt.existingWorkspaces, tt.newWorkspaceName) { diff --git a/staging/src/github.com/kcp-dev/cli/pkg/workspace/plugin/use_test.go b/staging/src/github.com/kcp-dev/cli/pkg/workspace/plugin/use_test.go index 8a0204ba7bb..462cea8fccc 100644 --- a/staging/src/github.com/kcp-dev/cli/pkg/workspace/plugin/use_test.go +++ b/staging/src/github.com/kcp-dev/cli/pkg/workspace/plugin/use_test.go @@ -764,7 +764,7 @@ func TestUse(t *testing.T) { objs = append(objs, obj) } } - client := kcpfakeclient.NewSimpleClientset(objs...) + client := kcpfakeclient.NewSimpleClientset(objs...) //nolint:staticcheck client.PrependReactor("get", "workspaces", func(action kcptesting.Action) (handled bool, ret runtime.Object, err error) { getAction := action.(kcptesting.GetAction) if getAction.GetCluster() != core.RootCluster.Path() { diff --git a/staging/src/github.com/kcp-dev/client-go/apiextensions/client/fake/clientset.go b/staging/src/github.com/kcp-dev/client-go/apiextensions/client/fake/clientset.go index f1dfa2e7317..75294c3182a 100644 --- a/staging/src/github.com/kcp-dev/client-go/apiextensions/client/fake/clientset.go +++ b/staging/src/github.com/kcp-dev/client-go/apiextensions/client/fake/clientset.go @@ -42,7 +42,7 @@ import ( // without applying any field management, validations and/or defaults. It shouldn't be considered a replacement // for a real clientset and is mostly useful in simple unit tests. // -// DEPRECATED: NewClientset replaces this with support for field management, which significantly improves +// Deprecated: NewClientset replaces this with support for field management, which significantly improves // server side apply testing. NewClientset is only available when apply configurations are generated (e.g. // via --with-applyconfig). func NewSimpleClientset(objects ...runtime.Object) *ClusterClientset { @@ -75,6 +75,28 @@ func (c *ClusterClientset) Tracker() kcptesting.ObjectTracker { return c.tracker } +// IsWatchListSemanticsUnSupported informs the reflector that this client +// doesn't support WatchList semantics. +// +// This is a synthetic method whose sole purpose is to satisfy the optional +// interface check performed by the reflector. +// Returning true signals that WatchList can NOT be used. +// No additional logic is implemented here. +func (c *ClusterClientset) IsWatchListSemanticsUnSupported() bool { + return true +} + +// IsWatchListSemanticsSupported informs the reflector that this client +// doesn't support WatchList semantics. +// +// This is a synthetic method whose sole purpose is to satisfy the optional +// interface check performed by the reflector. +// Returning true signals that WatchList can NOT be used. +// No additional logic is implemented here. +func (c *Clientset) IsWatchListSemanticsUnSupported() bool { + return true +} + // Cluster scopes this clientset to one cluster. func (c *ClusterClientset) Cluster(clusterPath logicalcluster.Path) clientset.Interface { if clusterPath == logicalcluster.Wildcard { diff --git a/staging/src/github.com/kcp-dev/client-go/apiextensions/informers/apiextensions/v1/customresourcedefinition.go b/staging/src/github.com/kcp-dev/client-go/apiextensions/informers/apiextensions/v1/customresourcedefinition.go index 6d5a145d595..b19748dc638 100644 --- a/staging/src/github.com/kcp-dev/client-go/apiextensions/informers/apiextensions/v1/customresourcedefinition.go +++ b/staging/src/github.com/kcp-dev/client-go/apiextensions/informers/apiextensions/v1/customresourcedefinition.go @@ -64,7 +64,7 @@ func NewCustomResourceDefinitionClusterInformer(client kcpclient.ClusterInterfac // one. This reduces memory footprint and number of connections to the server. func NewFilteredCustomResourceDefinitionClusterInformer(client kcpclient.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredCustomResourceDefinitionClusterInformer(client kcpclient.Cluster } return client.ApiextensionsV1().CustomResourceDefinitions().Watch(context.Background(), options) }, - }, + }, client), &apisapiextensionsv1.CustomResourceDefinition{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/apiextensions/informers/apiextensions/v1beta1/customresourcedefinition.go b/staging/src/github.com/kcp-dev/client-go/apiextensions/informers/apiextensions/v1beta1/customresourcedefinition.go index 60c6715fc8d..d13fc6ae0f5 100644 --- a/staging/src/github.com/kcp-dev/client-go/apiextensions/informers/apiextensions/v1beta1/customresourcedefinition.go +++ b/staging/src/github.com/kcp-dev/client-go/apiextensions/informers/apiextensions/v1beta1/customresourcedefinition.go @@ -64,7 +64,7 @@ func NewCustomResourceDefinitionClusterInformer(client kcpclient.ClusterInterfac // one. This reduces memory footprint and number of connections to the server. func NewFilteredCustomResourceDefinitionClusterInformer(client kcpclient.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredCustomResourceDefinitionClusterInformer(client kcpclient.Cluster } return client.ApiextensionsV1beta1().CustomResourceDefinitions().Watch(context.Background(), options) }, - }, + }, client), &apisapiextensionsv1beta1.CustomResourceDefinition{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/apiextensions/informers/factory.go b/staging/src/github.com/kcp-dev/client-go/apiextensions/informers/factory.go index 4ece49cec7c..150f4dc2437 100644 --- a/staging/src/github.com/kcp-dev/client-go/apiextensions/informers/factory.go +++ b/staging/src/github.com/kcp-dev/client-go/apiextensions/informers/factory.go @@ -99,6 +99,7 @@ func NewSharedInformerFactory(client kcpclient.ClusterInterface, defaultResync t // NewFilteredSharedInformerFactory constructs a new instance of sharedInformerFactory. // Listers obtained via this SharedInformerFactory will be subject to the same filters // as specified here. +// // Deprecated: Please use NewSharedInformerFactoryWithOptions instead func NewFilteredSharedInformerFactory(client kcpclient.ClusterInterface, defaultResync time.Duration, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) SharedInformerFactory { return NewSharedInformerFactoryWithOptions(client, defaultResync, WithTweakListOptions(tweakListOptions)) @@ -223,7 +224,7 @@ type ScopedDynamicSharedInformerFactory interface { // // It is typically used like this: // -// ctx, cancel := context.Background() +// ctx, cancel := context.WithCancel(context.Background()) // defer cancel() // factory := NewSharedInformerFactory(client, resyncPeriod) // defer factory.WaitForStop() // Returns immediately if nothing was started. diff --git a/staging/src/github.com/kcp-dev/client-go/go.mod b/staging/src/github.com/kcp-dev/client-go/go.mod index 58eec5f9a8e..9db306ad3b3 100644 --- a/staging/src/github.com/kcp-dev/client-go/go.mod +++ b/staging/src/github.com/kcp-dev/client-go/go.mod @@ -1,17 +1,17 @@ module github.com/kcp-dev/client-go -go 1.24.0 +go 1.25.0 require ( github.com/google/gnostic-models v0.7.0 github.com/kcp-dev/apimachinery/v2 v2.0.0-00010101000000-000000000000 github.com/kcp-dev/code-generator/v3 v3.0.0-00010101000000-000000000000 github.com/kcp-dev/logicalcluster/v3 v3.0.5 - gopkg.in/evanphx/json-patch.v4 v4.12.0 - k8s.io/api v0.34.2 - k8s.io/apiextensions-apiserver v0.34.2 - k8s.io/apimachinery v0.34.2 - k8s.io/client-go v0.34.2 + gopkg.in/evanphx/json-patch.v4 v4.13.0 + k8s.io/api v0.35.1 + k8s.io/apiextensions-apiserver v0.35.1 + k8s.io/apimachinery v0.35.1 + k8s.io/client-go v0.35.1 k8s.io/klog/v2 v2.130.1 sigs.k8s.io/structured-merge-diff/v6 v6.3.0 sigs.k8s.io/yaml v1.6.0 @@ -33,12 +33,11 @@ require ( github.com/emicklei/go-restful/v3 v3.12.2 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/fxamacker/cbor/v2 v2.9.0 // indirect - github.com/go-logr/logr v1.4.2 // indirect + github.com/go-logr/logr v1.4.3 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-openapi/jsonpointer v0.21.0 // indirect github.com/go-openapi/jsonreference v0.21.0 // indirect github.com/go-openapi/swag v0.23.0 // indirect - github.com/gogo/protobuf v1.3.2 // indirect github.com/google/cel-go v0.26.0 // indirect github.com/google/go-cmp v0.7.0 // indirect github.com/google/uuid v1.6.0 // indirect @@ -50,50 +49,49 @@ require ( github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect - github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect - github.com/prometheus/client_golang v1.22.0 // indirect - github.com/prometheus/client_model v0.6.1 // indirect - github.com/prometheus/common v0.62.0 // indirect - github.com/prometheus/procfs v0.15.1 // indirect - github.com/spf13/cobra v1.9.1 // indirect - github.com/spf13/pflag v1.0.6 // indirect + github.com/prometheus/client_golang v1.23.2 // indirect + github.com/prometheus/client_model v0.6.2 // indirect + github.com/prometheus/common v0.66.1 // indirect + github.com/prometheus/procfs v0.16.1 // indirect + github.com/spf13/cobra v1.10.0 // indirect + github.com/spf13/pflag v1.0.9 // indirect github.com/stoewer/go-strcase v1.3.0 // indirect github.com/x448/float16 v0.8.4 // indirect go.opentelemetry.io/auto/sdk v1.1.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 // indirect - go.opentelemetry.io/otel v1.35.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 // indirect + go.opentelemetry.io/otel v1.36.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.34.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.34.0 // indirect - go.opentelemetry.io/otel/metric v1.35.0 // indirect - go.opentelemetry.io/otel/sdk v1.34.0 // indirect - go.opentelemetry.io/otel/trace v1.35.0 // indirect + go.opentelemetry.io/otel/metric v1.36.0 // indirect + go.opentelemetry.io/otel/sdk v1.36.0 // indirect + go.opentelemetry.io/otel/trace v1.36.0 // indirect go.opentelemetry.io/proto/otlp v1.5.0 // indirect - go.yaml.in/yaml/v2 v2.4.2 // indirect + go.yaml.in/yaml/v2 v2.4.3 // indirect go.yaml.in/yaml/v3 v3.0.4 // indirect golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8 // indirect - golang.org/x/mod v0.24.0 // indirect - golang.org/x/net v0.40.0 // indirect - golang.org/x/oauth2 v0.29.0 // indirect - golang.org/x/sync v0.14.0 // indirect - golang.org/x/sys v0.33.0 // indirect - golang.org/x/term v0.32.0 // indirect - golang.org/x/text v0.25.0 // indirect + golang.org/x/mod v0.29.0 // indirect + golang.org/x/net v0.47.0 // indirect + golang.org/x/oauth2 v0.30.0 // indirect + golang.org/x/sync v0.18.0 // indirect + golang.org/x/sys v0.38.0 // indirect + golang.org/x/term v0.37.0 // indirect + golang.org/x/text v0.31.0 // indirect golang.org/x/time v0.11.0 // indirect - golang.org/x/tools v0.33.0 // indirect + golang.org/x/tools v0.38.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20250303144028-a0af3efb3deb // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20250303144028-a0af3efb3deb // indirect - google.golang.org/grpc v1.72.1 // indirect - google.golang.org/protobuf v1.36.5 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20250528174236-200df99c418a // indirect + google.golang.org/grpc v1.72.2 // indirect + google.golang.org/protobuf v1.36.8 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/apiserver v0.34.2 // indirect - k8s.io/code-generator v0.34.2 // indirect - k8s.io/component-base v0.34.2 // indirect - k8s.io/gengo/v2 v2.0.0-20250604051438-85fd79dbfd9f // indirect - k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b // indirect - k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 // indirect + k8s.io/apiserver v0.35.1 // indirect + k8s.io/code-generator v0.35.1 // indirect + k8s.io/component-base v0.35.1 // indirect + k8s.io/gengo/v2 v2.0.0-20250922181213-ec3ebc5fd46b // indirect + k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912 // indirect + k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 // indirect sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.2 // indirect - sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect + sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 // indirect sigs.k8s.io/randfill v1.0.0 // indirect ) diff --git a/staging/src/github.com/kcp-dev/client-go/go.sum b/staging/src/github.com/kcp-dev/client-go/go.sum index 0663e13180f..0f0d0c7f7eb 100644 --- a/staging/src/github.com/kcp-dev/client-go/go.sum +++ b/staging/src/github.com/kcp-dev/client-go/go.sum @@ -1,5 +1,7 @@ cel.dev/expr v0.24.0 h1:56OvJKSH3hDGL0ml5uSxZmz3/3Pq4tJ+fb1unVLAFcY= cel.dev/expr v0.24.0/go.mod h1:hLPLo1W4QUmuYdA72RBX06QTs6MXw941piREPl3Yfiw= +github.com/Masterminds/semver/v3 v3.4.0 h1:Zog+i5UMtVoCU8oKka5P7i9q9HgrJeGzI9SA1Xbatp0= +github.com/Masterminds/semver/v3 v3.4.0/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM= github.com/antlr4-go/antlr/v4 v4.13.1 h1:SqQKkuVZ+zWkMMNkjy5FZe5mr5WURWnlpmOuzYWrPrQ= github.com/antlr4-go/antlr/v4 v4.13.1/go.mod h1:GKmUxMtwp6ZgGwZSva4eWPC5mS6vUAmOABFgjdkM7Nw= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= @@ -26,8 +28,8 @@ github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSw github.com/fxamacker/cbor/v2 v2.9.0 h1:NpKPmjDBgUfBms6tr6JZkTHtfFGcMKsw3eGcmD/sapM= github.com/fxamacker/cbor/v2 v2.9.0/go.mod h1:vM4b+DJCtHn+zz7h3FFp/hDAI9WNWCsZj23V5ytsSxQ= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= +github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ= @@ -51,8 +53,8 @@ github.com/google/gnostic-models v0.7.0/go.mod h1:whL5G0m6dmc5cPxKc5bdKdEN3UjI7O github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db h1:097atOisP2aRj7vFgYQBbFN4U4JNXUNYpxael3UzMyo= -github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= +github.com/google/pprof v0.0.0-20250403155104-27863c87afa6 h1:BHT72Gu3keYf3ZEu2J0b1vyeLSOYI8bm5wbJM/8yDe8= +github.com/google/pprof v0.0.0-20250403155104-27863c87afa6/go.mod h1:boTsfXsheKC2y+lKOCMpSfarhxDeIzfZG1jqGcPl3cA= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho= @@ -67,8 +69,6 @@ github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnr github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/kcp-dev/logicalcluster/v3 v3.0.5 h1:JbYakokb+5Uinz09oTXomSUJVQsqfxEvU4RyHUYxHOU= github.com/kcp-dev/logicalcluster/v3 v3.0.5/go.mod h1:EWBUBxdr49fUB1cLMO4nOdBWmYifLbP1LfoL20KkXYY= -github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= -github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo= github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= @@ -87,30 +87,29 @@ github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee h1:W5t00kpgFd github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/onsi/ginkgo/v2 v2.21.0 h1:7rg/4f3rB88pb5obDgNZrNHrQ4e6WpjonchcpuBRnZM= -github.com/onsi/ginkgo/v2 v2.21.0/go.mod h1:7Du3c42kxCUegi0IImZ1wUQzMBVecgIHjR1C+NkhLQo= -github.com/onsi/gomega v1.35.1 h1:Cwbd75ZBPxFSuZ6T+rN/WCb/gOc6YgFBXLlZLhC7Ds4= -github.com/onsi/gomega v1.35.1/go.mod h1:PvZbdDc8J6XJEpDK4HCuRBm8a6Fzp9/DmhC9C7yFlog= -github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= -github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/onsi/ginkgo/v2 v2.27.2 h1:LzwLj0b89qtIy6SSASkzlNvX6WktqurSHwkk2ipF/Ns= +github.com/onsi/ginkgo/v2 v2.27.2/go.mod h1:ArE1D/XhNXBXCBkKOLkbsb2c81dQHCRcF5zwn/ykDRo= +github.com/onsi/gomega v1.38.2 h1:eZCjf2xjZAqe+LeWvKb5weQ+NcPwX84kqJ0cZNxok2A= +github.com/onsi/gomega v1.38.2/go.mod h1:W2MJcYxRGV63b418Ai34Ud0hEdTVXq9NW9+Sx6uXf3k= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v1.22.0 h1:rb93p9lokFEsctTys46VnV1kLCDpVZ0a/Y92Vm0Zc6Q= -github.com/prometheus/client_golang v1.22.0/go.mod h1:R7ljNsLXhuQXYZYtw6GAE9AZg8Y7vEW5scdCXrWRXC0= -github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= -github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= -github.com/prometheus/common v0.62.0 h1:xasJaQlnWAeyHdUBeGjXmutelfJHWMRr+Fg4QszZ2Io= -github.com/prometheus/common v0.62.0/go.mod h1:vyBcEuLSvWos9B1+CyL7JZ2up+uFzXhkqml0W5zIY1I= -github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= -github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= -github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= -github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= +github.com/prometheus/client_golang v1.23.2 h1:Je96obch5RDVy3FDMndoUsjAhG5Edi49h0RJWRi/o0o= +github.com/prometheus/client_golang v1.23.2/go.mod h1:Tb1a6LWHB3/SPIzCoaDXI4I8UHKeFTEQ1YCr+0Gyqmg= +github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk= +github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= +github.com/prometheus/common v0.66.1 h1:h5E0h5/Y8niHc5DlaLlWLArTQI7tMrsfQjHV+d9ZoGs= +github.com/prometheus/common v0.66.1/go.mod h1:gcaUsgf3KfRSwHY4dIMXLPV0K/Wg1oZ8+SbZk/HH/dA= +github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg= +github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is= +github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= +github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/spf13/cobra v1.9.1 h1:CXSaggrXdbHK9CF+8ywj8Amf7PBRmPCOJugH954Nnlo= -github.com/spf13/cobra v1.9.1/go.mod h1:nDyEzZ8ogv936Cinf6g1RU9MRY64Ir93oCnqb9wxYW0= -github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o= -github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/cobra v1.10.0 h1:a5/WeUlSDCvV5a45ljW2ZFtV0bTDpkfSAj3uqB6Sc+0= +github.com/spf13/cobra v1.10.0/go.mod h1:9dhySC7dnTtEiqzmqfkLj47BslqLCUPMXjG2lj/NgoE= +github.com/spf13/pflag v1.0.8/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/pflag v1.0.9 h1:9exaQaMOCwffKiiiYk6/BndUBv+iRViNW+4lEMi0PvY= +github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stoewer/go-strcase v1.3.0 h1:g0eASXYtp+yvN9fK8sH94oCIk0fau9uV1/ZdJ0AVEzs= github.com/stoewer/go-strcase v1.3.0/go.mod h1:fAH5hQ5pehh+j3nZfvwdk2RgEgQjAoM8wodgtPmh1xo= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -122,38 +121,36 @@ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UV github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= -github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= +github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= -github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -go.etcd.io/etcd/api/v3 v3.6.4 h1:7F6N7toCKcV72QmoUKa23yYLiiljMrT4xCeBL9BmXdo= -go.etcd.io/etcd/api/v3 v3.6.4/go.mod h1:eFhhvfR8Px1P6SEuLT600v+vrhdDTdcfMzmnxVXXSbk= -go.etcd.io/etcd/client/pkg/v3 v3.6.4 h1:9HBYrjppeOfFjBjaMTRxT3R7xT0GLK8EJMVC4xg6ok0= -go.etcd.io/etcd/client/pkg/v3 v3.6.4/go.mod h1:sbdzr2cl3HzVmxNw//PH7aLGVtY4QySjQFuaCgcRFAI= -go.etcd.io/etcd/client/v3 v3.6.4 h1:YOMrCfMhRzY8NgtzUsHl8hC2EBSnuqbR3dh84Uryl7A= -go.etcd.io/etcd/client/v3 v3.6.4/go.mod h1:jaNNHCyg2FdALyKWnd7hxZXZxZANb0+KGY+YQaEMISo= +go.etcd.io/etcd/api/v3 v3.6.5 h1:pMMc42276sgR1j1raO/Qv3QI9Af/AuyQUW6CBAWuntA= +go.etcd.io/etcd/api/v3 v3.6.5/go.mod h1:ob0/oWA/UQQlT1BmaEkWQzI0sJ1M0Et0mMpaABxguOQ= +go.etcd.io/etcd/client/pkg/v3 v3.6.5 h1:Duz9fAzIZFhYWgRjp/FgNq2gO1jId9Yae/rLn3RrBP8= +go.etcd.io/etcd/client/pkg/v3 v3.6.5/go.mod h1:8Wx3eGRPiy0qOFMZT/hfvdos+DjEaPxdIDiCDUv/FQk= +go.etcd.io/etcd/client/v3 v3.6.5 h1:yRwZNFBx/35VKHTcLDeO7XVLbCBFbPi+XV4OC3QJf2U= +go.etcd.io/etcd/client/v3 v3.6.5/go.mod h1:ZqwG/7TAFZ0BJ0jXRPoJjKQJtbFo/9NIY8uoFFKcCyo= go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0 h1:x7wzEgXfnzJcHDwStJT+mxOz4etr2EcexjqhBvmoakw= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0/go.mod h1:rg+RlpR5dKwaS95IyyZqj5Wd4E13lk/msnTS0Xl9lJM= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 h1:yd02MEjBdJkG3uabWP9apV+OuWRIXGDuJEUJbOHmCFU= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0/go.mod h1:umTcuxiv1n/s/S6/c2AT/g2CQ7u5C59sHDNmfSwgz7Q= -go.opentelemetry.io/otel v1.35.0 h1:xKWKPxrxB6OtMCbmMY021CqC45J+3Onta9MqjhnusiQ= -go.opentelemetry.io/otel v1.35.0/go.mod h1:UEqy8Zp11hpkUrL73gSlELM0DupHoiq72dR+Zqel/+Y= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 h1:F7Jx+6hwnZ41NSFTO5q4LYDtJRXBf2PD0rNBkeB/lus= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0/go.mod h1:UHB22Z8QsdRDrnAtX4PntOl36ajSxcdUMt1sF7Y6E7Q= +go.opentelemetry.io/otel v1.36.0 h1:UumtzIklRBY6cI/lllNZlALOF5nNIzJVb16APdvgTXg= +go.opentelemetry.io/otel v1.36.0/go.mod h1:/TcFMXYjyRNh8khOAO9ybYkqaDBb/70aVwkNML4pP8E= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.34.0 h1:OeNbIYk/2C15ckl7glBlOBp5+WlYsOElzTNmiPW/x60= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.34.0/go.mod h1:7Bept48yIeqxP2OZ9/AqIpYS94h2or0aB4FypJTc8ZM= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.34.0 h1:tgJ0uaNS4c98WRNUEx5U3aDlrDOI5Rs+1Vifcw4DJ8U= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.34.0/go.mod h1:U7HYyW0zt/a9x5J1Kjs+r1f/d4ZHnYFclhYY2+YbeoE= -go.opentelemetry.io/otel/metric v1.35.0 h1:0znxYu2SNyuMSQT4Y9WDWej0VpcsxkuklLa4/siN90M= -go.opentelemetry.io/otel/metric v1.35.0/go.mod h1:nKVFgxBZ2fReX6IlyW28MgZojkoAkJGaE8CpgeAU3oE= -go.opentelemetry.io/otel/sdk v1.34.0 h1:95zS4k/2GOy069d321O8jWgYsW3MzVV+KuSPKp7Wr1A= -go.opentelemetry.io/otel/sdk v1.34.0/go.mod h1:0e/pNiaMAqaykJGKbi+tSjWfNNHMTxoC9qANsCzbyxU= -go.opentelemetry.io/otel/sdk/metric v1.34.0 h1:5CeK9ujjbFVL5c1PhLuStg1wxA7vQv7ce1EK0Gyvahk= -go.opentelemetry.io/otel/sdk/metric v1.34.0/go.mod h1:jQ/r8Ze28zRKoNRdkjCZxfs6YvBTG1+YIqyFVFYec5w= -go.opentelemetry.io/otel/trace v1.35.0 h1:dPpEfJu1sDIqruz7BHFG3c7528f6ddfSWfFDVt/xgMs= -go.opentelemetry.io/otel/trace v1.35.0/go.mod h1:WUk7DtFp1Aw2MkvqGdwiXYDZZNvA/1J8o6xRXLrIkyc= +go.opentelemetry.io/otel/metric v1.36.0 h1:MoWPKVhQvJ+eeXWHFBOPoBOi20jh6Iq2CcCREuTYufE= +go.opentelemetry.io/otel/metric v1.36.0/go.mod h1:zC7Ks+yeyJt4xig9DEw9kuUFe5C3zLbVjV2PzT6qzbs= +go.opentelemetry.io/otel/sdk v1.36.0 h1:b6SYIuLRs88ztox4EyrvRti80uXIFy+Sqzoh9kFULbs= +go.opentelemetry.io/otel/sdk v1.36.0/go.mod h1:+lC+mTgD+MUWfjJubi2vvXWcVxyr9rmlshZni72pXeY= +go.opentelemetry.io/otel/sdk/metric v1.36.0 h1:r0ntwwGosWGaa0CrSt8cuNuTcccMXERFwHX4dThiPis= +go.opentelemetry.io/otel/sdk/metric v1.36.0/go.mod h1:qTNOhFDfKRwX0yXOqJYegL5WRaW376QbB7P4Pb0qva4= +go.opentelemetry.io/otel/trace v1.36.0 h1:ahxWNuqZjpdiFAyrIoQ4GIiAIhxAunQR6MUoKrsNd4w= +go.opentelemetry.io/otel/trace v1.36.0/go.mod h1:gQ+OnDZzrybY4k4seLzPAWNwVBBVlF2szhehOBB/tGA= go.opentelemetry.io/proto/otlp v1.5.0 h1:xJvq7gMzB31/d406fB8U5CBdyQGw4P399D1aQWU/3i4= go.opentelemetry.io/proto/otlp v1.5.0/go.mod h1:keN8WnHxOy8PG0rQZjJJ5A2ebUoafqWp0eVQ4yIXvJ4= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= @@ -162,99 +159,74 @@ 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/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= -go.yaml.in/yaml/v2 v2.4.2 h1:DzmwEr2rDGHl7lsFgAHxmNz/1NlQ7xLIrlN2h5d1eGI= -go.yaml.in/yaml/v2 v2.4.2/go.mod h1:081UH+NErpNdqlCXm3TtEran0rJZGxAYx9hb/ELlsPU= +go.yaml.in/yaml/v2 v2.4.3 h1:6gvOSjQoTB3vt1l+CU+tSyi/HOjfOjRLJ4YwYZGwRO0= +go.yaml.in/yaml/v2 v2.4.3/go.mod h1:zSxWcmIDjOzPXpjlTTbAsKokqkDNAVtZO0WOMiT90s8= go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8 h1:yqrTHse8TCMW1M1ZCP+VAR/l0kKxwaAIqN/il7x4voA= golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8/go.mod h1:tujkw807nyEEAamNbDrEGzRav+ilXA7PCRAd6xsmwiU= -golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.24.0 h1:ZfthKaKaT4NrhGVZHO1/WDTwGES4De8KtWO0SIbNJMU= -golang.org/x/mod v0.24.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.40.0 h1:79Xs7wF06Gbdcg4kdCCIQArK11Z1hr5POQ6+fIYHNuY= -golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds= -golang.org/x/oauth2 v0.29.0 h1:WdYw2tdTK1S8olAzWHdgeqfy+Mtm9XNhv/xJsY65d98= -golang.org/x/oauth2 v0.29.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.14.0 h1:woo0S4Yywslg6hp4eUFjTVOyKt0RookbpAHG4c1HmhQ= -golang.org/x/sync v0.14.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw= -golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= -golang.org/x/term v0.32.0 h1:DR4lr0TjUs3epypdhTOkMmuF5CDFJ/8pOnbzMZPQ7bg= -golang.org/x/term v0.32.0/go.mod h1:uZG1FhGx848Sqfsq4/DlJr3xGGsYMu/L5GW4abiaEPQ= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4= -golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA= +golang.org/x/mod v0.29.0 h1:HV8lRxZC4l2cr3Zq1LvtOsi/ThTgWnUk/y64QSs8GwA= +golang.org/x/mod v0.29.0/go.mod h1:NyhrlYXJ2H4eJiRy/WDBO6HMqZQ6q9nk4JzS3NuCK+w= +golang.org/x/net v0.47.0 h1:Mx+4dIFzqraBXUugkia1OOvlD6LemFo1ALMHjrXDOhY= +golang.org/x/net v0.47.0/go.mod h1:/jNxtkgq5yWUGYkaZGqo27cfGZ1c5Nen03aYrrKpVRU= +golang.org/x/oauth2 v0.30.0 h1:dnDm7JmhM45NNpd8FDDeLhK6FwqbOf4MLCM9zb1BOHI= +golang.org/x/oauth2 v0.30.0/go.mod h1:B++QgG3ZKulg6sRPGD/mqlHQs5rB3Ml9erfeDY7xKlU= +golang.org/x/sync v0.18.0 h1:kr88TuHDroi+UVf+0hZnirlk8o8T+4MrK6mr60WkH/I= +golang.org/x/sync v0.18.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= +golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc= +golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/term v0.37.0 h1:8EGAD0qCmHYZg6J17DvsMy9/wJ7/D/4pV/wfnld5lTU= +golang.org/x/term v0.37.0/go.mod h1:5pB4lxRNYYVZuTLmy8oR2BH8dflOR+IbTYFD8fi3254= +golang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM= +golang.org/x/text v0.31.0/go.mod h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM= golang.org/x/time v0.11.0 h1:/bpjEDfN9tkoN/ryeYHnv5hcMlc8ncjMcM4XBk5NWV0= golang.org/x/time v0.11.0/go.mod h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.33.0 h1:4qz2S3zmRxbGIhDIAgjxvFutSvH5EfnsYrRBj0UI0bc= -golang.org/x/tools v0.33.0/go.mod h1:CIJMaWEY88juyUfo7UbgPqbC8rU2OqfAV1h2Qp0oMYI= -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= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/tools v0.38.0 h1:Hx2Xv8hISq8Lm16jvBZ2VQf+RLmbd7wVUsALibYI/IQ= +golang.org/x/tools v0.38.0/go.mod h1:yEsQ/d/YK8cjh0L6rZlY8tgtlKiBNTL14pGDJPJpYQs= google.golang.org/genproto/googleapis/api v0.0.0-20250303144028-a0af3efb3deb h1:p31xT4yrYrSM/G4Sn2+TNUkVhFCbG9y8itM2S6Th950= google.golang.org/genproto/googleapis/api v0.0.0-20250303144028-a0af3efb3deb/go.mod h1:jbe3Bkdp+Dh2IrslsFCklNhweNTBgSYanP1UXhJDhKg= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250303144028-a0af3efb3deb h1:TLPQVbx1GJ8VKZxz52VAxl1EBgKXXbTiU9Fc5fZeLn4= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250303144028-a0af3efb3deb/go.mod h1:LuRYeWDFV6WOn90g357N17oMCaxpgCnbi/44qJvDn2I= -google.golang.org/grpc v1.72.1 h1:HR03wO6eyZ7lknl75XlxABNVLLFc2PAb6mHlYh756mA= -google.golang.org/grpc v1.72.1/go.mod h1:wH5Aktxcg25y1I3w7H69nHfXdOG3UiadoBtjh3izSDM= -google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM= -google.golang.org/protobuf v1.36.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250528174236-200df99c418a h1:v2PbRU4K3llS09c7zodFpNePeamkAwG3mPrAery9VeE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250528174236-200df99c418a/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A= +google.golang.org/grpc v1.72.2 h1:TdbGzwb82ty4OusHWepvFWGLgIbNo1/SUynEN0ssqv8= +google.golang.org/grpc v1.72.2/go.mod h1:wH5Aktxcg25y1I3w7H69nHfXdOG3UiadoBtjh3izSDM= +google.golang.org/protobuf v1.36.8 h1:xHScyCOEuuwZEc6UtSOvPbAT4zRh0xcNRYekJwfqyMc= +google.golang.org/protobuf v1.36.8/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/evanphx/json-patch.v4 v4.12.0 h1:n6jtcsulIzXPJaxegRbvFNNrZDjbij7ny3gmSPG+6V4= -gopkg.in/evanphx/json-patch.v4 v4.12.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M= +gopkg.in/evanphx/json-patch.v4 v4.13.0 h1:czT3CmqEaQ1aanPc5SdlgQrrEIb8w/wwCvWWnfEbYzo= +gopkg.in/evanphx/json-patch.v4 v4.13.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -k8s.io/api v0.34.2 h1:fsSUNZhV+bnL6Aqrp6O7lMTy6o5x2C4XLjnh//8SLYY= -k8s.io/api v0.34.2/go.mod h1:MMBPaWlED2a8w4RSeanD76f7opUoypY8TFYkSM+3XHw= -k8s.io/apiextensions-apiserver v0.34.2 h1:WStKftnGeoKP4AZRz/BaAAEJvYp4mlZGN0UCv+uvsqo= -k8s.io/apiextensions-apiserver v0.34.2/go.mod h1:398CJrsgXF1wytdaanynDpJ67zG4Xq7yj91GrmYN2SE= -k8s.io/apimachinery v0.34.2 h1:zQ12Uk3eMHPxrsbUJgNF8bTauTVR2WgqJsTmwTE/NW4= -k8s.io/apimachinery v0.34.2/go.mod h1:/GwIlEcWuTX9zKIg2mbw0LRFIsXwrfoVxn+ef0X13lw= -k8s.io/apiserver v0.34.2 h1:2/yu8suwkmES7IzwlehAovo8dDE07cFRC7KMDb1+MAE= -k8s.io/apiserver v0.34.2/go.mod h1:gqJQy2yDOB50R3JUReHSFr+cwJnL8G1dzTA0YLEqAPI= -k8s.io/client-go v0.34.2 h1:Co6XiknN+uUZqiddlfAjT68184/37PS4QAzYvQvDR8M= -k8s.io/client-go v0.34.2/go.mod h1:2VYDl1XXJsdcAxw7BenFslRQX28Dxz91U9MWKjX97fE= -k8s.io/code-generator v0.34.2 h1:9bG6jTxmsU3HXE5BNYJTC8AZ1D6hVVfkm8yYSkdkGY0= -k8s.io/code-generator v0.34.2/go.mod h1:dnDDEd6S/z4uZ+PG1aE58ySCi/lR4+qT3a4DddE4/2I= -k8s.io/component-base v0.34.2 h1:HQRqK9x2sSAsd8+R4xxRirlTjowsg6fWCPwWYeSvogQ= -k8s.io/component-base v0.34.2/go.mod h1:9xw2FHJavUHBFpiGkZoKuYZ5pdtLKe97DEByaA+hHbM= -k8s.io/gengo/v2 v2.0.0-20250604051438-85fd79dbfd9f h1:SLb+kxmzfA87x4E4brQzB33VBbT2+x7Zq9ROIHmGn9Q= -k8s.io/gengo/v2 v2.0.0-20250604051438-85fd79dbfd9f/go.mod h1:EJykeLsmFC60UQbYJezXkEsG2FLrt0GPNkU5iK5GWxU= +k8s.io/api v0.35.1 h1:0PO/1FhlK/EQNVK5+txc4FuhQibV25VLSdLMmGpDE/Q= +k8s.io/api v0.35.1/go.mod h1:28uR9xlXWml9eT0uaGo6y71xK86JBELShLy4wR1XtxM= +k8s.io/apiextensions-apiserver v0.35.1 h1:p5vvALkknlOcAqARwjS20kJffgzHqwyQRM8vHLwgU7w= +k8s.io/apiextensions-apiserver v0.35.1/go.mod h1:2CN4fe1GZ3HMe4wBr25qXyJnJyZaquy4nNlNmb3R7AQ= +k8s.io/apimachinery v0.35.1 h1:yxO6gV555P1YV0SANtnTjXYfiivaTPvCTKX6w6qdDsU= +k8s.io/apimachinery v0.35.1/go.mod h1:jQCgFZFR1F4Ik7hvr2g84RTJSZegBc8yHgFWKn//hns= +k8s.io/apiserver v0.35.1 h1:potxdhhTL4i6AYAa2QCwtlhtB1eCdWQFvJV6fXgJzxs= +k8s.io/apiserver v0.35.1/go.mod h1:BiL6Dd3A2I/0lBnteXfWmCFobHM39vt5+hJQd7Lbpi4= +k8s.io/client-go v0.35.1 h1:+eSfZHwuo/I19PaSxqumjqZ9l5XiTEKbIaJ+j1wLcLM= +k8s.io/client-go v0.35.1/go.mod h1:1p1KxDt3a0ruRfc/pG4qT/3oHmUj1AhSHEcxNSGg+OA= +k8s.io/code-generator v0.35.1 h1:yLKR2la7Z9cWT5qmk67ayx8xXLM4RRKQMnC8YPvTWRI= +k8s.io/code-generator v0.35.1/go.mod h1:F2Fhm7aA69tC/VkMXLDokdovltXEF026Tb9yfQXQWKg= +k8s.io/component-base v0.35.1 h1:XgvpRf4srp037QWfGBLFsYMUQJkE5yMa94UsJU7pmcE= +k8s.io/component-base v0.35.1/go.mod h1:HI/6jXlwkiOL5zL9bqA3en1Ygv60F03oEpnuU1G56Bs= +k8s.io/gengo/v2 v2.0.0-20250922181213-ec3ebc5fd46b h1:gMplByicHV/TJBizHd9aVEsTYoJBnnUAT5MHlTkbjhQ= +k8s.io/gengo/v2 v2.0.0-20250922181213-ec3ebc5fd46b/go.mod h1:CgujABENc3KuTrcsdpGmrrASjtQsWCT7R99mEV4U/fM= k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= -k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b h1:MloQ9/bdJyIu9lb1PzujOPolHyvO06MXG5TUIj2mNAA= -k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b/go.mod h1:UZ2yyWbFTpuhSbFhv24aGNOdoRdJZgsIObGBUaYVsts= -k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 h1:hwvWFiBzdWw1FhfY1FooPn3kzWuJ8tmbZBHi4zVsl1Y= -k8s.io/utils v0.0.0-20250604170112-4c0f3b243397/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912 h1:Y3gxNAuB0OBLImH611+UDZcmKS3g6CthxToOb37KgwE= +k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912/go.mod h1:kdmbQkyfwUagLfXIad1y2TdrjPFWp2Q89B3qkRwf/pQ= +k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 h1:SjGebBtkBqHFOli+05xYbK8YF1Dzkbzn+gDM4X9T4Ck= +k8s.io/utils v0.0.0-20251002143259-bc988d571ff4/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.2 h1:jpcvIRr3GLoUoEKRkHKSmGjxb6lWwrBlJsXc+eUYQHM= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.2/go.mod h1:Ve9uj1L+deCXFrPOk1LpFXqTg7LCFzFso6PA48q/XZw= -sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 h1:gBQPwqORJ8d8/YNZWEjoZs7npUVDpVXUUOFfW6CgAqE= -sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg= +sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 h1:IpInykpT6ceI+QxKBbEflcR5EXP7sU1kvOlxwZh5txg= +sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg= sigs.k8s.io/randfill v1.0.0 h1:JfjMILfT8A6RbawdsK2JXGBR5AQVfd+9TbzrlneTyrU= sigs.k8s.io/randfill v1.0.0/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY= sigs.k8s.io/structured-merge-diff/v6 v6.3.0 h1:jTijUJbW353oVOd9oTlifJqOGEkUw2jB/fXCbTiQEco= diff --git a/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1/mutatingwebhookconfiguration.go b/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1/mutatingwebhookconfiguration.go index b9223cbbce5..1f846101f06 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1/mutatingwebhookconfiguration.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1/mutatingwebhookconfiguration.go @@ -64,7 +64,7 @@ func NewMutatingWebhookConfigurationClusterInformer(client kcpkubernetes.Cluster // one. This reduces memory footprint and number of connections to the server. func NewFilteredMutatingWebhookConfigurationClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredMutatingWebhookConfigurationClusterInformer(client kcpkubernetes } return client.AdmissionregistrationV1().MutatingWebhookConfigurations().Watch(context.Background(), options) }, - }, + }, client), &apiadmissionregistrationv1.MutatingWebhookConfiguration{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1/validatingadmissionpolicy.go b/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1/validatingadmissionpolicy.go index 08d2b58bdbc..4dc1e4f0bf8 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1/validatingadmissionpolicy.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1/validatingadmissionpolicy.go @@ -64,7 +64,7 @@ func NewValidatingAdmissionPolicyClusterInformer(client kcpkubernetes.ClusterInt // one. This reduces memory footprint and number of connections to the server. func NewFilteredValidatingAdmissionPolicyClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredValidatingAdmissionPolicyClusterInformer(client kcpkubernetes.Cl } return client.AdmissionregistrationV1().ValidatingAdmissionPolicies().Watch(context.Background(), options) }, - }, + }, client), &apiadmissionregistrationv1.ValidatingAdmissionPolicy{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1/validatingadmissionpolicybinding.go b/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1/validatingadmissionpolicybinding.go index 0eaee8d16ef..cba4e6143fd 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1/validatingadmissionpolicybinding.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1/validatingadmissionpolicybinding.go @@ -64,7 +64,7 @@ func NewValidatingAdmissionPolicyBindingClusterInformer(client kcpkubernetes.Clu // one. This reduces memory footprint and number of connections to the server. func NewFilteredValidatingAdmissionPolicyBindingClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredValidatingAdmissionPolicyBindingClusterInformer(client kcpkubern } return client.AdmissionregistrationV1().ValidatingAdmissionPolicyBindings().Watch(context.Background(), options) }, - }, + }, client), &apiadmissionregistrationv1.ValidatingAdmissionPolicyBinding{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1/validatingwebhookconfiguration.go b/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1/validatingwebhookconfiguration.go index b0c666e126e..f0c489e43a0 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1/validatingwebhookconfiguration.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1/validatingwebhookconfiguration.go @@ -64,7 +64,7 @@ func NewValidatingWebhookConfigurationClusterInformer(client kcpkubernetes.Clust // one. This reduces memory footprint and number of connections to the server. func NewFilteredValidatingWebhookConfigurationClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredValidatingWebhookConfigurationClusterInformer(client kcpkubernet } return client.AdmissionregistrationV1().ValidatingWebhookConfigurations().Watch(context.Background(), options) }, - }, + }, client), &apiadmissionregistrationv1.ValidatingWebhookConfiguration{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1alpha1/mutatingadmissionpolicy.go b/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1alpha1/mutatingadmissionpolicy.go index 904b6f8fc9b..3c8929a6dc4 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1alpha1/mutatingadmissionpolicy.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1alpha1/mutatingadmissionpolicy.go @@ -64,7 +64,7 @@ func NewMutatingAdmissionPolicyClusterInformer(client kcpkubernetes.ClusterInter // one. This reduces memory footprint and number of connections to the server. func NewFilteredMutatingAdmissionPolicyClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredMutatingAdmissionPolicyClusterInformer(client kcpkubernetes.Clus } return client.AdmissionregistrationV1alpha1().MutatingAdmissionPolicies().Watch(context.Background(), options) }, - }, + }, client), &apiadmissionregistrationv1alpha1.MutatingAdmissionPolicy{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1alpha1/mutatingadmissionpolicybinding.go b/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1alpha1/mutatingadmissionpolicybinding.go index 127bc36bbc2..bcbd68c54a8 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1alpha1/mutatingadmissionpolicybinding.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1alpha1/mutatingadmissionpolicybinding.go @@ -64,7 +64,7 @@ func NewMutatingAdmissionPolicyBindingClusterInformer(client kcpkubernetes.Clust // one. This reduces memory footprint and number of connections to the server. func NewFilteredMutatingAdmissionPolicyBindingClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredMutatingAdmissionPolicyBindingClusterInformer(client kcpkubernet } return client.AdmissionregistrationV1alpha1().MutatingAdmissionPolicyBindings().Watch(context.Background(), options) }, - }, + }, client), &apiadmissionregistrationv1alpha1.MutatingAdmissionPolicyBinding{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1alpha1/validatingadmissionpolicy.go b/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1alpha1/validatingadmissionpolicy.go index 472fe248ee9..731d7e2c179 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1alpha1/validatingadmissionpolicy.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1alpha1/validatingadmissionpolicy.go @@ -64,7 +64,7 @@ func NewValidatingAdmissionPolicyClusterInformer(client kcpkubernetes.ClusterInt // one. This reduces memory footprint and number of connections to the server. func NewFilteredValidatingAdmissionPolicyClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredValidatingAdmissionPolicyClusterInformer(client kcpkubernetes.Cl } return client.AdmissionregistrationV1alpha1().ValidatingAdmissionPolicies().Watch(context.Background(), options) }, - }, + }, client), &apiadmissionregistrationv1alpha1.ValidatingAdmissionPolicy{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1alpha1/validatingadmissionpolicybinding.go b/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1alpha1/validatingadmissionpolicybinding.go index 84d1a5d7771..fe256be8691 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1alpha1/validatingadmissionpolicybinding.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1alpha1/validatingadmissionpolicybinding.go @@ -64,7 +64,7 @@ func NewValidatingAdmissionPolicyBindingClusterInformer(client kcpkubernetes.Clu // one. This reduces memory footprint and number of connections to the server. func NewFilteredValidatingAdmissionPolicyBindingClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredValidatingAdmissionPolicyBindingClusterInformer(client kcpkubern } return client.AdmissionregistrationV1alpha1().ValidatingAdmissionPolicyBindings().Watch(context.Background(), options) }, - }, + }, client), &apiadmissionregistrationv1alpha1.ValidatingAdmissionPolicyBinding{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1beta1/mutatingadmissionpolicy.go b/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1beta1/mutatingadmissionpolicy.go index 810729d8cf3..0151c45351b 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1beta1/mutatingadmissionpolicy.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1beta1/mutatingadmissionpolicy.go @@ -64,7 +64,7 @@ func NewMutatingAdmissionPolicyClusterInformer(client kcpkubernetes.ClusterInter // one. This reduces memory footprint and number of connections to the server. func NewFilteredMutatingAdmissionPolicyClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredMutatingAdmissionPolicyClusterInformer(client kcpkubernetes.Clus } return client.AdmissionregistrationV1beta1().MutatingAdmissionPolicies().Watch(context.Background(), options) }, - }, + }, client), &apiadmissionregistrationv1beta1.MutatingAdmissionPolicy{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1beta1/mutatingadmissionpolicybinding.go b/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1beta1/mutatingadmissionpolicybinding.go index ee7a9db534d..2f1da0a2eb0 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1beta1/mutatingadmissionpolicybinding.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1beta1/mutatingadmissionpolicybinding.go @@ -64,7 +64,7 @@ func NewMutatingAdmissionPolicyBindingClusterInformer(client kcpkubernetes.Clust // one. This reduces memory footprint and number of connections to the server. func NewFilteredMutatingAdmissionPolicyBindingClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredMutatingAdmissionPolicyBindingClusterInformer(client kcpkubernet } return client.AdmissionregistrationV1beta1().MutatingAdmissionPolicyBindings().Watch(context.Background(), options) }, - }, + }, client), &apiadmissionregistrationv1beta1.MutatingAdmissionPolicyBinding{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1beta1/mutatingwebhookconfiguration.go b/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1beta1/mutatingwebhookconfiguration.go index c64ffd2eeb4..d5dcd08cb3e 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1beta1/mutatingwebhookconfiguration.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1beta1/mutatingwebhookconfiguration.go @@ -64,7 +64,7 @@ func NewMutatingWebhookConfigurationClusterInformer(client kcpkubernetes.Cluster // one. This reduces memory footprint and number of connections to the server. func NewFilteredMutatingWebhookConfigurationClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredMutatingWebhookConfigurationClusterInformer(client kcpkubernetes } return client.AdmissionregistrationV1beta1().MutatingWebhookConfigurations().Watch(context.Background(), options) }, - }, + }, client), &apiadmissionregistrationv1beta1.MutatingWebhookConfiguration{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1beta1/validatingadmissionpolicy.go b/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1beta1/validatingadmissionpolicy.go index aacd427fc2f..39cc4906219 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1beta1/validatingadmissionpolicy.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1beta1/validatingadmissionpolicy.go @@ -64,7 +64,7 @@ func NewValidatingAdmissionPolicyClusterInformer(client kcpkubernetes.ClusterInt // one. This reduces memory footprint and number of connections to the server. func NewFilteredValidatingAdmissionPolicyClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredValidatingAdmissionPolicyClusterInformer(client kcpkubernetes.Cl } return client.AdmissionregistrationV1beta1().ValidatingAdmissionPolicies().Watch(context.Background(), options) }, - }, + }, client), &apiadmissionregistrationv1beta1.ValidatingAdmissionPolicy{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1beta1/validatingadmissionpolicybinding.go b/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1beta1/validatingadmissionpolicybinding.go index 4ee00fea850..0269e755d8c 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1beta1/validatingadmissionpolicybinding.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1beta1/validatingadmissionpolicybinding.go @@ -64,7 +64,7 @@ func NewValidatingAdmissionPolicyBindingClusterInformer(client kcpkubernetes.Clu // one. This reduces memory footprint and number of connections to the server. func NewFilteredValidatingAdmissionPolicyBindingClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredValidatingAdmissionPolicyBindingClusterInformer(client kcpkubern } return client.AdmissionregistrationV1beta1().ValidatingAdmissionPolicyBindings().Watch(context.Background(), options) }, - }, + }, client), &apiadmissionregistrationv1beta1.ValidatingAdmissionPolicyBinding{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1beta1/validatingwebhookconfiguration.go b/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1beta1/validatingwebhookconfiguration.go index de6b71575a3..17672b619f3 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1beta1/validatingwebhookconfiguration.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/admissionregistration/v1beta1/validatingwebhookconfiguration.go @@ -64,7 +64,7 @@ func NewValidatingWebhookConfigurationClusterInformer(client kcpkubernetes.Clust // one. This reduces memory footprint and number of connections to the server. func NewFilteredValidatingWebhookConfigurationClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredValidatingWebhookConfigurationClusterInformer(client kcpkubernet } return client.AdmissionregistrationV1beta1().ValidatingWebhookConfigurations().Watch(context.Background(), options) }, - }, + }, client), &apiadmissionregistrationv1beta1.ValidatingWebhookConfiguration{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/apiserverinternal/v1alpha1/storageversion.go b/staging/src/github.com/kcp-dev/client-go/informers/apiserverinternal/v1alpha1/storageversion.go index 6d25bac9d06..613dd60c502 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/apiserverinternal/v1alpha1/storageversion.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/apiserverinternal/v1alpha1/storageversion.go @@ -64,7 +64,7 @@ func NewStorageVersionClusterInformer(client kcpkubernetes.ClusterInterface, res // one. This reduces memory footprint and number of connections to the server. func NewFilteredStorageVersionClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredStorageVersionClusterInformer(client kcpkubernetes.ClusterInterf } return client.InternalV1alpha1().StorageVersions().Watch(context.Background(), options) }, - }, + }, client), &apiapiserverinternalv1alpha1.StorageVersion{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/apps/v1/controllerrevision.go b/staging/src/github.com/kcp-dev/client-go/informers/apps/v1/controllerrevision.go index 56e2dc521da..ecd2105935e 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/apps/v1/controllerrevision.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/apps/v1/controllerrevision.go @@ -64,7 +64,7 @@ func NewControllerRevisionClusterInformer(client kcpkubernetes.ClusterInterface, // one. This reduces memory footprint and number of connections to the server. func NewFilteredControllerRevisionClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredControllerRevisionClusterInformer(client kcpkubernetes.ClusterIn } return client.AppsV1().ControllerRevisions().Watch(context.Background(), options) }, - }, + }, client), &apiappsv1.ControllerRevision{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/apps/v1/daemonset.go b/staging/src/github.com/kcp-dev/client-go/informers/apps/v1/daemonset.go index 147eabf1101..199072432f5 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/apps/v1/daemonset.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/apps/v1/daemonset.go @@ -64,7 +64,7 @@ func NewDaemonSetClusterInformer(client kcpkubernetes.ClusterInterface, resyncPe // one. This reduces memory footprint and number of connections to the server. func NewFilteredDaemonSetClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredDaemonSetClusterInformer(client kcpkubernetes.ClusterInterface, } return client.AppsV1().DaemonSets().Watch(context.Background(), options) }, - }, + }, client), &apiappsv1.DaemonSet{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/apps/v1/deployment.go b/staging/src/github.com/kcp-dev/client-go/informers/apps/v1/deployment.go index 28401c4ab8e..00a0a256740 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/apps/v1/deployment.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/apps/v1/deployment.go @@ -64,7 +64,7 @@ func NewDeploymentClusterInformer(client kcpkubernetes.ClusterInterface, resyncP // one. This reduces memory footprint and number of connections to the server. func NewFilteredDeploymentClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredDeploymentClusterInformer(client kcpkubernetes.ClusterInterface, } return client.AppsV1().Deployments().Watch(context.Background(), options) }, - }, + }, client), &apiappsv1.Deployment{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/apps/v1/replicaset.go b/staging/src/github.com/kcp-dev/client-go/informers/apps/v1/replicaset.go index b374ffd526a..b2cb457cc83 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/apps/v1/replicaset.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/apps/v1/replicaset.go @@ -64,7 +64,7 @@ func NewReplicaSetClusterInformer(client kcpkubernetes.ClusterInterface, resyncP // one. This reduces memory footprint and number of connections to the server. func NewFilteredReplicaSetClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredReplicaSetClusterInformer(client kcpkubernetes.ClusterInterface, } return client.AppsV1().ReplicaSets().Watch(context.Background(), options) }, - }, + }, client), &apiappsv1.ReplicaSet{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/apps/v1/statefulset.go b/staging/src/github.com/kcp-dev/client-go/informers/apps/v1/statefulset.go index 56b6c6922da..4a9a0e3f90c 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/apps/v1/statefulset.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/apps/v1/statefulset.go @@ -64,7 +64,7 @@ func NewStatefulSetClusterInformer(client kcpkubernetes.ClusterInterface, resync // one. This reduces memory footprint and number of connections to the server. func NewFilteredStatefulSetClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredStatefulSetClusterInformer(client kcpkubernetes.ClusterInterface } return client.AppsV1().StatefulSets().Watch(context.Background(), options) }, - }, + }, client), &apiappsv1.StatefulSet{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/apps/v1beta1/controllerrevision.go b/staging/src/github.com/kcp-dev/client-go/informers/apps/v1beta1/controllerrevision.go index 7a2842cbd99..d9fd60cc402 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/apps/v1beta1/controllerrevision.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/apps/v1beta1/controllerrevision.go @@ -64,7 +64,7 @@ func NewControllerRevisionClusterInformer(client kcpkubernetes.ClusterInterface, // one. This reduces memory footprint and number of connections to the server. func NewFilteredControllerRevisionClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredControllerRevisionClusterInformer(client kcpkubernetes.ClusterIn } return client.AppsV1beta1().ControllerRevisions().Watch(context.Background(), options) }, - }, + }, client), &apiappsv1beta1.ControllerRevision{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/apps/v1beta1/deployment.go b/staging/src/github.com/kcp-dev/client-go/informers/apps/v1beta1/deployment.go index d34bf6f305e..c893094c671 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/apps/v1beta1/deployment.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/apps/v1beta1/deployment.go @@ -64,7 +64,7 @@ func NewDeploymentClusterInformer(client kcpkubernetes.ClusterInterface, resyncP // one. This reduces memory footprint and number of connections to the server. func NewFilteredDeploymentClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredDeploymentClusterInformer(client kcpkubernetes.ClusterInterface, } return client.AppsV1beta1().Deployments().Watch(context.Background(), options) }, - }, + }, client), &apiappsv1beta1.Deployment{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/apps/v1beta1/statefulset.go b/staging/src/github.com/kcp-dev/client-go/informers/apps/v1beta1/statefulset.go index 736e2819ef4..64131f637ea 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/apps/v1beta1/statefulset.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/apps/v1beta1/statefulset.go @@ -64,7 +64,7 @@ func NewStatefulSetClusterInformer(client kcpkubernetes.ClusterInterface, resync // one. This reduces memory footprint and number of connections to the server. func NewFilteredStatefulSetClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredStatefulSetClusterInformer(client kcpkubernetes.ClusterInterface } return client.AppsV1beta1().StatefulSets().Watch(context.Background(), options) }, - }, + }, client), &apiappsv1beta1.StatefulSet{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/apps/v1beta2/controllerrevision.go b/staging/src/github.com/kcp-dev/client-go/informers/apps/v1beta2/controllerrevision.go index 717c3a63524..5e172a09fe9 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/apps/v1beta2/controllerrevision.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/apps/v1beta2/controllerrevision.go @@ -64,7 +64,7 @@ func NewControllerRevisionClusterInformer(client kcpkubernetes.ClusterInterface, // one. This reduces memory footprint and number of connections to the server. func NewFilteredControllerRevisionClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredControllerRevisionClusterInformer(client kcpkubernetes.ClusterIn } return client.AppsV1beta2().ControllerRevisions().Watch(context.Background(), options) }, - }, + }, client), &apiappsv1beta2.ControllerRevision{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/apps/v1beta2/daemonset.go b/staging/src/github.com/kcp-dev/client-go/informers/apps/v1beta2/daemonset.go index 4e673e03435..951377ddc57 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/apps/v1beta2/daemonset.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/apps/v1beta2/daemonset.go @@ -64,7 +64,7 @@ func NewDaemonSetClusterInformer(client kcpkubernetes.ClusterInterface, resyncPe // one. This reduces memory footprint and number of connections to the server. func NewFilteredDaemonSetClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredDaemonSetClusterInformer(client kcpkubernetes.ClusterInterface, } return client.AppsV1beta2().DaemonSets().Watch(context.Background(), options) }, - }, + }, client), &apiappsv1beta2.DaemonSet{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/apps/v1beta2/deployment.go b/staging/src/github.com/kcp-dev/client-go/informers/apps/v1beta2/deployment.go index ae78d25bebd..b5eb7b24831 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/apps/v1beta2/deployment.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/apps/v1beta2/deployment.go @@ -64,7 +64,7 @@ func NewDeploymentClusterInformer(client kcpkubernetes.ClusterInterface, resyncP // one. This reduces memory footprint and number of connections to the server. func NewFilteredDeploymentClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredDeploymentClusterInformer(client kcpkubernetes.ClusterInterface, } return client.AppsV1beta2().Deployments().Watch(context.Background(), options) }, - }, + }, client), &apiappsv1beta2.Deployment{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/apps/v1beta2/replicaset.go b/staging/src/github.com/kcp-dev/client-go/informers/apps/v1beta2/replicaset.go index 1911d2c810b..b0ab7b0bfdf 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/apps/v1beta2/replicaset.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/apps/v1beta2/replicaset.go @@ -64,7 +64,7 @@ func NewReplicaSetClusterInformer(client kcpkubernetes.ClusterInterface, resyncP // one. This reduces memory footprint and number of connections to the server. func NewFilteredReplicaSetClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredReplicaSetClusterInformer(client kcpkubernetes.ClusterInterface, } return client.AppsV1beta2().ReplicaSets().Watch(context.Background(), options) }, - }, + }, client), &apiappsv1beta2.ReplicaSet{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/apps/v1beta2/statefulset.go b/staging/src/github.com/kcp-dev/client-go/informers/apps/v1beta2/statefulset.go index 70895e69f3c..63f9b588118 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/apps/v1beta2/statefulset.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/apps/v1beta2/statefulset.go @@ -64,7 +64,7 @@ func NewStatefulSetClusterInformer(client kcpkubernetes.ClusterInterface, resync // one. This reduces memory footprint and number of connections to the server. func NewFilteredStatefulSetClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredStatefulSetClusterInformer(client kcpkubernetes.ClusterInterface } return client.AppsV1beta2().StatefulSets().Watch(context.Background(), options) }, - }, + }, client), &apiappsv1beta2.StatefulSet{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/autoscaling/v1/horizontalpodautoscaler.go b/staging/src/github.com/kcp-dev/client-go/informers/autoscaling/v1/horizontalpodautoscaler.go index 61a78453587..1f8a741c1b0 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/autoscaling/v1/horizontalpodautoscaler.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/autoscaling/v1/horizontalpodautoscaler.go @@ -64,7 +64,7 @@ func NewHorizontalPodAutoscalerClusterInformer(client kcpkubernetes.ClusterInter // one. This reduces memory footprint and number of connections to the server. func NewFilteredHorizontalPodAutoscalerClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredHorizontalPodAutoscalerClusterInformer(client kcpkubernetes.Clus } return client.AutoscalingV1().HorizontalPodAutoscalers().Watch(context.Background(), options) }, - }, + }, client), &apiautoscalingv1.HorizontalPodAutoscaler{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/autoscaling/v2/horizontalpodautoscaler.go b/staging/src/github.com/kcp-dev/client-go/informers/autoscaling/v2/horizontalpodautoscaler.go index 7708cd0b8ff..2b83c072f25 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/autoscaling/v2/horizontalpodautoscaler.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/autoscaling/v2/horizontalpodautoscaler.go @@ -64,7 +64,7 @@ func NewHorizontalPodAutoscalerClusterInformer(client kcpkubernetes.ClusterInter // one. This reduces memory footprint and number of connections to the server. func NewFilteredHorizontalPodAutoscalerClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredHorizontalPodAutoscalerClusterInformer(client kcpkubernetes.Clus } return client.AutoscalingV2().HorizontalPodAutoscalers().Watch(context.Background(), options) }, - }, + }, client), &apiautoscalingv2.HorizontalPodAutoscaler{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/autoscaling/v2beta1/horizontalpodautoscaler.go b/staging/src/github.com/kcp-dev/client-go/informers/autoscaling/v2beta1/horizontalpodautoscaler.go index 218569b0906..d034b9e1592 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/autoscaling/v2beta1/horizontalpodautoscaler.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/autoscaling/v2beta1/horizontalpodautoscaler.go @@ -64,7 +64,7 @@ func NewHorizontalPodAutoscalerClusterInformer(client kcpkubernetes.ClusterInter // one. This reduces memory footprint and number of connections to the server. func NewFilteredHorizontalPodAutoscalerClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredHorizontalPodAutoscalerClusterInformer(client kcpkubernetes.Clus } return client.AutoscalingV2beta1().HorizontalPodAutoscalers().Watch(context.Background(), options) }, - }, + }, client), &apiautoscalingv2beta1.HorizontalPodAutoscaler{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/autoscaling/v2beta2/horizontalpodautoscaler.go b/staging/src/github.com/kcp-dev/client-go/informers/autoscaling/v2beta2/horizontalpodautoscaler.go index ea1455c2dd1..eb23044a5a1 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/autoscaling/v2beta2/horizontalpodautoscaler.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/autoscaling/v2beta2/horizontalpodautoscaler.go @@ -64,7 +64,7 @@ func NewHorizontalPodAutoscalerClusterInformer(client kcpkubernetes.ClusterInter // one. This reduces memory footprint and number of connections to the server. func NewFilteredHorizontalPodAutoscalerClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredHorizontalPodAutoscalerClusterInformer(client kcpkubernetes.Clus } return client.AutoscalingV2beta2().HorizontalPodAutoscalers().Watch(context.Background(), options) }, - }, + }, client), &apiautoscalingv2beta2.HorizontalPodAutoscaler{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/batch/v1/cronjob.go b/staging/src/github.com/kcp-dev/client-go/informers/batch/v1/cronjob.go index d908ef2b849..8081068aea8 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/batch/v1/cronjob.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/batch/v1/cronjob.go @@ -64,7 +64,7 @@ func NewCronJobClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeri // one. This reduces memory footprint and number of connections to the server. func NewFilteredCronJobClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredCronJobClusterInformer(client kcpkubernetes.ClusterInterface, re } return client.BatchV1().CronJobs().Watch(context.Background(), options) }, - }, + }, client), &apibatchv1.CronJob{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/batch/v1/job.go b/staging/src/github.com/kcp-dev/client-go/informers/batch/v1/job.go index f973b33b90d..e0bdd12fa31 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/batch/v1/job.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/batch/v1/job.go @@ -64,7 +64,7 @@ func NewJobClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod t // one. This reduces memory footprint and number of connections to the server. func NewFilteredJobClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredJobClusterInformer(client kcpkubernetes.ClusterInterface, resync } return client.BatchV1().Jobs().Watch(context.Background(), options) }, - }, + }, client), &apibatchv1.Job{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/batch/v1beta1/cronjob.go b/staging/src/github.com/kcp-dev/client-go/informers/batch/v1beta1/cronjob.go index 5836a125aca..584c8f36653 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/batch/v1beta1/cronjob.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/batch/v1beta1/cronjob.go @@ -64,7 +64,7 @@ func NewCronJobClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeri // one. This reduces memory footprint and number of connections to the server. func NewFilteredCronJobClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredCronJobClusterInformer(client kcpkubernetes.ClusterInterface, re } return client.BatchV1beta1().CronJobs().Watch(context.Background(), options) }, - }, + }, client), &apibatchv1beta1.CronJob{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/certificates/v1/certificatesigningrequest.go b/staging/src/github.com/kcp-dev/client-go/informers/certificates/v1/certificatesigningrequest.go index 60d9150347d..df662272af1 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/certificates/v1/certificatesigningrequest.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/certificates/v1/certificatesigningrequest.go @@ -64,7 +64,7 @@ func NewCertificateSigningRequestClusterInformer(client kcpkubernetes.ClusterInt // one. This reduces memory footprint and number of connections to the server. func NewFilteredCertificateSigningRequestClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredCertificateSigningRequestClusterInformer(client kcpkubernetes.Cl } return client.CertificatesV1().CertificateSigningRequests().Watch(context.Background(), options) }, - }, + }, client), &apicertificatesv1.CertificateSigningRequest{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/certificates/v1alpha1/clustertrustbundle.go b/staging/src/github.com/kcp-dev/client-go/informers/certificates/v1alpha1/clustertrustbundle.go index b7606c40c09..81d51e2d974 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/certificates/v1alpha1/clustertrustbundle.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/certificates/v1alpha1/clustertrustbundle.go @@ -64,7 +64,7 @@ func NewClusterTrustBundleClusterInformer(client kcpkubernetes.ClusterInterface, // one. This reduces memory footprint and number of connections to the server. func NewFilteredClusterTrustBundleClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredClusterTrustBundleClusterInformer(client kcpkubernetes.ClusterIn } return client.CertificatesV1alpha1().ClusterTrustBundles().Watch(context.Background(), options) }, - }, + }, client), &apicertificatesv1alpha1.ClusterTrustBundle{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/certificates/v1alpha1/interface.go b/staging/src/github.com/kcp-dev/client-go/informers/certificates/v1alpha1/interface.go index bdfc897386e..40858c5dd5b 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/certificates/v1alpha1/interface.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/certificates/v1alpha1/interface.go @@ -25,8 +25,6 @@ import ( type ClusterInterface interface { // ClusterTrustBundles returns a ClusterTrustBundleClusterInformer. ClusterTrustBundles() ClusterTrustBundleClusterInformer - // PodCertificateRequests returns a PodCertificateRequestClusterInformer. - PodCertificateRequests() PodCertificateRequestClusterInformer } type version struct { @@ -43,8 +41,3 @@ func New(f kcpinternalinterfaces.SharedInformerFactory, tweakListOptions kcpinte func (v *version) ClusterTrustBundles() ClusterTrustBundleClusterInformer { return &clusterTrustBundleClusterInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} } - -// PodCertificateRequests returns a PodCertificateRequestClusterInformer. -func (v *version) PodCertificateRequests() PodCertificateRequestClusterInformer { - return &podCertificateRequestClusterInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} -} diff --git a/staging/src/github.com/kcp-dev/client-go/informers/certificates/v1beta1/certificatesigningrequest.go b/staging/src/github.com/kcp-dev/client-go/informers/certificates/v1beta1/certificatesigningrequest.go index 0c4bf749d6d..804aea10af8 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/certificates/v1beta1/certificatesigningrequest.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/certificates/v1beta1/certificatesigningrequest.go @@ -64,7 +64,7 @@ func NewCertificateSigningRequestClusterInformer(client kcpkubernetes.ClusterInt // one. This reduces memory footprint and number of connections to the server. func NewFilteredCertificateSigningRequestClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredCertificateSigningRequestClusterInformer(client kcpkubernetes.Cl } return client.CertificatesV1beta1().CertificateSigningRequests().Watch(context.Background(), options) }, - }, + }, client), &apicertificatesv1beta1.CertificateSigningRequest{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/certificates/v1beta1/clustertrustbundle.go b/staging/src/github.com/kcp-dev/client-go/informers/certificates/v1beta1/clustertrustbundle.go index 2601ae91ad1..bd62c542328 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/certificates/v1beta1/clustertrustbundle.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/certificates/v1beta1/clustertrustbundle.go @@ -64,7 +64,7 @@ func NewClusterTrustBundleClusterInformer(client kcpkubernetes.ClusterInterface, // one. This reduces memory footprint and number of connections to the server. func NewFilteredClusterTrustBundleClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredClusterTrustBundleClusterInformer(client kcpkubernetes.ClusterIn } return client.CertificatesV1beta1().ClusterTrustBundles().Watch(context.Background(), options) }, - }, + }, client), &apicertificatesv1beta1.ClusterTrustBundle{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/certificates/v1beta1/interface.go b/staging/src/github.com/kcp-dev/client-go/informers/certificates/v1beta1/interface.go index 5fb50ff0f8d..19a853ca9e5 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/certificates/v1beta1/interface.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/certificates/v1beta1/interface.go @@ -27,6 +27,8 @@ type ClusterInterface interface { CertificateSigningRequests() CertificateSigningRequestClusterInformer // ClusterTrustBundles returns a ClusterTrustBundleClusterInformer. ClusterTrustBundles() ClusterTrustBundleClusterInformer + // PodCertificateRequests returns a PodCertificateRequestClusterInformer. + PodCertificateRequests() PodCertificateRequestClusterInformer } type version struct { @@ -48,3 +50,8 @@ func (v *version) CertificateSigningRequests() CertificateSigningRequestClusterI func (v *version) ClusterTrustBundles() ClusterTrustBundleClusterInformer { return &clusterTrustBundleClusterInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} } + +// PodCertificateRequests returns a PodCertificateRequestClusterInformer. +func (v *version) PodCertificateRequests() PodCertificateRequestClusterInformer { + return &podCertificateRequestClusterInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} +} diff --git a/staging/src/github.com/kcp-dev/client-go/informers/certificates/v1alpha1/podcertificaterequest.go b/staging/src/github.com/kcp-dev/client-go/informers/certificates/v1beta1/podcertificaterequest.go similarity index 76% rename from staging/src/github.com/kcp-dev/client-go/informers/certificates/v1alpha1/podcertificaterequest.go rename to staging/src/github.com/kcp-dev/client-go/informers/certificates/v1beta1/podcertificaterequest.go index 9888f84d152..8bea78eecfb 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/certificates/v1alpha1/podcertificaterequest.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/certificates/v1beta1/podcertificaterequest.go @@ -16,35 +16,35 @@ limitations under the License. // Code generated by cluster-informer-gen. DO NOT EDIT. -package v1alpha1 +package v1beta1 import ( context "context" time "time" - apicertificatesv1alpha1 "k8s.io/api/certificates/v1alpha1" + apicertificatesv1beta1 "k8s.io/api/certificates/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" - certificatesv1alpha1 "k8s.io/client-go/informers/certificates/v1alpha1" - listerscertificatesv1alpha1 "k8s.io/client-go/listers/certificates/v1alpha1" + certificatesv1beta1 "k8s.io/client-go/informers/certificates/v1beta1" + listerscertificatesv1beta1 "k8s.io/client-go/listers/certificates/v1beta1" cache "k8s.io/client-go/tools/cache" kcpcache "github.com/kcp-dev/apimachinery/v2/pkg/cache" kcpinformers "github.com/kcp-dev/apimachinery/v2/third_party/informers" kcpinternalinterfaces "github.com/kcp-dev/client-go/informers/internalinterfaces" kcpkubernetes "github.com/kcp-dev/client-go/kubernetes" - kcpv1alpha1 "github.com/kcp-dev/client-go/listers/certificates/v1alpha1" + kcpv1beta1 "github.com/kcp-dev/client-go/listers/certificates/v1beta1" logicalcluster "github.com/kcp-dev/logicalcluster/v3" ) // PodCertificateRequestClusterInformer provides access to a shared informer and lister for // PodCertificateRequests. type PodCertificateRequestClusterInformer interface { - Cluster(logicalcluster.Name) certificatesv1alpha1.PodCertificateRequestInformer - ClusterWithContext(context.Context, logicalcluster.Name) certificatesv1alpha1.PodCertificateRequestInformer + Cluster(logicalcluster.Name) certificatesv1beta1.PodCertificateRequestInformer + ClusterWithContext(context.Context, logicalcluster.Name) certificatesv1beta1.PodCertificateRequestInformer Informer() kcpcache.ScopeableSharedIndexInformer - Lister() kcpv1alpha1.PodCertificateRequestClusterLister + Lister() kcpv1beta1.PodCertificateRequestClusterLister } type podCertificateRequestClusterInformer struct { @@ -64,21 +64,21 @@ func NewPodCertificateRequestClusterInformer(client kcpkubernetes.ClusterInterfa // one. This reduces memory footprint and number of connections to the server. func NewFilteredPodCertificateRequestClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) } - return client.CertificatesV1alpha1().PodCertificateRequests().List(context.Background(), options) + return client.CertificatesV1beta1().PodCertificateRequests().List(context.Background(), options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { if tweakListOptions != nil { tweakListOptions(&options) } - return client.CertificatesV1alpha1().PodCertificateRequests().Watch(context.Background(), options) + return client.CertificatesV1beta1().PodCertificateRequests().Watch(context.Background(), options) }, - }, - &apicertificatesv1alpha1.PodCertificateRequest{}, + }, client), + &apicertificatesv1beta1.PodCertificateRequest{}, resyncPeriod, indexers, ) @@ -92,21 +92,21 @@ func (i *podCertificateRequestClusterInformer) defaultInformer(client kcpkuberne } func (i *podCertificateRequestClusterInformer) Informer() kcpcache.ScopeableSharedIndexInformer { - return i.factory.InformerFor(&apicertificatesv1alpha1.PodCertificateRequest{}, i.defaultInformer) + return i.factory.InformerFor(&apicertificatesv1beta1.PodCertificateRequest{}, i.defaultInformer) } -func (i *podCertificateRequestClusterInformer) Lister() kcpv1alpha1.PodCertificateRequestClusterLister { - return kcpv1alpha1.NewPodCertificateRequestClusterLister(i.Informer().GetIndexer()) +func (i *podCertificateRequestClusterInformer) Lister() kcpv1beta1.PodCertificateRequestClusterLister { + return kcpv1beta1.NewPodCertificateRequestClusterLister(i.Informer().GetIndexer()) } -func (i *podCertificateRequestClusterInformer) Cluster(clusterName logicalcluster.Name) certificatesv1alpha1.PodCertificateRequestInformer { +func (i *podCertificateRequestClusterInformer) Cluster(clusterName logicalcluster.Name) certificatesv1beta1.PodCertificateRequestInformer { return &podCertificateRequestInformer{ informer: i.Informer().Cluster(clusterName), lister: i.Lister().Cluster(clusterName), } } -func (i *podCertificateRequestClusterInformer) ClusterWithContext(ctx context.Context, clusterName logicalcluster.Name) certificatesv1alpha1.PodCertificateRequestInformer { +func (i *podCertificateRequestClusterInformer) ClusterWithContext(ctx context.Context, clusterName logicalcluster.Name) certificatesv1beta1.PodCertificateRequestInformer { return &podCertificateRequestInformer{ informer: i.Informer().ClusterWithContext(ctx, clusterName), lister: i.Lister().Cluster(clusterName), @@ -115,13 +115,13 @@ func (i *podCertificateRequestClusterInformer) ClusterWithContext(ctx context.Co type podCertificateRequestInformer struct { informer cache.SharedIndexInformer - lister listerscertificatesv1alpha1.PodCertificateRequestLister + lister listerscertificatesv1beta1.PodCertificateRequestLister } func (i *podCertificateRequestInformer) Informer() cache.SharedIndexInformer { return i.informer } -func (i *podCertificateRequestInformer) Lister() listerscertificatesv1alpha1.PodCertificateRequestLister { +func (i *podCertificateRequestInformer) Lister() listerscertificatesv1beta1.PodCertificateRequestLister { return i.lister } diff --git a/staging/src/github.com/kcp-dev/client-go/informers/coordination/v1/lease.go b/staging/src/github.com/kcp-dev/client-go/informers/coordination/v1/lease.go index e4e00275603..25ecc9e9535 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/coordination/v1/lease.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/coordination/v1/lease.go @@ -64,7 +64,7 @@ func NewLeaseClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod // one. This reduces memory footprint and number of connections to the server. func NewFilteredLeaseClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredLeaseClusterInformer(client kcpkubernetes.ClusterInterface, resy } return client.CoordinationV1().Leases().Watch(context.Background(), options) }, - }, + }, client), &apicoordinationv1.Lease{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/coordination/v1alpha2/leasecandidate.go b/staging/src/github.com/kcp-dev/client-go/informers/coordination/v1alpha2/leasecandidate.go index 75f2c16884f..770d925e2dd 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/coordination/v1alpha2/leasecandidate.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/coordination/v1alpha2/leasecandidate.go @@ -64,7 +64,7 @@ func NewLeaseCandidateClusterInformer(client kcpkubernetes.ClusterInterface, res // one. This reduces memory footprint and number of connections to the server. func NewFilteredLeaseCandidateClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredLeaseCandidateClusterInformer(client kcpkubernetes.ClusterInterf } return client.CoordinationV1alpha2().LeaseCandidates().Watch(context.Background(), options) }, - }, + }, client), &apicoordinationv1alpha2.LeaseCandidate{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/coordination/v1beta1/lease.go b/staging/src/github.com/kcp-dev/client-go/informers/coordination/v1beta1/lease.go index ecea84e73e6..c95c7b7dbdc 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/coordination/v1beta1/lease.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/coordination/v1beta1/lease.go @@ -64,7 +64,7 @@ func NewLeaseClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod // one. This reduces memory footprint and number of connections to the server. func NewFilteredLeaseClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredLeaseClusterInformer(client kcpkubernetes.ClusterInterface, resy } return client.CoordinationV1beta1().Leases().Watch(context.Background(), options) }, - }, + }, client), &apicoordinationv1beta1.Lease{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/coordination/v1beta1/leasecandidate.go b/staging/src/github.com/kcp-dev/client-go/informers/coordination/v1beta1/leasecandidate.go index 29fd313ec22..e4f09383631 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/coordination/v1beta1/leasecandidate.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/coordination/v1beta1/leasecandidate.go @@ -64,7 +64,7 @@ func NewLeaseCandidateClusterInformer(client kcpkubernetes.ClusterInterface, res // one. This reduces memory footprint and number of connections to the server. func NewFilteredLeaseCandidateClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredLeaseCandidateClusterInformer(client kcpkubernetes.ClusterInterf } return client.CoordinationV1beta1().LeaseCandidates().Watch(context.Background(), options) }, - }, + }, client), &apicoordinationv1beta1.LeaseCandidate{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/core/v1/componentstatus.go b/staging/src/github.com/kcp-dev/client-go/informers/core/v1/componentstatus.go index c14eb5fa705..0ae62d88b3e 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/core/v1/componentstatus.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/core/v1/componentstatus.go @@ -64,7 +64,7 @@ func NewComponentStatusClusterInformer(client kcpkubernetes.ClusterInterface, re // one. This reduces memory footprint and number of connections to the server. func NewFilteredComponentStatusClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredComponentStatusClusterInformer(client kcpkubernetes.ClusterInter } return client.CoreV1().ComponentStatuses().Watch(context.Background(), options) }, - }, + }, client), &apicorev1.ComponentStatus{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/core/v1/configmap.go b/staging/src/github.com/kcp-dev/client-go/informers/core/v1/configmap.go index 95a64e8b799..336e0da957d 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/core/v1/configmap.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/core/v1/configmap.go @@ -64,7 +64,7 @@ func NewConfigMapClusterInformer(client kcpkubernetes.ClusterInterface, resyncPe // one. This reduces memory footprint and number of connections to the server. func NewFilteredConfigMapClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredConfigMapClusterInformer(client kcpkubernetes.ClusterInterface, } return client.CoreV1().ConfigMaps().Watch(context.Background(), options) }, - }, + }, client), &apicorev1.ConfigMap{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/core/v1/endpoints.go b/staging/src/github.com/kcp-dev/client-go/informers/core/v1/endpoints.go index ba3504102c5..dd72fb6fc8a 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/core/v1/endpoints.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/core/v1/endpoints.go @@ -64,7 +64,7 @@ func NewEndpointsClusterInformer(client kcpkubernetes.ClusterInterface, resyncPe // one. This reduces memory footprint and number of connections to the server. func NewFilteredEndpointsClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredEndpointsClusterInformer(client kcpkubernetes.ClusterInterface, } return client.CoreV1().Endpoints().Watch(context.Background(), options) }, - }, + }, client), &apicorev1.Endpoints{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/core/v1/event.go b/staging/src/github.com/kcp-dev/client-go/informers/core/v1/event.go index 4b2a77e904e..96561fd6384 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/core/v1/event.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/core/v1/event.go @@ -64,7 +64,7 @@ func NewEventClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod // one. This reduces memory footprint and number of connections to the server. func NewFilteredEventClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredEventClusterInformer(client kcpkubernetes.ClusterInterface, resy } return client.CoreV1().Events().Watch(context.Background(), options) }, - }, + }, client), &apicorev1.Event{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/core/v1/limitrange.go b/staging/src/github.com/kcp-dev/client-go/informers/core/v1/limitrange.go index 483ede8ef4e..c9ecf40cc50 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/core/v1/limitrange.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/core/v1/limitrange.go @@ -64,7 +64,7 @@ func NewLimitRangeClusterInformer(client kcpkubernetes.ClusterInterface, resyncP // one. This reduces memory footprint and number of connections to the server. func NewFilteredLimitRangeClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredLimitRangeClusterInformer(client kcpkubernetes.ClusterInterface, } return client.CoreV1().LimitRanges().Watch(context.Background(), options) }, - }, + }, client), &apicorev1.LimitRange{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/core/v1/namespace.go b/staging/src/github.com/kcp-dev/client-go/informers/core/v1/namespace.go index 455c3693403..0e49496d9f5 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/core/v1/namespace.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/core/v1/namespace.go @@ -64,7 +64,7 @@ func NewNamespaceClusterInformer(client kcpkubernetes.ClusterInterface, resyncPe // one. This reduces memory footprint and number of connections to the server. func NewFilteredNamespaceClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredNamespaceClusterInformer(client kcpkubernetes.ClusterInterface, } return client.CoreV1().Namespaces().Watch(context.Background(), options) }, - }, + }, client), &apicorev1.Namespace{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/core/v1/node.go b/staging/src/github.com/kcp-dev/client-go/informers/core/v1/node.go index 4b683f23824..e30d4a0d267 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/core/v1/node.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/core/v1/node.go @@ -64,7 +64,7 @@ func NewNodeClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod // one. This reduces memory footprint and number of connections to the server. func NewFilteredNodeClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredNodeClusterInformer(client kcpkubernetes.ClusterInterface, resyn } return client.CoreV1().Nodes().Watch(context.Background(), options) }, - }, + }, client), &apicorev1.Node{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/core/v1/persistentvolume.go b/staging/src/github.com/kcp-dev/client-go/informers/core/v1/persistentvolume.go index 4e10073e599..4d3cc4bb242 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/core/v1/persistentvolume.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/core/v1/persistentvolume.go @@ -64,7 +64,7 @@ func NewPersistentVolumeClusterInformer(client kcpkubernetes.ClusterInterface, r // one. This reduces memory footprint and number of connections to the server. func NewFilteredPersistentVolumeClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredPersistentVolumeClusterInformer(client kcpkubernetes.ClusterInte } return client.CoreV1().PersistentVolumes().Watch(context.Background(), options) }, - }, + }, client), &apicorev1.PersistentVolume{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/core/v1/persistentvolumeclaim.go b/staging/src/github.com/kcp-dev/client-go/informers/core/v1/persistentvolumeclaim.go index c1e3b957f03..4a1a7ad491e 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/core/v1/persistentvolumeclaim.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/core/v1/persistentvolumeclaim.go @@ -64,7 +64,7 @@ func NewPersistentVolumeClaimClusterInformer(client kcpkubernetes.ClusterInterfa // one. This reduces memory footprint and number of connections to the server. func NewFilteredPersistentVolumeClaimClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredPersistentVolumeClaimClusterInformer(client kcpkubernetes.Cluste } return client.CoreV1().PersistentVolumeClaims().Watch(context.Background(), options) }, - }, + }, client), &apicorev1.PersistentVolumeClaim{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/core/v1/pod.go b/staging/src/github.com/kcp-dev/client-go/informers/core/v1/pod.go index 77d492619dd..6ce0ba5eda7 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/core/v1/pod.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/core/v1/pod.go @@ -64,7 +64,7 @@ func NewPodClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod t // one. This reduces memory footprint and number of connections to the server. func NewFilteredPodClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredPodClusterInformer(client kcpkubernetes.ClusterInterface, resync } return client.CoreV1().Pods().Watch(context.Background(), options) }, - }, + }, client), &apicorev1.Pod{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/core/v1/podtemplate.go b/staging/src/github.com/kcp-dev/client-go/informers/core/v1/podtemplate.go index 456d3b735ee..b31fb9d30dc 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/core/v1/podtemplate.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/core/v1/podtemplate.go @@ -64,7 +64,7 @@ func NewPodTemplateClusterInformer(client kcpkubernetes.ClusterInterface, resync // one. This reduces memory footprint and number of connections to the server. func NewFilteredPodTemplateClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredPodTemplateClusterInformer(client kcpkubernetes.ClusterInterface } return client.CoreV1().PodTemplates().Watch(context.Background(), options) }, - }, + }, client), &apicorev1.PodTemplate{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/core/v1/replicationcontroller.go b/staging/src/github.com/kcp-dev/client-go/informers/core/v1/replicationcontroller.go index 2b7da499b42..73bf7373b34 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/core/v1/replicationcontroller.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/core/v1/replicationcontroller.go @@ -64,7 +64,7 @@ func NewReplicationControllerClusterInformer(client kcpkubernetes.ClusterInterfa // one. This reduces memory footprint and number of connections to the server. func NewFilteredReplicationControllerClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredReplicationControllerClusterInformer(client kcpkubernetes.Cluste } return client.CoreV1().ReplicationControllers().Watch(context.Background(), options) }, - }, + }, client), &apicorev1.ReplicationController{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/core/v1/resourcequota.go b/staging/src/github.com/kcp-dev/client-go/informers/core/v1/resourcequota.go index 3c87f91182b..940f415c0ae 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/core/v1/resourcequota.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/core/v1/resourcequota.go @@ -64,7 +64,7 @@ func NewResourceQuotaClusterInformer(client kcpkubernetes.ClusterInterface, resy // one. This reduces memory footprint and number of connections to the server. func NewFilteredResourceQuotaClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredResourceQuotaClusterInformer(client kcpkubernetes.ClusterInterfa } return client.CoreV1().ResourceQuotas().Watch(context.Background(), options) }, - }, + }, client), &apicorev1.ResourceQuota{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/core/v1/secret.go b/staging/src/github.com/kcp-dev/client-go/informers/core/v1/secret.go index 3d93d8effd4..207e8599196 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/core/v1/secret.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/core/v1/secret.go @@ -64,7 +64,7 @@ func NewSecretClusterInformer(client kcpkubernetes.ClusterInterface, resyncPerio // one. This reduces memory footprint and number of connections to the server. func NewFilteredSecretClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredSecretClusterInformer(client kcpkubernetes.ClusterInterface, res } return client.CoreV1().Secrets().Watch(context.Background(), options) }, - }, + }, client), &apicorev1.Secret{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/core/v1/service.go b/staging/src/github.com/kcp-dev/client-go/informers/core/v1/service.go index c7652d8f2c7..3c9fa247d6e 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/core/v1/service.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/core/v1/service.go @@ -64,7 +64,7 @@ func NewServiceClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeri // one. This reduces memory footprint and number of connections to the server. func NewFilteredServiceClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredServiceClusterInformer(client kcpkubernetes.ClusterInterface, re } return client.CoreV1().Services().Watch(context.Background(), options) }, - }, + }, client), &apicorev1.Service{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/core/v1/serviceaccount.go b/staging/src/github.com/kcp-dev/client-go/informers/core/v1/serviceaccount.go index c61fd7e3bb1..684aa525314 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/core/v1/serviceaccount.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/core/v1/serviceaccount.go @@ -64,7 +64,7 @@ func NewServiceAccountClusterInformer(client kcpkubernetes.ClusterInterface, res // one. This reduces memory footprint and number of connections to the server. func NewFilteredServiceAccountClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredServiceAccountClusterInformer(client kcpkubernetes.ClusterInterf } return client.CoreV1().ServiceAccounts().Watch(context.Background(), options) }, - }, + }, client), &apicorev1.ServiceAccount{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/discovery/v1/endpointslice.go b/staging/src/github.com/kcp-dev/client-go/informers/discovery/v1/endpointslice.go index f71045360f6..2f15d2a5b60 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/discovery/v1/endpointslice.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/discovery/v1/endpointslice.go @@ -64,7 +64,7 @@ func NewEndpointSliceClusterInformer(client kcpkubernetes.ClusterInterface, resy // one. This reduces memory footprint and number of connections to the server. func NewFilteredEndpointSliceClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredEndpointSliceClusterInformer(client kcpkubernetes.ClusterInterfa } return client.DiscoveryV1().EndpointSlices().Watch(context.Background(), options) }, - }, + }, client), &apidiscoveryv1.EndpointSlice{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/discovery/v1beta1/endpointslice.go b/staging/src/github.com/kcp-dev/client-go/informers/discovery/v1beta1/endpointslice.go index 0a162ad4727..0d796cde82c 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/discovery/v1beta1/endpointslice.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/discovery/v1beta1/endpointslice.go @@ -64,7 +64,7 @@ func NewEndpointSliceClusterInformer(client kcpkubernetes.ClusterInterface, resy // one. This reduces memory footprint and number of connections to the server. func NewFilteredEndpointSliceClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredEndpointSliceClusterInformer(client kcpkubernetes.ClusterInterfa } return client.DiscoveryV1beta1().EndpointSlices().Watch(context.Background(), options) }, - }, + }, client), &apidiscoveryv1beta1.EndpointSlice{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/events/v1/event.go b/staging/src/github.com/kcp-dev/client-go/informers/events/v1/event.go index 189f6fce8a9..703c4b4a29a 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/events/v1/event.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/events/v1/event.go @@ -64,7 +64,7 @@ func NewEventClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod // one. This reduces memory footprint and number of connections to the server. func NewFilteredEventClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredEventClusterInformer(client kcpkubernetes.ClusterInterface, resy } return client.EventsV1().Events().Watch(context.Background(), options) }, - }, + }, client), &apieventsv1.Event{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/events/v1beta1/event.go b/staging/src/github.com/kcp-dev/client-go/informers/events/v1beta1/event.go index a8bbe447b3d..2509e683cf9 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/events/v1beta1/event.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/events/v1beta1/event.go @@ -64,7 +64,7 @@ func NewEventClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod // one. This reduces memory footprint and number of connections to the server. func NewFilteredEventClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredEventClusterInformer(client kcpkubernetes.ClusterInterface, resy } return client.EventsV1beta1().Events().Watch(context.Background(), options) }, - }, + }, client), &apieventsv1beta1.Event{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/extensions/v1beta1/daemonset.go b/staging/src/github.com/kcp-dev/client-go/informers/extensions/v1beta1/daemonset.go index 1d1400d82a5..948af234f27 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/extensions/v1beta1/daemonset.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/extensions/v1beta1/daemonset.go @@ -64,7 +64,7 @@ func NewDaemonSetClusterInformer(client kcpkubernetes.ClusterInterface, resyncPe // one. This reduces memory footprint and number of connections to the server. func NewFilteredDaemonSetClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredDaemonSetClusterInformer(client kcpkubernetes.ClusterInterface, } return client.ExtensionsV1beta1().DaemonSets().Watch(context.Background(), options) }, - }, + }, client), &apiextensionsv1beta1.DaemonSet{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/extensions/v1beta1/deployment.go b/staging/src/github.com/kcp-dev/client-go/informers/extensions/v1beta1/deployment.go index 85c6d0f033c..d1b4036e986 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/extensions/v1beta1/deployment.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/extensions/v1beta1/deployment.go @@ -64,7 +64,7 @@ func NewDeploymentClusterInformer(client kcpkubernetes.ClusterInterface, resyncP // one. This reduces memory footprint and number of connections to the server. func NewFilteredDeploymentClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredDeploymentClusterInformer(client kcpkubernetes.ClusterInterface, } return client.ExtensionsV1beta1().Deployments().Watch(context.Background(), options) }, - }, + }, client), &apiextensionsv1beta1.Deployment{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/extensions/v1beta1/ingress.go b/staging/src/github.com/kcp-dev/client-go/informers/extensions/v1beta1/ingress.go index 1055b334c13..4524fd1306a 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/extensions/v1beta1/ingress.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/extensions/v1beta1/ingress.go @@ -64,7 +64,7 @@ func NewIngressClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeri // one. This reduces memory footprint and number of connections to the server. func NewFilteredIngressClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredIngressClusterInformer(client kcpkubernetes.ClusterInterface, re } return client.ExtensionsV1beta1().Ingresses().Watch(context.Background(), options) }, - }, + }, client), &apiextensionsv1beta1.Ingress{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/extensions/v1beta1/networkpolicy.go b/staging/src/github.com/kcp-dev/client-go/informers/extensions/v1beta1/networkpolicy.go index eee6c4275be..0720bbd3605 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/extensions/v1beta1/networkpolicy.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/extensions/v1beta1/networkpolicy.go @@ -64,7 +64,7 @@ func NewNetworkPolicyClusterInformer(client kcpkubernetes.ClusterInterface, resy // one. This reduces memory footprint and number of connections to the server. func NewFilteredNetworkPolicyClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredNetworkPolicyClusterInformer(client kcpkubernetes.ClusterInterfa } return client.ExtensionsV1beta1().NetworkPolicies().Watch(context.Background(), options) }, - }, + }, client), &apiextensionsv1beta1.NetworkPolicy{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/extensions/v1beta1/replicaset.go b/staging/src/github.com/kcp-dev/client-go/informers/extensions/v1beta1/replicaset.go index 12186c0decc..db84e99684b 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/extensions/v1beta1/replicaset.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/extensions/v1beta1/replicaset.go @@ -64,7 +64,7 @@ func NewReplicaSetClusterInformer(client kcpkubernetes.ClusterInterface, resyncP // one. This reduces memory footprint and number of connections to the server. func NewFilteredReplicaSetClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredReplicaSetClusterInformer(client kcpkubernetes.ClusterInterface, } return client.ExtensionsV1beta1().ReplicaSets().Watch(context.Background(), options) }, - }, + }, client), &apiextensionsv1beta1.ReplicaSet{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/factory.go b/staging/src/github.com/kcp-dev/client-go/informers/factory.go index 693ff5aeac1..76eed09e717 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/factory.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/factory.go @@ -118,6 +118,7 @@ func NewSharedInformerFactory(client kcpkubernetes.ClusterInterface, defaultResy // NewFilteredSharedInformerFactory constructs a new instance of sharedInformerFactory. // Listers obtained via this SharedInformerFactory will be subject to the same filters // as specified here. +// // Deprecated: Please use NewSharedInformerFactoryWithOptions instead func NewFilteredSharedInformerFactory(client kcpkubernetes.ClusterInterface, defaultResync time.Duration, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) SharedInformerFactory { return NewSharedInformerFactoryWithOptions(client, defaultResync, WithTweakListOptions(tweakListOptions)) @@ -242,7 +243,7 @@ type ScopedDynamicSharedInformerFactory interface { // // It is typically used like this: // -// ctx, cancel := context.Background() +// ctx, cancel := context.WithCancel(context.Background()) // defer cancel() // factory := NewSharedInformerFactory(client, resyncPeriod) // defer factory.WaitForStop() // Returns immediately if nothing was started. diff --git a/staging/src/github.com/kcp-dev/client-go/informers/flowcontrol/v1/flowschema.go b/staging/src/github.com/kcp-dev/client-go/informers/flowcontrol/v1/flowschema.go index dd7e89d8b41..42e8e2618f7 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/flowcontrol/v1/flowschema.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/flowcontrol/v1/flowschema.go @@ -64,7 +64,7 @@ func NewFlowSchemaClusterInformer(client kcpkubernetes.ClusterInterface, resyncP // one. This reduces memory footprint and number of connections to the server. func NewFilteredFlowSchemaClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredFlowSchemaClusterInformer(client kcpkubernetes.ClusterInterface, } return client.FlowcontrolV1().FlowSchemas().Watch(context.Background(), options) }, - }, + }, client), &apiflowcontrolv1.FlowSchema{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/flowcontrol/v1/prioritylevelconfiguration.go b/staging/src/github.com/kcp-dev/client-go/informers/flowcontrol/v1/prioritylevelconfiguration.go index ac47fc5f004..b1e4663f8b4 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/flowcontrol/v1/prioritylevelconfiguration.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/flowcontrol/v1/prioritylevelconfiguration.go @@ -64,7 +64,7 @@ func NewPriorityLevelConfigurationClusterInformer(client kcpkubernetes.ClusterIn // one. This reduces memory footprint and number of connections to the server. func NewFilteredPriorityLevelConfigurationClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredPriorityLevelConfigurationClusterInformer(client kcpkubernetes.C } return client.FlowcontrolV1().PriorityLevelConfigurations().Watch(context.Background(), options) }, - }, + }, client), &apiflowcontrolv1.PriorityLevelConfiguration{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/flowcontrol/v1beta1/flowschema.go b/staging/src/github.com/kcp-dev/client-go/informers/flowcontrol/v1beta1/flowschema.go index c0448c69525..ed0fb7284ca 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/flowcontrol/v1beta1/flowschema.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/flowcontrol/v1beta1/flowschema.go @@ -64,7 +64,7 @@ func NewFlowSchemaClusterInformer(client kcpkubernetes.ClusterInterface, resyncP // one. This reduces memory footprint and number of connections to the server. func NewFilteredFlowSchemaClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredFlowSchemaClusterInformer(client kcpkubernetes.ClusterInterface, } return client.FlowcontrolV1beta1().FlowSchemas().Watch(context.Background(), options) }, - }, + }, client), &apiflowcontrolv1beta1.FlowSchema{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/flowcontrol/v1beta1/prioritylevelconfiguration.go b/staging/src/github.com/kcp-dev/client-go/informers/flowcontrol/v1beta1/prioritylevelconfiguration.go index bd73132a261..66caf9ef852 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/flowcontrol/v1beta1/prioritylevelconfiguration.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/flowcontrol/v1beta1/prioritylevelconfiguration.go @@ -64,7 +64,7 @@ func NewPriorityLevelConfigurationClusterInformer(client kcpkubernetes.ClusterIn // one. This reduces memory footprint and number of connections to the server. func NewFilteredPriorityLevelConfigurationClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredPriorityLevelConfigurationClusterInformer(client kcpkubernetes.C } return client.FlowcontrolV1beta1().PriorityLevelConfigurations().Watch(context.Background(), options) }, - }, + }, client), &apiflowcontrolv1beta1.PriorityLevelConfiguration{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/flowcontrol/v1beta2/flowschema.go b/staging/src/github.com/kcp-dev/client-go/informers/flowcontrol/v1beta2/flowschema.go index 2c794ddbfb0..8748a1a4bee 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/flowcontrol/v1beta2/flowschema.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/flowcontrol/v1beta2/flowschema.go @@ -64,7 +64,7 @@ func NewFlowSchemaClusterInformer(client kcpkubernetes.ClusterInterface, resyncP // one. This reduces memory footprint and number of connections to the server. func NewFilteredFlowSchemaClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredFlowSchemaClusterInformer(client kcpkubernetes.ClusterInterface, } return client.FlowcontrolV1beta2().FlowSchemas().Watch(context.Background(), options) }, - }, + }, client), &apiflowcontrolv1beta2.FlowSchema{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/flowcontrol/v1beta2/prioritylevelconfiguration.go b/staging/src/github.com/kcp-dev/client-go/informers/flowcontrol/v1beta2/prioritylevelconfiguration.go index 314b6177cf0..b11db88f25b 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/flowcontrol/v1beta2/prioritylevelconfiguration.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/flowcontrol/v1beta2/prioritylevelconfiguration.go @@ -64,7 +64,7 @@ func NewPriorityLevelConfigurationClusterInformer(client kcpkubernetes.ClusterIn // one. This reduces memory footprint and number of connections to the server. func NewFilteredPriorityLevelConfigurationClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredPriorityLevelConfigurationClusterInformer(client kcpkubernetes.C } return client.FlowcontrolV1beta2().PriorityLevelConfigurations().Watch(context.Background(), options) }, - }, + }, client), &apiflowcontrolv1beta2.PriorityLevelConfiguration{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/flowcontrol/v1beta3/flowschema.go b/staging/src/github.com/kcp-dev/client-go/informers/flowcontrol/v1beta3/flowschema.go index 5e1437fd347..e65c76337f1 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/flowcontrol/v1beta3/flowschema.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/flowcontrol/v1beta3/flowschema.go @@ -64,7 +64,7 @@ func NewFlowSchemaClusterInformer(client kcpkubernetes.ClusterInterface, resyncP // one. This reduces memory footprint and number of connections to the server. func NewFilteredFlowSchemaClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredFlowSchemaClusterInformer(client kcpkubernetes.ClusterInterface, } return client.FlowcontrolV1beta3().FlowSchemas().Watch(context.Background(), options) }, - }, + }, client), &apiflowcontrolv1beta3.FlowSchema{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/flowcontrol/v1beta3/prioritylevelconfiguration.go b/staging/src/github.com/kcp-dev/client-go/informers/flowcontrol/v1beta3/prioritylevelconfiguration.go index 0d3accf4b5e..221df9cf1e5 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/flowcontrol/v1beta3/prioritylevelconfiguration.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/flowcontrol/v1beta3/prioritylevelconfiguration.go @@ -64,7 +64,7 @@ func NewPriorityLevelConfigurationClusterInformer(client kcpkubernetes.ClusterIn // one. This reduces memory footprint and number of connections to the server. func NewFilteredPriorityLevelConfigurationClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredPriorityLevelConfigurationClusterInformer(client kcpkubernetes.C } return client.FlowcontrolV1beta3().PriorityLevelConfigurations().Watch(context.Background(), options) }, - }, + }, client), &apiflowcontrolv1beta3.PriorityLevelConfiguration{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/generic.go b/staging/src/github.com/kcp-dev/client-go/informers/generic.go index f730efae1ac..384d3df7345 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/generic.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/generic.go @@ -71,7 +71,7 @@ import ( storagev1 "k8s.io/api/storage/v1" storagev1alpha1 "k8s.io/api/storage/v1alpha1" storagev1beta1 "k8s.io/api/storage/v1beta1" - storagemigrationv1alpha1 "k8s.io/api/storagemigration/v1alpha1" + storagemigrationv1beta1 "k8s.io/api/storagemigration/v1beta1" schema "k8s.io/apimachinery/pkg/runtime/schema" clientgoinformers "k8s.io/client-go/informers" cache "k8s.io/client-go/tools/cache" @@ -237,14 +237,14 @@ func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource // Group=certificates.k8s.io, Version=v1alpha1 case certificatesv1alpha1.SchemeGroupVersion.WithResource("clustertrustbundles"): return &genericClusterInformer{resource: resource.GroupResource(), informer: f.Certificates().V1alpha1().ClusterTrustBundles().Informer()}, nil - case certificatesv1alpha1.SchemeGroupVersion.WithResource("podcertificaterequests"): - return &genericClusterInformer{resource: resource.GroupResource(), informer: f.Certificates().V1alpha1().PodCertificateRequests().Informer()}, nil // Group=certificates.k8s.io, Version=v1beta1 case certificatesv1beta1.SchemeGroupVersion.WithResource("certificatesigningrequests"): return &genericClusterInformer{resource: resource.GroupResource(), informer: f.Certificates().V1beta1().CertificateSigningRequests().Informer()}, nil case certificatesv1beta1.SchemeGroupVersion.WithResource("clustertrustbundles"): return &genericClusterInformer{resource: resource.GroupResource(), informer: f.Certificates().V1beta1().ClusterTrustBundles().Informer()}, nil + case certificatesv1beta1.SchemeGroupVersion.WithResource("podcertificaterequests"): + return &genericClusterInformer{resource: resource.GroupResource(), informer: f.Certificates().V1beta1().PodCertificateRequests().Informer()}, nil // Group=coordination.k8s.io, Version=v1 case coordinationv1.SchemeGroupVersion.WithResource("leases"): @@ -463,6 +463,8 @@ func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource // Group=scheduling.k8s.io, Version=v1alpha1 case schedulingv1alpha1.SchemeGroupVersion.WithResource("priorityclasses"): return &genericClusterInformer{resource: resource.GroupResource(), informer: f.Scheduling().V1alpha1().PriorityClasses().Informer()}, nil + case schedulingv1alpha1.SchemeGroupVersion.WithResource("workloads"): + return &genericClusterInformer{resource: resource.GroupResource(), informer: f.Scheduling().V1alpha1().Workloads().Informer()}, nil // Group=scheduling.k8s.io, Version=v1beta1 case schedulingv1beta1.SchemeGroupVersion.WithResource("priorityclasses"): @@ -504,9 +506,9 @@ func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource case storagev1beta1.SchemeGroupVersion.WithResource("volumeattributesclasses"): return &genericClusterInformer{resource: resource.GroupResource(), informer: f.Storage().V1beta1().VolumeAttributesClasses().Informer()}, nil - // Group=storagemigration.k8s.io, Version=v1alpha1 - case storagemigrationv1alpha1.SchemeGroupVersion.WithResource("storageversionmigrations"): - return &genericClusterInformer{resource: resource.GroupResource(), informer: f.Storagemigration().V1alpha1().StorageVersionMigrations().Informer()}, nil + // Group=storagemigration.k8s.io, Version=v1beta1 + case storagemigrationv1beta1.SchemeGroupVersion.WithResource("storageversionmigrations"): + return &genericClusterInformer{resource: resource.GroupResource(), informer: f.Storagemigration().V1beta1().StorageVersionMigrations().Informer()}, nil } diff --git a/staging/src/github.com/kcp-dev/client-go/informers/networking/v1/ingress.go b/staging/src/github.com/kcp-dev/client-go/informers/networking/v1/ingress.go index 38e7648230d..bea60e2d955 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/networking/v1/ingress.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/networking/v1/ingress.go @@ -64,7 +64,7 @@ func NewIngressClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeri // one. This reduces memory footprint and number of connections to the server. func NewFilteredIngressClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredIngressClusterInformer(client kcpkubernetes.ClusterInterface, re } return client.NetworkingV1().Ingresses().Watch(context.Background(), options) }, - }, + }, client), &apinetworkingv1.Ingress{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/networking/v1/ingressclass.go b/staging/src/github.com/kcp-dev/client-go/informers/networking/v1/ingressclass.go index 792b07f2938..d066f7bc9d3 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/networking/v1/ingressclass.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/networking/v1/ingressclass.go @@ -64,7 +64,7 @@ func NewIngressClassClusterInformer(client kcpkubernetes.ClusterInterface, resyn // one. This reduces memory footprint and number of connections to the server. func NewFilteredIngressClassClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredIngressClassClusterInformer(client kcpkubernetes.ClusterInterfac } return client.NetworkingV1().IngressClasses().Watch(context.Background(), options) }, - }, + }, client), &apinetworkingv1.IngressClass{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/networking/v1/ipaddress.go b/staging/src/github.com/kcp-dev/client-go/informers/networking/v1/ipaddress.go index b9b74ad34e8..40ef7133b10 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/networking/v1/ipaddress.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/networking/v1/ipaddress.go @@ -64,7 +64,7 @@ func NewIPAddressClusterInformer(client kcpkubernetes.ClusterInterface, resyncPe // one. This reduces memory footprint and number of connections to the server. func NewFilteredIPAddressClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredIPAddressClusterInformer(client kcpkubernetes.ClusterInterface, } return client.NetworkingV1().IPAddresses().Watch(context.Background(), options) }, - }, + }, client), &apinetworkingv1.IPAddress{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/networking/v1/networkpolicy.go b/staging/src/github.com/kcp-dev/client-go/informers/networking/v1/networkpolicy.go index 49bc1add083..f492c88c2c7 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/networking/v1/networkpolicy.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/networking/v1/networkpolicy.go @@ -64,7 +64,7 @@ func NewNetworkPolicyClusterInformer(client kcpkubernetes.ClusterInterface, resy // one. This reduces memory footprint and number of connections to the server. func NewFilteredNetworkPolicyClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredNetworkPolicyClusterInformer(client kcpkubernetes.ClusterInterfa } return client.NetworkingV1().NetworkPolicies().Watch(context.Background(), options) }, - }, + }, client), &apinetworkingv1.NetworkPolicy{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/networking/v1/servicecidr.go b/staging/src/github.com/kcp-dev/client-go/informers/networking/v1/servicecidr.go index fca3df5179a..58aa21676cb 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/networking/v1/servicecidr.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/networking/v1/servicecidr.go @@ -64,7 +64,7 @@ func NewServiceCIDRClusterInformer(client kcpkubernetes.ClusterInterface, resync // one. This reduces memory footprint and number of connections to the server. func NewFilteredServiceCIDRClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredServiceCIDRClusterInformer(client kcpkubernetes.ClusterInterface } return client.NetworkingV1().ServiceCIDRs().Watch(context.Background(), options) }, - }, + }, client), &apinetworkingv1.ServiceCIDR{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/networking/v1beta1/ingress.go b/staging/src/github.com/kcp-dev/client-go/informers/networking/v1beta1/ingress.go index f6acc67eba9..9ffc3ef7065 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/networking/v1beta1/ingress.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/networking/v1beta1/ingress.go @@ -64,7 +64,7 @@ func NewIngressClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeri // one. This reduces memory footprint and number of connections to the server. func NewFilteredIngressClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredIngressClusterInformer(client kcpkubernetes.ClusterInterface, re } return client.NetworkingV1beta1().Ingresses().Watch(context.Background(), options) }, - }, + }, client), &apinetworkingv1beta1.Ingress{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/networking/v1beta1/ingressclass.go b/staging/src/github.com/kcp-dev/client-go/informers/networking/v1beta1/ingressclass.go index 6c00bba6ba7..7759ab10c0b 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/networking/v1beta1/ingressclass.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/networking/v1beta1/ingressclass.go @@ -64,7 +64,7 @@ func NewIngressClassClusterInformer(client kcpkubernetes.ClusterInterface, resyn // one. This reduces memory footprint and number of connections to the server. func NewFilteredIngressClassClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredIngressClassClusterInformer(client kcpkubernetes.ClusterInterfac } return client.NetworkingV1beta1().IngressClasses().Watch(context.Background(), options) }, - }, + }, client), &apinetworkingv1beta1.IngressClass{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/networking/v1beta1/ipaddress.go b/staging/src/github.com/kcp-dev/client-go/informers/networking/v1beta1/ipaddress.go index 0bbd91d446d..e956c636117 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/networking/v1beta1/ipaddress.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/networking/v1beta1/ipaddress.go @@ -64,7 +64,7 @@ func NewIPAddressClusterInformer(client kcpkubernetes.ClusterInterface, resyncPe // one. This reduces memory footprint and number of connections to the server. func NewFilteredIPAddressClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredIPAddressClusterInformer(client kcpkubernetes.ClusterInterface, } return client.NetworkingV1beta1().IPAddresses().Watch(context.Background(), options) }, - }, + }, client), &apinetworkingv1beta1.IPAddress{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/networking/v1beta1/servicecidr.go b/staging/src/github.com/kcp-dev/client-go/informers/networking/v1beta1/servicecidr.go index 1f4fad69fce..0da0860effe 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/networking/v1beta1/servicecidr.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/networking/v1beta1/servicecidr.go @@ -64,7 +64,7 @@ func NewServiceCIDRClusterInformer(client kcpkubernetes.ClusterInterface, resync // one. This reduces memory footprint and number of connections to the server. func NewFilteredServiceCIDRClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredServiceCIDRClusterInformer(client kcpkubernetes.ClusterInterface } return client.NetworkingV1beta1().ServiceCIDRs().Watch(context.Background(), options) }, - }, + }, client), &apinetworkingv1beta1.ServiceCIDR{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/node/v1/runtimeclass.go b/staging/src/github.com/kcp-dev/client-go/informers/node/v1/runtimeclass.go index c91b6543e89..f58d974700d 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/node/v1/runtimeclass.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/node/v1/runtimeclass.go @@ -64,7 +64,7 @@ func NewRuntimeClassClusterInformer(client kcpkubernetes.ClusterInterface, resyn // one. This reduces memory footprint and number of connections to the server. func NewFilteredRuntimeClassClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredRuntimeClassClusterInformer(client kcpkubernetes.ClusterInterfac } return client.NodeV1().RuntimeClasses().Watch(context.Background(), options) }, - }, + }, client), &apinodev1.RuntimeClass{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/node/v1alpha1/runtimeclass.go b/staging/src/github.com/kcp-dev/client-go/informers/node/v1alpha1/runtimeclass.go index bcce1337539..66fc245cf95 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/node/v1alpha1/runtimeclass.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/node/v1alpha1/runtimeclass.go @@ -64,7 +64,7 @@ func NewRuntimeClassClusterInformer(client kcpkubernetes.ClusterInterface, resyn // one. This reduces memory footprint and number of connections to the server. func NewFilteredRuntimeClassClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredRuntimeClassClusterInformer(client kcpkubernetes.ClusterInterfac } return client.NodeV1alpha1().RuntimeClasses().Watch(context.Background(), options) }, - }, + }, client), &apinodev1alpha1.RuntimeClass{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/node/v1beta1/runtimeclass.go b/staging/src/github.com/kcp-dev/client-go/informers/node/v1beta1/runtimeclass.go index f1e9875b97b..3ecd476b24f 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/node/v1beta1/runtimeclass.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/node/v1beta1/runtimeclass.go @@ -64,7 +64,7 @@ func NewRuntimeClassClusterInformer(client kcpkubernetes.ClusterInterface, resyn // one. This reduces memory footprint and number of connections to the server. func NewFilteredRuntimeClassClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredRuntimeClassClusterInformer(client kcpkubernetes.ClusterInterfac } return client.NodeV1beta1().RuntimeClasses().Watch(context.Background(), options) }, - }, + }, client), &apinodev1beta1.RuntimeClass{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/policy/v1/poddisruptionbudget.go b/staging/src/github.com/kcp-dev/client-go/informers/policy/v1/poddisruptionbudget.go index 6ee1a18ab44..b9acc77a365 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/policy/v1/poddisruptionbudget.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/policy/v1/poddisruptionbudget.go @@ -64,7 +64,7 @@ func NewPodDisruptionBudgetClusterInformer(client kcpkubernetes.ClusterInterface // one. This reduces memory footprint and number of connections to the server. func NewFilteredPodDisruptionBudgetClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredPodDisruptionBudgetClusterInformer(client kcpkubernetes.ClusterI } return client.PolicyV1().PodDisruptionBudgets().Watch(context.Background(), options) }, - }, + }, client), &apipolicyv1.PodDisruptionBudget{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/policy/v1beta1/poddisruptionbudget.go b/staging/src/github.com/kcp-dev/client-go/informers/policy/v1beta1/poddisruptionbudget.go index 91c66ee706a..f5c725ce4e9 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/policy/v1beta1/poddisruptionbudget.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/policy/v1beta1/poddisruptionbudget.go @@ -64,7 +64,7 @@ func NewPodDisruptionBudgetClusterInformer(client kcpkubernetes.ClusterInterface // one. This reduces memory footprint and number of connections to the server. func NewFilteredPodDisruptionBudgetClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredPodDisruptionBudgetClusterInformer(client kcpkubernetes.ClusterI } return client.PolicyV1beta1().PodDisruptionBudgets().Watch(context.Background(), options) }, - }, + }, client), &apipolicyv1beta1.PodDisruptionBudget{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/rbac/v1/clusterrole.go b/staging/src/github.com/kcp-dev/client-go/informers/rbac/v1/clusterrole.go index 1fb37eefe76..9c78e5c0622 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/rbac/v1/clusterrole.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/rbac/v1/clusterrole.go @@ -64,7 +64,7 @@ func NewClusterRoleClusterInformer(client kcpkubernetes.ClusterInterface, resync // one. This reduces memory footprint and number of connections to the server. func NewFilteredClusterRoleClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredClusterRoleClusterInformer(client kcpkubernetes.ClusterInterface } return client.RbacV1().ClusterRoles().Watch(context.Background(), options) }, - }, + }, client), &apirbacv1.ClusterRole{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/rbac/v1/clusterrolebinding.go b/staging/src/github.com/kcp-dev/client-go/informers/rbac/v1/clusterrolebinding.go index 1c899fa2bf9..22563ca2185 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/rbac/v1/clusterrolebinding.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/rbac/v1/clusterrolebinding.go @@ -64,7 +64,7 @@ func NewClusterRoleBindingClusterInformer(client kcpkubernetes.ClusterInterface, // one. This reduces memory footprint and number of connections to the server. func NewFilteredClusterRoleBindingClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredClusterRoleBindingClusterInformer(client kcpkubernetes.ClusterIn } return client.RbacV1().ClusterRoleBindings().Watch(context.Background(), options) }, - }, + }, client), &apirbacv1.ClusterRoleBinding{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/rbac/v1/role.go b/staging/src/github.com/kcp-dev/client-go/informers/rbac/v1/role.go index 7a97eedd0d4..7002823d3a1 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/rbac/v1/role.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/rbac/v1/role.go @@ -64,7 +64,7 @@ func NewRoleClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod // one. This reduces memory footprint and number of connections to the server. func NewFilteredRoleClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredRoleClusterInformer(client kcpkubernetes.ClusterInterface, resyn } return client.RbacV1().Roles().Watch(context.Background(), options) }, - }, + }, client), &apirbacv1.Role{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/rbac/v1/rolebinding.go b/staging/src/github.com/kcp-dev/client-go/informers/rbac/v1/rolebinding.go index b289cbcd30a..2e5998167ab 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/rbac/v1/rolebinding.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/rbac/v1/rolebinding.go @@ -64,7 +64,7 @@ func NewRoleBindingClusterInformer(client kcpkubernetes.ClusterInterface, resync // one. This reduces memory footprint and number of connections to the server. func NewFilteredRoleBindingClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredRoleBindingClusterInformer(client kcpkubernetes.ClusterInterface } return client.RbacV1().RoleBindings().Watch(context.Background(), options) }, - }, + }, client), &apirbacv1.RoleBinding{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/rbac/v1alpha1/clusterrole.go b/staging/src/github.com/kcp-dev/client-go/informers/rbac/v1alpha1/clusterrole.go index 0077eb17658..7e37cade450 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/rbac/v1alpha1/clusterrole.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/rbac/v1alpha1/clusterrole.go @@ -64,7 +64,7 @@ func NewClusterRoleClusterInformer(client kcpkubernetes.ClusterInterface, resync // one. This reduces memory footprint and number of connections to the server. func NewFilteredClusterRoleClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredClusterRoleClusterInformer(client kcpkubernetes.ClusterInterface } return client.RbacV1alpha1().ClusterRoles().Watch(context.Background(), options) }, - }, + }, client), &apirbacv1alpha1.ClusterRole{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/rbac/v1alpha1/clusterrolebinding.go b/staging/src/github.com/kcp-dev/client-go/informers/rbac/v1alpha1/clusterrolebinding.go index 537cf315685..630398db11e 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/rbac/v1alpha1/clusterrolebinding.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/rbac/v1alpha1/clusterrolebinding.go @@ -64,7 +64,7 @@ func NewClusterRoleBindingClusterInformer(client kcpkubernetes.ClusterInterface, // one. This reduces memory footprint and number of connections to the server. func NewFilteredClusterRoleBindingClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredClusterRoleBindingClusterInformer(client kcpkubernetes.ClusterIn } return client.RbacV1alpha1().ClusterRoleBindings().Watch(context.Background(), options) }, - }, + }, client), &apirbacv1alpha1.ClusterRoleBinding{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/rbac/v1alpha1/role.go b/staging/src/github.com/kcp-dev/client-go/informers/rbac/v1alpha1/role.go index b7fc620ecdf..baea6a72d85 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/rbac/v1alpha1/role.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/rbac/v1alpha1/role.go @@ -64,7 +64,7 @@ func NewRoleClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod // one. This reduces memory footprint and number of connections to the server. func NewFilteredRoleClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredRoleClusterInformer(client kcpkubernetes.ClusterInterface, resyn } return client.RbacV1alpha1().Roles().Watch(context.Background(), options) }, - }, + }, client), &apirbacv1alpha1.Role{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/rbac/v1alpha1/rolebinding.go b/staging/src/github.com/kcp-dev/client-go/informers/rbac/v1alpha1/rolebinding.go index 5842c4e8dcd..9874a331f28 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/rbac/v1alpha1/rolebinding.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/rbac/v1alpha1/rolebinding.go @@ -64,7 +64,7 @@ func NewRoleBindingClusterInformer(client kcpkubernetes.ClusterInterface, resync // one. This reduces memory footprint and number of connections to the server. func NewFilteredRoleBindingClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredRoleBindingClusterInformer(client kcpkubernetes.ClusterInterface } return client.RbacV1alpha1().RoleBindings().Watch(context.Background(), options) }, - }, + }, client), &apirbacv1alpha1.RoleBinding{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/rbac/v1beta1/clusterrole.go b/staging/src/github.com/kcp-dev/client-go/informers/rbac/v1beta1/clusterrole.go index 7e1628b9f59..c545b55e9ba 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/rbac/v1beta1/clusterrole.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/rbac/v1beta1/clusterrole.go @@ -64,7 +64,7 @@ func NewClusterRoleClusterInformer(client kcpkubernetes.ClusterInterface, resync // one. This reduces memory footprint and number of connections to the server. func NewFilteredClusterRoleClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredClusterRoleClusterInformer(client kcpkubernetes.ClusterInterface } return client.RbacV1beta1().ClusterRoles().Watch(context.Background(), options) }, - }, + }, client), &apirbacv1beta1.ClusterRole{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/rbac/v1beta1/clusterrolebinding.go b/staging/src/github.com/kcp-dev/client-go/informers/rbac/v1beta1/clusterrolebinding.go index b75411b3db0..e4b56936de0 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/rbac/v1beta1/clusterrolebinding.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/rbac/v1beta1/clusterrolebinding.go @@ -64,7 +64,7 @@ func NewClusterRoleBindingClusterInformer(client kcpkubernetes.ClusterInterface, // one. This reduces memory footprint and number of connections to the server. func NewFilteredClusterRoleBindingClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredClusterRoleBindingClusterInformer(client kcpkubernetes.ClusterIn } return client.RbacV1beta1().ClusterRoleBindings().Watch(context.Background(), options) }, - }, + }, client), &apirbacv1beta1.ClusterRoleBinding{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/rbac/v1beta1/role.go b/staging/src/github.com/kcp-dev/client-go/informers/rbac/v1beta1/role.go index 6ba1fa1c4ba..bbc9d24fe42 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/rbac/v1beta1/role.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/rbac/v1beta1/role.go @@ -64,7 +64,7 @@ func NewRoleClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod // one. This reduces memory footprint and number of connections to the server. func NewFilteredRoleClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredRoleClusterInformer(client kcpkubernetes.ClusterInterface, resyn } return client.RbacV1beta1().Roles().Watch(context.Background(), options) }, - }, + }, client), &apirbacv1beta1.Role{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/rbac/v1beta1/rolebinding.go b/staging/src/github.com/kcp-dev/client-go/informers/rbac/v1beta1/rolebinding.go index 7584e3fd823..8b279797934 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/rbac/v1beta1/rolebinding.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/rbac/v1beta1/rolebinding.go @@ -64,7 +64,7 @@ func NewRoleBindingClusterInformer(client kcpkubernetes.ClusterInterface, resync // one. This reduces memory footprint and number of connections to the server. func NewFilteredRoleBindingClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredRoleBindingClusterInformer(client kcpkubernetes.ClusterInterface } return client.RbacV1beta1().RoleBindings().Watch(context.Background(), options) }, - }, + }, client), &apirbacv1beta1.RoleBinding{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/resource/v1/deviceclass.go b/staging/src/github.com/kcp-dev/client-go/informers/resource/v1/deviceclass.go index 4a490a1095c..f504213f8b7 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/resource/v1/deviceclass.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/resource/v1/deviceclass.go @@ -64,7 +64,7 @@ func NewDeviceClassClusterInformer(client kcpkubernetes.ClusterInterface, resync // one. This reduces memory footprint and number of connections to the server. func NewFilteredDeviceClassClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredDeviceClassClusterInformer(client kcpkubernetes.ClusterInterface } return client.ResourceV1().DeviceClasses().Watch(context.Background(), options) }, - }, + }, client), &apiresourcev1.DeviceClass{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/resource/v1/resourceclaim.go b/staging/src/github.com/kcp-dev/client-go/informers/resource/v1/resourceclaim.go index 07f98816ab7..531f2992e8c 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/resource/v1/resourceclaim.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/resource/v1/resourceclaim.go @@ -64,7 +64,7 @@ func NewResourceClaimClusterInformer(client kcpkubernetes.ClusterInterface, resy // one. This reduces memory footprint and number of connections to the server. func NewFilteredResourceClaimClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredResourceClaimClusterInformer(client kcpkubernetes.ClusterInterfa } return client.ResourceV1().ResourceClaims().Watch(context.Background(), options) }, - }, + }, client), &apiresourcev1.ResourceClaim{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/resource/v1/resourceclaimtemplate.go b/staging/src/github.com/kcp-dev/client-go/informers/resource/v1/resourceclaimtemplate.go index 166c1122a17..8e2a16d18e0 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/resource/v1/resourceclaimtemplate.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/resource/v1/resourceclaimtemplate.go @@ -64,7 +64,7 @@ func NewResourceClaimTemplateClusterInformer(client kcpkubernetes.ClusterInterfa // one. This reduces memory footprint and number of connections to the server. func NewFilteredResourceClaimTemplateClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredResourceClaimTemplateClusterInformer(client kcpkubernetes.Cluste } return client.ResourceV1().ResourceClaimTemplates().Watch(context.Background(), options) }, - }, + }, client), &apiresourcev1.ResourceClaimTemplate{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/resource/v1/resourceslice.go b/staging/src/github.com/kcp-dev/client-go/informers/resource/v1/resourceslice.go index 8f12085e2db..52a22e0a636 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/resource/v1/resourceslice.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/resource/v1/resourceslice.go @@ -64,7 +64,7 @@ func NewResourceSliceClusterInformer(client kcpkubernetes.ClusterInterface, resy // one. This reduces memory footprint and number of connections to the server. func NewFilteredResourceSliceClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredResourceSliceClusterInformer(client kcpkubernetes.ClusterInterfa } return client.ResourceV1().ResourceSlices().Watch(context.Background(), options) }, - }, + }, client), &apiresourcev1.ResourceSlice{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/resource/v1alpha3/devicetaintrule.go b/staging/src/github.com/kcp-dev/client-go/informers/resource/v1alpha3/devicetaintrule.go index a727ffa385b..6e6d65e1bea 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/resource/v1alpha3/devicetaintrule.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/resource/v1alpha3/devicetaintrule.go @@ -64,7 +64,7 @@ func NewDeviceTaintRuleClusterInformer(client kcpkubernetes.ClusterInterface, re // one. This reduces memory footprint and number of connections to the server. func NewFilteredDeviceTaintRuleClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredDeviceTaintRuleClusterInformer(client kcpkubernetes.ClusterInter } return client.ResourceV1alpha3().DeviceTaintRules().Watch(context.Background(), options) }, - }, + }, client), &apiresourcev1alpha3.DeviceTaintRule{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/resource/v1beta1/deviceclass.go b/staging/src/github.com/kcp-dev/client-go/informers/resource/v1beta1/deviceclass.go index 3de857270e7..3fd2f374981 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/resource/v1beta1/deviceclass.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/resource/v1beta1/deviceclass.go @@ -64,7 +64,7 @@ func NewDeviceClassClusterInformer(client kcpkubernetes.ClusterInterface, resync // one. This reduces memory footprint and number of connections to the server. func NewFilteredDeviceClassClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredDeviceClassClusterInformer(client kcpkubernetes.ClusterInterface } return client.ResourceV1beta1().DeviceClasses().Watch(context.Background(), options) }, - }, + }, client), &apiresourcev1beta1.DeviceClass{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/resource/v1beta1/resourceclaim.go b/staging/src/github.com/kcp-dev/client-go/informers/resource/v1beta1/resourceclaim.go index cd9721b88a0..d54528eb89f 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/resource/v1beta1/resourceclaim.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/resource/v1beta1/resourceclaim.go @@ -64,7 +64,7 @@ func NewResourceClaimClusterInformer(client kcpkubernetes.ClusterInterface, resy // one. This reduces memory footprint and number of connections to the server. func NewFilteredResourceClaimClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredResourceClaimClusterInformer(client kcpkubernetes.ClusterInterfa } return client.ResourceV1beta1().ResourceClaims().Watch(context.Background(), options) }, - }, + }, client), &apiresourcev1beta1.ResourceClaim{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/resource/v1beta1/resourceclaimtemplate.go b/staging/src/github.com/kcp-dev/client-go/informers/resource/v1beta1/resourceclaimtemplate.go index cd16ed24091..a4d0483677d 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/resource/v1beta1/resourceclaimtemplate.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/resource/v1beta1/resourceclaimtemplate.go @@ -64,7 +64,7 @@ func NewResourceClaimTemplateClusterInformer(client kcpkubernetes.ClusterInterfa // one. This reduces memory footprint and number of connections to the server. func NewFilteredResourceClaimTemplateClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredResourceClaimTemplateClusterInformer(client kcpkubernetes.Cluste } return client.ResourceV1beta1().ResourceClaimTemplates().Watch(context.Background(), options) }, - }, + }, client), &apiresourcev1beta1.ResourceClaimTemplate{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/resource/v1beta1/resourceslice.go b/staging/src/github.com/kcp-dev/client-go/informers/resource/v1beta1/resourceslice.go index b274966c312..c70411ad2f8 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/resource/v1beta1/resourceslice.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/resource/v1beta1/resourceslice.go @@ -64,7 +64,7 @@ func NewResourceSliceClusterInformer(client kcpkubernetes.ClusterInterface, resy // one. This reduces memory footprint and number of connections to the server. func NewFilteredResourceSliceClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredResourceSliceClusterInformer(client kcpkubernetes.ClusterInterfa } return client.ResourceV1beta1().ResourceSlices().Watch(context.Background(), options) }, - }, + }, client), &apiresourcev1beta1.ResourceSlice{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/resource/v1beta2/deviceclass.go b/staging/src/github.com/kcp-dev/client-go/informers/resource/v1beta2/deviceclass.go index 3c78ad24691..b4cc26ebfa0 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/resource/v1beta2/deviceclass.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/resource/v1beta2/deviceclass.go @@ -64,7 +64,7 @@ func NewDeviceClassClusterInformer(client kcpkubernetes.ClusterInterface, resync // one. This reduces memory footprint and number of connections to the server. func NewFilteredDeviceClassClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredDeviceClassClusterInformer(client kcpkubernetes.ClusterInterface } return client.ResourceV1beta2().DeviceClasses().Watch(context.Background(), options) }, - }, + }, client), &apiresourcev1beta2.DeviceClass{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/resource/v1beta2/resourceclaim.go b/staging/src/github.com/kcp-dev/client-go/informers/resource/v1beta2/resourceclaim.go index 978d7b96b7f..4aac3ccb920 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/resource/v1beta2/resourceclaim.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/resource/v1beta2/resourceclaim.go @@ -64,7 +64,7 @@ func NewResourceClaimClusterInformer(client kcpkubernetes.ClusterInterface, resy // one. This reduces memory footprint and number of connections to the server. func NewFilteredResourceClaimClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredResourceClaimClusterInformer(client kcpkubernetes.ClusterInterfa } return client.ResourceV1beta2().ResourceClaims().Watch(context.Background(), options) }, - }, + }, client), &apiresourcev1beta2.ResourceClaim{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/resource/v1beta2/resourceclaimtemplate.go b/staging/src/github.com/kcp-dev/client-go/informers/resource/v1beta2/resourceclaimtemplate.go index a7354dff01d..d1020eeb6fb 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/resource/v1beta2/resourceclaimtemplate.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/resource/v1beta2/resourceclaimtemplate.go @@ -64,7 +64,7 @@ func NewResourceClaimTemplateClusterInformer(client kcpkubernetes.ClusterInterfa // one. This reduces memory footprint and number of connections to the server. func NewFilteredResourceClaimTemplateClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredResourceClaimTemplateClusterInformer(client kcpkubernetes.Cluste } return client.ResourceV1beta2().ResourceClaimTemplates().Watch(context.Background(), options) }, - }, + }, client), &apiresourcev1beta2.ResourceClaimTemplate{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/resource/v1beta2/resourceslice.go b/staging/src/github.com/kcp-dev/client-go/informers/resource/v1beta2/resourceslice.go index 3d07d4e5eb3..5fd61b7bbd4 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/resource/v1beta2/resourceslice.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/resource/v1beta2/resourceslice.go @@ -64,7 +64,7 @@ func NewResourceSliceClusterInformer(client kcpkubernetes.ClusterInterface, resy // one. This reduces memory footprint and number of connections to the server. func NewFilteredResourceSliceClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredResourceSliceClusterInformer(client kcpkubernetes.ClusterInterfa } return client.ResourceV1beta2().ResourceSlices().Watch(context.Background(), options) }, - }, + }, client), &apiresourcev1beta2.ResourceSlice{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/scheduling/v1/priorityclass.go b/staging/src/github.com/kcp-dev/client-go/informers/scheduling/v1/priorityclass.go index d7b58fb40cb..b285fb3ee79 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/scheduling/v1/priorityclass.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/scheduling/v1/priorityclass.go @@ -64,7 +64,7 @@ func NewPriorityClassClusterInformer(client kcpkubernetes.ClusterInterface, resy // one. This reduces memory footprint and number of connections to the server. func NewFilteredPriorityClassClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredPriorityClassClusterInformer(client kcpkubernetes.ClusterInterfa } return client.SchedulingV1().PriorityClasses().Watch(context.Background(), options) }, - }, + }, client), &apischedulingv1.PriorityClass{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/scheduling/v1alpha1/interface.go b/staging/src/github.com/kcp-dev/client-go/informers/scheduling/v1alpha1/interface.go index 11019bc1621..909a33a534e 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/scheduling/v1alpha1/interface.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/scheduling/v1alpha1/interface.go @@ -25,6 +25,8 @@ import ( type ClusterInterface interface { // PriorityClasses returns a PriorityClassClusterInformer. PriorityClasses() PriorityClassClusterInformer + // Workloads returns a WorkloadClusterInformer. + Workloads() WorkloadClusterInformer } type version struct { @@ -41,3 +43,8 @@ func New(f kcpinternalinterfaces.SharedInformerFactory, tweakListOptions kcpinte func (v *version) PriorityClasses() PriorityClassClusterInformer { return &priorityClassClusterInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} } + +// Workloads returns a WorkloadClusterInformer. +func (v *version) Workloads() WorkloadClusterInformer { + return &workloadClusterInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} +} diff --git a/staging/src/github.com/kcp-dev/client-go/informers/scheduling/v1alpha1/priorityclass.go b/staging/src/github.com/kcp-dev/client-go/informers/scheduling/v1alpha1/priorityclass.go index d6680805c53..540ed6f3193 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/scheduling/v1alpha1/priorityclass.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/scheduling/v1alpha1/priorityclass.go @@ -64,7 +64,7 @@ func NewPriorityClassClusterInformer(client kcpkubernetes.ClusterInterface, resy // one. This reduces memory footprint and number of connections to the server. func NewFilteredPriorityClassClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredPriorityClassClusterInformer(client kcpkubernetes.ClusterInterfa } return client.SchedulingV1alpha1().PriorityClasses().Watch(context.Background(), options) }, - }, + }, client), &apischedulingv1alpha1.PriorityClass{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/scheduling/v1alpha1/workload.go b/staging/src/github.com/kcp-dev/client-go/informers/scheduling/v1alpha1/workload.go new file mode 100644 index 00000000000..adb61a5a202 --- /dev/null +++ b/staging/src/github.com/kcp-dev/client-go/informers/scheduling/v1alpha1/workload.go @@ -0,0 +1,127 @@ +/* +Copyright The kcp Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by cluster-informer-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + context "context" + time "time" + + apischedulingv1alpha1 "k8s.io/api/scheduling/v1alpha1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + watch "k8s.io/apimachinery/pkg/watch" + schedulingv1alpha1 "k8s.io/client-go/informers/scheduling/v1alpha1" + listersschedulingv1alpha1 "k8s.io/client-go/listers/scheduling/v1alpha1" + cache "k8s.io/client-go/tools/cache" + + kcpcache "github.com/kcp-dev/apimachinery/v2/pkg/cache" + kcpinformers "github.com/kcp-dev/apimachinery/v2/third_party/informers" + kcpinternalinterfaces "github.com/kcp-dev/client-go/informers/internalinterfaces" + kcpkubernetes "github.com/kcp-dev/client-go/kubernetes" + kcpv1alpha1 "github.com/kcp-dev/client-go/listers/scheduling/v1alpha1" + logicalcluster "github.com/kcp-dev/logicalcluster/v3" +) + +// WorkloadClusterInformer provides access to a shared informer and lister for +// Workloads. +type WorkloadClusterInformer interface { + Cluster(logicalcluster.Name) schedulingv1alpha1.WorkloadInformer + ClusterWithContext(context.Context, logicalcluster.Name) schedulingv1alpha1.WorkloadInformer + Informer() kcpcache.ScopeableSharedIndexInformer + Lister() kcpv1alpha1.WorkloadClusterLister +} + +type workloadClusterInformer struct { + factory kcpinternalinterfaces.SharedInformerFactory + tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc +} + +// NewWorkloadClusterInformer constructs a new informer for Workload type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewWorkloadClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers) kcpcache.ScopeableSharedIndexInformer { + return NewFilteredWorkloadClusterInformer(client, resyncPeriod, indexers, nil) +} + +// NewFilteredWorkloadClusterInformer constructs a new informer for Workload type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewFilteredWorkloadClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { + return kcpinformers.NewSharedIndexInformer( + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ + ListFunc: func(options v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.SchedulingV1alpha1().Workloads().List(context.Background(), options) + }, + WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.SchedulingV1alpha1().Workloads().Watch(context.Background(), options) + }, + }, client), + &apischedulingv1alpha1.Workload{}, + resyncPeriod, + indexers, + ) +} + +func (i *workloadClusterInformer) defaultInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration) kcpcache.ScopeableSharedIndexInformer { + return NewFilteredWorkloadClusterInformer(client, resyncPeriod, cache.Indexers{ + kcpcache.ClusterIndexName: kcpcache.ClusterIndexFunc, + kcpcache.ClusterAndNamespaceIndexName: kcpcache.ClusterAndNamespaceIndexFunc, + }, i.tweakListOptions) +} + +func (i *workloadClusterInformer) Informer() kcpcache.ScopeableSharedIndexInformer { + return i.factory.InformerFor(&apischedulingv1alpha1.Workload{}, i.defaultInformer) +} + +func (i *workloadClusterInformer) Lister() kcpv1alpha1.WorkloadClusterLister { + return kcpv1alpha1.NewWorkloadClusterLister(i.Informer().GetIndexer()) +} + +func (i *workloadClusterInformer) Cluster(clusterName logicalcluster.Name) schedulingv1alpha1.WorkloadInformer { + return &workloadInformer{ + informer: i.Informer().Cluster(clusterName), + lister: i.Lister().Cluster(clusterName), + } +} + +func (i *workloadClusterInformer) ClusterWithContext(ctx context.Context, clusterName logicalcluster.Name) schedulingv1alpha1.WorkloadInformer { + return &workloadInformer{ + informer: i.Informer().ClusterWithContext(ctx, clusterName), + lister: i.Lister().Cluster(clusterName), + } +} + +type workloadInformer struct { + informer cache.SharedIndexInformer + lister listersschedulingv1alpha1.WorkloadLister +} + +func (i *workloadInformer) Informer() cache.SharedIndexInformer { + return i.informer +} + +func (i *workloadInformer) Lister() listersschedulingv1alpha1.WorkloadLister { + return i.lister +} diff --git a/staging/src/github.com/kcp-dev/client-go/informers/scheduling/v1beta1/priorityclass.go b/staging/src/github.com/kcp-dev/client-go/informers/scheduling/v1beta1/priorityclass.go index 821e9baaa22..379b77d0317 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/scheduling/v1beta1/priorityclass.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/scheduling/v1beta1/priorityclass.go @@ -64,7 +64,7 @@ func NewPriorityClassClusterInformer(client kcpkubernetes.ClusterInterface, resy // one. This reduces memory footprint and number of connections to the server. func NewFilteredPriorityClassClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredPriorityClassClusterInformer(client kcpkubernetes.ClusterInterfa } return client.SchedulingV1beta1().PriorityClasses().Watch(context.Background(), options) }, - }, + }, client), &apischedulingv1beta1.PriorityClass{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/storage/v1/csidriver.go b/staging/src/github.com/kcp-dev/client-go/informers/storage/v1/csidriver.go index 95e058986ef..0ca38c7b413 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/storage/v1/csidriver.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/storage/v1/csidriver.go @@ -64,7 +64,7 @@ func NewCSIDriverClusterInformer(client kcpkubernetes.ClusterInterface, resyncPe // one. This reduces memory footprint and number of connections to the server. func NewFilteredCSIDriverClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredCSIDriverClusterInformer(client kcpkubernetes.ClusterInterface, } return client.StorageV1().CSIDrivers().Watch(context.Background(), options) }, - }, + }, client), &apistoragev1.CSIDriver{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/storage/v1/csinode.go b/staging/src/github.com/kcp-dev/client-go/informers/storage/v1/csinode.go index 87f125e68f9..1fd672feaf0 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/storage/v1/csinode.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/storage/v1/csinode.go @@ -64,7 +64,7 @@ func NewCSINodeClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeri // one. This reduces memory footprint and number of connections to the server. func NewFilteredCSINodeClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredCSINodeClusterInformer(client kcpkubernetes.ClusterInterface, re } return client.StorageV1().CSINodes().Watch(context.Background(), options) }, - }, + }, client), &apistoragev1.CSINode{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/storage/v1/csistoragecapacity.go b/staging/src/github.com/kcp-dev/client-go/informers/storage/v1/csistoragecapacity.go index 58d7e0e33ab..2bb41f62f38 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/storage/v1/csistoragecapacity.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/storage/v1/csistoragecapacity.go @@ -64,7 +64,7 @@ func NewCSIStorageCapacityClusterInformer(client kcpkubernetes.ClusterInterface, // one. This reduces memory footprint and number of connections to the server. func NewFilteredCSIStorageCapacityClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredCSIStorageCapacityClusterInformer(client kcpkubernetes.ClusterIn } return client.StorageV1().CSIStorageCapacities().Watch(context.Background(), options) }, - }, + }, client), &apistoragev1.CSIStorageCapacity{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/storage/v1/storageclass.go b/staging/src/github.com/kcp-dev/client-go/informers/storage/v1/storageclass.go index 110f0a5b174..9365d690089 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/storage/v1/storageclass.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/storage/v1/storageclass.go @@ -64,7 +64,7 @@ func NewStorageClassClusterInformer(client kcpkubernetes.ClusterInterface, resyn // one. This reduces memory footprint and number of connections to the server. func NewFilteredStorageClassClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredStorageClassClusterInformer(client kcpkubernetes.ClusterInterfac } return client.StorageV1().StorageClasses().Watch(context.Background(), options) }, - }, + }, client), &apistoragev1.StorageClass{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/storage/v1/volumeattachment.go b/staging/src/github.com/kcp-dev/client-go/informers/storage/v1/volumeattachment.go index dfd7ea119a9..8126c99a8cc 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/storage/v1/volumeattachment.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/storage/v1/volumeattachment.go @@ -64,7 +64,7 @@ func NewVolumeAttachmentClusterInformer(client kcpkubernetes.ClusterInterface, r // one. This reduces memory footprint and number of connections to the server. func NewFilteredVolumeAttachmentClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredVolumeAttachmentClusterInformer(client kcpkubernetes.ClusterInte } return client.StorageV1().VolumeAttachments().Watch(context.Background(), options) }, - }, + }, client), &apistoragev1.VolumeAttachment{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/storage/v1/volumeattributesclass.go b/staging/src/github.com/kcp-dev/client-go/informers/storage/v1/volumeattributesclass.go index 511a30185a7..de70424924e 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/storage/v1/volumeattributesclass.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/storage/v1/volumeattributesclass.go @@ -64,7 +64,7 @@ func NewVolumeAttributesClassClusterInformer(client kcpkubernetes.ClusterInterfa // one. This reduces memory footprint and number of connections to the server. func NewFilteredVolumeAttributesClassClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredVolumeAttributesClassClusterInformer(client kcpkubernetes.Cluste } return client.StorageV1().VolumeAttributesClasses().Watch(context.Background(), options) }, - }, + }, client), &apistoragev1.VolumeAttributesClass{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/storage/v1alpha1/csistoragecapacity.go b/staging/src/github.com/kcp-dev/client-go/informers/storage/v1alpha1/csistoragecapacity.go index ec2ae5d1309..0faa43f76aa 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/storage/v1alpha1/csistoragecapacity.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/storage/v1alpha1/csistoragecapacity.go @@ -64,7 +64,7 @@ func NewCSIStorageCapacityClusterInformer(client kcpkubernetes.ClusterInterface, // one. This reduces memory footprint and number of connections to the server. func NewFilteredCSIStorageCapacityClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredCSIStorageCapacityClusterInformer(client kcpkubernetes.ClusterIn } return client.StorageV1alpha1().CSIStorageCapacities().Watch(context.Background(), options) }, - }, + }, client), &apistoragev1alpha1.CSIStorageCapacity{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/storage/v1alpha1/volumeattachment.go b/staging/src/github.com/kcp-dev/client-go/informers/storage/v1alpha1/volumeattachment.go index 8fb3f9bee2e..32cb689660f 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/storage/v1alpha1/volumeattachment.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/storage/v1alpha1/volumeattachment.go @@ -64,7 +64,7 @@ func NewVolumeAttachmentClusterInformer(client kcpkubernetes.ClusterInterface, r // one. This reduces memory footprint and number of connections to the server. func NewFilteredVolumeAttachmentClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredVolumeAttachmentClusterInformer(client kcpkubernetes.ClusterInte } return client.StorageV1alpha1().VolumeAttachments().Watch(context.Background(), options) }, - }, + }, client), &apistoragev1alpha1.VolumeAttachment{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/storage/v1alpha1/volumeattributesclass.go b/staging/src/github.com/kcp-dev/client-go/informers/storage/v1alpha1/volumeattributesclass.go index db13ca6cd55..202435ff44d 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/storage/v1alpha1/volumeattributesclass.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/storage/v1alpha1/volumeattributesclass.go @@ -64,7 +64,7 @@ func NewVolumeAttributesClassClusterInformer(client kcpkubernetes.ClusterInterfa // one. This reduces memory footprint and number of connections to the server. func NewFilteredVolumeAttributesClassClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredVolumeAttributesClassClusterInformer(client kcpkubernetes.Cluste } return client.StorageV1alpha1().VolumeAttributesClasses().Watch(context.Background(), options) }, - }, + }, client), &apistoragev1alpha1.VolumeAttributesClass{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/storage/v1beta1/csidriver.go b/staging/src/github.com/kcp-dev/client-go/informers/storage/v1beta1/csidriver.go index 17d0e8000f7..22b12620ff1 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/storage/v1beta1/csidriver.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/storage/v1beta1/csidriver.go @@ -64,7 +64,7 @@ func NewCSIDriverClusterInformer(client kcpkubernetes.ClusterInterface, resyncPe // one. This reduces memory footprint and number of connections to the server. func NewFilteredCSIDriverClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredCSIDriverClusterInformer(client kcpkubernetes.ClusterInterface, } return client.StorageV1beta1().CSIDrivers().Watch(context.Background(), options) }, - }, + }, client), &apistoragev1beta1.CSIDriver{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/storage/v1beta1/csinode.go b/staging/src/github.com/kcp-dev/client-go/informers/storage/v1beta1/csinode.go index 39c5a6ed4d8..91179bdf3e5 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/storage/v1beta1/csinode.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/storage/v1beta1/csinode.go @@ -64,7 +64,7 @@ func NewCSINodeClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeri // one. This reduces memory footprint and number of connections to the server. func NewFilteredCSINodeClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredCSINodeClusterInformer(client kcpkubernetes.ClusterInterface, re } return client.StorageV1beta1().CSINodes().Watch(context.Background(), options) }, - }, + }, client), &apistoragev1beta1.CSINode{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/storage/v1beta1/csistoragecapacity.go b/staging/src/github.com/kcp-dev/client-go/informers/storage/v1beta1/csistoragecapacity.go index 55c7ccede59..4cb3f371d9b 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/storage/v1beta1/csistoragecapacity.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/storage/v1beta1/csistoragecapacity.go @@ -64,7 +64,7 @@ func NewCSIStorageCapacityClusterInformer(client kcpkubernetes.ClusterInterface, // one. This reduces memory footprint and number of connections to the server. func NewFilteredCSIStorageCapacityClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredCSIStorageCapacityClusterInformer(client kcpkubernetes.ClusterIn } return client.StorageV1beta1().CSIStorageCapacities().Watch(context.Background(), options) }, - }, + }, client), &apistoragev1beta1.CSIStorageCapacity{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/storage/v1beta1/storageclass.go b/staging/src/github.com/kcp-dev/client-go/informers/storage/v1beta1/storageclass.go index e4e8076f081..3ab393eec21 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/storage/v1beta1/storageclass.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/storage/v1beta1/storageclass.go @@ -64,7 +64,7 @@ func NewStorageClassClusterInformer(client kcpkubernetes.ClusterInterface, resyn // one. This reduces memory footprint and number of connections to the server. func NewFilteredStorageClassClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredStorageClassClusterInformer(client kcpkubernetes.ClusterInterfac } return client.StorageV1beta1().StorageClasses().Watch(context.Background(), options) }, - }, + }, client), &apistoragev1beta1.StorageClass{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/storage/v1beta1/volumeattachment.go b/staging/src/github.com/kcp-dev/client-go/informers/storage/v1beta1/volumeattachment.go index faa5ca40d0a..c5785194735 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/storage/v1beta1/volumeattachment.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/storage/v1beta1/volumeattachment.go @@ -64,7 +64,7 @@ func NewVolumeAttachmentClusterInformer(client kcpkubernetes.ClusterInterface, r // one. This reduces memory footprint and number of connections to the server. func NewFilteredVolumeAttachmentClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredVolumeAttachmentClusterInformer(client kcpkubernetes.ClusterInte } return client.StorageV1beta1().VolumeAttachments().Watch(context.Background(), options) }, - }, + }, client), &apistoragev1beta1.VolumeAttachment{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/storage/v1beta1/volumeattributesclass.go b/staging/src/github.com/kcp-dev/client-go/informers/storage/v1beta1/volumeattributesclass.go index 264ac64b3d6..988ca69e0b9 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/storage/v1beta1/volumeattributesclass.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/storage/v1beta1/volumeattributesclass.go @@ -64,7 +64,7 @@ func NewVolumeAttributesClassClusterInformer(client kcpkubernetes.ClusterInterfa // one. This reduces memory footprint and number of connections to the server. func NewFilteredVolumeAttributesClassClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredVolumeAttributesClassClusterInformer(client kcpkubernetes.Cluste } return client.StorageV1beta1().VolumeAttributesClasses().Watch(context.Background(), options) }, - }, + }, client), &apistoragev1beta1.VolumeAttributesClass{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/client-go/informers/storagemigration/interface.go b/staging/src/github.com/kcp-dev/client-go/informers/storagemigration/interface.go index 66bd01083c7..94ebd02ce74 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/storagemigration/interface.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/storagemigration/interface.go @@ -20,13 +20,13 @@ package storagemigration import ( kcpinternalinterfaces "github.com/kcp-dev/client-go/informers/internalinterfaces" - kcpv1alpha1 "github.com/kcp-dev/client-go/informers/storagemigration/v1alpha1" + kcpv1beta1 "github.com/kcp-dev/client-go/informers/storagemigration/v1beta1" ) // ClusterInterface provides access to each of this group's versions. type ClusterInterface interface { - // V1alpha1 provides access to shared informers for resources in V1alpha1. - V1alpha1() kcpv1alpha1.ClusterInterface + // V1beta1 provides access to shared informers for resources in V1beta1. + V1beta1() kcpv1beta1.ClusterInterface } type group struct { @@ -39,7 +39,7 @@ func New(f kcpinternalinterfaces.SharedInformerFactory, tweakListOptions kcpinte return &group{factory: f, tweakListOptions: tweakListOptions} } -// V1alpha1 returns a new kcpv1alpha1.ClusterInterface. -func (g *group) V1alpha1() kcpv1alpha1.ClusterInterface { - return kcpv1alpha1.New(g.factory, g.tweakListOptions) +// V1beta1 returns a new kcpv1beta1.ClusterInterface. +func (g *group) V1beta1() kcpv1beta1.ClusterInterface { + return kcpv1beta1.New(g.factory, g.tweakListOptions) } diff --git a/staging/src/github.com/kcp-dev/client-go/informers/storagemigration/v1alpha1/interface.go b/staging/src/github.com/kcp-dev/client-go/informers/storagemigration/v1beta1/interface.go similarity index 98% rename from staging/src/github.com/kcp-dev/client-go/informers/storagemigration/v1alpha1/interface.go rename to staging/src/github.com/kcp-dev/client-go/informers/storagemigration/v1beta1/interface.go index ca50c251c53..7ad2061fbbb 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/storagemigration/v1alpha1/interface.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/storagemigration/v1beta1/interface.go @@ -16,7 +16,7 @@ limitations under the License. // Code generated by cluster-informer-gen. DO NOT EDIT. -package v1alpha1 +package v1beta1 import ( kcpinternalinterfaces "github.com/kcp-dev/client-go/informers/internalinterfaces" diff --git a/staging/src/github.com/kcp-dev/client-go/informers/storagemigration/v1alpha1/storageversionmigration.go b/staging/src/github.com/kcp-dev/client-go/informers/storagemigration/v1beta1/storageversionmigration.go similarity index 75% rename from staging/src/github.com/kcp-dev/client-go/informers/storagemigration/v1alpha1/storageversionmigration.go rename to staging/src/github.com/kcp-dev/client-go/informers/storagemigration/v1beta1/storageversionmigration.go index 98dddc28f6b..8f006c5b372 100644 --- a/staging/src/github.com/kcp-dev/client-go/informers/storagemigration/v1alpha1/storageversionmigration.go +++ b/staging/src/github.com/kcp-dev/client-go/informers/storagemigration/v1beta1/storageversionmigration.go @@ -16,35 +16,35 @@ limitations under the License. // Code generated by cluster-informer-gen. DO NOT EDIT. -package v1alpha1 +package v1beta1 import ( context "context" time "time" - apistoragemigrationv1alpha1 "k8s.io/api/storagemigration/v1alpha1" + apistoragemigrationv1beta1 "k8s.io/api/storagemigration/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" - storagemigrationv1alpha1 "k8s.io/client-go/informers/storagemigration/v1alpha1" - listersstoragemigrationv1alpha1 "k8s.io/client-go/listers/storagemigration/v1alpha1" + storagemigrationv1beta1 "k8s.io/client-go/informers/storagemigration/v1beta1" + listersstoragemigrationv1beta1 "k8s.io/client-go/listers/storagemigration/v1beta1" cache "k8s.io/client-go/tools/cache" kcpcache "github.com/kcp-dev/apimachinery/v2/pkg/cache" kcpinformers "github.com/kcp-dev/apimachinery/v2/third_party/informers" kcpinternalinterfaces "github.com/kcp-dev/client-go/informers/internalinterfaces" kcpkubernetes "github.com/kcp-dev/client-go/kubernetes" - kcpv1alpha1 "github.com/kcp-dev/client-go/listers/storagemigration/v1alpha1" + kcpv1beta1 "github.com/kcp-dev/client-go/listers/storagemigration/v1beta1" logicalcluster "github.com/kcp-dev/logicalcluster/v3" ) // StorageVersionMigrationClusterInformer provides access to a shared informer and lister for // StorageVersionMigrations. type StorageVersionMigrationClusterInformer interface { - Cluster(logicalcluster.Name) storagemigrationv1alpha1.StorageVersionMigrationInformer - ClusterWithContext(context.Context, logicalcluster.Name) storagemigrationv1alpha1.StorageVersionMigrationInformer + Cluster(logicalcluster.Name) storagemigrationv1beta1.StorageVersionMigrationInformer + ClusterWithContext(context.Context, logicalcluster.Name) storagemigrationv1beta1.StorageVersionMigrationInformer Informer() kcpcache.ScopeableSharedIndexInformer - Lister() kcpv1alpha1.StorageVersionMigrationClusterLister + Lister() kcpv1beta1.StorageVersionMigrationClusterLister } type storageVersionMigrationClusterInformer struct { @@ -64,21 +64,21 @@ func NewStorageVersionMigrationClusterInformer(client kcpkubernetes.ClusterInter // one. This reduces memory footprint and number of connections to the server. func NewFilteredStorageVersionMigrationClusterInformer(client kcpkubernetes.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) } - return client.StoragemigrationV1alpha1().StorageVersionMigrations().List(context.Background(), options) + return client.StoragemigrationV1beta1().StorageVersionMigrations().List(context.Background(), options) }, WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { if tweakListOptions != nil { tweakListOptions(&options) } - return client.StoragemigrationV1alpha1().StorageVersionMigrations().Watch(context.Background(), options) + return client.StoragemigrationV1beta1().StorageVersionMigrations().Watch(context.Background(), options) }, - }, - &apistoragemigrationv1alpha1.StorageVersionMigration{}, + }, client), + &apistoragemigrationv1beta1.StorageVersionMigration{}, resyncPeriod, indexers, ) @@ -92,21 +92,21 @@ func (i *storageVersionMigrationClusterInformer) defaultInformer(client kcpkuber } func (i *storageVersionMigrationClusterInformer) Informer() kcpcache.ScopeableSharedIndexInformer { - return i.factory.InformerFor(&apistoragemigrationv1alpha1.StorageVersionMigration{}, i.defaultInformer) + return i.factory.InformerFor(&apistoragemigrationv1beta1.StorageVersionMigration{}, i.defaultInformer) } -func (i *storageVersionMigrationClusterInformer) Lister() kcpv1alpha1.StorageVersionMigrationClusterLister { - return kcpv1alpha1.NewStorageVersionMigrationClusterLister(i.Informer().GetIndexer()) +func (i *storageVersionMigrationClusterInformer) Lister() kcpv1beta1.StorageVersionMigrationClusterLister { + return kcpv1beta1.NewStorageVersionMigrationClusterLister(i.Informer().GetIndexer()) } -func (i *storageVersionMigrationClusterInformer) Cluster(clusterName logicalcluster.Name) storagemigrationv1alpha1.StorageVersionMigrationInformer { +func (i *storageVersionMigrationClusterInformer) Cluster(clusterName logicalcluster.Name) storagemigrationv1beta1.StorageVersionMigrationInformer { return &storageVersionMigrationInformer{ informer: i.Informer().Cluster(clusterName), lister: i.Lister().Cluster(clusterName), } } -func (i *storageVersionMigrationClusterInformer) ClusterWithContext(ctx context.Context, clusterName logicalcluster.Name) storagemigrationv1alpha1.StorageVersionMigrationInformer { +func (i *storageVersionMigrationClusterInformer) ClusterWithContext(ctx context.Context, clusterName logicalcluster.Name) storagemigrationv1beta1.StorageVersionMigrationInformer { return &storageVersionMigrationInformer{ informer: i.Informer().ClusterWithContext(ctx, clusterName), lister: i.Lister().Cluster(clusterName), @@ -115,13 +115,13 @@ func (i *storageVersionMigrationClusterInformer) ClusterWithContext(ctx context. type storageVersionMigrationInformer struct { informer cache.SharedIndexInformer - lister listersstoragemigrationv1alpha1.StorageVersionMigrationLister + lister listersstoragemigrationv1beta1.StorageVersionMigrationLister } func (i *storageVersionMigrationInformer) Informer() cache.SharedIndexInformer { return i.informer } -func (i *storageVersionMigrationInformer) Lister() listersstoragemigrationv1alpha1.StorageVersionMigrationLister { +func (i *storageVersionMigrationInformer) Lister() listersstoragemigrationv1beta1.StorageVersionMigrationLister { return i.lister } diff --git a/staging/src/github.com/kcp-dev/client-go/kubernetes/clientset.go b/staging/src/github.com/kcp-dev/client-go/kubernetes/clientset.go index 60aa7875de7..e663ead26b3 100644 --- a/staging/src/github.com/kcp-dev/client-go/kubernetes/clientset.go +++ b/staging/src/github.com/kcp-dev/client-go/kubernetes/clientset.go @@ -82,7 +82,7 @@ import ( storagev1 "github.com/kcp-dev/client-go/kubernetes/typed/storage/v1" storagev1alpha1 "github.com/kcp-dev/client-go/kubernetes/typed/storage/v1alpha1" storagev1beta1 "github.com/kcp-dev/client-go/kubernetes/typed/storage/v1beta1" - storagemigrationv1alpha1 "github.com/kcp-dev/client-go/kubernetes/typed/storagemigration/v1alpha1" + storagemigrationv1beta1 "github.com/kcp-dev/client-go/kubernetes/typed/storagemigration/v1beta1" "github.com/kcp-dev/logicalcluster/v3" ) @@ -143,7 +143,7 @@ type ClusterInterface interface { StorageV1() storagev1.StorageV1ClusterInterface StorageV1alpha1() storagev1alpha1.StorageV1alpha1ClusterInterface StorageV1beta1() storagev1beta1.StorageV1beta1ClusterInterface - StoragemigrationV1alpha1() storagemigrationv1alpha1.StoragemigrationV1alpha1ClusterInterface + StoragemigrationV1beta1() storagemigrationv1beta1.StoragemigrationV1beta1ClusterInterface } // ClusterClientset contains the cluster clients for groups. @@ -204,7 +204,7 @@ type ClusterClientset struct { storageV1 *storagev1.StorageV1ClusterClient storageV1alpha1 *storagev1alpha1.StorageV1alpha1ClusterClient storageV1beta1 *storagev1beta1.StorageV1beta1ClusterClient - storagemigrationV1alpha1 *storagemigrationv1alpha1.StoragemigrationV1alpha1ClusterClient + storagemigrationV1beta1 *storagemigrationv1beta1.StoragemigrationV1beta1ClusterClient } // Discovery retrieves the DiscoveryClient. @@ -485,9 +485,9 @@ func (c *ClusterClientset) StorageV1beta1() storagev1beta1.StorageV1beta1Cluster return c.storageV1beta1 } -// StoragemigrationV1alpha1 retrieves the StoragemigrationV1alpha1ClusterClient. -func (c *ClusterClientset) StoragemigrationV1alpha1() storagemigrationv1alpha1.StoragemigrationV1alpha1ClusterInterface { - return c.storagemigrationV1alpha1 +// StoragemigrationV1beta1 retrieves the StoragemigrationV1beta1ClusterClient. +func (c *ClusterClientset) StoragemigrationV1beta1() storagemigrationv1beta1.StoragemigrationV1beta1ClusterInterface { + return c.storagemigrationV1beta1 } // Cluster scopes this clientset to one cluster. @@ -758,7 +758,7 @@ func NewForConfigAndClient(c *rest.Config, httpClient *http.Client) (*ClusterCli if err != nil { return nil, err } - cs.storagemigrationV1alpha1, err = storagemigrationv1alpha1.NewForConfigAndClient(&configShallowCopy, httpClient) + cs.storagemigrationV1beta1, err = storagemigrationv1beta1.NewForConfigAndClient(&configShallowCopy, httpClient) if err != nil { return nil, err } @@ -837,7 +837,7 @@ func New(c *rest.Config) *ClusterClientset { cs.storageV1 = storagev1.NewForConfigOrDie(c) cs.storageV1alpha1 = storagev1alpha1.NewForConfigOrDie(c) cs.storageV1beta1 = storagev1beta1.NewForConfigOrDie(c) - cs.storagemigrationV1alpha1 = storagemigrationv1alpha1.NewForConfigOrDie(c) + cs.storagemigrationV1beta1 = storagemigrationv1beta1.NewForConfigOrDie(c) cs.DiscoveryClient = discovery.NewDiscoveryClientForConfigOrDie(c) return &cs diff --git a/staging/src/github.com/kcp-dev/client-go/kubernetes/fake/clientset.go b/staging/src/github.com/kcp-dev/client-go/kubernetes/fake/clientset.go index 12ed13a3f9e..a2ab2822c67 100644 --- a/staging/src/github.com/kcp-dev/client-go/kubernetes/fake/clientset.go +++ b/staging/src/github.com/kcp-dev/client-go/kubernetes/fake/clientset.go @@ -77,7 +77,7 @@ import ( storagev1 "k8s.io/client-go/kubernetes/typed/storage/v1" storagev1alpha1 "k8s.io/client-go/kubernetes/typed/storage/v1alpha1" storagev1beta1 "k8s.io/client-go/kubernetes/typed/storage/v1beta1" - storagemigrationv1alpha1 "k8s.io/client-go/kubernetes/typed/storagemigration/v1alpha1" + storagemigrationv1beta1 "k8s.io/client-go/kubernetes/typed/storagemigration/v1beta1" kcpclientset "github.com/kcp-dev/client-go/kubernetes" kcpclientscheme "github.com/kcp-dev/client-go/kubernetes/scheme" @@ -189,8 +189,8 @@ import ( kcpfakestoragev1alpha1 "github.com/kcp-dev/client-go/kubernetes/typed/storage/v1alpha1/fake" kcpstoragev1beta1 "github.com/kcp-dev/client-go/kubernetes/typed/storage/v1beta1" kcpfakestoragev1beta1 "github.com/kcp-dev/client-go/kubernetes/typed/storage/v1beta1/fake" - kcpstoragemigrationv1alpha1 "github.com/kcp-dev/client-go/kubernetes/typed/storagemigration/v1alpha1" - kcpfakestoragemigrationv1alpha1 "github.com/kcp-dev/client-go/kubernetes/typed/storagemigration/v1alpha1/fake" + kcpstoragemigrationv1beta1 "github.com/kcp-dev/client-go/kubernetes/typed/storagemigration/v1beta1" + kcpfakestoragemigrationv1beta1 "github.com/kcp-dev/client-go/kubernetes/typed/storagemigration/v1beta1/fake" kcpfakediscovery "github.com/kcp-dev/client-go/third_party/k8s.io/client-go/discovery/fake" kcptesting "github.com/kcp-dev/client-go/third_party/k8s.io/client-go/testing" "github.com/kcp-dev/logicalcluster/v3" @@ -201,7 +201,7 @@ import ( // without applying any field management, validations and/or defaults. It shouldn't be considered a replacement // for a real clientset and is mostly useful in simple unit tests. // -// DEPRECATED: NewClientset replaces this with support for field management, which significantly improves +// Deprecated: NewClientset replaces this with support for field management, which significantly improves // server side apply testing. NewClientset is only available when apply configurations are generated (e.g. // via --with-applyconfig). func NewSimpleClientset(objects ...runtime.Object) *ClusterClientset { @@ -234,6 +234,28 @@ func (c *ClusterClientset) Tracker() kcptesting.ObjectTracker { return c.tracker } +// IsWatchListSemanticsUnSupported informs the reflector that this client +// doesn't support WatchList semantics. +// +// This is a synthetic method whose sole purpose is to satisfy the optional +// interface check performed by the reflector. +// Returning true signals that WatchList can NOT be used. +// No additional logic is implemented here. +func (c *ClusterClientset) IsWatchListSemanticsUnSupported() bool { + return true +} + +// IsWatchListSemanticsSupported informs the reflector that this client +// doesn't support WatchList semantics. +// +// This is a synthetic method whose sole purpose is to satisfy the optional +// interface check performed by the reflector. +// Returning true signals that WatchList can NOT be used. +// No additional logic is implemented here. +func (c *Clientset) IsWatchListSemanticsUnSupported() bool { + return true +} + // Cluster scopes this clientset to one cluster. func (c *ClusterClientset) Cluster(clusterPath logicalcluster.Path) clientset.Interface { if clusterPath == logicalcluster.Wildcard { @@ -517,9 +539,9 @@ func (c *ClusterClientset) StorageV1beta1() kcpstoragev1beta1.StorageV1beta1Clus return &kcpfakestoragev1beta1.StorageV1beta1ClusterClient{Fake: &c.Fake} } -// StoragemigrationV1alpha1 retrieves the StoragemigrationV1alpha1ClusterClient -func (c *ClusterClientset) StoragemigrationV1alpha1() kcpstoragemigrationv1alpha1.StoragemigrationV1alpha1ClusterInterface { - return &kcpfakestoragemigrationv1alpha1.StoragemigrationV1alpha1ClusterClient{Fake: &c.Fake} +// StoragemigrationV1beta1 retrieves the StoragemigrationV1beta1ClusterClient +func (c *ClusterClientset) StoragemigrationV1beta1() kcpstoragemigrationv1beta1.StoragemigrationV1beta1ClusterInterface { + return &kcpfakestoragemigrationv1beta1.StoragemigrationV1beta1ClusterClient{Fake: &c.Fake} } // Clientset implements clientset.Interface. Meant to be embedded into a @@ -835,7 +857,7 @@ func (c *Clientset) StorageV1beta1() storagev1beta1.StorageV1beta1Interface { return &kcpfakestoragev1beta1.StorageV1beta1Client{Fake: c.Fake, ClusterPath: c.clusterPath} } -// StoragemigrationV1alpha1 retrieves the StoragemigrationV1alpha1Client -func (c *Clientset) StoragemigrationV1alpha1() storagemigrationv1alpha1.StoragemigrationV1alpha1Interface { - return &kcpfakestoragemigrationv1alpha1.StoragemigrationV1alpha1Client{Fake: c.Fake, ClusterPath: c.clusterPath} +// StoragemigrationV1beta1 retrieves the StoragemigrationV1beta1Client +func (c *Clientset) StoragemigrationV1beta1() storagemigrationv1beta1.StoragemigrationV1beta1Interface { + return &kcpfakestoragemigrationv1beta1.StoragemigrationV1beta1Client{Fake: c.Fake, ClusterPath: c.clusterPath} } diff --git a/staging/src/github.com/kcp-dev/client-go/kubernetes/fake/register.go b/staging/src/github.com/kcp-dev/client-go/kubernetes/fake/register.go index 89944091e09..f39ee05fad1 100644 --- a/staging/src/github.com/kcp-dev/client-go/kubernetes/fake/register.go +++ b/staging/src/github.com/kcp-dev/client-go/kubernetes/fake/register.go @@ -73,7 +73,7 @@ import ( storagev1 "k8s.io/api/storage/v1" storagev1alpha1 "k8s.io/api/storage/v1alpha1" storagev1beta1 "k8s.io/api/storage/v1beta1" - storagemigrationv1alpha1 "k8s.io/api/storagemigration/v1alpha1" + storagemigrationv1beta1 "k8s.io/api/storagemigration/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" schema "k8s.io/apimachinery/pkg/runtime/schema" @@ -139,7 +139,7 @@ var localSchemeBuilder = runtime.SchemeBuilder{ storagev1.AddToScheme, storagev1alpha1.AddToScheme, storagev1beta1.AddToScheme, - storagemigrationv1alpha1.AddToScheme, + storagemigrationv1beta1.AddToScheme, } // AddToScheme adds all types of this clientset into the given scheme. This allows composition diff --git a/staging/src/github.com/kcp-dev/client-go/kubernetes/scheme/register.go b/staging/src/github.com/kcp-dev/client-go/kubernetes/scheme/register.go index 1fa40a013f2..c340305eb63 100644 --- a/staging/src/github.com/kcp-dev/client-go/kubernetes/scheme/register.go +++ b/staging/src/github.com/kcp-dev/client-go/kubernetes/scheme/register.go @@ -73,7 +73,7 @@ import ( storagev1 "k8s.io/api/storage/v1" storagev1alpha1 "k8s.io/api/storage/v1alpha1" storagev1beta1 "k8s.io/api/storage/v1beta1" - storagemigrationv1alpha1 "k8s.io/api/storagemigration/v1alpha1" + storagemigrationv1beta1 "k8s.io/api/storagemigration/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" schema "k8s.io/apimachinery/pkg/runtime/schema" @@ -139,7 +139,7 @@ var localSchemeBuilder = runtime.SchemeBuilder{ storagev1.AddToScheme, storagev1alpha1.AddToScheme, storagev1beta1.AddToScheme, - storagemigrationv1alpha1.AddToScheme, + storagemigrationv1beta1.AddToScheme, } // AddToScheme adds all types of this clientset into the given scheme. This allows composition diff --git a/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/certificates/v1alpha1/certificates_client.go b/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/certificates/v1alpha1/certificates_client.go index d96c8124b03..8263bd0f06d 100644 --- a/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/certificates/v1alpha1/certificates_client.go +++ b/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/certificates/v1alpha1/certificates_client.go @@ -33,7 +33,6 @@ import ( type CertificatesV1alpha1ClusterInterface interface { CertificatesV1alpha1ClusterScoper ClusterTrustBundlesClusterGetter - PodCertificateRequestsClusterGetter } type CertificatesV1alpha1ClusterScoper interface { @@ -56,10 +55,6 @@ func (c *CertificatesV1alpha1ClusterClient) ClusterTrustBundles() ClusterTrustBu return &clusterTrustBundlesClusterInterface{clientCache: c.clientCache} } -func (c *CertificatesV1alpha1ClusterClient) PodCertificateRequests() PodCertificateRequestClusterInterface { - return &podCertificateRequestsClusterInterface{clientCache: c.clientCache} -} - // NewForConfig creates a new CertificatesV1alpha1ClusterClient for the given config. // NewForConfig is equivalent to NewForConfigAndClient(c, httpClient), // where httpClient was generated with rest.HTTPClientFor(c). diff --git a/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/certificates/v1alpha1/fake/certificates_client.go b/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/certificates/v1alpha1/fake/certificates_client.go index f2e7c83f364..3e1dd3f8cc9 100644 --- a/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/certificates/v1alpha1/fake/certificates_client.go +++ b/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/certificates/v1alpha1/fake/certificates_client.go @@ -44,10 +44,6 @@ func (c *CertificatesV1alpha1ClusterClient) ClusterTrustBundles() kcpcertificate return newFakeClusterTrustBundleClusterClient(c) } -func (c *CertificatesV1alpha1ClusterClient) PodCertificateRequests() kcpcertificatesv1alpha1.PodCertificateRequestClusterInterface { - return newFakePodCertificateRequestClusterClient(c) -} - type CertificatesV1alpha1Client struct { *kcptesting.Fake ClusterPath logicalcluster.Path @@ -57,10 +53,6 @@ func (c *CertificatesV1alpha1Client) ClusterTrustBundles() certificatesv1alpha1. return newFakeClusterTrustBundleClient(c.Fake, c.ClusterPath) } -func (c *CertificatesV1alpha1Client) PodCertificateRequests(namespace string) certificatesv1alpha1.PodCertificateRequestInterface { - return newFakePodCertificateRequestClient(c.Fake, namespace, c.ClusterPath) -} - // RESTClient returns a RESTClient that is used to communicate // with API server by this client implementation. func (c *CertificatesV1alpha1Client) RESTClient() rest.Interface { diff --git a/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/certificates/v1alpha1/fake/podcertificaterequest.go b/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/certificates/v1alpha1/fake/podcertificaterequest.go deleted file mode 100644 index f229c49bfcc..00000000000 --- a/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/certificates/v1alpha1/fake/podcertificaterequest.go +++ /dev/null @@ -1,107 +0,0 @@ -/* -Copyright The kcp Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by cluster-client-gen. DO NOT EDIT. - -package fake - -import ( - certificatesv1alpha1 "k8s.io/api/certificates/v1alpha1" - v1alpha1 "k8s.io/client-go/applyconfigurations/certificates/v1alpha1" - typedcertificatesv1alpha1 "k8s.io/client-go/kubernetes/typed/certificates/v1alpha1" - - typedkcpcertificatesv1alpha1 "github.com/kcp-dev/client-go/kubernetes/typed/certificates/v1alpha1" - kcpgentype "github.com/kcp-dev/client-go/third_party/k8s.io/client-go/gentype" - kcptesting "github.com/kcp-dev/client-go/third_party/k8s.io/client-go/testing" - "github.com/kcp-dev/logicalcluster/v3" -) - -// podCertificateRequestClusterClient implements PodCertificateRequestClusterInterface -type podCertificateRequestClusterClient struct { - *kcpgentype.FakeClusterClientWithList[*certificatesv1alpha1.PodCertificateRequest, *certificatesv1alpha1.PodCertificateRequestList] - Fake *kcptesting.Fake -} - -func newFakePodCertificateRequestClusterClient(fake *CertificatesV1alpha1ClusterClient) typedkcpcertificatesv1alpha1.PodCertificateRequestClusterInterface { - return &podCertificateRequestClusterClient{ - kcpgentype.NewFakeClusterClientWithList[*certificatesv1alpha1.PodCertificateRequest, *certificatesv1alpha1.PodCertificateRequestList]( - fake.Fake, - certificatesv1alpha1.SchemeGroupVersion.WithResource("podcertificaterequests"), - certificatesv1alpha1.SchemeGroupVersion.WithKind("PodCertificateRequest"), - func() *certificatesv1alpha1.PodCertificateRequest { - return &certificatesv1alpha1.PodCertificateRequest{} - }, - func() *certificatesv1alpha1.PodCertificateRequestList { - return &certificatesv1alpha1.PodCertificateRequestList{} - }, - func(dst, src *certificatesv1alpha1.PodCertificateRequestList) { dst.ListMeta = src.ListMeta }, - func(list *certificatesv1alpha1.PodCertificateRequestList) []*certificatesv1alpha1.PodCertificateRequest { - return kcpgentype.ToPointerSlice(list.Items) - }, - func(list *certificatesv1alpha1.PodCertificateRequestList, items []*certificatesv1alpha1.PodCertificateRequest) { - list.Items = kcpgentype.FromPointerSlice(items) - }, - ), - fake.Fake, - } -} - -func (c *podCertificateRequestClusterClient) Cluster(cluster logicalcluster.Path) typedkcpcertificatesv1alpha1.PodCertificateRequestsNamespacer { - return &podCertificateRequestNamespacer{Fake: c.Fake, ClusterPath: cluster} -} - -type podCertificateRequestNamespacer struct { - *kcptesting.Fake - ClusterPath logicalcluster.Path -} - -func (n *podCertificateRequestNamespacer) Namespace(namespace string) typedcertificatesv1alpha1.PodCertificateRequestInterface { - return newFakePodCertificateRequestClient(n.Fake, namespace, n.ClusterPath) -} - -// podCertificateRequestScopedClient implements PodCertificateRequestInterface -type podCertificateRequestScopedClient struct { - *kcpgentype.FakeClientWithListAndApply[*certificatesv1alpha1.PodCertificateRequest, *certificatesv1alpha1.PodCertificateRequestList, *v1alpha1.PodCertificateRequestApplyConfiguration] - Fake *kcptesting.Fake - ClusterPath logicalcluster.Path -} - -func newFakePodCertificateRequestClient(fake *kcptesting.Fake, namespace string, clusterPath logicalcluster.Path) typedcertificatesv1alpha1.PodCertificateRequestInterface { - return &podCertificateRequestScopedClient{ - kcpgentype.NewFakeClientWithListAndApply[*certificatesv1alpha1.PodCertificateRequest, *certificatesv1alpha1.PodCertificateRequestList, *v1alpha1.PodCertificateRequestApplyConfiguration]( - fake, - clusterPath, - namespace, - certificatesv1alpha1.SchemeGroupVersion.WithResource("podcertificaterequests"), - certificatesv1alpha1.SchemeGroupVersion.WithKind("PodCertificateRequest"), - func() *certificatesv1alpha1.PodCertificateRequest { - return &certificatesv1alpha1.PodCertificateRequest{} - }, - func() *certificatesv1alpha1.PodCertificateRequestList { - return &certificatesv1alpha1.PodCertificateRequestList{} - }, - func(dst, src *certificatesv1alpha1.PodCertificateRequestList) { dst.ListMeta = src.ListMeta }, - func(list *certificatesv1alpha1.PodCertificateRequestList) []*certificatesv1alpha1.PodCertificateRequest { - return kcpgentype.ToPointerSlice(list.Items) - }, - func(list *certificatesv1alpha1.PodCertificateRequestList, items []*certificatesv1alpha1.PodCertificateRequest) { - list.Items = kcpgentype.FromPointerSlice(items) - }, - ), - fake, - clusterPath, - } -} diff --git a/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/certificates/v1alpha1/generated_expansion.go b/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/certificates/v1alpha1/generated_expansion.go index efb8d4420e9..55c73dcc743 100644 --- a/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/certificates/v1alpha1/generated_expansion.go +++ b/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/certificates/v1alpha1/generated_expansion.go @@ -19,5 +19,3 @@ limitations under the License. package v1alpha1 type ClusterTrustBundleClusterExpansion interface{} - -type PodCertificateRequestClusterExpansion interface{} diff --git a/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/certificates/v1beta1/certificates_client.go b/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/certificates/v1beta1/certificates_client.go index 8571730c9af..3067bdd86cc 100644 --- a/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/certificates/v1beta1/certificates_client.go +++ b/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/certificates/v1beta1/certificates_client.go @@ -34,6 +34,7 @@ type CertificatesV1beta1ClusterInterface interface { CertificatesV1beta1ClusterScoper CertificateSigningRequestsClusterGetter ClusterTrustBundlesClusterGetter + PodCertificateRequestsClusterGetter } type CertificatesV1beta1ClusterScoper interface { @@ -60,6 +61,10 @@ func (c *CertificatesV1beta1ClusterClient) ClusterTrustBundles() ClusterTrustBun return &clusterTrustBundlesClusterInterface{clientCache: c.clientCache} } +func (c *CertificatesV1beta1ClusterClient) PodCertificateRequests() PodCertificateRequestClusterInterface { + return &podCertificateRequestsClusterInterface{clientCache: c.clientCache} +} + // NewForConfig creates a new CertificatesV1beta1ClusterClient for the given config. // NewForConfig is equivalent to NewForConfigAndClient(c, httpClient), // where httpClient was generated with rest.HTTPClientFor(c). diff --git a/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/certificates/v1beta1/fake/certificates_client.go b/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/certificates/v1beta1/fake/certificates_client.go index a129138ea14..d8c10809fca 100644 --- a/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/certificates/v1beta1/fake/certificates_client.go +++ b/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/certificates/v1beta1/fake/certificates_client.go @@ -48,6 +48,10 @@ func (c *CertificatesV1beta1ClusterClient) ClusterTrustBundles() kcpcertificates return newFakeClusterTrustBundleClusterClient(c) } +func (c *CertificatesV1beta1ClusterClient) PodCertificateRequests() kcpcertificatesv1beta1.PodCertificateRequestClusterInterface { + return newFakePodCertificateRequestClusterClient(c) +} + type CertificatesV1beta1Client struct { *kcptesting.Fake ClusterPath logicalcluster.Path @@ -61,6 +65,10 @@ func (c *CertificatesV1beta1Client) ClusterTrustBundles() certificatesv1beta1.Cl return newFakeClusterTrustBundleClient(c.Fake, c.ClusterPath) } +func (c *CertificatesV1beta1Client) PodCertificateRequests(namespace string) certificatesv1beta1.PodCertificateRequestInterface { + return newFakePodCertificateRequestClient(c.Fake, namespace, c.ClusterPath) +} + // RESTClient returns a RESTClient that is used to communicate // with API server by this client implementation. func (c *CertificatesV1beta1Client) RESTClient() rest.Interface { diff --git a/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/certificates/v1beta1/fake/podcertificaterequest.go b/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/certificates/v1beta1/fake/podcertificaterequest.go new file mode 100644 index 00000000000..4d254150fba --- /dev/null +++ b/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/certificates/v1beta1/fake/podcertificaterequest.go @@ -0,0 +1,103 @@ +/* +Copyright The kcp Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by cluster-client-gen. DO NOT EDIT. + +package fake + +import ( + certificatesv1beta1 "k8s.io/api/certificates/v1beta1" + v1beta1 "k8s.io/client-go/applyconfigurations/certificates/v1beta1" + typedcertificatesv1beta1 "k8s.io/client-go/kubernetes/typed/certificates/v1beta1" + + typedkcpcertificatesv1beta1 "github.com/kcp-dev/client-go/kubernetes/typed/certificates/v1beta1" + kcpgentype "github.com/kcp-dev/client-go/third_party/k8s.io/client-go/gentype" + kcptesting "github.com/kcp-dev/client-go/third_party/k8s.io/client-go/testing" + "github.com/kcp-dev/logicalcluster/v3" +) + +// podCertificateRequestClusterClient implements PodCertificateRequestClusterInterface +type podCertificateRequestClusterClient struct { + *kcpgentype.FakeClusterClientWithList[*certificatesv1beta1.PodCertificateRequest, *certificatesv1beta1.PodCertificateRequestList] + Fake *kcptesting.Fake +} + +func newFakePodCertificateRequestClusterClient(fake *CertificatesV1beta1ClusterClient) typedkcpcertificatesv1beta1.PodCertificateRequestClusterInterface { + return &podCertificateRequestClusterClient{ + kcpgentype.NewFakeClusterClientWithList[*certificatesv1beta1.PodCertificateRequest, *certificatesv1beta1.PodCertificateRequestList]( + fake.Fake, + certificatesv1beta1.SchemeGroupVersion.WithResource("podcertificaterequests"), + certificatesv1beta1.SchemeGroupVersion.WithKind("PodCertificateRequest"), + func() *certificatesv1beta1.PodCertificateRequest { return &certificatesv1beta1.PodCertificateRequest{} }, + func() *certificatesv1beta1.PodCertificateRequestList { + return &certificatesv1beta1.PodCertificateRequestList{} + }, + func(dst, src *certificatesv1beta1.PodCertificateRequestList) { dst.ListMeta = src.ListMeta }, + func(list *certificatesv1beta1.PodCertificateRequestList) []*certificatesv1beta1.PodCertificateRequest { + return kcpgentype.ToPointerSlice(list.Items) + }, + func(list *certificatesv1beta1.PodCertificateRequestList, items []*certificatesv1beta1.PodCertificateRequest) { + list.Items = kcpgentype.FromPointerSlice(items) + }, + ), + fake.Fake, + } +} + +func (c *podCertificateRequestClusterClient) Cluster(cluster logicalcluster.Path) typedkcpcertificatesv1beta1.PodCertificateRequestsNamespacer { + return &podCertificateRequestNamespacer{Fake: c.Fake, ClusterPath: cluster} +} + +type podCertificateRequestNamespacer struct { + *kcptesting.Fake + ClusterPath logicalcluster.Path +} + +func (n *podCertificateRequestNamespacer) Namespace(namespace string) typedcertificatesv1beta1.PodCertificateRequestInterface { + return newFakePodCertificateRequestClient(n.Fake, namespace, n.ClusterPath) +} + +// podCertificateRequestScopedClient implements PodCertificateRequestInterface +type podCertificateRequestScopedClient struct { + *kcpgentype.FakeClientWithListAndApply[*certificatesv1beta1.PodCertificateRequest, *certificatesv1beta1.PodCertificateRequestList, *v1beta1.PodCertificateRequestApplyConfiguration] + Fake *kcptesting.Fake + ClusterPath logicalcluster.Path +} + +func newFakePodCertificateRequestClient(fake *kcptesting.Fake, namespace string, clusterPath logicalcluster.Path) typedcertificatesv1beta1.PodCertificateRequestInterface { + return &podCertificateRequestScopedClient{ + kcpgentype.NewFakeClientWithListAndApply[*certificatesv1beta1.PodCertificateRequest, *certificatesv1beta1.PodCertificateRequestList, *v1beta1.PodCertificateRequestApplyConfiguration]( + fake, + clusterPath, + namespace, + certificatesv1beta1.SchemeGroupVersion.WithResource("podcertificaterequests"), + certificatesv1beta1.SchemeGroupVersion.WithKind("PodCertificateRequest"), + func() *certificatesv1beta1.PodCertificateRequest { return &certificatesv1beta1.PodCertificateRequest{} }, + func() *certificatesv1beta1.PodCertificateRequestList { + return &certificatesv1beta1.PodCertificateRequestList{} + }, + func(dst, src *certificatesv1beta1.PodCertificateRequestList) { dst.ListMeta = src.ListMeta }, + func(list *certificatesv1beta1.PodCertificateRequestList) []*certificatesv1beta1.PodCertificateRequest { + return kcpgentype.ToPointerSlice(list.Items) + }, + func(list *certificatesv1beta1.PodCertificateRequestList, items []*certificatesv1beta1.PodCertificateRequest) { + list.Items = kcpgentype.FromPointerSlice(items) + }, + ), + fake, + clusterPath, + } +} diff --git a/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/certificates/v1beta1/generated_expansion.go b/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/certificates/v1beta1/generated_expansion.go index c5871c4120d..def12abf86e 100644 --- a/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/certificates/v1beta1/generated_expansion.go +++ b/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/certificates/v1beta1/generated_expansion.go @@ -21,3 +21,5 @@ package v1beta1 type CertificateSigningRequestClusterExpansion interface{} type ClusterTrustBundleClusterExpansion interface{} + +type PodCertificateRequestClusterExpansion interface{} diff --git a/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/certificates/v1alpha1/podcertificaterequest.go b/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/certificates/v1beta1/podcertificaterequest.go similarity index 81% rename from staging/src/github.com/kcp-dev/client-go/kubernetes/typed/certificates/v1alpha1/podcertificaterequest.go rename to staging/src/github.com/kcp-dev/client-go/kubernetes/typed/certificates/v1beta1/podcertificaterequest.go index 56af51f8f7d..200bd2b869a 100644 --- a/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/certificates/v1alpha1/podcertificaterequest.go +++ b/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/certificates/v1beta1/podcertificaterequest.go @@ -16,15 +16,15 @@ limitations under the License. // Code generated by cluster-client-gen. DO NOT EDIT. -package v1alpha1 +package v1beta1 import ( context "context" - certificatesv1alpha1 "k8s.io/api/certificates/v1alpha1" + certificatesv1beta1 "k8s.io/api/certificates/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" watch "k8s.io/apimachinery/pkg/watch" - typedcertificatesv1alpha1 "k8s.io/client-go/kubernetes/typed/certificates/v1alpha1" + typedcertificatesv1beta1 "k8s.io/client-go/kubernetes/typed/certificates/v1beta1" kcpclient "github.com/kcp-dev/apimachinery/v2/pkg/client" "github.com/kcp-dev/logicalcluster/v3" @@ -40,13 +40,13 @@ type PodCertificateRequestsClusterGetter interface { // or scope down to one cluster and return a PodCertificateRequestsNamespacer. type PodCertificateRequestClusterInterface interface { Cluster(logicalcluster.Path) PodCertificateRequestsNamespacer - List(ctx context.Context, opts v1.ListOptions) (*certificatesv1alpha1.PodCertificateRequestList, error) + List(ctx context.Context, opts v1.ListOptions) (*certificatesv1beta1.PodCertificateRequestList, error) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) PodCertificateRequestClusterExpansion } type podCertificateRequestsClusterInterface struct { - clientCache kcpclient.Cache[*typedcertificatesv1alpha1.CertificatesV1alpha1Client] + clientCache kcpclient.Cache[*typedcertificatesv1beta1.CertificatesV1beta1Client] } // Cluster scopes the client down to a particular cluster. @@ -59,7 +59,7 @@ func (c *podCertificateRequestsClusterInterface) Cluster(clusterPath logicalclus } // List returns the entire collection of all PodCertificateRequests across all clusters. -func (c *podCertificateRequestsClusterInterface) List(ctx context.Context, opts v1.ListOptions) (*certificatesv1alpha1.PodCertificateRequestList, error) { +func (c *podCertificateRequestsClusterInterface) List(ctx context.Context, opts v1.ListOptions) (*certificatesv1beta1.PodCertificateRequestList, error) { return c.clientCache.ClusterOrDie(logicalcluster.Wildcard).PodCertificateRequests(v1.NamespaceAll).List(ctx, opts) } @@ -68,16 +68,16 @@ func (c *podCertificateRequestsClusterInterface) Watch(ctx context.Context, opts return c.clientCache.ClusterOrDie(logicalcluster.Wildcard).PodCertificateRequests(v1.NamespaceAll).Watch(ctx, opts) } -// PodCertificateRequestsNamespacer can scope to objects within a namespace, returning a typedcertificatesv1alpha1.PodCertificateRequestInterface. +// PodCertificateRequestsNamespacer can scope to objects within a namespace, returning a typedcertificatesv1beta1.PodCertificateRequestInterface. type PodCertificateRequestsNamespacer interface { - Namespace(string) typedcertificatesv1alpha1.PodCertificateRequestInterface + Namespace(string) typedcertificatesv1beta1.PodCertificateRequestInterface } type podCertificateRequestsNamespacer struct { - clientCache kcpclient.Cache[*typedcertificatesv1alpha1.CertificatesV1alpha1Client] + clientCache kcpclient.Cache[*typedcertificatesv1beta1.CertificatesV1beta1Client] clusterPath logicalcluster.Path } -func (n *podCertificateRequestsNamespacer) Namespace(namespace string) typedcertificatesv1alpha1.PodCertificateRequestInterface { +func (n *podCertificateRequestsNamespacer) Namespace(namespace string) typedcertificatesv1beta1.PodCertificateRequestInterface { return n.clientCache.ClusterOrDie(n.clusterPath).PodCertificateRequests(namespace) } diff --git a/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/scheduling/v1alpha1/fake/scheduling_client.go b/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/scheduling/v1alpha1/fake/scheduling_client.go index e676001fd53..f94dbf67a78 100644 --- a/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/scheduling/v1alpha1/fake/scheduling_client.go +++ b/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/scheduling/v1alpha1/fake/scheduling_client.go @@ -44,6 +44,10 @@ func (c *SchedulingV1alpha1ClusterClient) PriorityClasses() kcpschedulingv1alpha return newFakePriorityClassClusterClient(c) } +func (c *SchedulingV1alpha1ClusterClient) Workloads() kcpschedulingv1alpha1.WorkloadClusterInterface { + return newFakeWorkloadClusterClient(c) +} + type SchedulingV1alpha1Client struct { *kcptesting.Fake ClusterPath logicalcluster.Path @@ -53,6 +57,10 @@ func (c *SchedulingV1alpha1Client) PriorityClasses() schedulingv1alpha1.Priority return newFakePriorityClassClient(c.Fake, c.ClusterPath) } +func (c *SchedulingV1alpha1Client) Workloads(namespace string) schedulingv1alpha1.WorkloadInterface { + return newFakeWorkloadClient(c.Fake, namespace, c.ClusterPath) +} + // RESTClient returns a RESTClient that is used to communicate // with API server by this client implementation. func (c *SchedulingV1alpha1Client) RESTClient() rest.Interface { diff --git a/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/scheduling/v1alpha1/fake/workload.go b/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/scheduling/v1alpha1/fake/workload.go new file mode 100644 index 00000000000..a3d774e3971 --- /dev/null +++ b/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/scheduling/v1alpha1/fake/workload.go @@ -0,0 +1,99 @@ +/* +Copyright The kcp Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by cluster-client-gen. DO NOT EDIT. + +package fake + +import ( + schedulingv1alpha1 "k8s.io/api/scheduling/v1alpha1" + v1alpha1 "k8s.io/client-go/applyconfigurations/scheduling/v1alpha1" + typedschedulingv1alpha1 "k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1" + + typedkcpschedulingv1alpha1 "github.com/kcp-dev/client-go/kubernetes/typed/scheduling/v1alpha1" + kcpgentype "github.com/kcp-dev/client-go/third_party/k8s.io/client-go/gentype" + kcptesting "github.com/kcp-dev/client-go/third_party/k8s.io/client-go/testing" + "github.com/kcp-dev/logicalcluster/v3" +) + +// workloadClusterClient implements WorkloadClusterInterface +type workloadClusterClient struct { + *kcpgentype.FakeClusterClientWithList[*schedulingv1alpha1.Workload, *schedulingv1alpha1.WorkloadList] + Fake *kcptesting.Fake +} + +func newFakeWorkloadClusterClient(fake *SchedulingV1alpha1ClusterClient) typedkcpschedulingv1alpha1.WorkloadClusterInterface { + return &workloadClusterClient{ + kcpgentype.NewFakeClusterClientWithList[*schedulingv1alpha1.Workload, *schedulingv1alpha1.WorkloadList]( + fake.Fake, + schedulingv1alpha1.SchemeGroupVersion.WithResource("workloads"), + schedulingv1alpha1.SchemeGroupVersion.WithKind("Workload"), + func() *schedulingv1alpha1.Workload { return &schedulingv1alpha1.Workload{} }, + func() *schedulingv1alpha1.WorkloadList { return &schedulingv1alpha1.WorkloadList{} }, + func(dst, src *schedulingv1alpha1.WorkloadList) { dst.ListMeta = src.ListMeta }, + func(list *schedulingv1alpha1.WorkloadList) []*schedulingv1alpha1.Workload { + return kcpgentype.ToPointerSlice(list.Items) + }, + func(list *schedulingv1alpha1.WorkloadList, items []*schedulingv1alpha1.Workload) { + list.Items = kcpgentype.FromPointerSlice(items) + }, + ), + fake.Fake, + } +} + +func (c *workloadClusterClient) Cluster(cluster logicalcluster.Path) typedkcpschedulingv1alpha1.WorkloadsNamespacer { + return &workloadNamespacer{Fake: c.Fake, ClusterPath: cluster} +} + +type workloadNamespacer struct { + *kcptesting.Fake + ClusterPath logicalcluster.Path +} + +func (n *workloadNamespacer) Namespace(namespace string) typedschedulingv1alpha1.WorkloadInterface { + return newFakeWorkloadClient(n.Fake, namespace, n.ClusterPath) +} + +// workloadScopedClient implements WorkloadInterface +type workloadScopedClient struct { + *kcpgentype.FakeClientWithListAndApply[*schedulingv1alpha1.Workload, *schedulingv1alpha1.WorkloadList, *v1alpha1.WorkloadApplyConfiguration] + Fake *kcptesting.Fake + ClusterPath logicalcluster.Path +} + +func newFakeWorkloadClient(fake *kcptesting.Fake, namespace string, clusterPath logicalcluster.Path) typedschedulingv1alpha1.WorkloadInterface { + return &workloadScopedClient{ + kcpgentype.NewFakeClientWithListAndApply[*schedulingv1alpha1.Workload, *schedulingv1alpha1.WorkloadList, *v1alpha1.WorkloadApplyConfiguration]( + fake, + clusterPath, + namespace, + schedulingv1alpha1.SchemeGroupVersion.WithResource("workloads"), + schedulingv1alpha1.SchemeGroupVersion.WithKind("Workload"), + func() *schedulingv1alpha1.Workload { return &schedulingv1alpha1.Workload{} }, + func() *schedulingv1alpha1.WorkloadList { return &schedulingv1alpha1.WorkloadList{} }, + func(dst, src *schedulingv1alpha1.WorkloadList) { dst.ListMeta = src.ListMeta }, + func(list *schedulingv1alpha1.WorkloadList) []*schedulingv1alpha1.Workload { + return kcpgentype.ToPointerSlice(list.Items) + }, + func(list *schedulingv1alpha1.WorkloadList, items []*schedulingv1alpha1.Workload) { + list.Items = kcpgentype.FromPointerSlice(items) + }, + ), + fake, + clusterPath, + } +} diff --git a/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/scheduling/v1alpha1/generated_expansion.go b/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/scheduling/v1alpha1/generated_expansion.go index 0b359f4605d..a1931effad0 100644 --- a/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/scheduling/v1alpha1/generated_expansion.go +++ b/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/scheduling/v1alpha1/generated_expansion.go @@ -19,3 +19,5 @@ limitations under the License. package v1alpha1 type PriorityClassClusterExpansion interface{} + +type WorkloadClusterExpansion interface{} diff --git a/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/scheduling/v1alpha1/scheduling_client.go b/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/scheduling/v1alpha1/scheduling_client.go index 4ce21871f64..73a2f457b11 100644 --- a/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/scheduling/v1alpha1/scheduling_client.go +++ b/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/scheduling/v1alpha1/scheduling_client.go @@ -33,6 +33,7 @@ import ( type SchedulingV1alpha1ClusterInterface interface { SchedulingV1alpha1ClusterScoper PriorityClassesClusterGetter + WorkloadsClusterGetter } type SchedulingV1alpha1ClusterScoper interface { @@ -55,6 +56,10 @@ func (c *SchedulingV1alpha1ClusterClient) PriorityClasses() PriorityClassCluster return &priorityClassesClusterInterface{clientCache: c.clientCache} } +func (c *SchedulingV1alpha1ClusterClient) Workloads() WorkloadClusterInterface { + return &workloadsClusterInterface{clientCache: c.clientCache} +} + // NewForConfig creates a new SchedulingV1alpha1ClusterClient for the given config. // NewForConfig is equivalent to NewForConfigAndClient(c, httpClient), // where httpClient was generated with rest.HTTPClientFor(c). diff --git a/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/scheduling/v1alpha1/workload.go b/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/scheduling/v1alpha1/workload.go new file mode 100644 index 00000000000..cbb8b11fc1e --- /dev/null +++ b/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/scheduling/v1alpha1/workload.go @@ -0,0 +1,83 @@ +/* +Copyright The kcp Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by cluster-client-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + context "context" + + schedulingv1alpha1 "k8s.io/api/scheduling/v1alpha1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + watch "k8s.io/apimachinery/pkg/watch" + typedschedulingv1alpha1 "k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1" + + kcpclient "github.com/kcp-dev/apimachinery/v2/pkg/client" + "github.com/kcp-dev/logicalcluster/v3" +) + +// WorkloadsClusterGetter has a method to return a WorkloadClusterInterface. +// A group's cluster client should implement this interface. +type WorkloadsClusterGetter interface { + Workloads() WorkloadClusterInterface +} + +// WorkloadClusterInterface can operate on Workloads across all clusters, +// or scope down to one cluster and return a WorkloadsNamespacer. +type WorkloadClusterInterface interface { + Cluster(logicalcluster.Path) WorkloadsNamespacer + List(ctx context.Context, opts v1.ListOptions) (*schedulingv1alpha1.WorkloadList, error) + Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) + WorkloadClusterExpansion +} + +type workloadsClusterInterface struct { + clientCache kcpclient.Cache[*typedschedulingv1alpha1.SchedulingV1alpha1Client] +} + +// Cluster scopes the client down to a particular cluster. +func (c *workloadsClusterInterface) Cluster(clusterPath logicalcluster.Path) WorkloadsNamespacer { + if clusterPath == logicalcluster.Wildcard { + panic("A specific cluster must be provided when scoping, not the wildcard.") + } + + return &workloadsNamespacer{clientCache: c.clientCache, clusterPath: clusterPath} +} + +// List returns the entire collection of all Workloads across all clusters. +func (c *workloadsClusterInterface) List(ctx context.Context, opts v1.ListOptions) (*schedulingv1alpha1.WorkloadList, error) { + return c.clientCache.ClusterOrDie(logicalcluster.Wildcard).Workloads(v1.NamespaceAll).List(ctx, opts) +} + +// Watch begins to watch all Workloads across all clusters. +func (c *workloadsClusterInterface) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { + return c.clientCache.ClusterOrDie(logicalcluster.Wildcard).Workloads(v1.NamespaceAll).Watch(ctx, opts) +} + +// WorkloadsNamespacer can scope to objects within a namespace, returning a typedschedulingv1alpha1.WorkloadInterface. +type WorkloadsNamespacer interface { + Namespace(string) typedschedulingv1alpha1.WorkloadInterface +} + +type workloadsNamespacer struct { + clientCache kcpclient.Cache[*typedschedulingv1alpha1.SchedulingV1alpha1Client] + clusterPath logicalcluster.Path +} + +func (n *workloadsNamespacer) Namespace(namespace string) typedschedulingv1alpha1.WorkloadInterface { + return n.clientCache.ClusterOrDie(n.clusterPath).Workloads(namespace) +} diff --git a/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/storagemigration/v1alpha1/fake/storageversionmigration.go b/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/storagemigration/v1alpha1/fake/storageversionmigration.go deleted file mode 100644 index 916b4db104a..00000000000 --- a/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/storagemigration/v1alpha1/fake/storageversionmigration.go +++ /dev/null @@ -1,98 +0,0 @@ -/* -Copyright The kcp Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by cluster-client-gen. DO NOT EDIT. - -package fake - -import ( - storagemigrationv1alpha1 "k8s.io/api/storagemigration/v1alpha1" - v1alpha1 "k8s.io/client-go/applyconfigurations/storagemigration/v1alpha1" - typedstoragemigrationv1alpha1 "k8s.io/client-go/kubernetes/typed/storagemigration/v1alpha1" - - typedkcpstoragemigrationv1alpha1 "github.com/kcp-dev/client-go/kubernetes/typed/storagemigration/v1alpha1" - kcpgentype "github.com/kcp-dev/client-go/third_party/k8s.io/client-go/gentype" - kcptesting "github.com/kcp-dev/client-go/third_party/k8s.io/client-go/testing" - "github.com/kcp-dev/logicalcluster/v3" -) - -// storageVersionMigrationClusterClient implements StorageVersionMigrationClusterInterface -type storageVersionMigrationClusterClient struct { - *kcpgentype.FakeClusterClientWithList[*storagemigrationv1alpha1.StorageVersionMigration, *storagemigrationv1alpha1.StorageVersionMigrationList] - Fake *kcptesting.Fake -} - -func newFakeStorageVersionMigrationClusterClient(fake *StoragemigrationV1alpha1ClusterClient) typedkcpstoragemigrationv1alpha1.StorageVersionMigrationClusterInterface { - return &storageVersionMigrationClusterClient{ - kcpgentype.NewFakeClusterClientWithList[*storagemigrationv1alpha1.StorageVersionMigration, *storagemigrationv1alpha1.StorageVersionMigrationList]( - fake.Fake, - storagemigrationv1alpha1.SchemeGroupVersion.WithResource("storageversionmigrations"), - storagemigrationv1alpha1.SchemeGroupVersion.WithKind("StorageVersionMigration"), - func() *storagemigrationv1alpha1.StorageVersionMigration { - return &storagemigrationv1alpha1.StorageVersionMigration{} - }, - func() *storagemigrationv1alpha1.StorageVersionMigrationList { - return &storagemigrationv1alpha1.StorageVersionMigrationList{} - }, - func(dst, src *storagemigrationv1alpha1.StorageVersionMigrationList) { dst.ListMeta = src.ListMeta }, - func(list *storagemigrationv1alpha1.StorageVersionMigrationList) []*storagemigrationv1alpha1.StorageVersionMigration { - return kcpgentype.ToPointerSlice(list.Items) - }, - func(list *storagemigrationv1alpha1.StorageVersionMigrationList, items []*storagemigrationv1alpha1.StorageVersionMigration) { - list.Items = kcpgentype.FromPointerSlice(items) - }, - ), - fake.Fake, - } -} - -func (c *storageVersionMigrationClusterClient) Cluster(cluster logicalcluster.Path) typedstoragemigrationv1alpha1.StorageVersionMigrationInterface { - return newFakeStorageVersionMigrationClient(c.Fake, cluster) -} - -// storageVersionMigrationScopedClient implements StorageVersionMigrationInterface -type storageVersionMigrationScopedClient struct { - *kcpgentype.FakeClientWithListAndApply[*storagemigrationv1alpha1.StorageVersionMigration, *storagemigrationv1alpha1.StorageVersionMigrationList, *v1alpha1.StorageVersionMigrationApplyConfiguration] - Fake *kcptesting.Fake - ClusterPath logicalcluster.Path -} - -func newFakeStorageVersionMigrationClient(fake *kcptesting.Fake, clusterPath logicalcluster.Path) typedstoragemigrationv1alpha1.StorageVersionMigrationInterface { - return &storageVersionMigrationScopedClient{ - kcpgentype.NewFakeClientWithListAndApply[*storagemigrationv1alpha1.StorageVersionMigration, *storagemigrationv1alpha1.StorageVersionMigrationList, *v1alpha1.StorageVersionMigrationApplyConfiguration]( - fake, - clusterPath, - "", - storagemigrationv1alpha1.SchemeGroupVersion.WithResource("storageversionmigrations"), - storagemigrationv1alpha1.SchemeGroupVersion.WithKind("StorageVersionMigration"), - func() *storagemigrationv1alpha1.StorageVersionMigration { - return &storagemigrationv1alpha1.StorageVersionMigration{} - }, - func() *storagemigrationv1alpha1.StorageVersionMigrationList { - return &storagemigrationv1alpha1.StorageVersionMigrationList{} - }, - func(dst, src *storagemigrationv1alpha1.StorageVersionMigrationList) { dst.ListMeta = src.ListMeta }, - func(list *storagemigrationv1alpha1.StorageVersionMigrationList) []*storagemigrationv1alpha1.StorageVersionMigration { - return kcpgentype.ToPointerSlice(list.Items) - }, - func(list *storagemigrationv1alpha1.StorageVersionMigrationList, items []*storagemigrationv1alpha1.StorageVersionMigration) { - list.Items = kcpgentype.FromPointerSlice(items) - }, - ), - fake, - clusterPath, - } -} diff --git a/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/storagemigration/v1alpha1/doc.go b/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/storagemigration/v1beta1/doc.go similarity index 97% rename from staging/src/github.com/kcp-dev/client-go/kubernetes/typed/storagemigration/v1alpha1/doc.go rename to staging/src/github.com/kcp-dev/client-go/kubernetes/typed/storagemigration/v1beta1/doc.go index 3e873237924..831d398ffe2 100644 --- a/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/storagemigration/v1alpha1/doc.go +++ b/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/storagemigration/v1beta1/doc.go @@ -17,4 +17,4 @@ limitations under the License. // Code generated by cluster-client-gen. DO NOT EDIT. // This package has the automatically generated typed clients. -package v1alpha1 +package v1beta1 diff --git a/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/storagemigration/v1alpha1/fake/doc.go b/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/storagemigration/v1beta1/fake/doc.go similarity index 100% rename from staging/src/github.com/kcp-dev/client-go/kubernetes/typed/storagemigration/v1alpha1/fake/doc.go rename to staging/src/github.com/kcp-dev/client-go/kubernetes/typed/storagemigration/v1beta1/fake/doc.go diff --git a/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/storagemigration/v1alpha1/fake/storagemigration_client.go b/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/storagemigration/v1beta1/fake/storagemigration_client.go similarity index 56% rename from staging/src/github.com/kcp-dev/client-go/kubernetes/typed/storagemigration/v1alpha1/fake/storagemigration_client.go rename to staging/src/github.com/kcp-dev/client-go/kubernetes/typed/storagemigration/v1beta1/fake/storagemigration_client.go index b4d1122dab0..300ff2104fc 100644 --- a/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/storagemigration/v1alpha1/fake/storagemigration_client.go +++ b/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/storagemigration/v1beta1/fake/storagemigration_client.go @@ -19,43 +19,43 @@ limitations under the License. package fake import ( - storagemigrationv1alpha1 "k8s.io/client-go/kubernetes/typed/storagemigration/v1alpha1" + storagemigrationv1beta1 "k8s.io/client-go/kubernetes/typed/storagemigration/v1beta1" rest "k8s.io/client-go/rest" - kcpstoragemigrationv1alpha1 "github.com/kcp-dev/client-go/kubernetes/typed/storagemigration/v1alpha1" + kcpstoragemigrationv1beta1 "github.com/kcp-dev/client-go/kubernetes/typed/storagemigration/v1beta1" kcptesting "github.com/kcp-dev/client-go/third_party/k8s.io/client-go/testing" "github.com/kcp-dev/logicalcluster/v3" ) -var _ kcpstoragemigrationv1alpha1.StoragemigrationV1alpha1ClusterInterface = (*StoragemigrationV1alpha1ClusterClient)(nil) +var _ kcpstoragemigrationv1beta1.StoragemigrationV1beta1ClusterInterface = (*StoragemigrationV1beta1ClusterClient)(nil) -type StoragemigrationV1alpha1ClusterClient struct { +type StoragemigrationV1beta1ClusterClient struct { *kcptesting.Fake } -func (c *StoragemigrationV1alpha1ClusterClient) Cluster(clusterPath logicalcluster.Path) storagemigrationv1alpha1.StoragemigrationV1alpha1Interface { +func (c *StoragemigrationV1beta1ClusterClient) Cluster(clusterPath logicalcluster.Path) storagemigrationv1beta1.StoragemigrationV1beta1Interface { if clusterPath == logicalcluster.Wildcard { panic("A specific cluster must be provided when scoping, not the wildcard.") } - return &StoragemigrationV1alpha1Client{Fake: c.Fake, ClusterPath: clusterPath} + return &StoragemigrationV1beta1Client{Fake: c.Fake, ClusterPath: clusterPath} } -func (c *StoragemigrationV1alpha1ClusterClient) StorageVersionMigrations() kcpstoragemigrationv1alpha1.StorageVersionMigrationClusterInterface { +func (c *StoragemigrationV1beta1ClusterClient) StorageVersionMigrations() kcpstoragemigrationv1beta1.StorageVersionMigrationClusterInterface { return newFakeStorageVersionMigrationClusterClient(c) } -type StoragemigrationV1alpha1Client struct { +type StoragemigrationV1beta1Client struct { *kcptesting.Fake ClusterPath logicalcluster.Path } -func (c *StoragemigrationV1alpha1Client) StorageVersionMigrations() storagemigrationv1alpha1.StorageVersionMigrationInterface { +func (c *StoragemigrationV1beta1Client) StorageVersionMigrations() storagemigrationv1beta1.StorageVersionMigrationInterface { return newFakeStorageVersionMigrationClient(c.Fake, c.ClusterPath) } // RESTClient returns a RESTClient that is used to communicate // with API server by this client implementation. -func (c *StoragemigrationV1alpha1Client) RESTClient() rest.Interface { +func (c *StoragemigrationV1beta1Client) RESTClient() rest.Interface { var ret *rest.RESTClient return ret } diff --git a/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/storagemigration/v1beta1/fake/storageversionmigration.go b/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/storagemigration/v1beta1/fake/storageversionmigration.go new file mode 100644 index 00000000000..40b38d29cb5 --- /dev/null +++ b/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/storagemigration/v1beta1/fake/storageversionmigration.go @@ -0,0 +1,98 @@ +/* +Copyright The kcp Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by cluster-client-gen. DO NOT EDIT. + +package fake + +import ( + storagemigrationv1beta1 "k8s.io/api/storagemigration/v1beta1" + v1beta1 "k8s.io/client-go/applyconfigurations/storagemigration/v1beta1" + typedstoragemigrationv1beta1 "k8s.io/client-go/kubernetes/typed/storagemigration/v1beta1" + + typedkcpstoragemigrationv1beta1 "github.com/kcp-dev/client-go/kubernetes/typed/storagemigration/v1beta1" + kcpgentype "github.com/kcp-dev/client-go/third_party/k8s.io/client-go/gentype" + kcptesting "github.com/kcp-dev/client-go/third_party/k8s.io/client-go/testing" + "github.com/kcp-dev/logicalcluster/v3" +) + +// storageVersionMigrationClusterClient implements StorageVersionMigrationClusterInterface +type storageVersionMigrationClusterClient struct { + *kcpgentype.FakeClusterClientWithList[*storagemigrationv1beta1.StorageVersionMigration, *storagemigrationv1beta1.StorageVersionMigrationList] + Fake *kcptesting.Fake +} + +func newFakeStorageVersionMigrationClusterClient(fake *StoragemigrationV1beta1ClusterClient) typedkcpstoragemigrationv1beta1.StorageVersionMigrationClusterInterface { + return &storageVersionMigrationClusterClient{ + kcpgentype.NewFakeClusterClientWithList[*storagemigrationv1beta1.StorageVersionMigration, *storagemigrationv1beta1.StorageVersionMigrationList]( + fake.Fake, + storagemigrationv1beta1.SchemeGroupVersion.WithResource("storageversionmigrations"), + storagemigrationv1beta1.SchemeGroupVersion.WithKind("StorageVersionMigration"), + func() *storagemigrationv1beta1.StorageVersionMigration { + return &storagemigrationv1beta1.StorageVersionMigration{} + }, + func() *storagemigrationv1beta1.StorageVersionMigrationList { + return &storagemigrationv1beta1.StorageVersionMigrationList{} + }, + func(dst, src *storagemigrationv1beta1.StorageVersionMigrationList) { dst.ListMeta = src.ListMeta }, + func(list *storagemigrationv1beta1.StorageVersionMigrationList) []*storagemigrationv1beta1.StorageVersionMigration { + return kcpgentype.ToPointerSlice(list.Items) + }, + func(list *storagemigrationv1beta1.StorageVersionMigrationList, items []*storagemigrationv1beta1.StorageVersionMigration) { + list.Items = kcpgentype.FromPointerSlice(items) + }, + ), + fake.Fake, + } +} + +func (c *storageVersionMigrationClusterClient) Cluster(cluster logicalcluster.Path) typedstoragemigrationv1beta1.StorageVersionMigrationInterface { + return newFakeStorageVersionMigrationClient(c.Fake, cluster) +} + +// storageVersionMigrationScopedClient implements StorageVersionMigrationInterface +type storageVersionMigrationScopedClient struct { + *kcpgentype.FakeClientWithListAndApply[*storagemigrationv1beta1.StorageVersionMigration, *storagemigrationv1beta1.StorageVersionMigrationList, *v1beta1.StorageVersionMigrationApplyConfiguration] + Fake *kcptesting.Fake + ClusterPath logicalcluster.Path +} + +func newFakeStorageVersionMigrationClient(fake *kcptesting.Fake, clusterPath logicalcluster.Path) typedstoragemigrationv1beta1.StorageVersionMigrationInterface { + return &storageVersionMigrationScopedClient{ + kcpgentype.NewFakeClientWithListAndApply[*storagemigrationv1beta1.StorageVersionMigration, *storagemigrationv1beta1.StorageVersionMigrationList, *v1beta1.StorageVersionMigrationApplyConfiguration]( + fake, + clusterPath, + "", + storagemigrationv1beta1.SchemeGroupVersion.WithResource("storageversionmigrations"), + storagemigrationv1beta1.SchemeGroupVersion.WithKind("StorageVersionMigration"), + func() *storagemigrationv1beta1.StorageVersionMigration { + return &storagemigrationv1beta1.StorageVersionMigration{} + }, + func() *storagemigrationv1beta1.StorageVersionMigrationList { + return &storagemigrationv1beta1.StorageVersionMigrationList{} + }, + func(dst, src *storagemigrationv1beta1.StorageVersionMigrationList) { dst.ListMeta = src.ListMeta }, + func(list *storagemigrationv1beta1.StorageVersionMigrationList) []*storagemigrationv1beta1.StorageVersionMigration { + return kcpgentype.ToPointerSlice(list.Items) + }, + func(list *storagemigrationv1beta1.StorageVersionMigrationList, items []*storagemigrationv1beta1.StorageVersionMigration) { + list.Items = kcpgentype.FromPointerSlice(items) + }, + ), + fake, + clusterPath, + } +} diff --git a/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/storagemigration/v1alpha1/generated_expansion.go b/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/storagemigration/v1beta1/generated_expansion.go similarity index 97% rename from staging/src/github.com/kcp-dev/client-go/kubernetes/typed/storagemigration/v1alpha1/generated_expansion.go rename to staging/src/github.com/kcp-dev/client-go/kubernetes/typed/storagemigration/v1beta1/generated_expansion.go index cbf9fa0578e..c52651205d9 100644 --- a/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/storagemigration/v1alpha1/generated_expansion.go +++ b/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/storagemigration/v1beta1/generated_expansion.go @@ -16,6 +16,6 @@ limitations under the License. // Code generated by cluster-client-gen. DO NOT EDIT. -package v1alpha1 +package v1beta1 type StorageVersionMigrationClusterExpansion interface{} diff --git a/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/storagemigration/v1alpha1/storagemigration_client.go b/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/storagemigration/v1beta1/storagemigration_client.go similarity index 56% rename from staging/src/github.com/kcp-dev/client-go/kubernetes/typed/storagemigration/v1alpha1/storagemigration_client.go rename to staging/src/github.com/kcp-dev/client-go/kubernetes/typed/storagemigration/v1beta1/storagemigration_client.go index 4a4496f5813..d3c46ce9b70 100644 --- a/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/storagemigration/v1alpha1/storagemigration_client.go +++ b/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/storagemigration/v1beta1/storagemigration_client.go @@ -16,13 +16,13 @@ limitations under the License. // Code generated by cluster-client-gen. DO NOT EDIT. -package v1alpha1 +package v1beta1 import ( http "net/http" - apistoragemigrationv1alpha1 "k8s.io/api/storagemigration/v1alpha1" - storagemigrationv1alpha1 "k8s.io/client-go/kubernetes/typed/storagemigration/v1alpha1" + apistoragemigrationv1beta1 "k8s.io/api/storagemigration/v1beta1" + storagemigrationv1beta1 "k8s.io/client-go/kubernetes/typed/storagemigration/v1beta1" rest "k8s.io/client-go/rest" kcpclient "github.com/kcp-dev/apimachinery/v2/pkg/client" @@ -30,35 +30,35 @@ import ( "github.com/kcp-dev/logicalcluster/v3" ) -type StoragemigrationV1alpha1ClusterInterface interface { - StoragemigrationV1alpha1ClusterScoper +type StoragemigrationV1beta1ClusterInterface interface { + StoragemigrationV1beta1ClusterScoper StorageVersionMigrationsClusterGetter } -type StoragemigrationV1alpha1ClusterScoper interface { - Cluster(logicalcluster.Path) storagemigrationv1alpha1.StoragemigrationV1alpha1Interface +type StoragemigrationV1beta1ClusterScoper interface { + Cluster(logicalcluster.Path) storagemigrationv1beta1.StoragemigrationV1beta1Interface } -// StoragemigrationV1alpha1ClusterClient is used to interact with features provided by the storagemigration.k8s.io group. -type StoragemigrationV1alpha1ClusterClient struct { - clientCache kcpclient.Cache[*storagemigrationv1alpha1.StoragemigrationV1alpha1Client] +// StoragemigrationV1beta1ClusterClient is used to interact with features provided by the storagemigration.k8s.io group. +type StoragemigrationV1beta1ClusterClient struct { + clientCache kcpclient.Cache[*storagemigrationv1beta1.StoragemigrationV1beta1Client] } -func (c *StoragemigrationV1alpha1ClusterClient) Cluster(clusterPath logicalcluster.Path) storagemigrationv1alpha1.StoragemigrationV1alpha1Interface { +func (c *StoragemigrationV1beta1ClusterClient) Cluster(clusterPath logicalcluster.Path) storagemigrationv1beta1.StoragemigrationV1beta1Interface { if clusterPath == logicalcluster.Wildcard { panic("A specific cluster must be provided when scoping, not the wildcard.") } return c.clientCache.ClusterOrDie(clusterPath) } -func (c *StoragemigrationV1alpha1ClusterClient) StorageVersionMigrations() StorageVersionMigrationClusterInterface { +func (c *StoragemigrationV1beta1ClusterClient) StorageVersionMigrations() StorageVersionMigrationClusterInterface { return &storageVersionMigrationsClusterInterface{clientCache: c.clientCache} } -// NewForConfig creates a new StoragemigrationV1alpha1ClusterClient for the given config. +// NewForConfig creates a new StoragemigrationV1beta1ClusterClient for the given config. // NewForConfig is equivalent to NewForConfigAndClient(c, httpClient), // where httpClient was generated with rest.HTTPClientFor(c). -func NewForConfig(c *rest.Config) (*StoragemigrationV1alpha1ClusterClient, error) { +func NewForConfig(c *rest.Config) (*StoragemigrationV1beta1ClusterClient, error) { config := *c setConfigDefaults(&config) httpClient, err := rest.HTTPClientFor(&config) @@ -68,22 +68,22 @@ func NewForConfig(c *rest.Config) (*StoragemigrationV1alpha1ClusterClient, error return NewForConfigAndClient(&config, httpClient) } -// NewForConfigAndClient creates a new StoragemigrationV1alpha1ClusterClient for the given config and http client. +// NewForConfigAndClient creates a new StoragemigrationV1beta1ClusterClient for the given config and http client. // Note the http client provided takes precedence over the configured transport values. -func NewForConfigAndClient(c *rest.Config, h *http.Client) (*StoragemigrationV1alpha1ClusterClient, error) { - cache := kcpclient.NewCache(c, h, &kcpclient.Constructor[*storagemigrationv1alpha1.StoragemigrationV1alpha1Client]{ - NewForConfigAndClient: storagemigrationv1alpha1.NewForConfigAndClient, +func NewForConfigAndClient(c *rest.Config, h *http.Client) (*StoragemigrationV1beta1ClusterClient, error) { + cache := kcpclient.NewCache(c, h, &kcpclient.Constructor[*storagemigrationv1beta1.StoragemigrationV1beta1Client]{ + NewForConfigAndClient: storagemigrationv1beta1.NewForConfigAndClient, }) if _, err := cache.Cluster(logicalcluster.Name("root").Path()); err != nil { return nil, err } - return &StoragemigrationV1alpha1ClusterClient{clientCache: cache}, nil + return &StoragemigrationV1beta1ClusterClient{clientCache: cache}, nil } -// NewForConfigOrDie creates a new StoragemigrationV1alpha1ClusterClient for the given config and +// NewForConfigOrDie creates a new StoragemigrationV1beta1ClusterClient for the given config and // panics if there is an error in the config. -func NewForConfigOrDie(c *rest.Config) *StoragemigrationV1alpha1ClusterClient { +func NewForConfigOrDie(c *rest.Config) *StoragemigrationV1beta1ClusterClient { client, err := NewForConfig(c) if err != nil { panic(err) @@ -92,7 +92,7 @@ func NewForConfigOrDie(c *rest.Config) *StoragemigrationV1alpha1ClusterClient { } func setConfigDefaults(config *rest.Config) { - gv := apistoragemigrationv1alpha1.SchemeGroupVersion + gv := apistoragemigrationv1beta1.SchemeGroupVersion config.GroupVersion = &gv config.APIPath = "/apis" config.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(kcpscheme.Scheme, kcpscheme.Codecs).WithoutConversion() diff --git a/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/storagemigration/v1alpha1/storageversionmigration.go b/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/storagemigration/v1beta1/storageversionmigration.go similarity index 77% rename from staging/src/github.com/kcp-dev/client-go/kubernetes/typed/storagemigration/v1alpha1/storageversionmigration.go rename to staging/src/github.com/kcp-dev/client-go/kubernetes/typed/storagemigration/v1beta1/storageversionmigration.go index 8847842d8d8..a351169f2e1 100644 --- a/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/storagemigration/v1alpha1/storageversionmigration.go +++ b/staging/src/github.com/kcp-dev/client-go/kubernetes/typed/storagemigration/v1beta1/storageversionmigration.go @@ -16,15 +16,15 @@ limitations under the License. // Code generated by cluster-client-gen. DO NOT EDIT. -package v1alpha1 +package v1beta1 import ( context "context" - apistoragemigrationv1alpha1 "k8s.io/api/storagemigration/v1alpha1" + apistoragemigrationv1beta1 "k8s.io/api/storagemigration/v1beta1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" watch "k8s.io/apimachinery/pkg/watch" - storagemigrationv1alpha1 "k8s.io/client-go/kubernetes/typed/storagemigration/v1alpha1" + storagemigrationv1beta1 "k8s.io/client-go/kubernetes/typed/storagemigration/v1beta1" kcpclient "github.com/kcp-dev/apimachinery/v2/pkg/client" "github.com/kcp-dev/logicalcluster/v3" @@ -37,20 +37,20 @@ type StorageVersionMigrationsClusterGetter interface { } // StorageVersionMigrationClusterInterface can operate on StorageVersionMigrations across all clusters, -// or scope down to one cluster and return a storagemigrationv1alpha1.StorageVersionMigrationInterface. +// or scope down to one cluster and return a storagemigrationv1beta1.StorageVersionMigrationInterface. type StorageVersionMigrationClusterInterface interface { - Cluster(logicalcluster.Path) storagemigrationv1alpha1.StorageVersionMigrationInterface - List(ctx context.Context, opts v1.ListOptions) (*apistoragemigrationv1alpha1.StorageVersionMigrationList, error) + Cluster(logicalcluster.Path) storagemigrationv1beta1.StorageVersionMigrationInterface + List(ctx context.Context, opts v1.ListOptions) (*apistoragemigrationv1beta1.StorageVersionMigrationList, error) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) StorageVersionMigrationClusterExpansion } type storageVersionMigrationsClusterInterface struct { - clientCache kcpclient.Cache[*storagemigrationv1alpha1.StoragemigrationV1alpha1Client] + clientCache kcpclient.Cache[*storagemigrationv1beta1.StoragemigrationV1beta1Client] } // Cluster scopes the client down to a particular cluster. -func (c *storageVersionMigrationsClusterInterface) Cluster(clusterPath logicalcluster.Path) storagemigrationv1alpha1.StorageVersionMigrationInterface { +func (c *storageVersionMigrationsClusterInterface) Cluster(clusterPath logicalcluster.Path) storagemigrationv1beta1.StorageVersionMigrationInterface { if clusterPath == logicalcluster.Wildcard { panic("A specific cluster must be provided when scoping, not the wildcard.") } @@ -59,7 +59,7 @@ func (c *storageVersionMigrationsClusterInterface) Cluster(clusterPath logicalcl } // List returns the entire collection of all StorageVersionMigrations across all clusters. -func (c *storageVersionMigrationsClusterInterface) List(ctx context.Context, opts v1.ListOptions) (*apistoragemigrationv1alpha1.StorageVersionMigrationList, error) { +func (c *storageVersionMigrationsClusterInterface) List(ctx context.Context, opts v1.ListOptions) (*apistoragemigrationv1beta1.StorageVersionMigrationList, error) { return c.clientCache.ClusterOrDie(logicalcluster.Wildcard).StorageVersionMigrations().List(ctx, opts) } diff --git a/staging/src/github.com/kcp-dev/client-go/listers/certificates/v1alpha1/expansion_generated.go b/staging/src/github.com/kcp-dev/client-go/listers/certificates/v1alpha1/expansion_generated.go index 8d8e0f45e85..c51030467e9 100644 --- a/staging/src/github.com/kcp-dev/client-go/listers/certificates/v1alpha1/expansion_generated.go +++ b/staging/src/github.com/kcp-dev/client-go/listers/certificates/v1alpha1/expansion_generated.go @@ -21,7 +21,3 @@ package v1alpha1 // ClusterTrustBundleClusterListerExpansion allows custom methods to be added to // ClusterTrustBundleClusterLister. type ClusterTrustBundleClusterListerExpansion interface{} - -// PodCertificateRequestClusterListerExpansion allows custom methods to be added to -// PodCertificateRequestClusterLister. -type PodCertificateRequestClusterListerExpansion interface{} diff --git a/staging/src/github.com/kcp-dev/client-go/listers/certificates/v1beta1/expansion_generated.go b/staging/src/github.com/kcp-dev/client-go/listers/certificates/v1beta1/expansion_generated.go index fab72015283..711c016425c 100644 --- a/staging/src/github.com/kcp-dev/client-go/listers/certificates/v1beta1/expansion_generated.go +++ b/staging/src/github.com/kcp-dev/client-go/listers/certificates/v1beta1/expansion_generated.go @@ -25,3 +25,7 @@ type CertificateSigningRequestClusterListerExpansion interface{} // ClusterTrustBundleClusterListerExpansion allows custom methods to be added to // ClusterTrustBundleClusterLister. type ClusterTrustBundleClusterListerExpansion interface{} + +// PodCertificateRequestClusterListerExpansion allows custom methods to be added to +// PodCertificateRequestClusterLister. +type PodCertificateRequestClusterListerExpansion interface{} diff --git a/staging/src/github.com/kcp-dev/client-go/listers/certificates/v1alpha1/podcertificaterequest.go b/staging/src/github.com/kcp-dev/client-go/listers/certificates/v1beta1/podcertificaterequest.go similarity index 69% rename from staging/src/github.com/kcp-dev/client-go/listers/certificates/v1alpha1/podcertificaterequest.go rename to staging/src/github.com/kcp-dev/client-go/listers/certificates/v1beta1/podcertificaterequest.go index af544103e82..991fc8ab21f 100644 --- a/staging/src/github.com/kcp-dev/client-go/listers/certificates/v1alpha1/podcertificaterequest.go +++ b/staging/src/github.com/kcp-dev/client-go/listers/certificates/v1beta1/podcertificaterequest.go @@ -16,12 +16,12 @@ limitations under the License. // Code generated by cluster-lister-gen. DO NOT EDIT. -package v1alpha1 +package v1beta1 import ( - certificatesv1alpha1 "k8s.io/api/certificates/v1alpha1" + certificatesv1beta1 "k8s.io/api/certificates/v1beta1" "k8s.io/apimachinery/pkg/labels" - listerscertificatesv1alpha1 "k8s.io/client-go/listers/certificates/v1alpha1" + listerscertificatesv1beta1 "k8s.io/client-go/listers/certificates/v1beta1" "k8s.io/client-go/tools/cache" kcplisters "github.com/kcp-dev/client-go/third_party/k8s.io/client-go/listers" @@ -34,15 +34,15 @@ import ( type PodCertificateRequestClusterLister interface { // List lists all PodCertificateRequests in the indexer. // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*certificatesv1alpha1.PodCertificateRequest, err error) + List(selector labels.Selector) (ret []*certificatesv1beta1.PodCertificateRequest, err error) // Cluster returns a lister that can list and get PodCertificateRequests in one workspace. - Cluster(clusterName logicalcluster.Name) listerscertificatesv1alpha1.PodCertificateRequestLister + Cluster(clusterName logicalcluster.Name) listerscertificatesv1beta1.PodCertificateRequestLister PodCertificateRequestClusterListerExpansion } // podCertificateRequestClusterLister implements the PodCertificateRequestClusterLister interface. type podCertificateRequestClusterLister struct { - kcplisters.ResourceClusterIndexer[*certificatesv1alpha1.PodCertificateRequest] + kcplisters.ResourceClusterIndexer[*certificatesv1beta1.PodCertificateRequest] } var _ PodCertificateRequestClusterLister = new(podCertificateRequestClusterLister) @@ -55,39 +55,39 @@ var _ PodCertificateRequestClusterLister = new(podCertificateRequestClusterListe // - has the kcpcache.ClusterAndNamespaceIndex as an index func NewPodCertificateRequestClusterLister(indexer cache.Indexer) PodCertificateRequestClusterLister { return &podCertificateRequestClusterLister{ - kcplisters.NewCluster[*certificatesv1alpha1.PodCertificateRequest](indexer, certificatesv1alpha1.Resource("podcertificaterequest")), + kcplisters.NewCluster[*certificatesv1beta1.PodCertificateRequest](indexer, certificatesv1beta1.Resource("podcertificaterequest")), } } // Cluster scopes the lister to one workspace, allowing users to list and get PodCertificateRequests. -func (l *podCertificateRequestClusterLister) Cluster(clusterName logicalcluster.Name) listerscertificatesv1alpha1.PodCertificateRequestLister { +func (l *podCertificateRequestClusterLister) Cluster(clusterName logicalcluster.Name) listerscertificatesv1beta1.PodCertificateRequestLister { return &podCertificateRequestLister{ l.ResourceClusterIndexer.WithCluster(clusterName), } } // podCertificateRequestLister can list all PodCertificateRequests inside a workspace -// or scope down to a listerscertificatesv1alpha1.PodCertificateRequestNamespaceLister for one namespace. +// or scope down to a listerscertificatesv1beta1.PodCertificateRequestNamespaceLister for one namespace. type podCertificateRequestLister struct { - kcplisters.ResourceIndexer[*certificatesv1alpha1.PodCertificateRequest] + kcplisters.ResourceIndexer[*certificatesv1beta1.PodCertificateRequest] } -var _ listerscertificatesv1alpha1.PodCertificateRequestLister = new(podCertificateRequestLister) +var _ listerscertificatesv1beta1.PodCertificateRequestLister = new(podCertificateRequestLister) // PodCertificateRequests returns an object that can list and get PodCertificateRequests in one namespace. -func (l *podCertificateRequestLister) PodCertificateRequests(namespace string) listerscertificatesv1alpha1.PodCertificateRequestNamespaceLister { +func (l *podCertificateRequestLister) PodCertificateRequests(namespace string) listerscertificatesv1beta1.PodCertificateRequestNamespaceLister { return &podCertificateRequestNamespaceLister{ l.ResourceIndexer.WithNamespace(namespace), } } -// podCertificateRequestNamespaceLister implements the listerscertificatesv1alpha1.PodCertificateRequestNamespaceLister +// podCertificateRequestNamespaceLister implements the listerscertificatesv1beta1.PodCertificateRequestNamespaceLister // interface. type podCertificateRequestNamespaceLister struct { - kcplisters.ResourceIndexer[*certificatesv1alpha1.PodCertificateRequest] + kcplisters.ResourceIndexer[*certificatesv1beta1.PodCertificateRequest] } -var _ listerscertificatesv1alpha1.PodCertificateRequestNamespaceLister = new(podCertificateRequestNamespaceLister) +var _ listerscertificatesv1beta1.PodCertificateRequestNamespaceLister = new(podCertificateRequestNamespaceLister) // NewPodCertificateRequestLister returns a new PodCertificateRequestLister. // We assume that the indexer: @@ -95,20 +95,20 @@ var _ listerscertificatesv1alpha1.PodCertificateRequestNamespaceLister = new(pod // - uses kcpcache.MetaClusterNamespaceKeyFunc as the key function // - has the kcpcache.ClusterIndex as an index // - has the kcpcache.ClusterAndNamespaceIndex as an index -func NewPodCertificateRequestLister(indexer cache.Indexer) listerscertificatesv1alpha1.PodCertificateRequestLister { +func NewPodCertificateRequestLister(indexer cache.Indexer) listerscertificatesv1beta1.PodCertificateRequestLister { return &podCertificateRequestLister{ - kcplisters.New[*certificatesv1alpha1.PodCertificateRequest](indexer, certificatesv1alpha1.Resource("podcertificaterequest")), + kcplisters.New[*certificatesv1beta1.PodCertificateRequest](indexer, certificatesv1beta1.Resource("podcertificaterequest")), } } // podCertificateRequestScopedLister can list all PodCertificateRequests inside a workspace -// or scope down to a listerscertificatesv1alpha1.PodCertificateRequestNamespaceLister for one namespace. +// or scope down to a listerscertificatesv1beta1.PodCertificateRequestNamespaceLister for one namespace. type podCertificateRequestScopedLister struct { - kcplisters.ResourceIndexer[*certificatesv1alpha1.PodCertificateRequest] + kcplisters.ResourceIndexer[*certificatesv1beta1.PodCertificateRequest] } // PodCertificateRequests returns an object that can list and get PodCertificateRequests in one namespace. -func (l *podCertificateRequestScopedLister) PodCertificateRequests(namespace string) listerscertificatesv1alpha1.PodCertificateRequestLister { +func (l *podCertificateRequestScopedLister) PodCertificateRequests(namespace string) listerscertificatesv1beta1.PodCertificateRequestLister { return &podCertificateRequestLister{ l.ResourceIndexer.WithNamespace(namespace), } diff --git a/staging/src/github.com/kcp-dev/client-go/listers/scheduling/v1alpha1/expansion_generated.go b/staging/src/github.com/kcp-dev/client-go/listers/scheduling/v1alpha1/expansion_generated.go index bc5994024a9..5b8f482e063 100644 --- a/staging/src/github.com/kcp-dev/client-go/listers/scheduling/v1alpha1/expansion_generated.go +++ b/staging/src/github.com/kcp-dev/client-go/listers/scheduling/v1alpha1/expansion_generated.go @@ -21,3 +21,7 @@ package v1alpha1 // PriorityClassClusterListerExpansion allows custom methods to be added to // PriorityClassClusterLister. type PriorityClassClusterListerExpansion interface{} + +// WorkloadClusterListerExpansion allows custom methods to be added to +// WorkloadClusterLister. +type WorkloadClusterListerExpansion interface{} diff --git a/staging/src/github.com/kcp-dev/client-go/listers/scheduling/v1alpha1/workload.go b/staging/src/github.com/kcp-dev/client-go/listers/scheduling/v1alpha1/workload.go new file mode 100644 index 00000000000..213cd1dd351 --- /dev/null +++ b/staging/src/github.com/kcp-dev/client-go/listers/scheduling/v1alpha1/workload.go @@ -0,0 +1,115 @@ +/* +Copyright The kcp Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by cluster-lister-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + schedulingv1alpha1 "k8s.io/api/scheduling/v1alpha1" + "k8s.io/apimachinery/pkg/labels" + listersschedulingv1alpha1 "k8s.io/client-go/listers/scheduling/v1alpha1" + "k8s.io/client-go/tools/cache" + + kcplisters "github.com/kcp-dev/client-go/third_party/k8s.io/client-go/listers" + "github.com/kcp-dev/logicalcluster/v3" +) + +// WorkloadClusterLister helps list Workloads across all workspaces, +// or scope down to a WorkloadLister for one workspace. +// All objects returned here must be treated as read-only. +type WorkloadClusterLister interface { + // List lists all Workloads in the indexer. + // Objects returned here must be treated as read-only. + List(selector labels.Selector) (ret []*schedulingv1alpha1.Workload, err error) + // Cluster returns a lister that can list and get Workloads in one workspace. + Cluster(clusterName logicalcluster.Name) listersschedulingv1alpha1.WorkloadLister + WorkloadClusterListerExpansion +} + +// workloadClusterLister implements the WorkloadClusterLister interface. +type workloadClusterLister struct { + kcplisters.ResourceClusterIndexer[*schedulingv1alpha1.Workload] +} + +var _ WorkloadClusterLister = new(workloadClusterLister) + +// NewWorkloadClusterLister returns a new WorkloadClusterLister. +// We assume that the indexer: +// - is fed by a cross-workspace LIST+WATCH +// - uses kcpcache.MetaClusterNamespaceKeyFunc as the key function +// - has the kcpcache.ClusterIndex as an index +// - has the kcpcache.ClusterAndNamespaceIndex as an index +func NewWorkloadClusterLister(indexer cache.Indexer) WorkloadClusterLister { + return &workloadClusterLister{ + kcplisters.NewCluster[*schedulingv1alpha1.Workload](indexer, schedulingv1alpha1.Resource("workload")), + } +} + +// Cluster scopes the lister to one workspace, allowing users to list and get Workloads. +func (l *workloadClusterLister) Cluster(clusterName logicalcluster.Name) listersschedulingv1alpha1.WorkloadLister { + return &workloadLister{ + l.ResourceClusterIndexer.WithCluster(clusterName), + } +} + +// workloadLister can list all Workloads inside a workspace +// or scope down to a listersschedulingv1alpha1.WorkloadNamespaceLister for one namespace. +type workloadLister struct { + kcplisters.ResourceIndexer[*schedulingv1alpha1.Workload] +} + +var _ listersschedulingv1alpha1.WorkloadLister = new(workloadLister) + +// Workloads returns an object that can list and get Workloads in one namespace. +func (l *workloadLister) Workloads(namespace string) listersschedulingv1alpha1.WorkloadNamespaceLister { + return &workloadNamespaceLister{ + l.ResourceIndexer.WithNamespace(namespace), + } +} + +// workloadNamespaceLister implements the listersschedulingv1alpha1.WorkloadNamespaceLister +// interface. +type workloadNamespaceLister struct { + kcplisters.ResourceIndexer[*schedulingv1alpha1.Workload] +} + +var _ listersschedulingv1alpha1.WorkloadNamespaceLister = new(workloadNamespaceLister) + +// NewWorkloadLister returns a new WorkloadLister. +// We assume that the indexer: +// - is fed by a cross-workspace LIST+WATCH +// - uses kcpcache.MetaClusterNamespaceKeyFunc as the key function +// - has the kcpcache.ClusterIndex as an index +// - has the kcpcache.ClusterAndNamespaceIndex as an index +func NewWorkloadLister(indexer cache.Indexer) listersschedulingv1alpha1.WorkloadLister { + return &workloadLister{ + kcplisters.New[*schedulingv1alpha1.Workload](indexer, schedulingv1alpha1.Resource("workload")), + } +} + +// workloadScopedLister can list all Workloads inside a workspace +// or scope down to a listersschedulingv1alpha1.WorkloadNamespaceLister for one namespace. +type workloadScopedLister struct { + kcplisters.ResourceIndexer[*schedulingv1alpha1.Workload] +} + +// Workloads returns an object that can list and get Workloads in one namespace. +func (l *workloadScopedLister) Workloads(namespace string) listersschedulingv1alpha1.WorkloadLister { + return &workloadLister{ + l.ResourceIndexer.WithNamespace(namespace), + } +} diff --git a/staging/src/github.com/kcp-dev/client-go/listers/storagemigration/v1alpha1/expansion_generated.go b/staging/src/github.com/kcp-dev/client-go/listers/storagemigration/v1beta1/expansion_generated.go similarity index 97% rename from staging/src/github.com/kcp-dev/client-go/listers/storagemigration/v1alpha1/expansion_generated.go rename to staging/src/github.com/kcp-dev/client-go/listers/storagemigration/v1beta1/expansion_generated.go index 19be3f8b181..ce731230872 100644 --- a/staging/src/github.com/kcp-dev/client-go/listers/storagemigration/v1alpha1/expansion_generated.go +++ b/staging/src/github.com/kcp-dev/client-go/listers/storagemigration/v1beta1/expansion_generated.go @@ -16,7 +16,7 @@ limitations under the License. // Code generated by cluster-lister-gen. DO NOT EDIT. -package v1alpha1 +package v1beta1 // StorageVersionMigrationClusterListerExpansion allows custom methods to be added to // StorageVersionMigrationClusterLister. diff --git a/staging/src/github.com/kcp-dev/client-go/listers/storagemigration/v1alpha1/storageversionmigration.go b/staging/src/github.com/kcp-dev/client-go/listers/storagemigration/v1beta1/storageversionmigration.go similarity index 70% rename from staging/src/github.com/kcp-dev/client-go/listers/storagemigration/v1alpha1/storageversionmigration.go rename to staging/src/github.com/kcp-dev/client-go/listers/storagemigration/v1beta1/storageversionmigration.go index f1028e91015..422295dc7de 100644 --- a/staging/src/github.com/kcp-dev/client-go/listers/storagemigration/v1alpha1/storageversionmigration.go +++ b/staging/src/github.com/kcp-dev/client-go/listers/storagemigration/v1beta1/storageversionmigration.go @@ -16,12 +16,12 @@ limitations under the License. // Code generated by cluster-lister-gen. DO NOT EDIT. -package v1alpha1 +package v1beta1 import ( - storagemigrationv1alpha1 "k8s.io/api/storagemigration/v1alpha1" + storagemigrationv1beta1 "k8s.io/api/storagemigration/v1beta1" "k8s.io/apimachinery/pkg/labels" - listersstoragemigrationv1alpha1 "k8s.io/client-go/listers/storagemigration/v1alpha1" + listersstoragemigrationv1beta1 "k8s.io/client-go/listers/storagemigration/v1beta1" "k8s.io/client-go/tools/cache" kcplisters "github.com/kcp-dev/client-go/third_party/k8s.io/client-go/listers" @@ -34,15 +34,15 @@ import ( type StorageVersionMigrationClusterLister interface { // List lists all StorageVersionMigrations in the indexer. // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*storagemigrationv1alpha1.StorageVersionMigration, err error) + List(selector labels.Selector) (ret []*storagemigrationv1beta1.StorageVersionMigration, err error) // Cluster returns a lister that can list and get StorageVersionMigrations in one workspace. - Cluster(clusterName logicalcluster.Name) listersstoragemigrationv1alpha1.StorageVersionMigrationLister + Cluster(clusterName logicalcluster.Name) listersstoragemigrationv1beta1.StorageVersionMigrationLister StorageVersionMigrationClusterListerExpansion } // storageVersionMigrationClusterLister implements the StorageVersionMigrationClusterLister interface. type storageVersionMigrationClusterLister struct { - kcplisters.ResourceClusterIndexer[*storagemigrationv1alpha1.StorageVersionMigration] + kcplisters.ResourceClusterIndexer[*storagemigrationv1beta1.StorageVersionMigration] } var _ StorageVersionMigrationClusterLister = new(storageVersionMigrationClusterLister) @@ -54,38 +54,38 @@ var _ StorageVersionMigrationClusterLister = new(storageVersionMigrationClusterL // - has the kcpcache.ClusterIndex as an index func NewStorageVersionMigrationClusterLister(indexer cache.Indexer) StorageVersionMigrationClusterLister { return &storageVersionMigrationClusterLister{ - kcplisters.NewCluster[*storagemigrationv1alpha1.StorageVersionMigration](indexer, storagemigrationv1alpha1.Resource("storageversionmigration")), + kcplisters.NewCluster[*storagemigrationv1beta1.StorageVersionMigration](indexer, storagemigrationv1beta1.Resource("storageversionmigration")), } } // Cluster scopes the lister to one workspace, allowing users to list and get StorageVersionMigrations. -func (l *storageVersionMigrationClusterLister) Cluster(clusterName logicalcluster.Name) listersstoragemigrationv1alpha1.StorageVersionMigrationLister { +func (l *storageVersionMigrationClusterLister) Cluster(clusterName logicalcluster.Name) listersstoragemigrationv1beta1.StorageVersionMigrationLister { return &storageVersionMigrationLister{ l.ResourceClusterIndexer.WithCluster(clusterName), } } // storageVersionMigrationLister can list all StorageVersionMigrations inside a workspace -// or scope down to a listersstoragemigrationv1alpha1.StorageVersionMigrationNamespaceLister for one namespace. +// or scope down to a listersstoragemigrationv1beta1.StorageVersionMigrationNamespaceLister for one namespace. type storageVersionMigrationLister struct { - kcplisters.ResourceIndexer[*storagemigrationv1alpha1.StorageVersionMigration] + kcplisters.ResourceIndexer[*storagemigrationv1beta1.StorageVersionMigration] } -var _ listersstoragemigrationv1alpha1.StorageVersionMigrationLister = new(storageVersionMigrationLister) +var _ listersstoragemigrationv1beta1.StorageVersionMigrationLister = new(storageVersionMigrationLister) // NewStorageVersionMigrationLister returns a new StorageVersionMigrationLister. // We assume that the indexer: // - is fed by a cross-workspace LIST+WATCH // - uses kcpcache.MetaClusterNamespaceKeyFunc as the key function // - has the kcpcache.ClusterIndex as an index -func NewStorageVersionMigrationLister(indexer cache.Indexer) listersstoragemigrationv1alpha1.StorageVersionMigrationLister { +func NewStorageVersionMigrationLister(indexer cache.Indexer) listersstoragemigrationv1beta1.StorageVersionMigrationLister { return &storageVersionMigrationLister{ - kcplisters.New[*storagemigrationv1alpha1.StorageVersionMigration](indexer, storagemigrationv1alpha1.Resource("storageversionmigration")), + kcplisters.New[*storagemigrationv1beta1.StorageVersionMigration](indexer, storagemigrationv1beta1.Resource("storageversionmigration")), } } // storageVersionMigrationScopedLister can list all StorageVersionMigrations inside a workspace -// or scope down to a listersstoragemigrationv1alpha1.StorageVersionMigrationNamespaceLister. +// or scope down to a listersstoragemigrationv1beta1.StorageVersionMigrationNamespaceLister. type storageVersionMigrationScopedLister struct { - kcplisters.ResourceIndexer[*storagemigrationv1alpha1.StorageVersionMigration] + kcplisters.ResourceIndexer[*storagemigrationv1beta1.StorageVersionMigration] } diff --git a/staging/src/github.com/kcp-dev/client-go/third_party/k8s.io/client-go/dynamic/fake/simple.go b/staging/src/github.com/kcp-dev/client-go/third_party/k8s.io/client-go/dynamic/fake/simple.go index 2d34e982a93..08d7292db1d 100644 --- a/staging/src/github.com/kcp-dev/client-go/third_party/k8s.io/client-go/dynamic/fake/simple.go +++ b/staging/src/github.com/kcp-dev/client-go/third_party/k8s.io/client-go/dynamic/fake/simple.go @@ -233,6 +233,10 @@ func (f *FakeDynamicClient) Resource(resource schema.GroupVersionResource) dynam return &dynamicResourceClient{client: f, resource: resource, listKind: f.gvrToListKind[resource]} } +func (c *FakeDynamicClient) IsWatchListSemanticsUnSupported() bool { + return true +} + type dynamicResourceClient struct { client *FakeDynamicClient namespace string @@ -252,7 +256,7 @@ func (c *dynamicResourceClient) Create(ctx context.Context, obj *unstructured.Un switch { case len(c.namespace) == 0 && len(subresources) == 0: uncastRet, err = c.client.Fake. - Invokes(kcptesting.NewRootCreateAction(c.resource, c.client.clusterPath, obj), obj) + Invokes(kcptesting.NewRootCreateActionWithOptions(c.resource, c.client.clusterPath, obj, opts), obj) case len(c.namespace) == 0 && len(subresources) > 0: var accessor metav1.Object // avoid shadowing err @@ -262,11 +266,11 @@ func (c *dynamicResourceClient) Create(ctx context.Context, obj *unstructured.Un } name := accessor.GetName() uncastRet, err = c.client.Fake. - Invokes(kcptesting.NewRootCreateSubresourceAction(c.resource, c.client.clusterPath, name, strings.Join(subresources, "/"), obj), obj) + Invokes(kcptesting.NewRootCreateSubresourceActionWithOptions(c.resource, c.client.clusterPath, name, strings.Join(subresources, "/"), obj, opts), obj) case len(c.namespace) > 0 && len(subresources) == 0: uncastRet, err = c.client.Fake. - Invokes(kcptesting.NewCreateAction(c.resource, c.client.clusterPath, c.namespace, obj), obj) + Invokes(kcptesting.NewCreateActionWithOptions(c.resource, c.client.clusterPath, c.namespace, obj, opts), obj) case len(c.namespace) > 0 && len(subresources) > 0: var accessor metav1.Object // avoid shadowing err @@ -276,7 +280,7 @@ func (c *dynamicResourceClient) Create(ctx context.Context, obj *unstructured.Un } name := accessor.GetName() uncastRet, err = c.client.Fake. - Invokes(kcptesting.NewCreateSubresourceAction(c.resource, c.client.clusterPath, name, strings.Join(subresources, "/"), c.namespace, obj), obj) + Invokes(kcptesting.NewCreateSubresourceActionWithOptions(c.resource, c.client.clusterPath, name, strings.Join(subresources, "/"), c.namespace, obj, opts), obj) } @@ -300,19 +304,19 @@ func (c *dynamicResourceClient) Update(ctx context.Context, obj *unstructured.Un switch { case len(c.namespace) == 0 && len(subresources) == 0: uncastRet, err = c.client.Fake. - Invokes(kcptesting.NewRootUpdateAction(c.resource, c.client.clusterPath, obj), obj) + Invokes(kcptesting.NewRootUpdateActionWithOptions(c.resource, c.client.clusterPath, obj, opts), obj) case len(c.namespace) == 0 && len(subresources) > 0: uncastRet, err = c.client.Fake. - Invokes(kcptesting.NewRootUpdateSubresourceAction(c.resource, c.client.clusterPath, strings.Join(subresources, "/"), obj), obj) + Invokes(kcptesting.NewRootUpdateSubresourceActionWithOptions(c.resource, c.client.clusterPath, strings.Join(subresources, "/"), obj, opts), obj) case len(c.namespace) > 0 && len(subresources) == 0: uncastRet, err = c.client.Fake. - Invokes(kcptesting.NewUpdateAction(c.resource, c.client.clusterPath, c.namespace, obj), obj) + Invokes(kcptesting.NewUpdateActionWithOptions(c.resource, c.client.clusterPath, c.namespace, obj, opts), obj) case len(c.namespace) > 0 && len(subresources) > 0: uncastRet, err = c.client.Fake. - Invokes(kcptesting.NewUpdateSubresourceAction(c.resource, c.client.clusterPath, strings.Join(subresources, "/"), c.namespace, obj), obj) + Invokes(kcptesting.NewUpdateSubresourceActionWithOptions(c.resource, c.client.clusterPath, strings.Join(subresources, "/"), c.namespace, obj, opts), obj) } @@ -336,11 +340,11 @@ func (c *dynamicResourceClient) UpdateStatus(ctx context.Context, obj *unstructu switch { case len(c.namespace) == 0: uncastRet, err = c.client.Fake. - Invokes(kcptesting.NewRootUpdateSubresourceAction(c.resource, c.client.clusterPath, "status", obj), obj) + Invokes(kcptesting.NewRootUpdateSubresourceActionWithOptions(c.resource, c.client.clusterPath, "status", obj, opts), obj) case len(c.namespace) > 0: uncastRet, err = c.client.Fake. - Invokes(kcptesting.NewUpdateSubresourceAction(c.resource, c.client.clusterPath, "status", c.namespace, obj), obj) + Invokes(kcptesting.NewUpdateSubresourceActionWithOptions(c.resource, c.client.clusterPath, "status", c.namespace, obj, opts), obj) } @@ -363,19 +367,19 @@ func (c *dynamicResourceClient) Delete(ctx context.Context, name string, opts me switch { case len(c.namespace) == 0 && len(subresources) == 0: _, err = c.client.Fake. - Invokes(kcptesting.NewRootDeleteAction(c.resource, c.client.clusterPath, name), &metav1.Status{Status: "dynamic delete fail"}) + Invokes(kcptesting.NewRootDeleteActionWithOptions(c.resource, c.client.clusterPath, name, opts), &metav1.Status{Status: "dynamic delete fail"}) case len(c.namespace) == 0 && len(subresources) > 0: _, err = c.client.Fake. - Invokes(kcptesting.NewRootDeleteSubresourceAction(c.resource, c.client.clusterPath, strings.Join(subresources, "/"), name), &metav1.Status{Status: "dynamic delete fail"}) + Invokes(kcptesting.NewRootDeleteSubresourceActionWithOptions(c.resource, c.client.clusterPath, strings.Join(subresources, "/"), name, opts), &metav1.Status{Status: "dynamic delete fail"}) case len(c.namespace) > 0 && len(subresources) == 0: _, err = c.client.Fake. - Invokes(kcptesting.NewDeleteAction(c.resource, c.client.clusterPath, c.namespace, name), &metav1.Status{Status: "dynamic delete fail"}) + Invokes(kcptesting.NewDeleteActionWithOptions(c.resource, c.client.clusterPath, c.namespace, name, opts), &metav1.Status{Status: "dynamic delete fail"}) case len(c.namespace) > 0 && len(subresources) > 0: _, err = c.client.Fake. - Invokes(kcptesting.NewDeleteSubresourceAction(c.resource, c.client.clusterPath, strings.Join(subresources, "/"), c.namespace, name), &metav1.Status{Status: "dynamic delete fail"}) + Invokes(kcptesting.NewDeleteSubresourceActionWithOptions(c.resource, c.client.clusterPath, strings.Join(subresources, "/"), c.namespace, name, opts), &metav1.Status{Status: "dynamic delete fail"}) } return err @@ -385,11 +389,11 @@ func (c *dynamicResourceClient) DeleteCollection(ctx context.Context, opts metav var err error switch { case len(c.namespace) == 0: - action := kcptesting.NewRootDeleteCollectionAction(c.resource, c.client.clusterPath, listOptions) + action := kcptesting.NewRootDeleteCollectionActionWithOptions(c.resource, c.client.clusterPath, opts, listOptions) _, err = c.client.Fake.Invokes(action, &metav1.Status{Status: "dynamic deletecollection fail"}) case len(c.namespace) > 0: - action := kcptesting.NewDeleteCollectionAction(c.resource, c.client.clusterPath, c.namespace, listOptions) + action := kcptesting.NewDeleteCollectionActionWithOptions(c.resource, c.client.clusterPath, c.namespace, opts, listOptions) _, err = c.client.Fake.Invokes(action, &metav1.Status{Status: "dynamic deletecollection fail"}) } @@ -403,19 +407,19 @@ func (c *dynamicResourceClient) Get(ctx context.Context, name string, opts metav switch { case len(c.namespace) == 0 && len(subresources) == 0: uncastRet, err = c.client.Fake. - Invokes(kcptesting.NewRootGetAction(c.resource, c.client.clusterPath, name), &metav1.Status{Status: "dynamic get fail"}) + Invokes(kcptesting.NewRootGetActionWithOptions(c.resource, c.client.clusterPath, name, opts), &metav1.Status{Status: "dynamic get fail"}) case len(c.namespace) == 0 && len(subresources) > 0: uncastRet, err = c.client.Fake. - Invokes(kcptesting.NewRootGetSubresourceAction(c.resource, c.client.clusterPath, strings.Join(subresources, "/"), name), &metav1.Status{Status: "dynamic get fail"}) + Invokes(kcptesting.NewRootGetSubresourceActionWithOptions(c.resource, c.client.clusterPath, strings.Join(subresources, "/"), name, opts), &metav1.Status{Status: "dynamic get fail"}) case len(c.namespace) > 0 && len(subresources) == 0: uncastRet, err = c.client.Fake. - Invokes(kcptesting.NewGetAction(c.resource, c.client.clusterPath, c.namespace, name), &metav1.Status{Status: "dynamic get fail"}) + Invokes(kcptesting.NewGetActionWithOptions(c.resource, c.client.clusterPath, c.namespace, name, opts), &metav1.Status{Status: "dynamic get fail"}) case len(c.namespace) > 0 && len(subresources) > 0: uncastRet, err = c.client.Fake. - Invokes(kcptesting.NewGetSubresourceAction(c.resource, c.client.clusterPath, c.namespace, strings.Join(subresources, "/"), name), &metav1.Status{Status: "dynamic get fail"}) + Invokes(kcptesting.NewGetSubresourceActionWithOptions(c.resource, c.client.clusterPath, c.namespace, strings.Join(subresources, "/"), name, opts), &metav1.Status{Status: "dynamic get fail"}) } if err != nil { @@ -444,11 +448,11 @@ func (c *dynamicResourceClient) List(ctx context.Context, opts metav1.ListOption switch { case len(c.namespace) == 0: obj, err = c.client.Fake. - Invokes(kcptesting.NewRootListAction(c.resource, listForFakeClientGVK, c.client.clusterPath, opts), &metav1.Status{Status: "dynamic list fail"}) + Invokes(kcptesting.NewRootListActionWithOptions(c.resource, listForFakeClientGVK, c.client.clusterPath, opts), &metav1.Status{Status: "dynamic list fail"}) case len(c.namespace) > 0: obj, err = c.client.Fake. - Invokes(kcptesting.NewListAction(c.resource, listForFakeClientGVK, c.client.clusterPath, c.namespace, opts), &metav1.Status{Status: "dynamic list fail"}) + Invokes(kcptesting.NewListActionWithOptions(c.resource, c.client.clusterPath, listForFakeClientGVK, c.namespace, opts), &metav1.Status{Status: "dynamic list fail"}) } @@ -492,11 +496,11 @@ func (c *dynamicResourceClient) Watch(ctx context.Context, opts metav1.ListOptio switch { case len(c.namespace) == 0: return c.client.Fake. - InvokesWatch(kcptesting.NewRootWatchAction(c.resource, c.client.clusterPath, opts)) + InvokesWatch(kcptesting.NewRootWatchActionWithOptions(c.resource, c.client.clusterPath, opts)) case len(c.namespace) > 0: return c.client.Fake. - InvokesWatch(kcptesting.NewWatchAction(c.resource, c.client.clusterPath, c.namespace, opts)) + InvokesWatch(kcptesting.NewWatchActionWithOptions(c.resource, c.client.clusterPath, c.namespace, opts)) } @@ -510,19 +514,19 @@ func (c *dynamicResourceClient) Patch(ctx context.Context, name string, pt types switch { case len(c.namespace) == 0 && len(subresources) == 0: uncastRet, err = c.client.Fake. - Invokes(kcptesting.NewRootPatchAction(c.resource, c.client.clusterPath, name, pt, data), &metav1.Status{Status: "dynamic patch fail"}) + Invokes(kcptesting.NewRootPatchActionWithOptions(c.resource, c.client.clusterPath, name, pt, data, opts), &metav1.Status{Status: "dynamic patch fail"}) case len(c.namespace) == 0 && len(subresources) > 0: uncastRet, err = c.client.Fake. - Invokes(kcptesting.NewRootPatchSubresourceAction(c.resource, c.client.clusterPath, name, pt, data, subresources...), &metav1.Status{Status: "dynamic patch fail"}) + Invokes(kcptesting.NewRootPatchSubresourceActionWithOptions(c.resource, c.client.clusterPath, name, pt, data, opts, subresources...), &metav1.Status{Status: "dynamic patch fail"}) case len(c.namespace) > 0 && len(subresources) == 0: uncastRet, err = c.client.Fake. - Invokes(kcptesting.NewPatchAction(c.resource, c.client.clusterPath, c.namespace, name, pt, data), &metav1.Status{Status: "dynamic patch fail"}) + Invokes(kcptesting.NewPatchActionWithOptions(c.resource, c.client.clusterPath, c.namespace, name, pt, data, opts), &metav1.Status{Status: "dynamic patch fail"}) case len(c.namespace) > 0 && len(subresources) > 0: uncastRet, err = c.client.Fake. - Invokes(kcptesting.NewPatchSubresourceAction(c.resource, c.client.clusterPath, c.namespace, name, pt, data, subresources...), &metav1.Status{Status: "dynamic patch fail"}) + Invokes(kcptesting.NewPatchSubresourceActionWithOptions(c.resource, c.client.clusterPath, c.namespace, name, pt, data, opts, subresources...), &metav1.Status{Status: "dynamic patch fail"}) } @@ -546,23 +550,28 @@ func (c *dynamicResourceClient) Apply(ctx context.Context, name string, obj *uns if err != nil { return nil, err } + patchOptions := metav1.PatchOptions{ + Force: &options.Force, + DryRun: options.DryRun, + FieldManager: options.FieldManager, + } var uncastRet runtime.Object switch { case len(c.namespace) == 0 && len(subresources) == 0: uncastRet, err = c.client.Fake. - Invokes(kcptesting.NewRootPatchAction(c.resource, c.client.clusterPath, name, types.ApplyPatchType, outBytes), &metav1.Status{Status: "dynamic patch fail"}) + Invokes(kcptesting.NewRootPatchActionWithOptions(c.resource, c.client.clusterPath, name, types.ApplyPatchType, outBytes, patchOptions), &metav1.Status{Status: "dynamic patch fail"}) case len(c.namespace) == 0 && len(subresources) > 0: uncastRet, err = c.client.Fake. - Invokes(kcptesting.NewRootPatchSubresourceAction(c.resource, c.client.clusterPath, name, types.ApplyPatchType, outBytes, subresources...), &metav1.Status{Status: "dynamic patch fail"}) + Invokes(kcptesting.NewRootPatchSubresourceActionWithOptions(c.resource, c.client.clusterPath, name, types.ApplyPatchType, outBytes, patchOptions, subresources...), &metav1.Status{Status: "dynamic patch fail"}) case len(c.namespace) > 0 && len(subresources) == 0: uncastRet, err = c.client.Fake. - Invokes(kcptesting.NewPatchAction(c.resource, c.client.clusterPath, c.namespace, name, types.ApplyPatchType, outBytes), &metav1.Status{Status: "dynamic patch fail"}) + Invokes(kcptesting.NewPatchActionWithOptions(c.resource, c.client.clusterPath, c.namespace, name, types.ApplyPatchType, outBytes, patchOptions), &metav1.Status{Status: "dynamic patch fail"}) case len(c.namespace) > 0 && len(subresources) > 0: uncastRet, err = c.client.Fake. - Invokes(kcptesting.NewPatchSubresourceAction(c.resource, c.client.clusterPath, c.namespace, name, types.ApplyPatchType, outBytes, subresources...), &metav1.Status{Status: "dynamic patch fail"}) + Invokes(kcptesting.NewPatchSubresourceActionWithOptions(c.resource, c.client.clusterPath, c.namespace, name, types.ApplyPatchType, outBytes, patchOptions, subresources...), &metav1.Status{Status: "dynamic patch fail"}) } diff --git a/staging/src/github.com/kcp-dev/client-go/third_party/k8s.io/client-go/metadata/fake/simple.go b/staging/src/github.com/kcp-dev/client-go/third_party/k8s.io/client-go/metadata/fake/simple.go index c790650000a..ae2ad2f2b00 100644 --- a/staging/src/github.com/kcp-dev/client-go/third_party/k8s.io/client-go/metadata/fake/simple.go +++ b/staging/src/github.com/kcp-dev/client-go/third_party/k8s.io/client-go/metadata/fake/simple.go @@ -175,6 +175,10 @@ func (c *FakeMetadataClient) Resource(resource schema.GroupVersionResource) meta return &metadataResourceClient{client: c, resource: resource} } +func (c *FakeMetadataClient) IsWatchListSemanticsUnSupported() bool { + return true +} + type metadataResourceClient struct { client *FakeMetadataClient namespace string diff --git a/staging/src/github.com/kcp-dev/client-go/third_party/k8s.io/client-go/testing/fixture.go b/staging/src/github.com/kcp-dev/client-go/third_party/k8s.io/client-go/testing/fixture.go index b4f57ca45c2..0a66ed60c0e 100644 --- a/staging/src/github.com/kcp-dev/client-go/third_party/k8s.io/client-go/testing/fixture.go +++ b/staging/src/github.com/kcp-dev/client-go/third_party/k8s.io/client-go/testing/fixture.go @@ -660,6 +660,17 @@ func (t *scopedTracker) Apply(gvr schema.GroupVersionResource, applyConfiguratio return t.add(gvr, obj, ns, true) } +// IsWatchListSemanticsUnSupported informs the reflector that this client +// doesn't support WatchList semantics. +// +// This is a synthetic method whose sole purpose is to satisfy the optional +// interface check performed by the reflector. +// Returning true signals that WatchList can NOT be used. +// No additional logic is implemented here. +func (t *tracker) IsWatchListSemanticsUnSupported() bool { + return true +} + func (t *tracker) getWatches(gvr schema.GroupVersionResource, cluster logicalcluster.Path, ns string) []*watch.RaceFreeFakeWatcher { watches := []*watch.RaceFreeFakeWatcher{} gvrWatchers, ok := t.watchers[gvr] diff --git a/staging/src/github.com/kcp-dev/code-generator/cmd/cluster-client-gen/generators/fake/generator_fake_for_clientset.go b/staging/src/github.com/kcp-dev/code-generator/cmd/cluster-client-gen/generators/fake/generator_fake_for_clientset.go index 1b0f821495b..6db91a67508 100644 --- a/staging/src/github.com/kcp-dev/code-generator/cmd/cluster-client-gen/generators/fake/generator_fake_for_clientset.go +++ b/staging/src/github.com/kcp-dev/code-generator/cmd/cluster-client-gen/generators/fake/generator_fake_for_clientset.go @@ -166,7 +166,7 @@ var clusterCommon = ` // without applying any field management, validations and/or defaults. It shouldn't be considered a replacement // for a real clientset and is mostly useful in simple unit tests. // -// DEPRECATED: NewClientset replaces this with support for field management, which significantly improves +// Deprecated: NewClientset replaces this with support for field management, which significantly improves // server side apply testing. NewClientset is only available when apply configurations are generated (e.g. // via --with-applyconfig). func NewSimpleClientset(objects ...runtime.Object) *ClusterClientset { @@ -199,6 +199,28 @@ func (c *ClusterClientset) Tracker() kcptesting.ObjectTracker { return c.tracker } +// IsWatchListSemanticsUnSupported informs the reflector that this client +// doesn't support WatchList semantics. +// +// This is a synthetic method whose sole purpose is to satisfy the optional +// interface check performed by the reflector. +// Returning true signals that WatchList can NOT be used. +// No additional logic is implemented here. +func (c *ClusterClientset) IsWatchListSemanticsUnSupported() bool { + return true +} + +// IsWatchListSemanticsSupported informs the reflector that this client +// doesn't support WatchList semantics. +// +// This is a synthetic method whose sole purpose is to satisfy the optional +// interface check performed by the reflector. +// Returning true signals that WatchList can NOT be used. +// No additional logic is implemented here. +func (c *Clientset) IsWatchListSemanticsUnSupported() bool { + return true +} + // Cluster scopes this clientset to one cluster. func (c *ClusterClientset) Cluster(clusterPath logicalcluster.Path) clientset.Interface { if clusterPath == logicalcluster.Wildcard { diff --git a/staging/src/github.com/kcp-dev/code-generator/cmd/cluster-informer-gen/generators/factory.go b/staging/src/github.com/kcp-dev/code-generator/cmd/cluster-informer-gen/generators/factory.go index 66f21660e73..e8d5ee10e5e 100644 --- a/staging/src/github.com/kcp-dev/code-generator/cmd/cluster-informer-gen/generators/factory.go +++ b/staging/src/github.com/kcp-dev/code-generator/cmd/cluster-informer-gen/generators/factory.go @@ -193,6 +193,7 @@ func NewSharedInformerFactory(client {{.clusterClientSetInterface|raw}}, default // NewFilteredSharedInformerFactory constructs a new instance of sharedInformerFactory. // Listers obtained via this SharedInformerFactory will be subject to the same filters // as specified here. +// // Deprecated: Please use NewSharedInformerFactoryWithOptions instead func NewFilteredSharedInformerFactory(client {{.clusterClientSetInterface|raw}}, defaultResync {{.timeDuration|raw}}, tweakListOptions {{.interfacesTweakListOptionsFunc|raw}}) SharedInformerFactory { return NewSharedInformerFactoryWithOptions(client, defaultResync, WithTweakListOptions(tweakListOptions)) @@ -319,7 +320,7 @@ type ScopedDynamicSharedInformerFactory interface { // // It is typically used like this: // -// ctx, cancel := context.Background() +// ctx, cancel := context.WithCancel(context.Background()) // defer cancel() // factory := NewSharedInformerFactory(client, resyncPeriod) // defer factory.WaitForStop() // Returns immediately if nothing was started. diff --git a/staging/src/github.com/kcp-dev/code-generator/cmd/cluster-informer-gen/generators/informer.go b/staging/src/github.com/kcp-dev/code-generator/cmd/cluster-informer-gen/generators/informer.go index 26903d3299f..bb2822b38cf 100644 --- a/staging/src/github.com/kcp-dev/code-generator/cmd/cluster-informer-gen/generators/informer.go +++ b/staging/src/github.com/kcp-dev/code-generator/cmd/cluster-informer-gen/generators/informer.go @@ -95,39 +95,40 @@ func (g *informerGenerator) GenerateType(c *generator.Context, t *types.Type, w } m := map[string]interface{}{ - "type": t, - "namespaced": !tags.NonNamespaced, - "cacheIndexers": c.Universe.Type(cacheIndexers), - "cacheListWatch": c.Universe.Type(cacheListWatch), - "cacheMetaNamespaceIndexFunc": c.Universe.Function(cacheMetaNamespaceIndexFunc), - "cacheNamespaceIndex": c.Universe.Variable(cacheNamespaceIndex), - "cacheNewSharedIndexInformer": c.Universe.Function(cacheNewSharedIndexInformer), - "cacheSharedIndexInformer": c.Universe.Type(cacheSharedIndexInformer), - "scopeableCacheSharedIndexInformer": c.Universe.Type(scopeableCacheSharedIndexInformer), - "clientSetInterface": clientSetInterface, - "clientSetClusterInterface": clientSetClusterInterface, - "contextBackground": c.Universe.Function(contextBackgroundFunc), - "contextContext": c.Universe.Type(contextContext), - "group": namer.IC(g.groupGoName), - "interfacesTweakListOptionsFunc": c.Universe.Type(types.Name{Package: g.internalInterfacesPackage, Name: "TweakListOptionsFunc"}), - "interfacesSharedInformerFactory": c.Universe.Type(types.Name{Package: g.internalInterfacesPackage, Name: "SharedInformerFactory"}), - "interfacesSharedScopedInformerFactory": c.Universe.Type(types.Name{Package: g.internalInterfacesPackage, Name: "SharedScopedInformerFactory"}), - "lister": c.Universe.Type(types.Name{Package: listersPkg, Name: t.Name.Name + "Lister"}), - "clusterLister": c.Universe.Type(types.Name{Package: clusterListersPkg, Name: t.Name.Name + "ClusterLister"}), - "informerInterface": c.Universe.Type(types.Name{Package: informerPkg, Name: t.Name.Name + "Informer"}), - "newLister": c.Universe.Function(types.Name{Package: listersPkg, Name: "New" + t.Name.Name + "Lister"}), - "newClusterLister": c.Universe.Function(types.Name{Package: clusterListersPkg, Name: "New" + t.Name.Name + "ClusterLister"}), - "kcpcacheClusterIndexName": c.Universe.Function(types.Name{Package: "github.com/kcp-dev/apimachinery/v2/pkg/cache", Name: "ClusterIndexName"}), - "kcpcacheClusterIndexFunc": c.Universe.Function(types.Name{Package: "github.com/kcp-dev/apimachinery/v2/pkg/cache", Name: "ClusterIndexFunc"}), - "kcpcacheClusterAndNamespaceIndexName": c.Universe.Function(types.Name{Package: "github.com/kcp-dev/apimachinery/v2/pkg/cache", Name: "ClusterAndNamespaceIndexName"}), - "kcpcacheClusterAndNamespaceIndexFunc": c.Universe.Function(types.Name{Package: "github.com/kcp-dev/apimachinery/v2/pkg/cache", Name: "ClusterAndNamespaceIndexFunc"}), - "runtimeObject": c.Universe.Type(runtimeObject), - "timeDuration": c.Universe.Type(timeDuration), - "metav1ListOptions": c.Universe.Type(metav1ListOptions), - "version": namer.IC(g.groupVersion.Version.String()), - "watchInterface": c.Universe.Type(watchInterface), - "logicalclusterName": c.Universe.Type(logicalclusterName), - "kcpinformersNewSharedIndexInformer": c.Universe.Type(kcpinformersNewSharedIndexInformer), + "type": t, + "namespaced": !tags.NonNamespaced, + "cacheIndexers": c.Universe.Type(cacheIndexers), + "cacheListWatch": c.Universe.Type(cacheListWatch), + "cacheMetaNamespaceIndexFunc": c.Universe.Function(cacheMetaNamespaceIndexFunc), + "cacheNamespaceIndex": c.Universe.Variable(cacheNamespaceIndex), + "cacheNewSharedIndexInformer": c.Universe.Function(cacheNewSharedIndexInformer), + "cacheSharedIndexInformer": c.Universe.Type(cacheSharedIndexInformer), + "cacheToListWatcherWithWatchListSemantics": c.Universe.Function(cacheToListWatcherWithWatchListSemanticsFunc), + "scopeableCacheSharedIndexInformer": c.Universe.Type(scopeableCacheSharedIndexInformer), + "clientSetInterface": clientSetInterface, + "clientSetClusterInterface": clientSetClusterInterface, + "contextBackground": c.Universe.Function(contextBackgroundFunc), + "contextContext": c.Universe.Type(contextContext), + "group": namer.IC(g.groupGoName), + "interfacesTweakListOptionsFunc": c.Universe.Type(types.Name{Package: g.internalInterfacesPackage, Name: "TweakListOptionsFunc"}), + "interfacesSharedInformerFactory": c.Universe.Type(types.Name{Package: g.internalInterfacesPackage, Name: "SharedInformerFactory"}), + "interfacesSharedScopedInformerFactory": c.Universe.Type(types.Name{Package: g.internalInterfacesPackage, Name: "SharedScopedInformerFactory"}), + "lister": c.Universe.Type(types.Name{Package: listersPkg, Name: t.Name.Name + "Lister"}), + "clusterLister": c.Universe.Type(types.Name{Package: clusterListersPkg, Name: t.Name.Name + "ClusterLister"}), + "informerInterface": c.Universe.Type(types.Name{Package: informerPkg, Name: t.Name.Name + "Informer"}), + "newLister": c.Universe.Function(types.Name{Package: listersPkg, Name: "New" + t.Name.Name + "Lister"}), + "newClusterLister": c.Universe.Function(types.Name{Package: clusterListersPkg, Name: "New" + t.Name.Name + "ClusterLister"}), + "kcpcacheClusterIndexName": c.Universe.Function(types.Name{Package: "github.com/kcp-dev/apimachinery/v2/pkg/cache", Name: "ClusterIndexName"}), + "kcpcacheClusterIndexFunc": c.Universe.Function(types.Name{Package: "github.com/kcp-dev/apimachinery/v2/pkg/cache", Name: "ClusterIndexFunc"}), + "kcpcacheClusterAndNamespaceIndexName": c.Universe.Function(types.Name{Package: "github.com/kcp-dev/apimachinery/v2/pkg/cache", Name: "ClusterAndNamespaceIndexName"}), + "kcpcacheClusterAndNamespaceIndexFunc": c.Universe.Function(types.Name{Package: "github.com/kcp-dev/apimachinery/v2/pkg/cache", Name: "ClusterAndNamespaceIndexFunc"}), + "runtimeObject": c.Universe.Type(runtimeObject), + "timeDuration": c.Universe.Type(timeDuration), + "metav1ListOptions": c.Universe.Type(metav1ListOptions), + "version": namer.IC(g.groupVersion.Version.String()), + "watchInterface": c.Universe.Type(watchInterface), + "logicalclusterName": c.Universe.Type(logicalclusterName), + "kcpinformersNewSharedIndexInformer": c.Universe.Type(kcpinformersNewSharedIndexInformer), } sw.Do(typeClusterInformerInterface, m) @@ -180,7 +181,7 @@ var typeFilteredInformerPublicConstructor = ` // one. This reduces memory footprint and number of connections to the server. func NewFiltered$.type|public$ClusterInformer(client $.clientSetClusterInterface|raw$, resyncPeriod $.timeDuration|raw$, indexers $.cacheIndexers|raw$, tweakListOptions $.interfacesTweakListOptionsFunc|raw$) $.scopeableCacheSharedIndexInformer|raw$ { return $.kcpinformersNewSharedIndexInformer|raw$( - &$.cacheListWatch|raw${ + $.cacheToListWatcherWithWatchListSemantics|raw$(&$.cacheListWatch|raw${ ListFunc: func(options $.metav1ListOptions|raw$) ($.runtimeObject|raw$, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -193,7 +194,7 @@ func NewFiltered$.type|public$ClusterInformer(client $.clientSetClusterInterface } return client.$.group$$.version$().$.type|publicPlural$().Watch($.contextBackground|raw$(), options) }, - }, + }, client), &$.type|raw${}, resyncPeriod, indexers, @@ -281,7 +282,7 @@ func New$.type|public$Informer(client $.clientSetInterface|raw$, resyncPeriod $. // one. This reduces memory footprint and number of connections to the server. func NewFiltered$.type|public$Informer(client $.clientSetInterface|raw$, resyncPeriod $.timeDuration|raw$$if .namespaced$, namespace string$end$, indexers $.cacheIndexers|raw$, tweakListOptions $.interfacesTweakListOptionsFunc|raw$) $.cacheSharedIndexInformer|raw$ { return $.cacheNewSharedIndexInformer|raw$( - &$.cacheListWatch|raw${ + $.cacheToListWatcherWithWatchListSemantics|raw$(&$.cacheListWatch|raw${ ListFunc: func(options $.metav1ListOptions|raw$) ($.runtimeObject|raw$, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -294,7 +295,7 @@ func NewFiltered$.type|public$Informer(client $.clientSetInterface|raw$, resyncP } return client.$.group$$.version$().$.type|publicPlural$($if .namespaced$namespace$end$).Watch($.contextBackground|raw$(), options) }, - }, + }, client), &$.type|raw${}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/code-generator/cmd/cluster-informer-gen/generators/types.go b/staging/src/github.com/kcp-dev/code-generator/cmd/cluster-informer-gen/generators/types.go index 060dec99a6a..1b668cb899f 100644 --- a/staging/src/github.com/kcp-dev/code-generator/cmd/cluster-informer-gen/generators/types.go +++ b/staging/src/github.com/kcp-dev/code-generator/cmd/cluster-informer-gen/generators/types.go @@ -20,33 +20,34 @@ package generators import "k8s.io/gengo/v2/types" var ( - cacheGenericLister = types.Name{Package: "k8s.io/client-go/tools/cache", Name: "GenericLister"} - cacheIndexers = types.Name{Package: "k8s.io/client-go/tools/cache", Name: "Indexers"} - cacheListWatch = types.Name{Package: "k8s.io/client-go/tools/cache", Name: "ListWatch"} - cacheMetaNamespaceIndexFunc = types.Name{Package: "k8s.io/client-go/tools/cache", Name: "MetaNamespaceIndexFunc"} - cacheNamespaceIndex = types.Name{Package: "k8s.io/client-go/tools/cache", Name: "NamespaceIndex"} - cacheNewSharedIndexInformer = types.Name{Package: "k8s.io/client-go/tools/cache", Name: "NewSharedIndexInformer"} - cacheSharedIndexInformer = types.Name{Package: "k8s.io/client-go/tools/cache", Name: "SharedIndexInformer"} - cacheWaitForCacheSync = types.Name{Package: "k8s.io/client-go/tools/cache", Name: "WaitForCacheSync"} - scopeableCacheSharedIndexInformer = types.Name{Package: "github.com/kcp-dev/apimachinery/v2/pkg/cache", Name: "ScopeableSharedIndexInformer"} - kcpcacheGenericClusterLister = types.Name{Package: "github.com/kcp-dev/apimachinery/v2/pkg/cache", Name: "GenericClusterLister"} - kcpcacheNewGenericClusterLister = types.Name{Package: "github.com/kcp-dev/apimachinery/v2/pkg/cache", Name: "NewGenericClusterLister"} - kcpinformersNewSharedIndexInformer = types.Name{Package: "github.com/kcp-dev/apimachinery/v2/third_party/informers", Name: "NewSharedIndexInformer"} - cacheTransformFunc = types.Name{Package: "k8s.io/client-go/tools/cache", Name: "TransformFunc"} - contextContext = types.Name{Package: "context", Name: "Context"} - contextBackgroundFunc = types.Name{Package: "context", Name: "Background"} - fmtErrorfFunc = types.Name{Package: "fmt", Name: "Errorf"} - reflectType = types.Name{Package: "reflect", Name: "Type"} - reflectTypeOf = types.Name{Package: "reflect", Name: "TypeOf"} - runtimeObject = types.Name{Package: "k8s.io/apimachinery/pkg/runtime", Name: "Object"} - schemaGroupResource = types.Name{Package: "k8s.io/apimachinery/pkg/runtime/schema", Name: "GroupResource"} - schemaGroupVersionResource = types.Name{Package: "k8s.io/apimachinery/pkg/runtime/schema", Name: "GroupVersionResource"} - syncMutex = types.Name{Package: "sync", Name: "Mutex"} - syncWaitGroup = types.Name{Package: "sync", Name: "WaitGroup"} - timeDuration = types.Name{Package: "time", Name: "Duration"} - metav1ListOptions = types.Name{Package: "k8s.io/apimachinery/pkg/apis/meta/v1", Name: "ListOptions"} - metav1NamespaceAll = types.Name{Package: "k8s.io/apimachinery/pkg/apis/meta/v1", Name: "NamespaceAll"} - metav1Object = types.Name{Package: "k8s.io/apimachinery/pkg/apis/meta/v1", Name: "Object"} - watchInterface = types.Name{Package: "k8s.io/apimachinery/pkg/watch", Name: "Interface"} - logicalclusterName = types.Name{Package: "github.com/kcp-dev/logicalcluster/v3", Name: "Name"} + cacheGenericLister = types.Name{Package: "k8s.io/client-go/tools/cache", Name: "GenericLister"} + cacheIndexers = types.Name{Package: "k8s.io/client-go/tools/cache", Name: "Indexers"} + cacheListWatch = types.Name{Package: "k8s.io/client-go/tools/cache", Name: "ListWatch"} + cacheMetaNamespaceIndexFunc = types.Name{Package: "k8s.io/client-go/tools/cache", Name: "MetaNamespaceIndexFunc"} + cacheNamespaceIndex = types.Name{Package: "k8s.io/client-go/tools/cache", Name: "NamespaceIndex"} + cacheNewSharedIndexInformer = types.Name{Package: "k8s.io/client-go/tools/cache", Name: "NewSharedIndexInformer"} + cacheSharedIndexInformer = types.Name{Package: "k8s.io/client-go/tools/cache", Name: "SharedIndexInformer"} + cacheWaitForCacheSync = types.Name{Package: "k8s.io/client-go/tools/cache", Name: "WaitForCacheSync"} + scopeableCacheSharedIndexInformer = types.Name{Package: "github.com/kcp-dev/apimachinery/v2/pkg/cache", Name: "ScopeableSharedIndexInformer"} + kcpcacheGenericClusterLister = types.Name{Package: "github.com/kcp-dev/apimachinery/v2/pkg/cache", Name: "GenericClusterLister"} + kcpcacheNewGenericClusterLister = types.Name{Package: "github.com/kcp-dev/apimachinery/v2/pkg/cache", Name: "NewGenericClusterLister"} + kcpinformersNewSharedIndexInformer = types.Name{Package: "github.com/kcp-dev/apimachinery/v2/third_party/informers", Name: "NewSharedIndexInformer"} + cacheTransformFunc = types.Name{Package: "k8s.io/client-go/tools/cache", Name: "TransformFunc"} + cacheToListWatcherWithWatchListSemanticsFunc = types.Name{Package: "k8s.io/client-go/tools/cache", Name: "ToListWatcherWithWatchListSemantics"} + contextContext = types.Name{Package: "context", Name: "Context"} + contextBackgroundFunc = types.Name{Package: "context", Name: "Background"} + fmtErrorfFunc = types.Name{Package: "fmt", Name: "Errorf"} + reflectType = types.Name{Package: "reflect", Name: "Type"} + reflectTypeOf = types.Name{Package: "reflect", Name: "TypeOf"} + runtimeObject = types.Name{Package: "k8s.io/apimachinery/pkg/runtime", Name: "Object"} + schemaGroupResource = types.Name{Package: "k8s.io/apimachinery/pkg/runtime/schema", Name: "GroupResource"} + schemaGroupVersionResource = types.Name{Package: "k8s.io/apimachinery/pkg/runtime/schema", Name: "GroupVersionResource"} + syncMutex = types.Name{Package: "sync", Name: "Mutex"} + syncWaitGroup = types.Name{Package: "sync", Name: "WaitGroup"} + timeDuration = types.Name{Package: "time", Name: "Duration"} + metav1ListOptions = types.Name{Package: "k8s.io/apimachinery/pkg/apis/meta/v1", Name: "ListOptions"} + metav1NamespaceAll = types.Name{Package: "k8s.io/apimachinery/pkg/apis/meta/v1", Name: "NamespaceAll"} + metav1Object = types.Name{Package: "k8s.io/apimachinery/pkg/apis/meta/v1", Name: "Object"} + watchInterface = types.Name{Package: "k8s.io/apimachinery/pkg/watch", Name: "Interface"} + logicalclusterName = types.Name{Package: "github.com/kcp-dev/logicalcluster/v3", Name: "Name"} ) diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/go.mod b/staging/src/github.com/kcp-dev/code-generator/examples/go.mod index 81064b099f9..37774fe1570 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/go.mod +++ b/staging/src/github.com/kcp-dev/code-generator/examples/go.mod @@ -1,6 +1,6 @@ module acme.corp -go 1.24.0 +go 1.25.0 replace acme.corp/pkg => ./pkg @@ -8,8 +8,8 @@ require ( github.com/kcp-dev/apimachinery/v2 v2.0.0-00010101000000-000000000000 github.com/kcp-dev/client-go v0.0.0 github.com/kcp-dev/logicalcluster/v3 v3.0.5 - k8s.io/apimachinery v0.34.2 - k8s.io/client-go v0.34.2 + k8s.io/apimachinery v0.35.1 + k8s.io/client-go v0.35.1 sigs.k8s.io/structured-merge-diff/v6 v6.3.0 ) @@ -23,11 +23,10 @@ require ( github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/emicklei/go-restful/v3 v3.12.2 // indirect github.com/fxamacker/cbor/v2 v2.9.0 // indirect - github.com/go-logr/logr v1.4.2 // indirect + github.com/go-logr/logr v1.4.3 // indirect github.com/go-openapi/jsonpointer v0.21.0 // indirect github.com/go-openapi/jsonreference v0.21.0 // indirect github.com/go-openapi/swag v0.23.0 // indirect - github.com/gogo/protobuf v1.3.2 // indirect github.com/google/gnostic-models v0.7.0 // indirect github.com/google/go-cmp v0.7.0 // indirect github.com/google/uuid v1.6.0 // indirect @@ -37,26 +36,25 @@ require ( github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect - github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/x448/float16 v0.8.4 // indirect - go.yaml.in/yaml/v2 v2.4.2 // indirect + go.yaml.in/yaml/v2 v2.4.3 // indirect go.yaml.in/yaml/v3 v3.0.4 // indirect - golang.org/x/net v0.40.0 // indirect - golang.org/x/oauth2 v0.29.0 // indirect - golang.org/x/sys v0.33.0 // indirect - golang.org/x/term v0.32.0 // indirect - golang.org/x/text v0.25.0 // indirect + golang.org/x/net v0.47.0 // indirect + golang.org/x/oauth2 v0.30.0 // indirect + golang.org/x/sys v0.38.0 // indirect + golang.org/x/term v0.37.0 // indirect + golang.org/x/text v0.31.0 // indirect golang.org/x/time v0.11.0 // indirect - google.golang.org/protobuf v1.36.5 // indirect - gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect + google.golang.org/protobuf v1.36.8 // indirect + gopkg.in/evanphx/json-patch.v4 v4.13.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/api v0.34.2 // indirect + k8s.io/api v0.35.1 // indirect k8s.io/klog/v2 v2.130.1 // indirect - k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b // indirect - k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 // indirect - sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect + k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912 // indirect + k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 // indirect + sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 // indirect sigs.k8s.io/randfill v1.0.0 // indirect sigs.k8s.io/yaml v1.6.0 // indirect ) diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/go.sum b/staging/src/github.com/kcp-dev/code-generator/examples/go.sum index 121ef9a2167..dd5e459cc11 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/go.sum +++ b/staging/src/github.com/kcp-dev/code-generator/examples/go.sum @@ -1,3 +1,5 @@ +github.com/Masterminds/semver/v3 v3.4.0 h1:Zog+i5UMtVoCU8oKka5P7i9q9HgrJeGzI9SA1Xbatp0= +github.com/Masterminds/semver/v3 v3.4.0/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= @@ -6,8 +8,8 @@ github.com/emicklei/go-restful/v3 v3.12.2 h1:DhwDP0vY3k8ZzE0RunuJy8GhNpPL6zqLkDf github.com/emicklei/go-restful/v3 v3.12.2/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/fxamacker/cbor/v2 v2.9.0 h1:NpKPmjDBgUfBms6tr6JZkTHtfFGcMKsw3eGcmD/sapM= github.com/fxamacker/cbor/v2 v2.9.0/go.mod h1:vM4b+DJCtHn+zz7h3FFp/hDAI9WNWCsZj23V5ytsSxQ= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= +github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ= github.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY= github.com/go-openapi/jsonreference v0.21.0 h1:Rs+Y7hSXT83Jacb7kFyjn4ijOuVGSvOdF2+tg1TRrwQ= @@ -16,15 +18,13 @@ github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+Gr github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ= github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= -github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= -github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/google/gnostic-models v0.7.0 h1:qwTtogB15McXDaNqTZdzPJRHvaVJlAl+HVQnLmJEJxo= github.com/google/gnostic-models v0.7.0/go.mod h1:whL5G0m6dmc5cPxKc5bdKdEN3UjI7OUGxBlw57miDrQ= github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db h1:097atOisP2aRj7vFgYQBbFN4U4JNXUNYpxael3UzMyo= -github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= +github.com/google/pprof v0.0.0-20250403155104-27863c87afa6 h1:BHT72Gu3keYf3ZEu2J0b1vyeLSOYI8bm5wbJM/8yDe8= +github.com/google/pprof v0.0.0-20250403155104-27863c87afa6/go.mod h1:boTsfXsheKC2y+lKOCMpSfarhxDeIzfZG1jqGcPl3cA= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= @@ -33,8 +33,6 @@ github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnr github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/kcp-dev/logicalcluster/v3 v3.0.5 h1:JbYakokb+5Uinz09oTXomSUJVQsqfxEvU4RyHUYxHOU= github.com/kcp-dev/logicalcluster/v3 v3.0.5/go.mod h1:EWBUBxdr49fUB1cLMO4nOdBWmYifLbP1LfoL20KkXYY= -github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= -github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= @@ -49,99 +47,74 @@ github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee h1:W5t00kpgFd github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/onsi/ginkgo/v2 v2.21.0 h1:7rg/4f3rB88pb5obDgNZrNHrQ4e6WpjonchcpuBRnZM= -github.com/onsi/ginkgo/v2 v2.21.0/go.mod h1:7Du3c42kxCUegi0IImZ1wUQzMBVecgIHjR1C+NkhLQo= -github.com/onsi/gomega v1.35.1 h1:Cwbd75ZBPxFSuZ6T+rN/WCb/gOc6YgFBXLlZLhC7Ds4= -github.com/onsi/gomega v1.35.1/go.mod h1:PvZbdDc8J6XJEpDK4HCuRBm8a6Fzp9/DmhC9C7yFlog= -github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= -github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/onsi/ginkgo/v2 v2.27.2 h1:LzwLj0b89qtIy6SSASkzlNvX6WktqurSHwkk2ipF/Ns= +github.com/onsi/ginkgo/v2 v2.27.2/go.mod h1:ArE1D/XhNXBXCBkKOLkbsb2c81dQHCRcF5zwn/ykDRo= +github.com/onsi/gomega v1.38.2 h1:eZCjf2xjZAqe+LeWvKb5weQ+NcPwX84kqJ0cZNxok2A= +github.com/onsi/gomega v1.38.2/go.mod h1:W2MJcYxRGV63b418Ai34Ud0hEdTVXq9NW9+Sx6uXf3k= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= -github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= -github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o= -github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= +github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= +github.com/spf13/pflag v1.0.9 h1:9exaQaMOCwffKiiiYk6/BndUBv+iRViNW+4lEMi0PvY= +github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= -github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= +github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= -github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= -go.yaml.in/yaml/v2 v2.4.2 h1:DzmwEr2rDGHl7lsFgAHxmNz/1NlQ7xLIrlN2h5d1eGI= -go.yaml.in/yaml/v2 v2.4.2/go.mod h1:081UH+NErpNdqlCXm3TtEran0rJZGxAYx9hb/ELlsPU= +go.yaml.in/yaml/v2 v2.4.3 h1:6gvOSjQoTB3vt1l+CU+tSyi/HOjfOjRLJ4YwYZGwRO0= +go.yaml.in/yaml/v2 v2.4.3/go.mod h1:zSxWcmIDjOzPXpjlTTbAsKokqkDNAVtZO0WOMiT90s8= go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.40.0 h1:79Xs7wF06Gbdcg4kdCCIQArK11Z1hr5POQ6+fIYHNuY= -golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds= -golang.org/x/oauth2 v0.29.0 h1:WdYw2tdTK1S8olAzWHdgeqfy+Mtm9XNhv/xJsY65d98= -golang.org/x/oauth2 v0.29.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw= -golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= -golang.org/x/term v0.32.0 h1:DR4lr0TjUs3epypdhTOkMmuF5CDFJ/8pOnbzMZPQ7bg= -golang.org/x/term v0.32.0/go.mod h1:uZG1FhGx848Sqfsq4/DlJr3xGGsYMu/L5GW4abiaEPQ= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4= -golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA= +golang.org/x/mod v0.29.0 h1:HV8lRxZC4l2cr3Zq1LvtOsi/ThTgWnUk/y64QSs8GwA= +golang.org/x/mod v0.29.0/go.mod h1:NyhrlYXJ2H4eJiRy/WDBO6HMqZQ6q9nk4JzS3NuCK+w= +golang.org/x/net v0.47.0 h1:Mx+4dIFzqraBXUugkia1OOvlD6LemFo1ALMHjrXDOhY= +golang.org/x/net v0.47.0/go.mod h1:/jNxtkgq5yWUGYkaZGqo27cfGZ1c5Nen03aYrrKpVRU= +golang.org/x/oauth2 v0.30.0 h1:dnDm7JmhM45NNpd8FDDeLhK6FwqbOf4MLCM9zb1BOHI= +golang.org/x/oauth2 v0.30.0/go.mod h1:B++QgG3ZKulg6sRPGD/mqlHQs5rB3Ml9erfeDY7xKlU= +golang.org/x/sync v0.18.0 h1:kr88TuHDroi+UVf+0hZnirlk8o8T+4MrK6mr60WkH/I= +golang.org/x/sync v0.18.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= +golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc= +golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/term v0.37.0 h1:8EGAD0qCmHYZg6J17DvsMy9/wJ7/D/4pV/wfnld5lTU= +golang.org/x/term v0.37.0/go.mod h1:5pB4lxRNYYVZuTLmy8oR2BH8dflOR+IbTYFD8fi3254= +golang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM= +golang.org/x/text v0.31.0/go.mod h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM= golang.org/x/time v0.11.0 h1:/bpjEDfN9tkoN/ryeYHnv5hcMlc8ncjMcM4XBk5NWV0= golang.org/x/time v0.11.0/go.mod h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.33.0 h1:4qz2S3zmRxbGIhDIAgjxvFutSvH5EfnsYrRBj0UI0bc= -golang.org/x/tools v0.33.0/go.mod h1:CIJMaWEY88juyUfo7UbgPqbC8rU2OqfAV1h2Qp0oMYI= -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= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM= -google.golang.org/protobuf v1.36.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +golang.org/x/tools v0.38.0 h1:Hx2Xv8hISq8Lm16jvBZ2VQf+RLmbd7wVUsALibYI/IQ= +golang.org/x/tools v0.38.0/go.mod h1:yEsQ/d/YK8cjh0L6rZlY8tgtlKiBNTL14pGDJPJpYQs= +google.golang.org/protobuf v1.36.8 h1:xHScyCOEuuwZEc6UtSOvPbAT4zRh0xcNRYekJwfqyMc= +google.golang.org/protobuf v1.36.8/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/evanphx/json-patch.v4 v4.12.0 h1:n6jtcsulIzXPJaxegRbvFNNrZDjbij7ny3gmSPG+6V4= -gopkg.in/evanphx/json-patch.v4 v4.12.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M= +gopkg.in/evanphx/json-patch.v4 v4.13.0 h1:czT3CmqEaQ1aanPc5SdlgQrrEIb8w/wwCvWWnfEbYzo= +gopkg.in/evanphx/json-patch.v4 v4.13.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -k8s.io/api v0.34.2 h1:fsSUNZhV+bnL6Aqrp6O7lMTy6o5x2C4XLjnh//8SLYY= -k8s.io/api v0.34.2/go.mod h1:MMBPaWlED2a8w4RSeanD76f7opUoypY8TFYkSM+3XHw= -k8s.io/apimachinery v0.34.2 h1:zQ12Uk3eMHPxrsbUJgNF8bTauTVR2WgqJsTmwTE/NW4= -k8s.io/apimachinery v0.34.2/go.mod h1:/GwIlEcWuTX9zKIg2mbw0LRFIsXwrfoVxn+ef0X13lw= -k8s.io/client-go v0.34.2 h1:Co6XiknN+uUZqiddlfAjT68184/37PS4QAzYvQvDR8M= -k8s.io/client-go v0.34.2/go.mod h1:2VYDl1XXJsdcAxw7BenFslRQX28Dxz91U9MWKjX97fE= +k8s.io/api v0.35.1 h1:0PO/1FhlK/EQNVK5+txc4FuhQibV25VLSdLMmGpDE/Q= +k8s.io/api v0.35.1/go.mod h1:28uR9xlXWml9eT0uaGo6y71xK86JBELShLy4wR1XtxM= +k8s.io/apimachinery v0.35.1 h1:yxO6gV555P1YV0SANtnTjXYfiivaTPvCTKX6w6qdDsU= +k8s.io/apimachinery v0.35.1/go.mod h1:jQCgFZFR1F4Ik7hvr2g84RTJSZegBc8yHgFWKn//hns= +k8s.io/client-go v0.35.1 h1:+eSfZHwuo/I19PaSxqumjqZ9l5XiTEKbIaJ+j1wLcLM= +k8s.io/client-go v0.35.1/go.mod h1:1p1KxDt3a0ruRfc/pG4qT/3oHmUj1AhSHEcxNSGg+OA= k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= -k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b h1:MloQ9/bdJyIu9lb1PzujOPolHyvO06MXG5TUIj2mNAA= -k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b/go.mod h1:UZ2yyWbFTpuhSbFhv24aGNOdoRdJZgsIObGBUaYVsts= -k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 h1:hwvWFiBzdWw1FhfY1FooPn3kzWuJ8tmbZBHi4zVsl1Y= -k8s.io/utils v0.0.0-20250604170112-4c0f3b243397/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= -sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 h1:gBQPwqORJ8d8/YNZWEjoZs7npUVDpVXUUOFfW6CgAqE= -sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg= +k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912 h1:Y3gxNAuB0OBLImH611+UDZcmKS3g6CthxToOb37KgwE= +k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912/go.mod h1:kdmbQkyfwUagLfXIad1y2TdrjPFWp2Q89B3qkRwf/pQ= +k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 h1:SjGebBtkBqHFOli+05xYbK8YF1Dzkbzn+gDM4X9T4Ck= +k8s.io/utils v0.0.0-20251002143259-bc988d571ff4/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 h1:IpInykpT6ceI+QxKBbEflcR5EXP7sU1kvOlxwZh5txg= +sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg= sigs.k8s.io/randfill v1.0.0 h1:JfjMILfT8A6RbawdsK2JXGBR5AQVfd+9TbzrlneTyrU= sigs.k8s.io/randfill v1.0.0/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY= sigs.k8s.io/structured-merge-diff/v6 v6.3.0 h1:jTijUJbW353oVOd9oTlifJqOGEkUw2jB/fXCbTiQEco= diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/example/v1/clustertesttype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/example/v1/clustertesttype.go index ffb87674443..4432c65ca2d 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/example/v1/clustertesttype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/example/v1/clustertesttype.go @@ -29,9 +29,11 @@ import ( type ClusterTestTypeApplyConfiguration struct { metav1.TypeMetaApplyConfiguration `json:",inline"` *metav1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` - ObjectKind *string `json:"kind,omitempty"` - ObjectName *string `json:"name,omitempty"` - Status *ClusterTestTypeStatusApplyConfiguration `json:"status,omitempty"` + // ObjectKind is the type of resource being referenced + ObjectKind *string `json:"kind,omitempty"` + // ObjectName is the name of resource being referenced + ObjectName *string `json:"name,omitempty"` + Status *ClusterTestTypeStatusApplyConfiguration `json:"status,omitempty"` } // ClusterTestType constructs a declarative configuration of the ClusterTestType type for use with @@ -43,6 +45,7 @@ func ClusterTestType(name string) *ClusterTestTypeApplyConfiguration { b.WithAPIVersion("example.dev/v1") return b } + func (b ClusterTestTypeApplyConfiguration) IsApplyConfiguration() {} // WithKind sets the Kind field in the declarative configuration to the given value diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/example/v1/testtype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/example/v1/testtype.go index 7593826e38c..5c9a32f6059 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/example/v1/testtype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/example/v1/testtype.go @@ -26,6 +26,8 @@ import ( // TestTypeApplyConfiguration represents a declarative configuration of the TestType type for use // with apply. +// +// TestType is a top-level type. A client is created for it. type TestTypeApplyConfiguration struct { metav1.TypeMetaApplyConfiguration `json:",inline"` *metav1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` @@ -42,6 +44,7 @@ func TestType(name, namespace string) *TestTypeApplyConfiguration { b.WithAPIVersion("example.dev/v1") return b } + func (b TestTypeApplyConfiguration) IsApplyConfiguration() {} // WithKind sets the Kind field in the declarative configuration to the given value diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/example/v1/withoutverbtype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/example/v1/withoutverbtype.go index f4a3346e522..9444094d610 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/example/v1/withoutverbtype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/example/v1/withoutverbtype.go @@ -41,6 +41,7 @@ func WithoutVerbType(name, namespace string) *WithoutVerbTypeApplyConfiguration b.WithAPIVersion("example.dev/v1") return b } + func (b WithoutVerbTypeApplyConfiguration) IsApplyConfiguration() {} // WithKind sets the Kind field in the declarative configuration to the given value diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/example/v1alpha1/clustertesttype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/example/v1alpha1/clustertesttype.go index 277d8cbcc61..704489e2ac6 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/example/v1alpha1/clustertesttype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/example/v1alpha1/clustertesttype.go @@ -29,9 +29,11 @@ import ( type ClusterTestTypeApplyConfiguration struct { v1.TypeMetaApplyConfiguration `json:",inline"` *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` - ObjectKind *string `json:"kind,omitempty"` - ObjectName *string `json:"name,omitempty"` - Status *ClusterTestTypeStatusApplyConfiguration `json:"status,omitempty"` + // ObjectKind is the type of resource being referenced + ObjectKind *string `json:"kind,omitempty"` + // ObjectName is the name of resource being referenced + ObjectName *string `json:"name,omitempty"` + Status *ClusterTestTypeStatusApplyConfiguration `json:"status,omitempty"` } // ClusterTestType constructs a declarative configuration of the ClusterTestType type for use with @@ -43,6 +45,7 @@ func ClusterTestType(name string) *ClusterTestTypeApplyConfiguration { b.WithAPIVersion("example.dev/v1alpha1") return b } + func (b ClusterTestTypeApplyConfiguration) IsApplyConfiguration() {} // WithKind sets the Kind field in the declarative configuration to the given value diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/example/v1alpha1/testtype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/example/v1alpha1/testtype.go index c620c878f13..4ec25fb4a4b 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/example/v1alpha1/testtype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/example/v1alpha1/testtype.go @@ -26,6 +26,8 @@ import ( // TestTypeApplyConfiguration represents a declarative configuration of the TestType type for use // with apply. +// +// TestType is a top-level type. A client is created for it. type TestTypeApplyConfiguration struct { v1.TypeMetaApplyConfiguration `json:",inline"` *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` @@ -42,6 +44,7 @@ func TestType(name, namespace string) *TestTypeApplyConfiguration { b.WithAPIVersion("example.dev/v1alpha1") return b } + func (b TestTypeApplyConfiguration) IsApplyConfiguration() {} // WithKind sets the Kind field in the declarative configuration to the given value diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/example/v1beta1/clustertesttype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/example/v1beta1/clustertesttype.go index ce3f857112e..5c1c5ef8952 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/example/v1beta1/clustertesttype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/example/v1beta1/clustertesttype.go @@ -29,9 +29,11 @@ import ( type ClusterTestTypeApplyConfiguration struct { v1.TypeMetaApplyConfiguration `json:",inline"` *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` - ObjectKind *string `json:"kind,omitempty"` - ObjectName *string `json:"name,omitempty"` - Status *ClusterTestTypeStatusApplyConfiguration `json:"status,omitempty"` + // ObjectKind is the type of resource being referenced + ObjectKind *string `json:"kind,omitempty"` + // ObjectName is the name of resource being referenced + ObjectName *string `json:"name,omitempty"` + Status *ClusterTestTypeStatusApplyConfiguration `json:"status,omitempty"` } // ClusterTestType constructs a declarative configuration of the ClusterTestType type for use with @@ -43,6 +45,7 @@ func ClusterTestType(name string) *ClusterTestTypeApplyConfiguration { b.WithAPIVersion("example.dev/v1beta1") return b } + func (b ClusterTestTypeApplyConfiguration) IsApplyConfiguration() {} // WithKind sets the Kind field in the declarative configuration to the given value diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/example/v1beta1/testtype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/example/v1beta1/testtype.go index d65ee6d53af..68e64809e98 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/example/v1beta1/testtype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/example/v1beta1/testtype.go @@ -26,6 +26,8 @@ import ( // TestTypeApplyConfiguration represents a declarative configuration of the TestType type for use // with apply. +// +// TestType is a top-level type. A client is created for it. type TestTypeApplyConfiguration struct { v1.TypeMetaApplyConfiguration `json:",inline"` *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` @@ -42,6 +44,7 @@ func TestType(name, namespace string) *TestTypeApplyConfiguration { b.WithAPIVersion("example.dev/v1beta1") return b } + func (b TestTypeApplyConfiguration) IsApplyConfiguration() {} // WithKind sets the Kind field in the declarative configuration to the given value diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/example/v2/clustertesttype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/example/v2/clustertesttype.go index 8a4aad9256b..267118e8781 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/example/v2/clustertesttype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/example/v2/clustertesttype.go @@ -29,9 +29,11 @@ import ( type ClusterTestTypeApplyConfiguration struct { v1.TypeMetaApplyConfiguration `json:",inline"` *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` - ObjectKind *string `json:"kind,omitempty"` - ObjectName *string `json:"name,omitempty"` - Status *ClusterTestTypeStatusApplyConfiguration `json:"status,omitempty"` + // ObjectKind is the type of resource being referenced + ObjectKind *string `json:"kind,omitempty"` + // ObjectName is the name of resource being referenced + ObjectName *string `json:"name,omitempty"` + Status *ClusterTestTypeStatusApplyConfiguration `json:"status,omitempty"` } // ClusterTestType constructs a declarative configuration of the ClusterTestType type for use with @@ -43,6 +45,7 @@ func ClusterTestType(name string) *ClusterTestTypeApplyConfiguration { b.WithAPIVersion("example.dev/v2") return b } + func (b ClusterTestTypeApplyConfiguration) IsApplyConfiguration() {} // WithKind sets the Kind field in the declarative configuration to the given value diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/example/v2/testtype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/example/v2/testtype.go index bbfe4c34ce7..127f72c3168 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/example/v2/testtype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/example/v2/testtype.go @@ -26,6 +26,8 @@ import ( // TestTypeApplyConfiguration represents a declarative configuration of the TestType type for use // with apply. +// +// TestType is a top-level type. A client is created for it. type TestTypeApplyConfiguration struct { v1.TypeMetaApplyConfiguration `json:",inline"` *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` @@ -42,6 +44,7 @@ func TestType(name, namespace string) *TestTypeApplyConfiguration { b.WithAPIVersion("example.dev/v2") return b } + func (b TestTypeApplyConfiguration) IsApplyConfiguration() {} // WithKind sets the Kind field in the declarative configuration to the given value diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/example3/v1/clustertesttype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/example3/v1/clustertesttype.go index 3b0e6e96306..b7378f4a596 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/example3/v1/clustertesttype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/example3/v1/clustertesttype.go @@ -29,9 +29,11 @@ import ( type ClusterTestTypeApplyConfiguration struct { metav1.TypeMetaApplyConfiguration `json:",inline"` *metav1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` - ObjectKind *string `json:"kind,omitempty"` - ObjectName *string `json:"name,omitempty"` - Status *ClusterTestTypeStatusApplyConfiguration `json:"status,omitempty"` + // ObjectKind is the type of resource being referenced + ObjectKind *string `json:"kind,omitempty"` + // ObjectName is the name of resource being referenced + ObjectName *string `json:"name,omitempty"` + Status *ClusterTestTypeStatusApplyConfiguration `json:"status,omitempty"` } // ClusterTestType constructs a declarative configuration of the ClusterTestType type for use with @@ -43,6 +45,7 @@ func ClusterTestType(name string) *ClusterTestTypeApplyConfiguration { b.WithAPIVersion("example3.some.corp/v1") return b } + func (b ClusterTestTypeApplyConfiguration) IsApplyConfiguration() {} // WithKind sets the Kind field in the declarative configuration to the given value diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/example3/v1/testtype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/example3/v1/testtype.go index 6c10556632b..a9ea0f999b6 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/example3/v1/testtype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/example3/v1/testtype.go @@ -26,6 +26,8 @@ import ( // TestTypeApplyConfiguration represents a declarative configuration of the TestType type for use // with apply. +// +// TestType is a top-level type. A client is created for it. type TestTypeApplyConfiguration struct { metav1.TypeMetaApplyConfiguration `json:",inline"` *metav1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` @@ -42,6 +44,7 @@ func TestType(name, namespace string) *TestTypeApplyConfiguration { b.WithAPIVersion("example3.some.corp/v1") return b } + func (b TestTypeApplyConfiguration) IsApplyConfiguration() {} // WithKind sets the Kind field in the declarative configuration to the given value diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/exampledashed/v1/clustertesttype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/exampledashed/v1/clustertesttype.go index 229230aa72b..2e0a75c87e6 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/exampledashed/v1/clustertesttype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/exampledashed/v1/clustertesttype.go @@ -29,9 +29,11 @@ import ( type ClusterTestTypeApplyConfiguration struct { metav1.TypeMetaApplyConfiguration `json:",inline"` *metav1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` - ObjectKind *string `json:"kind,omitempty"` - ObjectName *string `json:"name,omitempty"` - Status *ClusterTestTypeStatusApplyConfiguration `json:"status,omitempty"` + // ObjectKind is the type of resource being referenced + ObjectKind *string `json:"kind,omitempty"` + // ObjectName is the name of resource being referenced + ObjectName *string `json:"name,omitempty"` + Status *ClusterTestTypeStatusApplyConfiguration `json:"status,omitempty"` } // ClusterTestType constructs a declarative configuration of the ClusterTestType type for use with @@ -43,6 +45,7 @@ func ClusterTestType(name string) *ClusterTestTypeApplyConfiguration { b.WithAPIVersion("example-dashed.some.corp/v1") return b } + func (b ClusterTestTypeApplyConfiguration) IsApplyConfiguration() {} // WithKind sets the Kind field in the declarative configuration to the given value diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/exampledashed/v1/testtype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/exampledashed/v1/testtype.go index 6c0b153a2d5..50db82eeb24 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/exampledashed/v1/testtype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/exampledashed/v1/testtype.go @@ -26,6 +26,8 @@ import ( // TestTypeApplyConfiguration represents a declarative configuration of the TestType type for use // with apply. +// +// TestType is a top-level type. A client is created for it. type TestTypeApplyConfiguration struct { metav1.TypeMetaApplyConfiguration `json:",inline"` *metav1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` @@ -42,6 +44,7 @@ func TestType(name, namespace string) *TestTypeApplyConfiguration { b.WithAPIVersion("example-dashed.some.corp/v1") return b } + func (b TestTypeApplyConfiguration) IsApplyConfiguration() {} // WithKind sets the Kind field in the declarative configuration to the given value diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/existinginterfaces/v1/clustertesttype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/existinginterfaces/v1/clustertesttype.go index bb65f0d4ab4..4be370e04f5 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/existinginterfaces/v1/clustertesttype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/existinginterfaces/v1/clustertesttype.go @@ -29,9 +29,11 @@ import ( type ClusterTestTypeApplyConfiguration struct { metav1.TypeMetaApplyConfiguration `json:",inline"` *metav1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` - ObjectKind *string `json:"kind,omitempty"` - ObjectName *string `json:"name,omitempty"` - Status *ClusterTestTypeStatusApplyConfiguration `json:"status,omitempty"` + // ObjectKind is the type of resource being referenced + ObjectKind *string `json:"kind,omitempty"` + // ObjectName is the name of resource being referenced + ObjectName *string `json:"name,omitempty"` + Status *ClusterTestTypeStatusApplyConfiguration `json:"status,omitempty"` } // ClusterTestType constructs a declarative configuration of the ClusterTestType type for use with @@ -43,6 +45,7 @@ func ClusterTestType(name string) *ClusterTestTypeApplyConfiguration { b.WithAPIVersion("existinginterfaces.acme.corp/v1") return b } + func (b ClusterTestTypeApplyConfiguration) IsApplyConfiguration() {} // WithKind sets the Kind field in the declarative configuration to the given value diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/existinginterfaces/v1/testtype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/existinginterfaces/v1/testtype.go index eba986a94e7..0e85038cd01 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/existinginterfaces/v1/testtype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/existinginterfaces/v1/testtype.go @@ -26,6 +26,8 @@ import ( // TestTypeApplyConfiguration represents a declarative configuration of the TestType type for use // with apply. +// +// TestType is a top-level type. A client is created for it. type TestTypeApplyConfiguration struct { metav1.TypeMetaApplyConfiguration `json:",inline"` *metav1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` @@ -42,6 +44,7 @@ func TestType(name, namespace string) *TestTypeApplyConfiguration { b.WithAPIVersion("existinginterfaces.acme.corp/v1") return b } + func (b TestTypeApplyConfiguration) IsApplyConfiguration() {} // WithKind sets the Kind field in the declarative configuration to the given value diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/secondexample/v1/clustertesttype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/secondexample/v1/clustertesttype.go index e766d2de4cd..8d4dfb69b17 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/secondexample/v1/clustertesttype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/secondexample/v1/clustertesttype.go @@ -29,9 +29,11 @@ import ( type ClusterTestTypeApplyConfiguration struct { metav1.TypeMetaApplyConfiguration `json:",inline"` *metav1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` - ObjectKind *string `json:"kind,omitempty"` - ObjectName *string `json:"name,omitempty"` - Status *ClusterTestTypeStatusApplyConfiguration `json:"status,omitempty"` + // ObjectKind is the type of resource being referenced + ObjectKind *string `json:"kind,omitempty"` + // ObjectName is the name of resource being referenced + ObjectName *string `json:"name,omitempty"` + Status *ClusterTestTypeStatusApplyConfiguration `json:"status,omitempty"` } // ClusterTestType constructs a declarative configuration of the ClusterTestType type for use with @@ -43,6 +45,7 @@ func ClusterTestType(name string) *ClusterTestTypeApplyConfiguration { b.WithAPIVersion("secondexample.dev/v1") return b } + func (b ClusterTestTypeApplyConfiguration) IsApplyConfiguration() {} // WithKind sets the Kind field in the declarative configuration to the given value diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/secondexample/v1/testtype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/secondexample/v1/testtype.go index 479959d3a5e..ae9307bb40c 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/secondexample/v1/testtype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/applyconfigurations/secondexample/v1/testtype.go @@ -26,6 +26,8 @@ import ( // TestTypeApplyConfiguration represents a declarative configuration of the TestType type for use // with apply. +// +// TestType is a top-level type. A client is created for it. type TestTypeApplyConfiguration struct { metav1.TypeMetaApplyConfiguration `json:",inline"` *metav1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` @@ -42,6 +44,7 @@ func TestType(name, namespace string) *TestTypeApplyConfiguration { b.WithAPIVersion("secondexample.dev/v1") return b } + func (b TestTypeApplyConfiguration) IsApplyConfiguration() {} // WithKind sets the Kind field in the declarative configuration to the given value diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/clientset/versioned/fake/clientset_generated.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/clientset/versioned/fake/clientset_generated.go index 760687d6ee6..7bb38bf5b6f 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/clientset/versioned/fake/clientset_generated.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/clientset/versioned/fake/clientset_generated.go @@ -51,7 +51,7 @@ import ( // without applying any field management, validations and/or defaults. It shouldn't be considered a replacement // for a real clientset and is mostly useful in simple unit tests. // -// DEPRECATED: NewClientset replaces this with support for field management, which significantly improves +// Deprecated: NewClientset replaces this with support for field management, which significantly improves // server side apply testing. NewClientset is only available when apply configurations are generated (e.g. // via --with-applyconfig). func NewSimpleClientset(objects ...runtime.Object) *Clientset { @@ -67,8 +67,8 @@ func NewSimpleClientset(objects ...runtime.Object) *Clientset { cs.AddReactor("*", "*", testing.ObjectReaction(o)) cs.AddWatchReactor("*", func(action testing.Action) (handled bool, ret watch.Interface, err error) { var opts metav1.ListOptions - if watchActcion, ok := action.(testing.WatchActionImpl); ok { - opts = watchActcion.ListOptions + if watchAction, ok := action.(testing.WatchActionImpl); ok { + opts = watchAction.ListOptions } gvr := action.GetResource() ns := action.GetNamespace() @@ -99,6 +99,17 @@ func (c *Clientset) Tracker() testing.ObjectTracker { return c.tracker } +// IsWatchListSemanticsSupported informs the reflector that this client +// doesn't support WatchList semantics. +// +// This is a synthetic method whose sole purpose is to satisfy the optional +// interface check performed by the reflector. +// Returning true signals that WatchList can NOT be used. +// No additional logic is implemented here. +func (c *Clientset) IsWatchListSemanticsUnSupported() bool { + return true +} + // NewClientset returns a clientset that will respond with the provided objects. // It's backed by a very simple object tracker that processes creates, updates and deletions as-is, // without applying any validations and/or defaults. It shouldn't be considered a replacement diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/example/v1/clustertesttype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/example/v1/clustertesttype.go index c3e5618f98a..d3701815f99 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/example/v1/clustertesttype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/example/v1/clustertesttype.go @@ -57,7 +57,7 @@ func NewClusterTestTypeInformer(client versioned.Interface, resyncPeriod time.Du // one. This reduces memory footprint and number of connections to the server. func NewFilteredClusterTestTypeInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -82,7 +82,7 @@ func NewFilteredClusterTestTypeInformer(client versioned.Interface, resyncPeriod } return client.ExampleV1().ClusterTestTypes().Watch(ctx, options) }, - }, + }, client), &apisexamplev1.ClusterTestType{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/example/v1/testtype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/example/v1/testtype.go index f05a307cecb..1fdf6e30d73 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/example/v1/testtype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/example/v1/testtype.go @@ -58,7 +58,7 @@ func NewTestTypeInformer(client versioned.Interface, namespace string, resyncPer // one. This reduces memory footprint and number of connections to the server. func NewFilteredTestTypeInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -83,7 +83,7 @@ func NewFilteredTestTypeInformer(client versioned.Interface, namespace string, r } return client.ExampleV1().TestTypes(namespace).Watch(ctx, options) }, - }, + }, client), &apisexamplev1.TestType{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/example/v1alpha1/clustertesttype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/example/v1alpha1/clustertesttype.go index 3042ffb13ae..8cda2074f55 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/example/v1alpha1/clustertesttype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/example/v1alpha1/clustertesttype.go @@ -57,7 +57,7 @@ func NewClusterTestTypeInformer(client versioned.Interface, resyncPeriod time.Du // one. This reduces memory footprint and number of connections to the server. func NewFilteredClusterTestTypeInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -82,7 +82,7 @@ func NewFilteredClusterTestTypeInformer(client versioned.Interface, resyncPeriod } return client.ExampleV1alpha1().ClusterTestTypes().Watch(ctx, options) }, - }, + }, client), &apisexamplev1alpha1.ClusterTestType{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/example/v1alpha1/testtype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/example/v1alpha1/testtype.go index 547d0ebc242..76387c2aa9d 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/example/v1alpha1/testtype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/example/v1alpha1/testtype.go @@ -58,7 +58,7 @@ func NewTestTypeInformer(client versioned.Interface, namespace string, resyncPer // one. This reduces memory footprint and number of connections to the server. func NewFilteredTestTypeInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -83,7 +83,7 @@ func NewFilteredTestTypeInformer(client versioned.Interface, namespace string, r } return client.ExampleV1alpha1().TestTypes(namespace).Watch(ctx, options) }, - }, + }, client), &apisexamplev1alpha1.TestType{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/example/v1beta1/clustertesttype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/example/v1beta1/clustertesttype.go index 9cb201bf2fc..8d0ba4b8895 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/example/v1beta1/clustertesttype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/example/v1beta1/clustertesttype.go @@ -57,7 +57,7 @@ func NewClusterTestTypeInformer(client versioned.Interface, resyncPeriod time.Du // one. This reduces memory footprint and number of connections to the server. func NewFilteredClusterTestTypeInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -82,7 +82,7 @@ func NewFilteredClusterTestTypeInformer(client versioned.Interface, resyncPeriod } return client.ExampleV1beta1().ClusterTestTypes().Watch(ctx, options) }, - }, + }, client), &apisexamplev1beta1.ClusterTestType{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/example/v1beta1/testtype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/example/v1beta1/testtype.go index 634507cf0ac..1bb95a9723d 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/example/v1beta1/testtype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/example/v1beta1/testtype.go @@ -58,7 +58,7 @@ func NewTestTypeInformer(client versioned.Interface, namespace string, resyncPer // one. This reduces memory footprint and number of connections to the server. func NewFilteredTestTypeInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -83,7 +83,7 @@ func NewFilteredTestTypeInformer(client versioned.Interface, namespace string, r } return client.ExampleV1beta1().TestTypes(namespace).Watch(ctx, options) }, - }, + }, client), &apisexamplev1beta1.TestType{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/example/v2/clustertesttype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/example/v2/clustertesttype.go index b55f10abb9f..3fdbc271a48 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/example/v2/clustertesttype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/example/v2/clustertesttype.go @@ -57,7 +57,7 @@ func NewClusterTestTypeInformer(client versioned.Interface, resyncPeriod time.Du // one. This reduces memory footprint and number of connections to the server. func NewFilteredClusterTestTypeInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -82,7 +82,7 @@ func NewFilteredClusterTestTypeInformer(client versioned.Interface, resyncPeriod } return client.ExampleV2().ClusterTestTypes().Watch(ctx, options) }, - }, + }, client), &apisexamplev2.ClusterTestType{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/example/v2/testtype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/example/v2/testtype.go index b335d31160c..57d20787ab2 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/example/v2/testtype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/example/v2/testtype.go @@ -58,7 +58,7 @@ func NewTestTypeInformer(client versioned.Interface, namespace string, resyncPer // one. This reduces memory footprint and number of connections to the server. func NewFilteredTestTypeInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -83,7 +83,7 @@ func NewFilteredTestTypeInformer(client versioned.Interface, namespace string, r } return client.ExampleV2().TestTypes(namespace).Watch(ctx, options) }, - }, + }, client), &apisexamplev2.TestType{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/example3/v1/clustertesttype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/example3/v1/clustertesttype.go index 7776a32706d..90d73f051dd 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/example3/v1/clustertesttype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/example3/v1/clustertesttype.go @@ -57,7 +57,7 @@ func NewClusterTestTypeInformer(client versioned.Interface, resyncPeriod time.Du // one. This reduces memory footprint and number of connections to the server. func NewFilteredClusterTestTypeInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -82,7 +82,7 @@ func NewFilteredClusterTestTypeInformer(client versioned.Interface, resyncPeriod } return client.Example3V1().ClusterTestTypes().Watch(ctx, options) }, - }, + }, client), &apisexample3v1.ClusterTestType{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/example3/v1/testtype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/example3/v1/testtype.go index 6e79c562d0f..26980201f52 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/example3/v1/testtype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/example3/v1/testtype.go @@ -58,7 +58,7 @@ func NewTestTypeInformer(client versioned.Interface, namespace string, resyncPer // one. This reduces memory footprint and number of connections to the server. func NewFilteredTestTypeInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -83,7 +83,7 @@ func NewFilteredTestTypeInformer(client versioned.Interface, namespace string, r } return client.Example3V1().TestTypes(namespace).Watch(ctx, options) }, - }, + }, client), &apisexample3v1.TestType{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/exampledashed/v1/clustertesttype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/exampledashed/v1/clustertesttype.go index 5cb688ed24c..0f7fdb40315 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/exampledashed/v1/clustertesttype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/exampledashed/v1/clustertesttype.go @@ -57,7 +57,7 @@ func NewClusterTestTypeInformer(client versioned.Interface, resyncPeriod time.Du // one. This reduces memory footprint and number of connections to the server. func NewFilteredClusterTestTypeInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -82,7 +82,7 @@ func NewFilteredClusterTestTypeInformer(client versioned.Interface, resyncPeriod } return client.ExampleDashedV1().ClusterTestTypes().Watch(ctx, options) }, - }, + }, client), &apisexampledashedv1.ClusterTestType{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/exampledashed/v1/testtype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/exampledashed/v1/testtype.go index 834acc5830f..cabd2f67721 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/exampledashed/v1/testtype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/exampledashed/v1/testtype.go @@ -58,7 +58,7 @@ func NewTestTypeInformer(client versioned.Interface, namespace string, resyncPer // one. This reduces memory footprint and number of connections to the server. func NewFilteredTestTypeInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -83,7 +83,7 @@ func NewFilteredTestTypeInformer(client versioned.Interface, namespace string, r } return client.ExampleDashedV1().TestTypes(namespace).Watch(ctx, options) }, - }, + }, client), &apisexampledashedv1.TestType{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/existinginterfaces/v1/clustertesttype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/existinginterfaces/v1/clustertesttype.go index a33e3a06afd..76bb704aede 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/existinginterfaces/v1/clustertesttype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/existinginterfaces/v1/clustertesttype.go @@ -57,7 +57,7 @@ func NewClusterTestTypeInformer(client versioned.Interface, resyncPeriod time.Du // one. This reduces memory footprint and number of connections to the server. func NewFilteredClusterTestTypeInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -82,7 +82,7 @@ func NewFilteredClusterTestTypeInformer(client versioned.Interface, resyncPeriod } return client.ExistinginterfacesV1().ClusterTestTypes().Watch(ctx, options) }, - }, + }, client), &apisexistinginterfacesv1.ClusterTestType{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/existinginterfaces/v1/testtype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/existinginterfaces/v1/testtype.go index 25c2c6a055c..004cf72e52e 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/existinginterfaces/v1/testtype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/existinginterfaces/v1/testtype.go @@ -58,7 +58,7 @@ func NewTestTypeInformer(client versioned.Interface, namespace string, resyncPer // one. This reduces memory footprint and number of connections to the server. func NewFilteredTestTypeInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -83,7 +83,7 @@ func NewFilteredTestTypeInformer(client versioned.Interface, namespace string, r } return client.ExistinginterfacesV1().TestTypes(namespace).Watch(ctx, options) }, - }, + }, client), &apisexistinginterfacesv1.TestType{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/factory.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/factory.go index f56cc09ec2a..e1fa842c7f4 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/factory.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/factory.go @@ -102,6 +102,7 @@ func NewSharedInformerFactory(client versioned.Interface, defaultResync time.Dur // NewFilteredSharedInformerFactory constructs a new instance of sharedInformerFactory. // Listers obtained via this SharedInformerFactory will be subject to the same filters // as specified here. +// // Deprecated: Please use NewSharedInformerFactoryWithOptions instead func NewFilteredSharedInformerFactory(client versioned.Interface, defaultResync time.Duration, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) SharedInformerFactory { return NewSharedInformerFactoryWithOptions(client, defaultResync, WithNamespace(namespace), WithTweakListOptions(tweakListOptions)) @@ -209,7 +210,7 @@ func (f *sharedInformerFactory) InformerFor(obj runtime.Object, newFunc internal // // It is typically used like this: // -// ctx, cancel := context.Background() +// ctx, cancel := context.WithCancel(context.Background()) // defer cancel() // factory := NewSharedInformerFactory(client, resyncPeriod) // defer factory.WaitForStop() // Returns immediately if nothing was started. diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/secondexample/v1/clustertesttype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/secondexample/v1/clustertesttype.go index ebc0d15f3d9..81f748cb46e 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/secondexample/v1/clustertesttype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/secondexample/v1/clustertesttype.go @@ -57,7 +57,7 @@ func NewClusterTestTypeInformer(client versioned.Interface, resyncPeriod time.Du // one. This reduces memory footprint and number of connections to the server. func NewFilteredClusterTestTypeInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -82,7 +82,7 @@ func NewFilteredClusterTestTypeInformer(client versioned.Interface, resyncPeriod } return client.SecondexampleV1().ClusterTestTypes().Watch(ctx, options) }, - }, + }, client), &apissecondexamplev1.ClusterTestType{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/secondexample/v1/testtype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/secondexample/v1/testtype.go index d7d22987aed..c6a93914ba1 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/secondexample/v1/testtype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/generated/informers/externalversions/secondexample/v1/testtype.go @@ -58,7 +58,7 @@ func NewTestTypeInformer(client versioned.Interface, namespace string, resyncPer // one. This reduces memory footprint and number of connections to the server. func NewFilteredTestTypeInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -83,7 +83,7 @@ func NewFilteredTestTypeInformer(client versioned.Interface, namespace string, r } return client.SecondexampleV1().TestTypes(namespace).Watch(ctx, options) }, - }, + }, client), &apissecondexamplev1.TestType{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/clientset/versioned/fake/clientset.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/clientset/versioned/fake/clientset.go index b4cb239e5c4..c1ecd4f2f40 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/clientset/versioned/fake/clientset.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/clientset/versioned/fake/clientset.go @@ -61,7 +61,7 @@ import ( // without applying any field management, validations and/or defaults. It shouldn't be considered a replacement // for a real clientset and is mostly useful in simple unit tests. // -// DEPRECATED: NewClientset replaces this with support for field management, which significantly improves +// Deprecated: NewClientset replaces this with support for field management, which significantly improves // server side apply testing. NewClientset is only available when apply configurations are generated (e.g. // via --with-applyconfig). func NewSimpleClientset(objects ...runtime.Object) *ClusterClientset { @@ -94,6 +94,28 @@ func (c *ClusterClientset) Tracker() kcptesting.ObjectTracker { return c.tracker } +// IsWatchListSemanticsUnSupported informs the reflector that this client +// doesn't support WatchList semantics. +// +// This is a synthetic method whose sole purpose is to satisfy the optional +// interface check performed by the reflector. +// Returning true signals that WatchList can NOT be used. +// No additional logic is implemented here. +func (c *ClusterClientset) IsWatchListSemanticsUnSupported() bool { + return true +} + +// IsWatchListSemanticsSupported informs the reflector that this client +// doesn't support WatchList semantics. +// +// This is a synthetic method whose sole purpose is to satisfy the optional +// interface check performed by the reflector. +// Returning true signals that WatchList can NOT be used. +// No additional logic is implemented here. +func (c *Clientset) IsWatchListSemanticsUnSupported() bool { + return true +} + // Cluster scopes this clientset to one cluster. func (c *ClusterClientset) Cluster(clusterPath logicalcluster.Path) clientset.Interface { if clusterPath == logicalcluster.Wildcard { diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/example/v1/clustertesttype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/example/v1/clustertesttype.go index 1464800a8ba..eeb1d7bcc5f 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/example/v1/clustertesttype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/example/v1/clustertesttype.go @@ -64,7 +64,7 @@ func NewClusterTestTypeClusterInformer(client versioned.ClusterInterface, resync // one. This reduces memory footprint and number of connections to the server. func NewFilteredClusterTestTypeClusterInformer(client versioned.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredClusterTestTypeClusterInformer(client versioned.ClusterInterface } return client.ExampleV1().ClusterTestTypes().Watch(context.Background(), options) }, - }, + }, client), &apisexamplev1.ClusterTestType{}, resyncPeriod, indexers, @@ -150,7 +150,7 @@ func NewClusterTestTypeInformer(client clientsetversioned.Interface, resyncPerio // one. This reduces memory footprint and number of connections to the server. func NewFilteredClusterTestTypeInformer(client clientsetversioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -163,7 +163,7 @@ func NewFilteredClusterTestTypeInformer(client clientsetversioned.Interface, res } return client.ExampleV1().ClusterTestTypes().Watch(context.Background(), options) }, - }, + }, client), &apisexamplev1.ClusterTestType{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/example/v1/testtype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/example/v1/testtype.go index 5c9f1ddb28f..ca31ea4b15d 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/example/v1/testtype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/example/v1/testtype.go @@ -64,7 +64,7 @@ func NewTestTypeClusterInformer(client versioned.ClusterInterface, resyncPeriod // one. This reduces memory footprint and number of connections to the server. func NewFilteredTestTypeClusterInformer(client versioned.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredTestTypeClusterInformer(client versioned.ClusterInterface, resyn } return client.ExampleV1().TestTypes().Watch(context.Background(), options) }, - }, + }, client), &apisexamplev1.TestType{}, resyncPeriod, indexers, @@ -151,7 +151,7 @@ func NewTestTypeInformer(client clientsetversioned.Interface, resyncPeriod time. // one. This reduces memory footprint and number of connections to the server. func NewFilteredTestTypeInformer(client clientsetversioned.Interface, resyncPeriod time.Duration, namespace string, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -164,7 +164,7 @@ func NewFilteredTestTypeInformer(client clientsetversioned.Interface, resyncPeri } return client.ExampleV1().TestTypes(namespace).Watch(context.Background(), options) }, - }, + }, client), &apisexamplev1.TestType{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/example/v1alpha1/clustertesttype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/example/v1alpha1/clustertesttype.go index 2403ab0b8fa..50ecb9e9f05 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/example/v1alpha1/clustertesttype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/example/v1alpha1/clustertesttype.go @@ -64,7 +64,7 @@ func NewClusterTestTypeClusterInformer(client versioned.ClusterInterface, resync // one. This reduces memory footprint and number of connections to the server. func NewFilteredClusterTestTypeClusterInformer(client versioned.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredClusterTestTypeClusterInformer(client versioned.ClusterInterface } return client.ExampleV1alpha1().ClusterTestTypes().Watch(context.Background(), options) }, - }, + }, client), &apisexamplev1alpha1.ClusterTestType{}, resyncPeriod, indexers, @@ -150,7 +150,7 @@ func NewClusterTestTypeInformer(client clientsetversioned.Interface, resyncPerio // one. This reduces memory footprint and number of connections to the server. func NewFilteredClusterTestTypeInformer(client clientsetversioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -163,7 +163,7 @@ func NewFilteredClusterTestTypeInformer(client clientsetversioned.Interface, res } return client.ExampleV1alpha1().ClusterTestTypes().Watch(context.Background(), options) }, - }, + }, client), &apisexamplev1alpha1.ClusterTestType{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/example/v1alpha1/testtype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/example/v1alpha1/testtype.go index e6aa7f4c099..bf3e8b88751 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/example/v1alpha1/testtype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/example/v1alpha1/testtype.go @@ -64,7 +64,7 @@ func NewTestTypeClusterInformer(client versioned.ClusterInterface, resyncPeriod // one. This reduces memory footprint and number of connections to the server. func NewFilteredTestTypeClusterInformer(client versioned.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredTestTypeClusterInformer(client versioned.ClusterInterface, resyn } return client.ExampleV1alpha1().TestTypes().Watch(context.Background(), options) }, - }, + }, client), &apisexamplev1alpha1.TestType{}, resyncPeriod, indexers, @@ -151,7 +151,7 @@ func NewTestTypeInformer(client clientsetversioned.Interface, resyncPeriod time. // one. This reduces memory footprint and number of connections to the server. func NewFilteredTestTypeInformer(client clientsetversioned.Interface, resyncPeriod time.Duration, namespace string, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -164,7 +164,7 @@ func NewFilteredTestTypeInformer(client clientsetversioned.Interface, resyncPeri } return client.ExampleV1alpha1().TestTypes(namespace).Watch(context.Background(), options) }, - }, + }, client), &apisexamplev1alpha1.TestType{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/example/v1beta1/clustertesttype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/example/v1beta1/clustertesttype.go index 9de6c3c2f86..0014ed25d38 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/example/v1beta1/clustertesttype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/example/v1beta1/clustertesttype.go @@ -64,7 +64,7 @@ func NewClusterTestTypeClusterInformer(client versioned.ClusterInterface, resync // one. This reduces memory footprint and number of connections to the server. func NewFilteredClusterTestTypeClusterInformer(client versioned.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredClusterTestTypeClusterInformer(client versioned.ClusterInterface } return client.ExampleV1beta1().ClusterTestTypes().Watch(context.Background(), options) }, - }, + }, client), &apisexamplev1beta1.ClusterTestType{}, resyncPeriod, indexers, @@ -150,7 +150,7 @@ func NewClusterTestTypeInformer(client clientsetversioned.Interface, resyncPerio // one. This reduces memory footprint and number of connections to the server. func NewFilteredClusterTestTypeInformer(client clientsetversioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -163,7 +163,7 @@ func NewFilteredClusterTestTypeInformer(client clientsetversioned.Interface, res } return client.ExampleV1beta1().ClusterTestTypes().Watch(context.Background(), options) }, - }, + }, client), &apisexamplev1beta1.ClusterTestType{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/example/v1beta1/testtype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/example/v1beta1/testtype.go index 92e98c89c4c..785e5b1fb8b 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/example/v1beta1/testtype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/example/v1beta1/testtype.go @@ -64,7 +64,7 @@ func NewTestTypeClusterInformer(client versioned.ClusterInterface, resyncPeriod // one. This reduces memory footprint and number of connections to the server. func NewFilteredTestTypeClusterInformer(client versioned.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredTestTypeClusterInformer(client versioned.ClusterInterface, resyn } return client.ExampleV1beta1().TestTypes().Watch(context.Background(), options) }, - }, + }, client), &apisexamplev1beta1.TestType{}, resyncPeriod, indexers, @@ -151,7 +151,7 @@ func NewTestTypeInformer(client clientsetversioned.Interface, resyncPeriod time. // one. This reduces memory footprint and number of connections to the server. func NewFilteredTestTypeInformer(client clientsetversioned.Interface, resyncPeriod time.Duration, namespace string, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -164,7 +164,7 @@ func NewFilteredTestTypeInformer(client clientsetversioned.Interface, resyncPeri } return client.ExampleV1beta1().TestTypes(namespace).Watch(context.Background(), options) }, - }, + }, client), &apisexamplev1beta1.TestType{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/example/v2/clustertesttype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/example/v2/clustertesttype.go index 1af55e52da4..107f438a064 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/example/v2/clustertesttype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/example/v2/clustertesttype.go @@ -64,7 +64,7 @@ func NewClusterTestTypeClusterInformer(client versioned.ClusterInterface, resync // one. This reduces memory footprint and number of connections to the server. func NewFilteredClusterTestTypeClusterInformer(client versioned.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredClusterTestTypeClusterInformer(client versioned.ClusterInterface } return client.ExampleV2().ClusterTestTypes().Watch(context.Background(), options) }, - }, + }, client), &apisexamplev2.ClusterTestType{}, resyncPeriod, indexers, @@ -150,7 +150,7 @@ func NewClusterTestTypeInformer(client clientsetversioned.Interface, resyncPerio // one. This reduces memory footprint and number of connections to the server. func NewFilteredClusterTestTypeInformer(client clientsetversioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -163,7 +163,7 @@ func NewFilteredClusterTestTypeInformer(client clientsetversioned.Interface, res } return client.ExampleV2().ClusterTestTypes().Watch(context.Background(), options) }, - }, + }, client), &apisexamplev2.ClusterTestType{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/example/v2/testtype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/example/v2/testtype.go index 97873a941d5..162dc8a2aa0 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/example/v2/testtype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/example/v2/testtype.go @@ -64,7 +64,7 @@ func NewTestTypeClusterInformer(client versioned.ClusterInterface, resyncPeriod // one. This reduces memory footprint and number of connections to the server. func NewFilteredTestTypeClusterInformer(client versioned.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredTestTypeClusterInformer(client versioned.ClusterInterface, resyn } return client.ExampleV2().TestTypes().Watch(context.Background(), options) }, - }, + }, client), &apisexamplev2.TestType{}, resyncPeriod, indexers, @@ -151,7 +151,7 @@ func NewTestTypeInformer(client clientsetversioned.Interface, resyncPeriod time. // one. This reduces memory footprint and number of connections to the server. func NewFilteredTestTypeInformer(client clientsetversioned.Interface, resyncPeriod time.Duration, namespace string, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -164,7 +164,7 @@ func NewFilteredTestTypeInformer(client clientsetversioned.Interface, resyncPeri } return client.ExampleV2().TestTypes(namespace).Watch(context.Background(), options) }, - }, + }, client), &apisexamplev2.TestType{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/example3/v1/clustertesttype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/example3/v1/clustertesttype.go index cb291b7ed1d..860ef31f862 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/example3/v1/clustertesttype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/example3/v1/clustertesttype.go @@ -64,7 +64,7 @@ func NewClusterTestTypeClusterInformer(client versioned.ClusterInterface, resync // one. This reduces memory footprint and number of connections to the server. func NewFilteredClusterTestTypeClusterInformer(client versioned.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredClusterTestTypeClusterInformer(client versioned.ClusterInterface } return client.Example3V1().ClusterTestTypes().Watch(context.Background(), options) }, - }, + }, client), &apisexample3v1.ClusterTestType{}, resyncPeriod, indexers, @@ -150,7 +150,7 @@ func NewClusterTestTypeInformer(client clientsetversioned.Interface, resyncPerio // one. This reduces memory footprint and number of connections to the server. func NewFilteredClusterTestTypeInformer(client clientsetversioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -163,7 +163,7 @@ func NewFilteredClusterTestTypeInformer(client clientsetversioned.Interface, res } return client.Example3V1().ClusterTestTypes().Watch(context.Background(), options) }, - }, + }, client), &apisexample3v1.ClusterTestType{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/example3/v1/testtype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/example3/v1/testtype.go index 6e394349045..c72d2dad6e1 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/example3/v1/testtype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/example3/v1/testtype.go @@ -64,7 +64,7 @@ func NewTestTypeClusterInformer(client versioned.ClusterInterface, resyncPeriod // one. This reduces memory footprint and number of connections to the server. func NewFilteredTestTypeClusterInformer(client versioned.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredTestTypeClusterInformer(client versioned.ClusterInterface, resyn } return client.Example3V1().TestTypes().Watch(context.Background(), options) }, - }, + }, client), &apisexample3v1.TestType{}, resyncPeriod, indexers, @@ -151,7 +151,7 @@ func NewTestTypeInformer(client clientsetversioned.Interface, resyncPeriod time. // one. This reduces memory footprint and number of connections to the server. func NewFilteredTestTypeInformer(client clientsetversioned.Interface, resyncPeriod time.Duration, namespace string, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -164,7 +164,7 @@ func NewFilteredTestTypeInformer(client clientsetversioned.Interface, resyncPeri } return client.Example3V1().TestTypes(namespace).Watch(context.Background(), options) }, - }, + }, client), &apisexample3v1.TestType{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/exampledashed/v1/clustertesttype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/exampledashed/v1/clustertesttype.go index 90eb89e1178..c0a2f828c8c 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/exampledashed/v1/clustertesttype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/exampledashed/v1/clustertesttype.go @@ -64,7 +64,7 @@ func NewClusterTestTypeClusterInformer(client versioned.ClusterInterface, resync // one. This reduces memory footprint and number of connections to the server. func NewFilteredClusterTestTypeClusterInformer(client versioned.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredClusterTestTypeClusterInformer(client versioned.ClusterInterface } return client.ExampleDashedV1().ClusterTestTypes().Watch(context.Background(), options) }, - }, + }, client), &apisexampledashedv1.ClusterTestType{}, resyncPeriod, indexers, @@ -150,7 +150,7 @@ func NewClusterTestTypeInformer(client clientsetversioned.Interface, resyncPerio // one. This reduces memory footprint and number of connections to the server. func NewFilteredClusterTestTypeInformer(client clientsetversioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -163,7 +163,7 @@ func NewFilteredClusterTestTypeInformer(client clientsetversioned.Interface, res } return client.ExampleDashedV1().ClusterTestTypes().Watch(context.Background(), options) }, - }, + }, client), &apisexampledashedv1.ClusterTestType{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/exampledashed/v1/testtype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/exampledashed/v1/testtype.go index fb984a709a0..20edc633a87 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/exampledashed/v1/testtype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/exampledashed/v1/testtype.go @@ -64,7 +64,7 @@ func NewTestTypeClusterInformer(client versioned.ClusterInterface, resyncPeriod // one. This reduces memory footprint and number of connections to the server. func NewFilteredTestTypeClusterInformer(client versioned.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredTestTypeClusterInformer(client versioned.ClusterInterface, resyn } return client.ExampleDashedV1().TestTypes().Watch(context.Background(), options) }, - }, + }, client), &apisexampledashedv1.TestType{}, resyncPeriod, indexers, @@ -151,7 +151,7 @@ func NewTestTypeInformer(client clientsetversioned.Interface, resyncPeriod time. // one. This reduces memory footprint and number of connections to the server. func NewFilteredTestTypeInformer(client clientsetversioned.Interface, resyncPeriod time.Duration, namespace string, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -164,7 +164,7 @@ func NewFilteredTestTypeInformer(client clientsetversioned.Interface, resyncPeri } return client.ExampleDashedV1().TestTypes(namespace).Watch(context.Background(), options) }, - }, + }, client), &apisexampledashedv1.TestType{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/existinginterfaces/v1/clustertesttype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/existinginterfaces/v1/clustertesttype.go index df48bd198c4..33c82cd1e4d 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/existinginterfaces/v1/clustertesttype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/existinginterfaces/v1/clustertesttype.go @@ -64,7 +64,7 @@ func NewClusterTestTypeClusterInformer(client versioned.ClusterInterface, resync // one. This reduces memory footprint and number of connections to the server. func NewFilteredClusterTestTypeClusterInformer(client versioned.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredClusterTestTypeClusterInformer(client versioned.ClusterInterface } return client.ExistinginterfacesV1().ClusterTestTypes().Watch(context.Background(), options) }, - }, + }, client), &apisexistinginterfacesv1.ClusterTestType{}, resyncPeriod, indexers, @@ -150,7 +150,7 @@ func NewClusterTestTypeInformer(client clientsetversioned.Interface, resyncPerio // one. This reduces memory footprint and number of connections to the server. func NewFilteredClusterTestTypeInformer(client clientsetversioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -163,7 +163,7 @@ func NewFilteredClusterTestTypeInformer(client clientsetversioned.Interface, res } return client.ExistinginterfacesV1().ClusterTestTypes().Watch(context.Background(), options) }, - }, + }, client), &apisexistinginterfacesv1.ClusterTestType{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/existinginterfaces/v1/testtype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/existinginterfaces/v1/testtype.go index e807dcf552d..cf270a17cac 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/existinginterfaces/v1/testtype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/existinginterfaces/v1/testtype.go @@ -64,7 +64,7 @@ func NewTestTypeClusterInformer(client versioned.ClusterInterface, resyncPeriod // one. This reduces memory footprint and number of connections to the server. func NewFilteredTestTypeClusterInformer(client versioned.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredTestTypeClusterInformer(client versioned.ClusterInterface, resyn } return client.ExistinginterfacesV1().TestTypes().Watch(context.Background(), options) }, - }, + }, client), &apisexistinginterfacesv1.TestType{}, resyncPeriod, indexers, @@ -151,7 +151,7 @@ func NewTestTypeInformer(client clientsetversioned.Interface, resyncPeriod time. // one. This reduces memory footprint and number of connections to the server. func NewFilteredTestTypeInformer(client clientsetversioned.Interface, resyncPeriod time.Duration, namespace string, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -164,7 +164,7 @@ func NewFilteredTestTypeInformer(client clientsetversioned.Interface, resyncPeri } return client.ExistinginterfacesV1().TestTypes(namespace).Watch(context.Background(), options) }, - }, + }, client), &apisexistinginterfacesv1.TestType{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/factory.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/factory.go index 918bc0f05cb..aaf5c336abc 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/factory.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/factory.go @@ -104,6 +104,7 @@ func NewSharedInformerFactory(client versioned.ClusterInterface, defaultResync t // NewFilteredSharedInformerFactory constructs a new instance of sharedInformerFactory. // Listers obtained via this SharedInformerFactory will be subject to the same filters // as specified here. +// // Deprecated: Please use NewSharedInformerFactoryWithOptions instead func NewFilteredSharedInformerFactory(client versioned.ClusterInterface, defaultResync time.Duration, tweakListOptions internalinterfaces.TweakListOptionsFunc) SharedInformerFactory { return NewSharedInformerFactoryWithOptions(client, defaultResync, WithTweakListOptions(tweakListOptions)) @@ -228,7 +229,7 @@ type ScopedDynamicSharedInformerFactory interface { // // It is typically used like this: // -// ctx, cancel := context.Background() +// ctx, cancel := context.WithCancel(context.Background()) // defer cancel() // factory := NewSharedInformerFactory(client, resyncPeriod) // defer factory.WaitForStop() // Returns immediately if nothing was started. diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/secondexample/v1/clustertesttype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/secondexample/v1/clustertesttype.go index 98c07a5cb71..e15b17694b6 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/secondexample/v1/clustertesttype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/secondexample/v1/clustertesttype.go @@ -64,7 +64,7 @@ func NewClusterTestTypeClusterInformer(client versioned.ClusterInterface, resync // one. This reduces memory footprint and number of connections to the server. func NewFilteredClusterTestTypeClusterInformer(client versioned.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredClusterTestTypeClusterInformer(client versioned.ClusterInterface } return client.SecondexampleV1().ClusterTestTypes().Watch(context.Background(), options) }, - }, + }, client), &apissecondexamplev1.ClusterTestType{}, resyncPeriod, indexers, @@ -150,7 +150,7 @@ func NewClusterTestTypeInformer(client clientsetversioned.Interface, resyncPerio // one. This reduces memory footprint and number of connections to the server. func NewFilteredClusterTestTypeInformer(client clientsetversioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -163,7 +163,7 @@ func NewFilteredClusterTestTypeInformer(client clientsetversioned.Interface, res } return client.SecondexampleV1().ClusterTestTypes().Watch(context.Background(), options) }, - }, + }, client), &apissecondexamplev1.ClusterTestType{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/secondexample/v1/testtype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/secondexample/v1/testtype.go index 00f1f3ceaf0..da1b0f448ff 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/secondexample/v1/testtype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcp/clients/informers/externalversions/secondexample/v1/testtype.go @@ -64,7 +64,7 @@ func NewTestTypeClusterInformer(client versioned.ClusterInterface, resyncPeriod // one. This reduces memory footprint and number of connections to the server. func NewFilteredTestTypeClusterInformer(client versioned.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredTestTypeClusterInformer(client versioned.ClusterInterface, resyn } return client.SecondexampleV1().TestTypes().Watch(context.Background(), options) }, - }, + }, client), &apissecondexamplev1.TestType{}, resyncPeriod, indexers, @@ -151,7 +151,7 @@ func NewTestTypeInformer(client clientsetversioned.Interface, resyncPeriod time. // one. This reduces memory footprint and number of connections to the server. func NewFilteredTestTypeInformer(client clientsetversioned.Interface, resyncPeriod time.Duration, namespace string, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -164,7 +164,7 @@ func NewFilteredTestTypeInformer(client clientsetversioned.Interface, resyncPeri } return client.SecondexampleV1().TestTypes(namespace).Watch(context.Background(), options) }, - }, + }, client), &apissecondexamplev1.TestType{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/clientset/versioned/fake/clientset.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/clientset/versioned/fake/clientset.go index 88c73ec2e86..aae6ee25caa 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/clientset/versioned/fake/clientset.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/clientset/versioned/fake/clientset.go @@ -61,7 +61,7 @@ import ( // without applying any field management, validations and/or defaults. It shouldn't be considered a replacement // for a real clientset and is mostly useful in simple unit tests. // -// DEPRECATED: NewClientset replaces this with support for field management, which significantly improves +// Deprecated: NewClientset replaces this with support for field management, which significantly improves // server side apply testing. NewClientset is only available when apply configurations are generated (e.g. // via --with-applyconfig). func NewSimpleClientset(objects ...runtime.Object) *ClusterClientset { @@ -94,6 +94,28 @@ func (c *ClusterClientset) Tracker() kcptesting.ObjectTracker { return c.tracker } +// IsWatchListSemanticsUnSupported informs the reflector that this client +// doesn't support WatchList semantics. +// +// This is a synthetic method whose sole purpose is to satisfy the optional +// interface check performed by the reflector. +// Returning true signals that WatchList can NOT be used. +// No additional logic is implemented here. +func (c *ClusterClientset) IsWatchListSemanticsUnSupported() bool { + return true +} + +// IsWatchListSemanticsSupported informs the reflector that this client +// doesn't support WatchList semantics. +// +// This is a synthetic method whose sole purpose is to satisfy the optional +// interface check performed by the reflector. +// Returning true signals that WatchList can NOT be used. +// No additional logic is implemented here. +func (c *Clientset) IsWatchListSemanticsUnSupported() bool { + return true +} + // Cluster scopes this clientset to one cluster. func (c *ClusterClientset) Cluster(clusterPath logicalcluster.Path) clientset.Interface { if clusterPath == logicalcluster.Wildcard { diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/example/v1/clustertesttype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/example/v1/clustertesttype.go index e45508b42ff..2a1175d114b 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/example/v1/clustertesttype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/example/v1/clustertesttype.go @@ -65,7 +65,7 @@ func NewClusterTestTypeClusterInformer(client versioned.ClusterInterface, resync // one. This reduces memory footprint and number of connections to the server. func NewFilteredClusterTestTypeClusterInformer(client versioned.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -78,7 +78,7 @@ func NewFilteredClusterTestTypeClusterInformer(client versioned.ClusterInterface } return client.ExampleV1().ClusterTestTypes().Watch(context.Background(), options) }, - }, + }, client), &apisexamplev1.ClusterTestType{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/example/v1/testtype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/example/v1/testtype.go index 15b3d11cc17..80e8da7f00b 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/example/v1/testtype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/example/v1/testtype.go @@ -65,7 +65,7 @@ func NewTestTypeClusterInformer(client versioned.ClusterInterface, resyncPeriod // one. This reduces memory footprint and number of connections to the server. func NewFilteredTestTypeClusterInformer(client versioned.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -78,7 +78,7 @@ func NewFilteredTestTypeClusterInformer(client versioned.ClusterInterface, resyn } return client.ExampleV1().TestTypes().Watch(context.Background(), options) }, - }, + }, client), &apisexamplev1.TestType{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/example/v1alpha1/clustertesttype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/example/v1alpha1/clustertesttype.go index 0a9cd16f06a..60f891dfe0b 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/example/v1alpha1/clustertesttype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/example/v1alpha1/clustertesttype.go @@ -65,7 +65,7 @@ func NewClusterTestTypeClusterInformer(client versioned.ClusterInterface, resync // one. This reduces memory footprint and number of connections to the server. func NewFilteredClusterTestTypeClusterInformer(client versioned.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -78,7 +78,7 @@ func NewFilteredClusterTestTypeClusterInformer(client versioned.ClusterInterface } return client.ExampleV1alpha1().ClusterTestTypes().Watch(context.Background(), options) }, - }, + }, client), &apisexamplev1alpha1.ClusterTestType{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/example/v1alpha1/testtype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/example/v1alpha1/testtype.go index ec13d4d1a2e..40ee74e20de 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/example/v1alpha1/testtype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/example/v1alpha1/testtype.go @@ -65,7 +65,7 @@ func NewTestTypeClusterInformer(client versioned.ClusterInterface, resyncPeriod // one. This reduces memory footprint and number of connections to the server. func NewFilteredTestTypeClusterInformer(client versioned.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -78,7 +78,7 @@ func NewFilteredTestTypeClusterInformer(client versioned.ClusterInterface, resyn } return client.ExampleV1alpha1().TestTypes().Watch(context.Background(), options) }, - }, + }, client), &apisexamplev1alpha1.TestType{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/example/v1beta1/clustertesttype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/example/v1beta1/clustertesttype.go index 9fbbb3f3724..e519041cbfd 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/example/v1beta1/clustertesttype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/example/v1beta1/clustertesttype.go @@ -65,7 +65,7 @@ func NewClusterTestTypeClusterInformer(client versioned.ClusterInterface, resync // one. This reduces memory footprint and number of connections to the server. func NewFilteredClusterTestTypeClusterInformer(client versioned.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -78,7 +78,7 @@ func NewFilteredClusterTestTypeClusterInformer(client versioned.ClusterInterface } return client.ExampleV1beta1().ClusterTestTypes().Watch(context.Background(), options) }, - }, + }, client), &apisexamplev1beta1.ClusterTestType{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/example/v1beta1/testtype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/example/v1beta1/testtype.go index 43b836249f7..47913342831 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/example/v1beta1/testtype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/example/v1beta1/testtype.go @@ -65,7 +65,7 @@ func NewTestTypeClusterInformer(client versioned.ClusterInterface, resyncPeriod // one. This reduces memory footprint and number of connections to the server. func NewFilteredTestTypeClusterInformer(client versioned.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -78,7 +78,7 @@ func NewFilteredTestTypeClusterInformer(client versioned.ClusterInterface, resyn } return client.ExampleV1beta1().TestTypes().Watch(context.Background(), options) }, - }, + }, client), &apisexamplev1beta1.TestType{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/example/v2/clustertesttype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/example/v2/clustertesttype.go index fc2aa846f2f..f23f0a5a8ce 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/example/v2/clustertesttype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/example/v2/clustertesttype.go @@ -65,7 +65,7 @@ func NewClusterTestTypeClusterInformer(client versioned.ClusterInterface, resync // one. This reduces memory footprint and number of connections to the server. func NewFilteredClusterTestTypeClusterInformer(client versioned.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -78,7 +78,7 @@ func NewFilteredClusterTestTypeClusterInformer(client versioned.ClusterInterface } return client.ExampleV2().ClusterTestTypes().Watch(context.Background(), options) }, - }, + }, client), &apisexamplev2.ClusterTestType{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/example/v2/testtype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/example/v2/testtype.go index 55df4e63657..f267d32ce95 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/example/v2/testtype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/example/v2/testtype.go @@ -65,7 +65,7 @@ func NewTestTypeClusterInformer(client versioned.ClusterInterface, resyncPeriod // one. This reduces memory footprint and number of connections to the server. func NewFilteredTestTypeClusterInformer(client versioned.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -78,7 +78,7 @@ func NewFilteredTestTypeClusterInformer(client versioned.ClusterInterface, resyn } return client.ExampleV2().TestTypes().Watch(context.Background(), options) }, - }, + }, client), &apisexamplev2.TestType{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/example3/v1/clustertesttype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/example3/v1/clustertesttype.go index 3f4a11f5e6d..8e7cf4fc0bf 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/example3/v1/clustertesttype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/example3/v1/clustertesttype.go @@ -65,7 +65,7 @@ func NewClusterTestTypeClusterInformer(client versioned.ClusterInterface, resync // one. This reduces memory footprint and number of connections to the server. func NewFilteredClusterTestTypeClusterInformer(client versioned.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -78,7 +78,7 @@ func NewFilteredClusterTestTypeClusterInformer(client versioned.ClusterInterface } return client.Example3V1().ClusterTestTypes().Watch(context.Background(), options) }, - }, + }, client), &apisexample3v1.ClusterTestType{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/example3/v1/testtype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/example3/v1/testtype.go index a1d28356212..53c8254fa3f 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/example3/v1/testtype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/example3/v1/testtype.go @@ -65,7 +65,7 @@ func NewTestTypeClusterInformer(client versioned.ClusterInterface, resyncPeriod // one. This reduces memory footprint and number of connections to the server. func NewFilteredTestTypeClusterInformer(client versioned.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -78,7 +78,7 @@ func NewFilteredTestTypeClusterInformer(client versioned.ClusterInterface, resyn } return client.Example3V1().TestTypes().Watch(context.Background(), options) }, - }, + }, client), &apisexample3v1.TestType{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/exampledashed/v1/clustertesttype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/exampledashed/v1/clustertesttype.go index 2a67fd61e2b..bd7b0260ab9 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/exampledashed/v1/clustertesttype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/exampledashed/v1/clustertesttype.go @@ -65,7 +65,7 @@ func NewClusterTestTypeClusterInformer(client versioned.ClusterInterface, resync // one. This reduces memory footprint and number of connections to the server. func NewFilteredClusterTestTypeClusterInformer(client versioned.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -78,7 +78,7 @@ func NewFilteredClusterTestTypeClusterInformer(client versioned.ClusterInterface } return client.ExampleDashedV1().ClusterTestTypes().Watch(context.Background(), options) }, - }, + }, client), &apisexampledashedv1.ClusterTestType{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/exampledashed/v1/testtype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/exampledashed/v1/testtype.go index 17263da0bb4..37730b545b2 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/exampledashed/v1/testtype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/exampledashed/v1/testtype.go @@ -65,7 +65,7 @@ func NewTestTypeClusterInformer(client versioned.ClusterInterface, resyncPeriod // one. This reduces memory footprint and number of connections to the server. func NewFilteredTestTypeClusterInformer(client versioned.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -78,7 +78,7 @@ func NewFilteredTestTypeClusterInformer(client versioned.ClusterInterface, resyn } return client.ExampleDashedV1().TestTypes().Watch(context.Background(), options) }, - }, + }, client), &apisexampledashedv1.TestType{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/existinginterfaces/v1/clustertesttype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/existinginterfaces/v1/clustertesttype.go index bac798af98d..b2c2e9603e8 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/existinginterfaces/v1/clustertesttype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/existinginterfaces/v1/clustertesttype.go @@ -65,7 +65,7 @@ func NewClusterTestTypeClusterInformer(client versioned.ClusterInterface, resync // one. This reduces memory footprint and number of connections to the server. func NewFilteredClusterTestTypeClusterInformer(client versioned.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -78,7 +78,7 @@ func NewFilteredClusterTestTypeClusterInformer(client versioned.ClusterInterface } return client.ExistinginterfacesV1().ClusterTestTypes().Watch(context.Background(), options) }, - }, + }, client), &apisexistinginterfacesv1.ClusterTestType{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/existinginterfaces/v1/testtype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/existinginterfaces/v1/testtype.go index 53b03a7452a..f8d5f3f8406 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/existinginterfaces/v1/testtype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/existinginterfaces/v1/testtype.go @@ -65,7 +65,7 @@ func NewTestTypeClusterInformer(client versioned.ClusterInterface, resyncPeriod // one. This reduces memory footprint and number of connections to the server. func NewFilteredTestTypeClusterInformer(client versioned.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -78,7 +78,7 @@ func NewFilteredTestTypeClusterInformer(client versioned.ClusterInterface, resyn } return client.ExistinginterfacesV1().TestTypes().Watch(context.Background(), options) }, - }, + }, client), &apisexistinginterfacesv1.TestType{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/factory.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/factory.go index f0169104d39..e185be81b20 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/factory.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/factory.go @@ -104,6 +104,7 @@ func NewSharedInformerFactory(client versioned.ClusterInterface, defaultResync t // NewFilteredSharedInformerFactory constructs a new instance of sharedInformerFactory. // Listers obtained via this SharedInformerFactory will be subject to the same filters // as specified here. +// // Deprecated: Please use NewSharedInformerFactoryWithOptions instead func NewFilteredSharedInformerFactory(client versioned.ClusterInterface, defaultResync time.Duration, tweakListOptions internalinterfaces.TweakListOptionsFunc) SharedInformerFactory { return NewSharedInformerFactoryWithOptions(client, defaultResync, WithTweakListOptions(tweakListOptions)) @@ -228,7 +229,7 @@ type ScopedDynamicSharedInformerFactory interface { // // It is typically used like this: // -// ctx, cancel := context.Background() +// ctx, cancel := context.WithCancel(context.Background()) // defer cancel() // factory := NewSharedInformerFactory(client, resyncPeriod) // defer factory.WaitForStop() // Returns immediately if nothing was started. diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/secondexample/v1/clustertesttype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/secondexample/v1/clustertesttype.go index d80a48890da..92759033fc9 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/secondexample/v1/clustertesttype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/secondexample/v1/clustertesttype.go @@ -65,7 +65,7 @@ func NewClusterTestTypeClusterInformer(client versioned.ClusterInterface, resync // one. This reduces memory footprint and number of connections to the server. func NewFilteredClusterTestTypeClusterInformer(client versioned.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -78,7 +78,7 @@ func NewFilteredClusterTestTypeClusterInformer(client versioned.ClusterInterface } return client.SecondexampleV1().ClusterTestTypes().Watch(context.Background(), options) }, - }, + }, client), &apissecondexamplev1.ClusterTestType{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/secondexample/v1/testtype.go b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/secondexample/v1/testtype.go index 7bf3a5e9906..02bca16ee4b 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/secondexample/v1/testtype.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/pkg/kcpexisting/clients/informers/externalversions/secondexample/v1/testtype.go @@ -65,7 +65,7 @@ func NewTestTypeClusterInformer(client versioned.ClusterInterface, resyncPeriod // one. This reduces memory footprint and number of connections to the server. func NewFilteredTestTypeClusterInformer(client versioned.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -78,7 +78,7 @@ func NewFilteredTestTypeClusterInformer(client versioned.ClusterInterface, resyn } return client.SecondexampleV1().TestTypes().Watch(context.Background(), options) }, - }, + }, client), &apissecondexamplev1.TestType{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/test/kcp/controller_test.go b/staging/src/github.com/kcp-dev/code-generator/examples/test/kcp/controller_test.go index 72eddcace68..576c43b6830 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/test/kcp/controller_test.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/test/kcp/controller_test.go @@ -41,7 +41,7 @@ func TestFakeClient(t *testing.T) { watcherStarted := make(chan struct{}) // Create the fake client. - client := fake.NewSimpleClientset() + client := fake.NewSimpleClientset() //nolint:staticcheck // A catch-all watch reactor that allows us to inject the watcherStarted channel. client.PrependWatchReactor("*", func(action clienttesting.Action) (handled bool, ret watch.Interface, err error) { gvr := action.GetResource() diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/test/kcpexisting/controller_test.go b/staging/src/github.com/kcp-dev/code-generator/examples/test/kcpexisting/controller_test.go index f46025e2aea..549e5d2ad63 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/test/kcpexisting/controller_test.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/test/kcpexisting/controller_test.go @@ -41,7 +41,7 @@ func TestFakeClient(t *testing.T) { watcherStarted := make(chan struct{}) // Create the fake client. - client := fake.NewSimpleClientset() + client := fake.NewSimpleClientset() //nolint:staticcheck // A catch-all watch reactor that allows us to inject the watcherStarted channel. client.PrependWatchReactor("*", func(action clienttesting.Action) (handled bool, ret watch.Interface, err error) { gvr := action.GetResource() diff --git a/staging/src/github.com/kcp-dev/code-generator/examples/test/singlecluster/controller_test.go b/staging/src/github.com/kcp-dev/code-generator/examples/test/singlecluster/controller_test.go index 87ec3c1dc88..7b9306ce66a 100644 --- a/staging/src/github.com/kcp-dev/code-generator/examples/test/singlecluster/controller_test.go +++ b/staging/src/github.com/kcp-dev/code-generator/examples/test/singlecluster/controller_test.go @@ -39,7 +39,7 @@ func TestFakeClient(t *testing.T) { watcherStarted := make(chan struct{}) // Create the fake client. - client := fake.NewSimpleClientset() + client := fake.NewSimpleClientset() //nolint:staticcheck // A catch-all watch reactor that allows us to inject the watcherStarted channel. client.PrependWatchReactor("*", func(action clienttesting.Action) (handled bool, ret watch.Interface, err error) { gvr := action.GetResource() diff --git a/staging/src/github.com/kcp-dev/code-generator/go.mod b/staging/src/github.com/kcp-dev/code-generator/go.mod index 7eb1a75026e..39a2dec61ca 100644 --- a/staging/src/github.com/kcp-dev/code-generator/go.mod +++ b/staging/src/github.com/kcp-dev/code-generator/go.mod @@ -1,18 +1,18 @@ module github.com/kcp-dev/code-generator/v3 -go 1.24.0 +go 1.25.0 require ( - github.com/spf13/pflag v1.0.6 - golang.org/x/text v0.25.0 - k8s.io/code-generator v0.34.2 - k8s.io/gengo/v2 v2.0.0-20250604051438-85fd79dbfd9f + github.com/spf13/pflag v1.0.9 + golang.org/x/text v0.31.0 + k8s.io/code-generator v0.35.1 + k8s.io/gengo/v2 v2.0.0-20250922181213-ec3ebc5fd46b k8s.io/klog/v2 v2.130.1 ) require ( - github.com/go-logr/logr v1.4.2 // indirect - golang.org/x/mod v0.24.0 // indirect - golang.org/x/sync v0.14.0 // indirect - golang.org/x/tools v0.33.0 // indirect + github.com/go-logr/logr v1.4.3 // indirect + golang.org/x/mod v0.29.0 // indirect + golang.org/x/sync v0.18.0 // indirect + golang.org/x/tools v0.38.0 // indirect ) diff --git a/staging/src/github.com/kcp-dev/code-generator/go.sum b/staging/src/github.com/kcp-dev/code-generator/go.sum index 7a12f987d15..b904020cdb3 100644 --- a/staging/src/github.com/kcp-dev/code-generator/go.sum +++ b/staging/src/github.com/kcp-dev/code-generator/go.sum @@ -1,20 +1,20 @@ -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= +github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= -github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o= -github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -golang.org/x/mod v0.24.0 h1:ZfthKaKaT4NrhGVZHO1/WDTwGES4De8KtWO0SIbNJMU= -golang.org/x/mod v0.24.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww= -golang.org/x/sync v0.14.0 h1:woo0S4Yywslg6hp4eUFjTVOyKt0RookbpAHG4c1HmhQ= -golang.org/x/sync v0.14.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= -golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4= -golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA= -golang.org/x/tools v0.33.0 h1:4qz2S3zmRxbGIhDIAgjxvFutSvH5EfnsYrRBj0UI0bc= -golang.org/x/tools v0.33.0/go.mod h1:CIJMaWEY88juyUfo7UbgPqbC8rU2OqfAV1h2Qp0oMYI= -k8s.io/code-generator v0.34.2 h1:9bG6jTxmsU3HXE5BNYJTC8AZ1D6hVVfkm8yYSkdkGY0= -k8s.io/code-generator v0.34.2/go.mod h1:dnDDEd6S/z4uZ+PG1aE58ySCi/lR4+qT3a4DddE4/2I= -k8s.io/gengo/v2 v2.0.0-20250604051438-85fd79dbfd9f h1:SLb+kxmzfA87x4E4brQzB33VBbT2+x7Zq9ROIHmGn9Q= -k8s.io/gengo/v2 v2.0.0-20250604051438-85fd79dbfd9f/go.mod h1:EJykeLsmFC60UQbYJezXkEsG2FLrt0GPNkU5iK5GWxU= +github.com/spf13/pflag v1.0.9 h1:9exaQaMOCwffKiiiYk6/BndUBv+iRViNW+4lEMi0PvY= +github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +golang.org/x/mod v0.29.0 h1:HV8lRxZC4l2cr3Zq1LvtOsi/ThTgWnUk/y64QSs8GwA= +golang.org/x/mod v0.29.0/go.mod h1:NyhrlYXJ2H4eJiRy/WDBO6HMqZQ6q9nk4JzS3NuCK+w= +golang.org/x/sync v0.18.0 h1:kr88TuHDroi+UVf+0hZnirlk8o8T+4MrK6mr60WkH/I= +golang.org/x/sync v0.18.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= +golang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM= +golang.org/x/text v0.31.0/go.mod h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM= +golang.org/x/tools v0.38.0 h1:Hx2Xv8hISq8Lm16jvBZ2VQf+RLmbd7wVUsALibYI/IQ= +golang.org/x/tools v0.38.0/go.mod h1:yEsQ/d/YK8cjh0L6rZlY8tgtlKiBNTL14pGDJPJpYQs= +k8s.io/code-generator v0.35.1 h1:yLKR2la7Z9cWT5qmk67ayx8xXLM4RRKQMnC8YPvTWRI= +k8s.io/code-generator v0.35.1/go.mod h1:F2Fhm7aA69tC/VkMXLDokdovltXEF026Tb9yfQXQWKg= +k8s.io/gengo/v2 v2.0.0-20250922181213-ec3ebc5fd46b h1:gMplByicHV/TJBizHd9aVEsTYoJBnnUAT5MHlTkbjhQ= +k8s.io/gengo/v2 v2.0.0-20250922181213-ec3ebc5fd46b/go.mod h1:CgujABENc3KuTrcsdpGmrrASjtQsWCT7R99mEV4U/fM= k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= diff --git a/staging/src/github.com/kcp-dev/sdk/apis/apis/v1alpha1/doc.go b/staging/src/github.com/kcp-dev/sdk/apis/apis/v1alpha1/doc.go index f0ad2ebc6a6..3cd8594ef15 100644 --- a/staging/src/github.com/kcp-dev/sdk/apis/apis/v1alpha1/doc.go +++ b/staging/src/github.com/kcp-dev/sdk/apis/apis/v1alpha1/doc.go @@ -17,4 +17,5 @@ limitations under the License. // +k8s:deepcopy-gen=package,register // +groupName=apis.kcp.io // +k8s:openapi-gen=true +// +k8s:openapi-model-package=com.github.kcp-dev.sdk.apis.apis.v1alpha1 package v1alpha1 diff --git a/staging/src/github.com/kcp-dev/sdk/apis/apis/v1alpha1/types_apibinding_test.go b/staging/src/github.com/kcp-dev/sdk/apis/apis/v1alpha1/types_apibinding_test.go index 1740cf5ce3e..db24ee0d91e 100644 --- a/staging/src/github.com/kcp-dev/sdk/apis/apis/v1alpha1/types_apibinding_test.go +++ b/staging/src/github.com/kcp-dev/sdk/apis/apis/v1alpha1/types_apibinding_test.go @@ -60,7 +60,7 @@ func TestAPIBindingPermissionClaimCELValidation(t *testing.T) { "name": "CHANGE", }, }, - wantErrs: []string{"openAPIV3Schema.properties.spec.properties.reference: Invalid value: \"object\": APIExport reference must not be changed"}, + wantErrs: []string{"openAPIV3Schema.properties.spec.properties.reference: Invalid value: APIExport reference must not be changed"}, }, { name: "change path", @@ -76,7 +76,7 @@ func TestAPIBindingPermissionClaimCELValidation(t *testing.T) { "name": "bar", }, }, - wantErrs: []string{"openAPIV3Schema.properties.spec.properties.reference: Invalid value: \"object\": APIExport reference must not be changed"}, + wantErrs: []string{"openAPIV3Schema.properties.spec.properties.reference: Invalid value: APIExport reference must not be changed"}, }, } diff --git a/staging/src/github.com/kcp-dev/sdk/apis/apis/v1alpha1/types_apiexport_test.go b/staging/src/github.com/kcp-dev/sdk/apis/apis/v1alpha1/types_apiexport_test.go index a5434094fb3..6785297df13 100644 --- a/staging/src/github.com/kcp-dev/sdk/apis/apis/v1alpha1/types_apiexport_test.go +++ b/staging/src/github.com/kcp-dev/sdk/apis/apis/v1alpha1/types_apiexport_test.go @@ -34,7 +34,7 @@ func TestAPIExportPermissionClaimCELValidation(t *testing.T) { name: "nothing is set", current: map[string]interface{}{}, wantErrs: []string{ - "openAPIV3Schema.properties.spec.properties.permissionClaims.items: Invalid value: \"object\": either \"all\" or \"resourceSelector\" must be set", + "openAPIV3Schema.properties.spec.properties.permissionClaims.items: Invalid value: either \"all\" or \"resourceSelector\" must be set", }, }, { @@ -66,7 +66,7 @@ func TestAPIExportPermissionClaimCELValidation(t *testing.T) { }, }, wantErrs: []string{ - "openAPIV3Schema.properties.spec.properties.permissionClaims.items: Invalid value: \"object\": either \"all\" or \"resourceSelector\" must be set", + "openAPIV3Schema.properties.spec.properties.permissionClaims.items: Invalid value: either \"all\" or \"resourceSelector\" must be set", }, }, { @@ -75,7 +75,7 @@ func TestAPIExportPermissionClaimCELValidation(t *testing.T) { "resourceSelector": nil, }, wantErrs: []string{ - "openAPIV3Schema.properties.spec.properties.permissionClaims.items: Invalid value: \"object\": either \"all\" or \"resourceSelector\" must be set", + "openAPIV3Schema.properties.spec.properties.permissionClaims.items: Invalid value: either \"all\" or \"resourceSelector\" must be set", }, }, { @@ -84,7 +84,7 @@ func TestAPIExportPermissionClaimCELValidation(t *testing.T) { "resourceSelector": []interface{}{}, }, wantErrs: []string{ - "openAPIV3Schema.properties.spec.properties.permissionClaims.items: Invalid value: \"object\": either \"all\" or \"resourceSelector\" must be set", + "openAPIV3Schema.properties.spec.properties.permissionClaims.items: Invalid value: either \"all\" or \"resourceSelector\" must be set", }, }, { @@ -102,7 +102,7 @@ func TestAPIExportPermissionClaimCELValidation(t *testing.T) { "resourceSelector": nil, }, wantErrs: []string{ - "openAPIV3Schema.properties.spec.properties.permissionClaims.items: Invalid value: \"object\": either \"all\" or \"resourceSelector\" must be set", + "openAPIV3Schema.properties.spec.properties.permissionClaims.items: Invalid value: either \"all\" or \"resourceSelector\" must be set", }, }, { @@ -112,7 +112,7 @@ func TestAPIExportPermissionClaimCELValidation(t *testing.T) { "resourceSelector": []interface{}{}, }, wantErrs: []string{ - "openAPIV3Schema.properties.spec.properties.permissionClaims.items: Invalid value: \"object\": either \"all\" or \"resourceSelector\" must be set", + "openAPIV3Schema.properties.spec.properties.permissionClaims.items: Invalid value: either \"all\" or \"resourceSelector\" must be set", }, }, { @@ -165,7 +165,7 @@ func TestResourceSelectorCELValidation(t *testing.T) { "namespace": nil, }, wantErrs: []string{ - "openAPIV3Schema.properties.spec.properties.permissionClaims.items.properties.resourceSelector.items: Invalid value: \"object\": at least one field must be set", + "openAPIV3Schema.properties.spec.properties.permissionClaims.items.properties.resourceSelector.items: Invalid value: at least one field must be set", }, }, { diff --git a/staging/src/github.com/kcp-dev/sdk/apis/apis/v1alpha1/zz_generated.model_name.go b/staging/src/github.com/kcp-dev/sdk/apis/apis/v1alpha1/zz_generated.model_name.go new file mode 100644 index 00000000000..0f6612ec47c --- /dev/null +++ b/staging/src/github.com/kcp-dev/sdk/apis/apis/v1alpha1/zz_generated.model_name.go @@ -0,0 +1,207 @@ +//go:build !ignore_autogenerated +// +build !ignore_autogenerated + +/* +Copyright The kcp Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by openapi-gen. DO NOT EDIT. + +package v1alpha1 + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in APIBinding) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha1.APIBinding" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in APIBindingList) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha1.APIBindingList" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in APIBindingSpec) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha1.APIBindingSpec" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in APIBindingStatus) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha1.APIBindingStatus" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in APIConversion) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha1.APIConversion" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in APIConversionList) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha1.APIConversionList" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in APIConversionRule) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha1.APIConversionRule" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in APIConversionSpec) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha1.APIConversionSpec" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in APIExport) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha1.APIExport" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in APIExportEndpoint) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha1.APIExportEndpoint" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in APIExportEndpointSlice) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha1.APIExportEndpointSlice" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in APIExportEndpointSliceList) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha1.APIExportEndpointSliceList" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in APIExportEndpointSliceSpec) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha1.APIExportEndpointSliceSpec" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in APIExportEndpointSliceStatus) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha1.APIExportEndpointSliceStatus" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in APIExportList) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha1.APIExportList" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in APIExportSpec) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha1.APIExportSpec" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in APIExportStatus) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha1.APIExportStatus" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in APIResourceSchema) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha1.APIResourceSchema" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in APIResourceSchemaList) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha1.APIResourceSchemaList" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in APIResourceSchemaSpec) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha1.APIResourceSchemaSpec" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in APIResourceVersion) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha1.APIResourceVersion" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in APIVersionConversion) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha1.APIVersionConversion" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in AcceptablePermissionClaim) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha1.AcceptablePermissionClaim" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in BindingReference) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha1.BindingReference" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in BoundAPIResource) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha1.BoundAPIResource" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in BoundAPIResourceSchema) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha1.BoundAPIResourceSchema" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in CustomResourceConversion) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha1.CustomResourceConversion" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in ExportBindingReference) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha1.ExportBindingReference" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in GroupResource) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha1.GroupResource" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in Identity) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha1.Identity" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in LocalAPIExportPolicy) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha1.LocalAPIExportPolicy" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in MaximalPermissionPolicy) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha1.MaximalPermissionPolicy" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in PermissionClaim) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha1.PermissionClaim" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in ResourceSelector) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha1.ResourceSelector" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in VirtualWorkspace) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha1.VirtualWorkspace" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in WebhookClientConfig) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha1.WebhookClientConfig" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in WebhookConversion) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha1.WebhookConversion" +} diff --git a/staging/src/github.com/kcp-dev/sdk/apis/apis/v1alpha2/doc.go b/staging/src/github.com/kcp-dev/sdk/apis/apis/v1alpha2/doc.go index 03ae3ea5b3e..09540139cbe 100644 --- a/staging/src/github.com/kcp-dev/sdk/apis/apis/v1alpha2/doc.go +++ b/staging/src/github.com/kcp-dev/sdk/apis/apis/v1alpha2/doc.go @@ -18,4 +18,5 @@ limitations under the License. // +groupName=apis.kcp.io // +k8s:conversion-gen=github.com/kcp-dev/sdk/apis/apis/v1alpha1 // +k8s:openapi-gen=true +// +k8s:openapi-model-package=com.github.kcp-dev.sdk.apis.apis.v1alpha2 package v1alpha2 diff --git a/staging/src/github.com/kcp-dev/sdk/apis/apis/v1alpha2/types_apibinding_test.go b/staging/src/github.com/kcp-dev/sdk/apis/apis/v1alpha2/types_apibinding_test.go index 3d4db42aef3..c27b04dae91 100644 --- a/staging/src/github.com/kcp-dev/sdk/apis/apis/v1alpha2/types_apibinding_test.go +++ b/staging/src/github.com/kcp-dev/sdk/apis/apis/v1alpha2/types_apibinding_test.go @@ -60,7 +60,7 @@ func TestAPIBindingAPIExportReferenceCELValidation(t *testing.T) { "name": "CHANGE", }, }, - wantErrs: []string{"openAPIV3Schema.properties.spec.properties.reference: Invalid value: \"object\": APIExport reference must not be changed"}, + wantErrs: []string{"openAPIV3Schema.properties.spec.properties.reference: Invalid value: APIExport reference must not be changed"}, }, { name: "change path", @@ -76,7 +76,7 @@ func TestAPIBindingAPIExportReferenceCELValidation(t *testing.T) { "name": "bar", }, }, - wantErrs: []string{"openAPIV3Schema.properties.spec.properties.reference: Invalid value: \"object\": APIExport reference must not be changed"}, + wantErrs: []string{"openAPIV3Schema.properties.spec.properties.reference: Invalid value: APIExport reference must not be changed"}, }, } diff --git a/staging/src/github.com/kcp-dev/sdk/apis/apis/v1alpha2/zz_generated.model_name.go b/staging/src/github.com/kcp-dev/sdk/apis/apis/v1alpha2/zz_generated.model_name.go new file mode 100644 index 00000000000..c36611e2fe3 --- /dev/null +++ b/staging/src/github.com/kcp-dev/sdk/apis/apis/v1alpha2/zz_generated.model_name.go @@ -0,0 +1,152 @@ +//go:build !ignore_autogenerated +// +build !ignore_autogenerated + +/* +Copyright The kcp Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by openapi-gen. DO NOT EDIT. + +package v1alpha2 + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in APIBinding) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha2.APIBinding" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in APIBindingList) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha2.APIBindingList" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in APIBindingSpec) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha2.APIBindingSpec" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in APIBindingStatus) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha2.APIBindingStatus" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in APIExport) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha2.APIExport" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in APIExportList) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha2.APIExportList" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in APIExportSpec) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha2.APIExportSpec" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in APIExportStatus) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha2.APIExportStatus" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in AcceptablePermissionClaim) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha2.AcceptablePermissionClaim" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in BindingReference) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha2.BindingReference" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in BoundAPIResource) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha2.BoundAPIResource" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in BoundAPIResourceSchema) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha2.BoundAPIResourceSchema" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in ExportBindingReference) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha2.ExportBindingReference" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in GroupResource) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha2.GroupResource" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in Identity) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha2.Identity" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in LocalAPIExportPolicy) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha2.LocalAPIExportPolicy" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in MaximalPermissionPolicy) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha2.MaximalPermissionPolicy" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in PermissionClaim) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha2.PermissionClaim" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in PermissionClaimSelector) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha2.PermissionClaimSelector" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in ResourceSchema) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha2.ResourceSchema" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in ResourceSchemaStorage) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha2.ResourceSchemaStorage" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in ResourceSchemaStorageCRD) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha2.ResourceSchemaStorageCRD" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in ResourceSchemaStorageVirtual) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha2.ResourceSchemaStorageVirtual" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in ResourceSelector) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha2.ResourceSelector" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in ScopedPermissionClaim) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha2.ScopedPermissionClaim" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in VirtualWorkspace) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.apis.v1alpha2.VirtualWorkspace" +} diff --git a/staging/src/github.com/kcp-dev/sdk/apis/cache/v1alpha1/doc.go b/staging/src/github.com/kcp-dev/sdk/apis/cache/v1alpha1/doc.go index 120c7cc7c0b..70d832b4ae8 100644 --- a/staging/src/github.com/kcp-dev/sdk/apis/cache/v1alpha1/doc.go +++ b/staging/src/github.com/kcp-dev/sdk/apis/cache/v1alpha1/doc.go @@ -17,4 +17,5 @@ limitations under the License. // +k8s:deepcopy-gen=package,register // +groupName=cache.kcp.io // +k8s:openapi-gen=true +// +k8s:openapi-model-package=com.github.kcp-dev.sdk.apis.cache.v1alpha1 package v1alpha1 diff --git a/staging/src/github.com/kcp-dev/sdk/apis/cache/v1alpha1/zz_generated.model_name.go b/staging/src/github.com/kcp-dev/sdk/apis/cache/v1alpha1/zz_generated.model_name.go new file mode 100644 index 00000000000..1f09da07f76 --- /dev/null +++ b/staging/src/github.com/kcp-dev/sdk/apis/cache/v1alpha1/zz_generated.model_name.go @@ -0,0 +1,102 @@ +//go:build !ignore_autogenerated +// +build !ignore_autogenerated + +/* +Copyright The kcp Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by openapi-gen. DO NOT EDIT. + +package v1alpha1 + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in CachedObject) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.cache.v1alpha1.CachedObject" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in CachedObjectList) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.cache.v1alpha1.CachedObjectList" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in CachedObjectSpec) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.cache.v1alpha1.CachedObjectSpec" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in CachedResource) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.cache.v1alpha1.CachedResource" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in CachedResourceEndpoint) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.cache.v1alpha1.CachedResourceEndpoint" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in CachedResourceEndpointSlice) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.cache.v1alpha1.CachedResourceEndpointSlice" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in CachedResourceEndpointSliceList) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.cache.v1alpha1.CachedResourceEndpointSliceList" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in CachedResourceEndpointSliceSpec) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.cache.v1alpha1.CachedResourceEndpointSliceSpec" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in CachedResourceEndpointSliceStatus) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.cache.v1alpha1.CachedResourceEndpointSliceStatus" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in CachedResourceList) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.cache.v1alpha1.CachedResourceList" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in CachedResourceReference) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.cache.v1alpha1.CachedResourceReference" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in CachedResourceSpec) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.cache.v1alpha1.CachedResourceSpec" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in CachedResourceStatus) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.cache.v1alpha1.CachedResourceStatus" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in GroupVersionResource) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.cache.v1alpha1.GroupVersionResource" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in Identity) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.cache.v1alpha1.Identity" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in ResourceCount) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.cache.v1alpha1.ResourceCount" +} diff --git a/staging/src/github.com/kcp-dev/sdk/apis/core/v1alpha1/doc.go b/staging/src/github.com/kcp-dev/sdk/apis/core/v1alpha1/doc.go index 207507bd4bd..ce4a7080db4 100644 --- a/staging/src/github.com/kcp-dev/sdk/apis/core/v1alpha1/doc.go +++ b/staging/src/github.com/kcp-dev/sdk/apis/core/v1alpha1/doc.go @@ -17,4 +17,5 @@ limitations under the License. // +k8s:deepcopy-gen=package,register // +groupName=core.kcp.io // +k8s:openapi-gen=true +// +k8s:openapi-model-package=com.github.kcp-dev.sdk.apis.core.v1alpha1 package v1alpha1 diff --git a/staging/src/github.com/kcp-dev/sdk/apis/core/v1alpha1/zz_generated.model_name.go b/staging/src/github.com/kcp-dev/sdk/apis/core/v1alpha1/zz_generated.model_name.go new file mode 100644 index 00000000000..aa860840e20 --- /dev/null +++ b/staging/src/github.com/kcp-dev/sdk/apis/core/v1alpha1/zz_generated.model_name.go @@ -0,0 +1,67 @@ +//go:build !ignore_autogenerated +// +build !ignore_autogenerated + +/* +Copyright The kcp Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by openapi-gen. DO NOT EDIT. + +package v1alpha1 + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in LogicalCluster) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.core.v1alpha1.LogicalCluster" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in LogicalClusterList) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.core.v1alpha1.LogicalClusterList" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in LogicalClusterOwner) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.core.v1alpha1.LogicalClusterOwner" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in LogicalClusterSpec) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.core.v1alpha1.LogicalClusterSpec" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in LogicalClusterStatus) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.core.v1alpha1.LogicalClusterStatus" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in Shard) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.core.v1alpha1.Shard" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in ShardList) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.core.v1alpha1.ShardList" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in ShardSpec) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.core.v1alpha1.ShardSpec" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in ShardStatus) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.core.v1alpha1.ShardStatus" +} diff --git a/staging/src/github.com/kcp-dev/sdk/apis/tenancy/v1alpha1/doc.go b/staging/src/github.com/kcp-dev/sdk/apis/tenancy/v1alpha1/doc.go index e40b1af6453..d00b0c311b5 100644 --- a/staging/src/github.com/kcp-dev/sdk/apis/tenancy/v1alpha1/doc.go +++ b/staging/src/github.com/kcp-dev/sdk/apis/tenancy/v1alpha1/doc.go @@ -17,4 +17,5 @@ limitations under the License. // +k8s:deepcopy-gen=package,register // +groupName=tenancy.kcp.io // +k8s:openapi-gen=true +// +k8s:openapi-model-package=com.github.kcp-dev.sdk.apis.tenancy.v1alpha1 package v1alpha1 diff --git a/staging/src/github.com/kcp-dev/sdk/apis/tenancy/v1alpha1/types_workspace_test.go b/staging/src/github.com/kcp-dev/sdk/apis/tenancy/v1alpha1/types_workspace_test.go index 663a4ca3520..72568227dd3 100644 --- a/staging/src/github.com/kcp-dev/sdk/apis/tenancy/v1alpha1/types_workspace_test.go +++ b/staging/src/github.com/kcp-dev/sdk/apis/tenancy/v1alpha1/types_workspace_test.go @@ -40,7 +40,7 @@ func TestWorkspaceCELValidation(t *testing.T) { old: `{"spec":{"URL": "abc"}}`, current: `{"spec":{}}`, wantErrs: []string{ - "spec: Invalid value: \"object\": URL cannot be unset", + "spec: Invalid value: URL cannot be unset", }, }, { @@ -48,7 +48,7 @@ func TestWorkspaceCELValidation(t *testing.T) { old: `{"spec":{"cluster": "abc"}}`, current: `{"spec":{}}`, wantErrs: []string{ - "spec: Invalid value: \"object\": cluster cannot be unset", + "spec: Invalid value: cluster cannot be unset", }, }, { @@ -56,7 +56,7 @@ func TestWorkspaceCELValidation(t *testing.T) { old: `{"spec":{"cluster": "abc"}}`, current: `{"spec":{"cluster": "def"}}`, wantErrs: []string{ - "spec.cluster: Invalid value: \"string\": cluster is immutable", + "spec.cluster: Invalid value: \"def\": cluster is immutable", }, }, { diff --git a/staging/src/github.com/kcp-dev/sdk/apis/tenancy/v1alpha1/zz_generated.model_name.go b/staging/src/github.com/kcp-dev/sdk/apis/tenancy/v1alpha1/zz_generated.model_name.go new file mode 100644 index 00000000000..4eac19da9ea --- /dev/null +++ b/staging/src/github.com/kcp-dev/sdk/apis/tenancy/v1alpha1/zz_generated.model_name.go @@ -0,0 +1,162 @@ +//go:build !ignore_autogenerated +// +build !ignore_autogenerated + +/* +Copyright The kcp Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by openapi-gen. DO NOT EDIT. + +package v1alpha1 + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in APIExportReference) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.tenancy.v1alpha1.APIExportReference" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in AuthenticationConfigurationReference) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.tenancy.v1alpha1.AuthenticationConfigurationReference" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in ClaimMappings) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.tenancy.v1alpha1.ClaimMappings" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in ClaimOrExpression) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.tenancy.v1alpha1.ClaimOrExpression" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in ClaimValidationRule) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.tenancy.v1alpha1.ClaimValidationRule" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in ExtraMapping) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.tenancy.v1alpha1.ExtraMapping" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in Issuer) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.tenancy.v1alpha1.Issuer" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in JWTAuthenticator) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.tenancy.v1alpha1.JWTAuthenticator" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in Mount) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.tenancy.v1alpha1.Mount" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in ObjectReference) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.tenancy.v1alpha1.ObjectReference" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in PrefixedClaimOrExpression) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.tenancy.v1alpha1.PrefixedClaimOrExpression" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in UserValidationRule) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.tenancy.v1alpha1.UserValidationRule" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in VirtualWorkspace) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.tenancy.v1alpha1.VirtualWorkspace" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in Workspace) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.tenancy.v1alpha1.Workspace" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in WorkspaceAuthenticationConfiguration) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.tenancy.v1alpha1.WorkspaceAuthenticationConfiguration" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in WorkspaceAuthenticationConfigurationList) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.tenancy.v1alpha1.WorkspaceAuthenticationConfigurationList" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in WorkspaceAuthenticationConfigurationSpec) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.tenancy.v1alpha1.WorkspaceAuthenticationConfigurationSpec" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in WorkspaceList) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.tenancy.v1alpha1.WorkspaceList" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in WorkspaceLocation) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.tenancy.v1alpha1.WorkspaceLocation" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in WorkspaceSpec) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.tenancy.v1alpha1.WorkspaceSpec" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in WorkspaceStatus) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.tenancy.v1alpha1.WorkspaceStatus" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in WorkspaceType) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.tenancy.v1alpha1.WorkspaceType" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in WorkspaceTypeExtension) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.tenancy.v1alpha1.WorkspaceTypeExtension" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in WorkspaceTypeList) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.tenancy.v1alpha1.WorkspaceTypeList" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in WorkspaceTypeReference) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.tenancy.v1alpha1.WorkspaceTypeReference" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in WorkspaceTypeSelector) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.tenancy.v1alpha1.WorkspaceTypeSelector" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in WorkspaceTypeSpec) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.tenancy.v1alpha1.WorkspaceTypeSpec" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in WorkspaceTypeStatus) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.tenancy.v1alpha1.WorkspaceTypeStatus" +} diff --git a/staging/src/github.com/kcp-dev/sdk/apis/third_party/conditions/apis/conditions/v1alpha1/doc.go b/staging/src/github.com/kcp-dev/sdk/apis/third_party/conditions/apis/conditions/v1alpha1/doc.go index cecb880197a..87e2ad153db 100644 --- a/staging/src/github.com/kcp-dev/sdk/apis/third_party/conditions/apis/conditions/v1alpha1/doc.go +++ b/staging/src/github.com/kcp-dev/sdk/apis/third_party/conditions/apis/conditions/v1alpha1/doc.go @@ -16,4 +16,5 @@ limitations under the License. // +k8s:openapi-gen=true // +k8s:deepcopy-gen=package,register +// +k8s:openapi-model-package=com.github.kcp-dev.sdk.apis.third_party.conditions.apis.conditions.v1alpha1 package v1alpha1 diff --git a/staging/src/github.com/kcp-dev/sdk/apis/third_party/conditions/apis/conditions/v1alpha1/zz_generated.model_name.go b/staging/src/github.com/kcp-dev/sdk/apis/third_party/conditions/apis/conditions/v1alpha1/zz_generated.model_name.go new file mode 100644 index 00000000000..ee4a64eb976 --- /dev/null +++ b/staging/src/github.com/kcp-dev/sdk/apis/third_party/conditions/apis/conditions/v1alpha1/zz_generated.model_name.go @@ -0,0 +1,27 @@ +//go:build !ignore_autogenerated +// +build !ignore_autogenerated + +/* +Copyright The kcp Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by openapi-gen. DO NOT EDIT. + +package v1alpha1 + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in Condition) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.third_party.conditions.apis.conditions.v1alpha1.Condition" +} diff --git a/staging/src/github.com/kcp-dev/sdk/apis/topology/v1alpha1/doc.go b/staging/src/github.com/kcp-dev/sdk/apis/topology/v1alpha1/doc.go index 5d401d59863..1dcee609522 100644 --- a/staging/src/github.com/kcp-dev/sdk/apis/topology/v1alpha1/doc.go +++ b/staging/src/github.com/kcp-dev/sdk/apis/topology/v1alpha1/doc.go @@ -17,4 +17,5 @@ limitations under the License. // +k8s:deepcopy-gen=package,register // +groupName=topology.kcp.io // +k8s:openapi-gen=true +// +k8s:openapi-model-package=com.github.kcp-dev.sdk.apis.topology.v1alpha1 package v1alpha1 diff --git a/staging/src/github.com/kcp-dev/sdk/apis/topology/v1alpha1/zz_generated.model_name.go b/staging/src/github.com/kcp-dev/sdk/apis/topology/v1alpha1/zz_generated.model_name.go new file mode 100644 index 00000000000..6cb77c2ab14 --- /dev/null +++ b/staging/src/github.com/kcp-dev/sdk/apis/topology/v1alpha1/zz_generated.model_name.go @@ -0,0 +1,57 @@ +//go:build !ignore_autogenerated +// +build !ignore_autogenerated + +/* +Copyright The kcp Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by openapi-gen. DO NOT EDIT. + +package v1alpha1 + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in Partition) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.topology.v1alpha1.Partition" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in PartitionList) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.topology.v1alpha1.PartitionList" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in PartitionSet) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.topology.v1alpha1.PartitionSet" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in PartitionSetList) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.topology.v1alpha1.PartitionSetList" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in PartitionSetSpec) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.topology.v1alpha1.PartitionSetSpec" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in PartitionSetStatus) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.topology.v1alpha1.PartitionSetStatus" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in PartitionSpec) OpenAPIModelName() string { + return "com.github.kcp-dev.sdk.apis.topology.v1alpha1.PartitionSpec" +} diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/acceptablepermissionclaim.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/acceptablepermissionclaim.go index aa7cb8c904f..fe4ae438584 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/acceptablepermissionclaim.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/acceptablepermissionclaim.go @@ -24,6 +24,8 @@ import ( // AcceptablePermissionClaimApplyConfiguration represents a declarative configuration of the AcceptablePermissionClaim type for use // with apply. +// +// AcceptablePermissionClaim is a PermissionClaim that records if the user accepts or rejects it. type AcceptablePermissionClaimApplyConfiguration struct { PermissionClaimApplyConfiguration `json:",inline"` State *apisv1alpha1.AcceptablePermissionClaimState `json:"state,omitempty"` diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apibinding.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apibinding.go index b2cb6475344..e81c44580fc 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apibinding.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apibinding.go @@ -27,11 +27,18 @@ import ( // APIBindingApplyConfiguration represents a declarative configuration of the APIBinding type for use // with apply. +// +// APIBinding enables a set of resources and their behaviour through an external +// service provider in this workspace. +// +// The service provider uses an APIExport to expose the API. type APIBindingApplyConfiguration struct { v1.TypeMetaApplyConfiguration `json:",inline"` *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` - Spec *APIBindingSpecApplyConfiguration `json:"spec,omitempty"` - Status *APIBindingStatusApplyConfiguration `json:"status,omitempty"` + // Spec holds the desired state. + Spec *APIBindingSpecApplyConfiguration `json:"spec,omitempty"` + // Status communicates the observed state. + Status *APIBindingStatusApplyConfiguration `json:"status,omitempty"` } // APIBinding constructs a declarative configuration of the APIBinding type for use with @@ -43,6 +50,7 @@ func APIBinding(name string) *APIBindingApplyConfiguration { b.WithAPIVersion("apis.kcp.io/v1alpha1") return b } + func (b APIBindingApplyConfiguration) IsApplyConfiguration() {} // WithKind sets the Kind field in the declarative configuration to the given value diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apibindingspec.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apibindingspec.go index af4fbf7fb96..2ed86aac98a 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apibindingspec.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apibindingspec.go @@ -20,8 +20,15 @@ package v1alpha1 // APIBindingSpecApplyConfiguration represents a declarative configuration of the APIBindingSpec type for use // with apply. +// +// APIBindingSpec records the APIs and implementations that are to be bound. type APIBindingSpecApplyConfiguration struct { - Reference *BindingReferenceApplyConfiguration `json:"reference,omitempty"` + // reference uniquely identifies an API to bind to. + Reference *BindingReferenceApplyConfiguration `json:"reference,omitempty"` + // permissionClaims records decisions about permission claims requested by the API service provider. + // Individual claims can be accepted or rejected. If accepted, the API service provider gets the + // requested access to the specified resources in this workspace. Access is granted per + // GroupResource, identity, and other properties. PermissionClaims []AcceptablePermissionClaimApplyConfiguration `json:"permissionClaims,omitempty"` } diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apibindingstatus.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apibindingstatus.go index 09cf44d155c..c398bf43a31 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apibindingstatus.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apibindingstatus.go @@ -25,13 +25,27 @@ import ( // APIBindingStatusApplyConfiguration represents a declarative configuration of the APIBindingStatus type for use // with apply. +// +// APIBindingStatus records which schemas are bound. type APIBindingStatusApplyConfiguration struct { - APIExportClusterName *string `json:"apiExportClusterName,omitempty"` - BoundResources []BoundAPIResourceApplyConfiguration `json:"boundResources,omitempty"` - Phase *apisv1alpha1.APIBindingPhaseType `json:"phase,omitempty"` - Conditions *conditionsv1alpha1.Conditions `json:"conditions,omitempty"` - AppliedPermissionClaims []PermissionClaimApplyConfiguration `json:"appliedPermissionClaims,omitempty"` - ExportPermissionClaims []PermissionClaimApplyConfiguration `json:"exportPermissionClaims,omitempty"` + // APIExportClusterName records the name (not path) of the logical cluster that contains the APIExport. + APIExportClusterName *string `json:"apiExportClusterName,omitempty"` + // boundResources records the state of bound APIs. + BoundResources []BoundAPIResourceApplyConfiguration `json:"boundResources,omitempty"` + // phase is the current phase of the APIBinding: + // - "": the APIBinding has just been created, waiting to be bound. + // - Binding: the APIBinding is being bound. + // - Bound: the APIBinding is bound and the referenced APIs are available in the workspace. + Phase *apisv1alpha1.APIBindingPhaseType `json:"phase,omitempty"` + // conditions is a list of conditions that apply to the APIBinding. + Conditions *conditionsv1alpha1.Conditions `json:"conditions,omitempty"` + // appliedPermissionClaims is a list of the permission claims the system has seen and applied, + // according to the requests of the API service provider in the APIExport and the acceptance + // state in spec.permissionClaims. + AppliedPermissionClaims []PermissionClaimApplyConfiguration `json:"appliedPermissionClaims,omitempty"` + // exportPermissionClaims records the permissions that the export provider is asking for + // the binding to grant. + ExportPermissionClaims []PermissionClaimApplyConfiguration `json:"exportPermissionClaims,omitempty"` } // APIBindingStatusApplyConfiguration constructs a declarative configuration of the APIBindingStatus type for use with diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiconversion.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiconversion.go index 48e14bfa8dc..3b6fc68a9e8 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiconversion.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiconversion.go @@ -27,10 +27,14 @@ import ( // APIConversionApplyConfiguration represents a declarative configuration of the APIConversion type for use // with apply. +// +// APIConversion contains rules to convert between different API versions in an APIResourceSchema. The name must match +// the name of the APIResourceSchema for the conversions to take effect. type APIConversionApplyConfiguration struct { v1.TypeMetaApplyConfiguration `json:",inline"` *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` - Spec *APIConversionSpecApplyConfiguration `json:"spec,omitempty"` + // Spec holds the desired state. + Spec *APIConversionSpecApplyConfiguration `json:"spec,omitempty"` } // APIConversion constructs a declarative configuration of the APIConversion type for use with @@ -42,6 +46,7 @@ func APIConversion(name string) *APIConversionApplyConfiguration { b.WithAPIVersion("apis.kcp.io/v1alpha1") return b } + func (b APIConversionApplyConfiguration) IsApplyConfiguration() {} // WithKind sets the Kind field in the declarative configuration to the given value diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiconversionrule.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiconversionrule.go index aa47df83415..55506339b68 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiconversionrule.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiconversionrule.go @@ -20,9 +20,17 @@ package v1alpha1 // APIConversionRuleApplyConfiguration represents a declarative configuration of the APIConversionRule type for use // with apply. +// +// APIConversionRule specifies how to convert a single field. type APIConversionRuleApplyConfiguration struct { - Field *string `json:"field,omitempty"` - Destination *string `json:"destination,omitempty"` + // field is a JSONPath expression to the field in the originating version of the object, relative to its root, such + // as '.spec.name.first'. + Field *string `json:"field,omitempty"` + // destination is a JSONPath expression to the field in the target version of the object, relative to + // its root, such as '.spec.name.first'. + Destination *string `json:"destination,omitempty"` + // transformation is an optional CEL expression used to execute user-specified rules to transform the + // originating field -- identified by 'self' -- to the destination field. Transformation *string `json:"transformation,omitempty"` } diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiconversionspec.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiconversionspec.go index d71011dcbe1..99596856776 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiconversionspec.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiconversionspec.go @@ -20,7 +20,10 @@ package v1alpha1 // APIConversionSpecApplyConfiguration represents a declarative configuration of the APIConversionSpec type for use // with apply. +// +// APIConversionSpec contains rules to convert between different API versions in an APIResourceSchema. type APIConversionSpecApplyConfiguration struct { + // conversions specify rules to convert between different API versions in an APIResourceSchema. Conversions []APIVersionConversionApplyConfiguration `json:"conversions,omitempty"` } diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiexport.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiexport.go index 6b758661dfb..ed5ff479341 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiexport.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiexport.go @@ -27,11 +27,16 @@ import ( // APIExportApplyConfiguration represents a declarative configuration of the APIExport type for use // with apply. +// +// APIExport registers an API and implementation to allow consumption by others +// through APIBindings. type APIExportApplyConfiguration struct { v1.TypeMetaApplyConfiguration `json:",inline"` *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` - Spec *APIExportSpecApplyConfiguration `json:"spec,omitempty"` - Status *APIExportStatusApplyConfiguration `json:"status,omitempty"` + // Spec holds the desired state. + Spec *APIExportSpecApplyConfiguration `json:"spec,omitempty"` + // Status communicates the observed state. + Status *APIExportStatusApplyConfiguration `json:"status,omitempty"` } // APIExport constructs a declarative configuration of the APIExport type for use with @@ -43,6 +48,7 @@ func APIExport(name string) *APIExportApplyConfiguration { b.WithAPIVersion("apis.kcp.io/v1alpha1") return b } + func (b APIExportApplyConfiguration) IsApplyConfiguration() {} // WithKind sets the Kind field in the declarative configuration to the given value diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiexportendpoint.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiexportendpoint.go index adb47e7a68b..d1536f693ca 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiexportendpoint.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiexportendpoint.go @@ -20,7 +20,11 @@ package v1alpha1 // APIExportEndpointApplyConfiguration represents a declarative configuration of the APIExportEndpoint type for use // with apply. +// +// Using a struct provides an extension point +// APIExportEndpoint contains the endpoint information of an APIExport service for a specific shard. type APIExportEndpointApplyConfiguration struct { + // url is an APIExport virtual workspace URL. URL *string `json:"url,omitempty"` } diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiexportendpointslice.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiexportendpointslice.go index a9a2be4b825..689fb77c895 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiexportendpointslice.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiexportendpointslice.go @@ -27,11 +27,19 @@ import ( // APIExportEndpointSliceApplyConfiguration represents a declarative configuration of the APIExportEndpointSlice type for use // with apply. +// +// APIExportEndpointSlice is a sink for the endpoints of an APIExport. These endpoints can be filtered by a Partition. +// They get consumed by the managers to start controllers and informers for the respective APIExport services. type APIExportEndpointSliceApplyConfiguration struct { v1.TypeMetaApplyConfiguration `json:",inline"` *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` - Spec *APIExportEndpointSliceSpecApplyConfiguration `json:"spec,omitempty"` - Status *APIExportEndpointSliceStatusApplyConfiguration `json:"status,omitempty"` + // spec holds the desired state: + // - the targeted APIExport + // - an optional partition for filtering + Spec *APIExportEndpointSliceSpecApplyConfiguration `json:"spec,omitempty"` + // status communicates the observed state: + // the filtered list of endpoints for the APIExport service. + Status *APIExportEndpointSliceStatusApplyConfiguration `json:"status,omitempty"` } // APIExportEndpointSlice constructs a declarative configuration of the APIExportEndpointSlice type for use with @@ -43,6 +51,7 @@ func APIExportEndpointSlice(name string) *APIExportEndpointSliceApplyConfigurati b.WithAPIVersion("apis.kcp.io/v1alpha1") return b } + func (b APIExportEndpointSliceApplyConfiguration) IsApplyConfiguration() {} // WithKind sets the Kind field in the declarative configuration to the given value diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiexportendpointslicespec.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiexportendpointslicespec.go index a74db1c41bf..ddbba8cb006 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiexportendpointslicespec.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiexportendpointslicespec.go @@ -20,9 +20,14 @@ package v1alpha1 // APIExportEndpointSliceSpecApplyConfiguration represents a declarative configuration of the APIExportEndpointSliceSpec type for use // with apply. +// +// APIExportEndpointSliceSpec defines the desired state of the APIExportEndpointSlice. type APIExportEndpointSliceSpecApplyConfiguration struct { + // export points to the API export. APIExport *ExportBindingReferenceApplyConfiguration `json:"export,omitempty"` - Partition *string `json:"partition,omitempty"` + // partition (optional) points to a partition that is used for filtering the endpoints + // of the APIExport part of the slice. + Partition *string `json:"partition,omitempty"` } // APIExportEndpointSliceSpecApplyConfiguration constructs a declarative configuration of the APIExportEndpointSliceSpec type for use with diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiexportendpointslicestatus.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiexportendpointslicestatus.go index 21bcdb7d726..160d518eed5 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiexportendpointslicestatus.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiexportendpointslicestatus.go @@ -24,10 +24,17 @@ import ( // APIExportEndpointSliceStatusApplyConfiguration represents a declarative configuration of the APIExportEndpointSliceStatus type for use // with apply. +// +// APIExportEndpointSliceStatus defines the observed state of APIExportEndpointSlice. type APIExportEndpointSliceStatusApplyConfiguration struct { - Conditions *conditionsv1alpha1.Conditions `json:"conditions,omitempty"` + // conditions is a list of conditions that apply to the APIExportEndpointSlice. + Conditions *conditionsv1alpha1.Conditions `json:"conditions,omitempty"` + // endpoints contains all the URLs of the APIExport service. APIExportEndpoints []APIExportEndpointApplyConfiguration `json:"endpoints,omitempty"` - ShardSelector *string `json:"shardSelector,omitempty"` + // shardSelector is the selector used to filter the shards. It is used to filter the shards + // when determining partition scope when deriving the endpoints. This is set by owning shard, + // and is used by follower shards to determine if its inscope or not. + ShardSelector *string `json:"shardSelector,omitempty"` } // APIExportEndpointSliceStatusApplyConfiguration constructs a declarative configuration of the APIExportEndpointSliceStatus type for use with diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiexportspec.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiexportspec.go index 694f55ec945..95aa4c758a1 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiexportspec.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiexportspec.go @@ -20,11 +20,68 @@ package v1alpha1 // APIExportSpecApplyConfiguration represents a declarative configuration of the APIExportSpec type for use // with apply. +// +// APIExportSpec defines the desired state of APIExport. type APIExportSpecApplyConfiguration struct { - LatestResourceSchemas []string `json:"latestResourceSchemas,omitempty"` - Identity *IdentityApplyConfiguration `json:"identity,omitempty"` + // latestResourceSchemas records the latest APIResourceSchemas that are exposed + // with this APIExport. + // + // The schemas can be changed in the life-cycle of the APIExport. These changes + // have no effect on existing APIBindings, but only on newly bound ones. + // + // For updating existing APIBindings, use an APIDeployment keeping bound + // workspaces up-to-date. + LatestResourceSchemas []string `json:"latestResourceSchemas,omitempty"` + // identity points to a secret that contains the API identity in the 'key' file. + // The API identity determines an unique etcd prefix for objects stored via this + // APIExport. + // + // Different APIExport in a workspace can share a common identity, or have different + // ones. The identity (the secret) can also be transferred to another workspace + // when the APIExport is moved. + // + // The identity is a secret of the API provider. The APIBindings referencing this APIExport + // will store a derived, non-sensitive value of this identity. + // + // The identity of an APIExport cannot be changed. A derived, non-sensitive value of + // the identity key is stored in the APIExport status and this value is immutable. + // + // The identity is defaulted. A secret with the name of the APIExport is automatically + // created. + Identity *IdentityApplyConfiguration `json:"identity,omitempty"` + // maximalPermissionPolicy will allow for a service provider to set an upper bound on what is allowed + // for a consumer of this API. If the policy is not set, no upper bound is applied, + // i.e the consuming users can do whatever the user workspace allows the user to do. + // + // The policy consists of RBAC (Cluster)Roles and (Cluster)Bindings. A request of a user in + // a workspace that binds to this APIExport via an APIBinding is additionally checked against + // these rules, with the user name and the groups prefixed with `apis.kcp.io:binding:`. + // + // For example: assume a user `adam` with groups `system:authenticated` and `a-team` binds to + // this APIExport in another workspace root:org:ws. Then a request in that workspace + // against a resource of this APIExport is authorized as every other request in that workspace, + // but in addition the RBAC policy here in the APIExport workspace has to grant access to the + // user `apis.kcp.io:binding:adam` with the groups `apis.kcp.io:binding:system:authenticated` + // and `apis.kcp.io:binding:a-team`. + // + // If an APIExport with a maximalPermissionPolicy is deleted, these additional checks will no longer + // be applied to resources of this APIExport. + // + // For example: Assume an APIExport with a maximalPermissionPolicy that only allows creation and + // deletion of resources, but not updates - if the APIExport is deleted users will be able to update + // the resources of the APIExport again (given the constraints of their workspace's RBAC policies). MaximalPermissionPolicy *MaximalPermissionPolicyApplyConfiguration `json:"maximalPermissionPolicy,omitempty"` - PermissionClaims []PermissionClaimApplyConfiguration `json:"permissionClaims,omitempty"` + // permissionClaims make resources available in APIExport's virtual workspace that are not part + // of the actual APIExport resources. + // + // PermissionClaims are optional and should be the least access necessary to complete the functions + // that the service provider needs. Access is asked for on a GroupResource + identity basis. + // + // PermissionClaims must be accepted by the user's explicit acknowledgement. Hence, when claims + // change, the respecting objects are not visible immediately. + // + // PermissionClaims overlapping with the APIExport resources are ignored. + PermissionClaims []PermissionClaimApplyConfiguration `json:"permissionClaims,omitempty"` } // APIExportSpecApplyConfiguration constructs a declarative configuration of the APIExportSpec type for use with diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiexportstatus.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiexportstatus.go index 1387d6fc3b7..88034a9cda2 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiexportstatus.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiexportstatus.go @@ -24,9 +24,17 @@ import ( // APIExportStatusApplyConfiguration represents a declarative configuration of the APIExportStatus type for use // with apply. +// +// APIExportStatus defines the observed state of APIExport. type APIExportStatusApplyConfiguration struct { - IdentityHash *string `json:"identityHash,omitempty"` - Conditions *conditionsv1alpha1.Conditions `json:"conditions,omitempty"` + // identityHash is the hash of the API identity key of this APIExport. This value + // is immutable as soon as it is set. + IdentityHash *string `json:"identityHash,omitempty"` + // conditions is a list of conditions that apply to the APIExport. + Conditions *conditionsv1alpha1.Conditions `json:"conditions,omitempty"` + // virtualWorkspaces contains all APIExport virtual workspace URLs. + // + // Deprecated: use APIExportEndpointSlice.status.endpoints instead VirtualWorkspaces []VirtualWorkspaceApplyConfiguration `json:"virtualWorkspaces,omitempty"` } diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiresourceschema.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiresourceschema.go index 6590604d5f8..f0caa8990ba 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiresourceschema.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiresourceschema.go @@ -27,10 +27,16 @@ import ( // APIResourceSchemaApplyConfiguration represents a declarative configuration of the APIResourceSchema type for use // with apply. +// +// APIResourceSchema describes a resource, identified by (group, version, resource, schema). +// +// An APIResourceSchema is immutable and cannot be deleted if they are referenced by +// an APIExport in the same workspace. type APIResourceSchemaApplyConfiguration struct { v1.TypeMetaApplyConfiguration `json:",inline"` *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` - Spec *APIResourceSchemaSpecApplyConfiguration `json:"spec,omitempty"` + // Spec holds the desired state. + Spec *APIResourceSchemaSpecApplyConfiguration `json:"spec,omitempty"` } // APIResourceSchema constructs a declarative configuration of the APIResourceSchema type for use with @@ -42,6 +48,7 @@ func APIResourceSchema(name string) *APIResourceSchemaApplyConfiguration { b.WithAPIVersion("apis.kcp.io/v1alpha1") return b } + func (b APIResourceSchemaApplyConfiguration) IsApplyConfiguration() {} // WithKind sets the Kind field in the declarative configuration to the given value diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiresourceschemaspec.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiresourceschemaspec.go index d4acaad4132..47cedfc70c8 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiresourceschemaspec.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiresourceschemaspec.go @@ -24,13 +24,34 @@ import ( // APIResourceSchemaSpecApplyConfiguration represents a declarative configuration of the APIResourceSchemaSpec type for use // with apply. +// +// APIResourceSchemaSpec defines the desired state of APIResourceSchema. type APIResourceSchemaSpecApplyConfiguration struct { - Group *string `json:"group,omitempty"` - Names *v1.CustomResourceDefinitionNames `json:"names,omitempty"` - Scope *v1.ResourceScope `json:"scope,omitempty"` - Versions []APIResourceVersionApplyConfiguration `json:"versions,omitempty"` - NameValidation *string `json:"nameValidation,omitempty"` - Conversion *CustomResourceConversionApplyConfiguration `json:"conversion,omitempty"` + // group is the API group of the defined custom resource. Empty string means the + // core API group. The resources are served under `/apis//...` or `/api` for the core group. + Group *string `json:"group,omitempty"` + // names specify the resource and kind names for the custom resource. + Names *v1.CustomResourceDefinitionNames `json:"names,omitempty"` + // scope indicates whether the defined custom resource is cluster- or namespace-scoped. + // Allowed values are `Cluster` and `Namespaced`. + Scope *v1.ResourceScope `json:"scope,omitempty"` + // versions is the API version of the defined custom resource. + // + // Note: the OpenAPI v3 schemas must be equal for all versions until CEL + // version migration is supported. + Versions []APIResourceVersionApplyConfiguration `json:"versions,omitempty"` + // nameValidation can be used to configure name validation for bound APIs. + // Allowed values are `DNS1123Subdomain` and `PathSegmentName`. + // - DNS1123Subdomain: a lowercase RFC 1123 subdomain must consist of lower case + // alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character. + // Regex used is '[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*' + // - PathSegmentName: validates the name can be safely encoded as a path segment. + // The name may not be '.' or '..' and the name may not contain '/' or '%'. + // + // Defaults to `DNS1123Subdomain`, matching the behaviour of CRDs. + NameValidation *string `json:"nameValidation,omitempty"` + // conversion defines conversion settings for the defined custom resource. + Conversion *CustomResourceConversionApplyConfiguration `json:"conversion,omitempty"` } // APIResourceSchemaSpecApplyConfiguration constructs a declarative configuration of the APIResourceSchemaSpec type for use with diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiresourceversion.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiresourceversion.go index cc69d082355..ddc92b1d4dc 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiresourceversion.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiresourceversion.go @@ -25,14 +25,34 @@ import ( // APIResourceVersionApplyConfiguration represents a declarative configuration of the APIResourceVersion type for use // with apply. +// +// APIResourceVersion describes one API version of a resource. type APIResourceVersionApplyConfiguration struct { - Name *string `json:"name,omitempty"` - Served *bool `json:"served,omitempty"` - Storage *bool `json:"storage,omitempty"` - Deprecated *bool `json:"deprecated,omitempty"` - DeprecationWarning *string `json:"deprecationWarning,omitempty"` - Schema *runtime.RawExtension `json:"schema,omitempty"` - Subresources *v1.CustomResourceSubresources `json:"subresources,omitempty"` + // name is the version name, e.g. “v1”, “v2beta1”, etc. + // The custom resources are served under this version at `/apis///...` if `served` is true. + Name *string `json:"name,omitempty"` + // served is a flag enabling/disabling this version from being served via REST APIs + Served *bool `json:"served,omitempty"` + // storage indicates this version should be used when persisting custom resources to storage. + // There must be exactly one version with storage=true. + Storage *bool `json:"storage,omitempty"` + // deprecated indicates this version of the custom resource API is deprecated. + // When set to true, API requests to this version receive a warning header in the server response. + // Defaults to false. + Deprecated *bool `json:"deprecated,omitempty"` + // deprecationWarning overrides the default warning returned to API clients. + // May only be set when `deprecated` is true. + // The default warning indicates this version is deprecated and recommends use + // of the newest served version of equal or greater stability, if one exists. + DeprecationWarning *string `json:"deprecationWarning,omitempty"` + // schema describes the structural schema used for validation, pruning, and defaulting + // of this version of the custom resource. + Schema *runtime.RawExtension `json:"schema,omitempty"` + // subresources specify what subresources this version of the defined custom resource have. + Subresources *v1.CustomResourceSubresources `json:"subresources,omitempty"` + // additionalPrinterColumns specifies additional columns returned in Table output. + // See https://kubernetes.io/docs/reference/using-api/api-concepts/#receiving-resources-as-tables for details. + // If no columns are specified, a single column displaying the age of the custom resource is used. AdditionalPrinterColumns []v1.CustomResourceColumnDefinition `json:"additionalPrinterColumns,omitempty"` } diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiversionconversion.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiversionconversion.go index 294a45c7252..51a9757678d 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiversionconversion.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/apiversionconversion.go @@ -20,11 +20,21 @@ package v1alpha1 // APIVersionConversionApplyConfiguration represents a declarative configuration of the APIVersionConversion type for use // with apply. +// +// APIVersionConversion contains rules to convert between two specific API versions in an +// APIResourceSchema. Additionally, to avoid data loss when round-tripping from a version that +// contains a new field to one that doesn't and back again, you can specify a list of fields to +// preserve (these are stored in annotations). type APIVersionConversionApplyConfiguration struct { - From *string `json:"from,omitempty"` - To *string `json:"to,omitempty"` - Rules []APIConversionRuleApplyConfiguration `json:"rules,omitempty"` - Preserve []string `json:"preserve,omitempty"` + // from is the source version. + From *string `json:"from,omitempty"` + // to is the target version. + To *string `json:"to,omitempty"` + // rules contains field-specific conversion expressions. + Rules []APIConversionRuleApplyConfiguration `json:"rules,omitempty"` + // preserve contains a list of JSONPath expressions to fields to preserve in the originating version + // of the object, relative to its root, such as '.spec.name.first'. + Preserve []string `json:"preserve,omitempty"` } // APIVersionConversionApplyConfiguration constructs a declarative configuration of the APIVersionConversion type for use with diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/bindingreference.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/bindingreference.go index 906b491a918..820d54bd9c3 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/bindingreference.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/bindingreference.go @@ -20,7 +20,13 @@ package v1alpha1 // BindingReferenceApplyConfiguration represents a declarative configuration of the BindingReference type for use // with apply. +// +// BindingReference describes a reference to an APIExport. Exactly one of the +// fields must be set. type BindingReferenceApplyConfiguration struct { + // export is a reference to an APIExport by cluster name and export name. + // The creator of the APIBinding needs to have access to the APIExport with the + // verb `bind` in order to bind to it. Export *ExportBindingReferenceApplyConfiguration `json:"export,omitempty"` } diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/boundapiresource.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/boundapiresource.go index e2c2e3e8ab8..f9eb14252dc 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/boundapiresource.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/boundapiresource.go @@ -20,11 +20,25 @@ package v1alpha1 // BoundAPIResourceApplyConfiguration represents a declarative configuration of the BoundAPIResource type for use // with apply. +// +// BoundAPIResource describes a bound GroupVersionResource through an APIResourceSchema of an APIExport.. type BoundAPIResourceApplyConfiguration struct { - Group *string `json:"group,omitempty"` - Resource *string `json:"resource,omitempty"` - Schema *BoundAPIResourceSchemaApplyConfiguration `json:"schema,omitempty"` - StorageVersions []string `json:"storageVersions,omitempty"` + // group is the group of the bound API. Empty string for the core API group. + Group *string `json:"group,omitempty"` + // resource is the resource of the bound API. + // + // kubebuilder:validation:MinLength=1 + Resource *string `json:"resource,omitempty"` + // Schema references the APIResourceSchema that is bound to this API. + Schema *BoundAPIResourceSchemaApplyConfiguration `json:"schema,omitempty"` + // storageVersions lists all versions of a resource that were ever persisted. Tracking these + // versions allows a migration path for stored versions in etcd. The field is mutable + // so a migration controller can finish a migration to another version (ensuring + // no old objects are left in storage), and then remove the rest of the + // versions from this list. + // + // Versions may not be removed while they exist in this list. + StorageVersions []string `json:"storageVersions,omitempty"` } // BoundAPIResourceApplyConfiguration constructs a declarative configuration of the BoundAPIResource type for use with diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/boundapiresourceschema.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/boundapiresourceschema.go index 97b97971cc9..27a8a5859c5 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/boundapiresourceschema.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/boundapiresourceschema.go @@ -20,9 +20,18 @@ package v1alpha1 // BoundAPIResourceSchemaApplyConfiguration represents a declarative configuration of the BoundAPIResourceSchema type for use // with apply. +// +// BoundAPIResourceSchema is a reference to an APIResourceSchema. type BoundAPIResourceSchemaApplyConfiguration struct { - Name *string `json:"name,omitempty"` - UID *string `json:"UID,omitempty"` + // name is the bound APIResourceSchema name. + Name *string `json:"name,omitempty"` + // UID is the UID of the APIResourceSchema that is bound to this API. + UID *string `json:"UID,omitempty"` + // identityHash is the hash of the API identity that this schema is bound to. + // The API identity determines the etcd prefix used to persist the object. + // Different identity means that the objects are effectively served and stored + // under a distinct resource. A CRD of the same GroupVersionResource uses a + // different identity and hence a separate etcd prefix. IdentityHash *string `json:"identityHash,omitempty"` } diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/customresourceconversion.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/customresourceconversion.go index eb08131a70f..cd677a6720a 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/customresourceconversion.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/customresourceconversion.go @@ -24,9 +24,16 @@ import ( // CustomResourceConversionApplyConfiguration represents a declarative configuration of the CustomResourceConversion type for use // with apply. +// +// CustomResourceConversion describes how to convert different versions of a CR. type CustomResourceConversionApplyConfiguration struct { + // strategy specifies how custom resources are converted between versions. Allowed values are: + // - `"None"`: The converter only change the apiVersion and would not touch any other field in the custom resource. + // - `"Webhook"`: API Server will call to an external webhook to do the conversion. Additional information + // is needed for this option. This requires spec.preserveUnknownFields to be false, and spec.conversion.webhook to be set. Strategy *apisv1alpha1.ConversionStrategyType `json:"strategy,omitempty"` - Webhook *WebhookConversionApplyConfiguration `json:"webhook,omitempty"` + // webhook describes how to call the conversion webhook. Required when `strategy` is set to `"Webhook"`. + Webhook *WebhookConversionApplyConfiguration `json:"webhook,omitempty"` } // CustomResourceConversionApplyConfiguration constructs a declarative configuration of the CustomResourceConversion type for use with diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/exportbindingreference.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/exportbindingreference.go index ac270d176d6..55d7a11e812 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/exportbindingreference.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/exportbindingreference.go @@ -20,8 +20,13 @@ package v1alpha1 // ExportBindingReferenceApplyConfiguration represents a declarative configuration of the ExportBindingReference type for use // with apply. +// +// ExportBindingReference is a reference to an APIExport by cluster and name. type ExportBindingReferenceApplyConfiguration struct { + // path is a logical cluster path where the APIExport is defined. + // If the path is unset, the logical cluster of the APIBinding is used. Path *string `json:"path,omitempty"` + // name is the name of the APIExport that describes the API. Name *string `json:"name,omitempty"` } diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/groupresource.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/groupresource.go index 4f1633135c1..33c329a416b 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/groupresource.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/groupresource.go @@ -20,8 +20,15 @@ package v1alpha1 // GroupResourceApplyConfiguration represents a declarative configuration of the GroupResource type for use // with apply. +// +// GroupResource identifies a resource. type GroupResourceApplyConfiguration struct { - Group *string `json:"group,omitempty"` + // group is the name of an API group. + // For core groups this is the empty string '""'. + Group *string `json:"group,omitempty"` + // resource is the name of the resource. + // Note: it is worth noting that you can not ask for permissions for resource provided by a CRD + // not provided by an api export. Resource *string `json:"resource,omitempty"` } diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/identity.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/identity.go index 712d7b59912..bc1a44aaab1 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/identity.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/identity.go @@ -24,7 +24,11 @@ import ( // IdentityApplyConfiguration represents a declarative configuration of the Identity type for use // with apply. +// +// Identity defines the identity of an APIExport, i.e. determines the etcd prefix +// data of this APIExport are stored under. type IdentityApplyConfiguration struct { + // secretRef is a reference to a secret that contains the API identity in the 'key' file. SecretRef *v1.SecretReference `json:"secretRef,omitempty"` } diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/maximalpermissionpolicy.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/maximalpermissionpolicy.go index 4ac05838ea4..c3b32bfe421 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/maximalpermissionpolicy.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/maximalpermissionpolicy.go @@ -24,7 +24,10 @@ import ( // MaximalPermissionPolicyApplyConfiguration represents a declarative configuration of the MaximalPermissionPolicy type for use // with apply. +// +// MaximalPermissionPolicy is a wrapper type around the multiple options that would be allowed. type MaximalPermissionPolicyApplyConfiguration struct { + // local is the policy that is defined in same workspace as the API Export. Local *apisv1alpha1.LocalAPIExportPolicy `json:"local,omitempty"` } diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/permissionclaim.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/permissionclaim.go index 74f867479e4..c9cc2b49ae3 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/permissionclaim.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/permissionclaim.go @@ -20,11 +20,22 @@ package v1alpha1 // PermissionClaimApplyConfiguration represents a declarative configuration of the PermissionClaim type for use // with apply. +// +// PermissionClaim identifies an object by GR and identity hash. +// Its purpose is to determine the added permissions that a service provider may +// request and that a consumer may accept and allow the service provider access to. type PermissionClaimApplyConfiguration struct { GroupResourceApplyConfiguration `json:",inline"` - All *bool `json:"all,omitempty"` - ResourceSelector []ResourceSelectorApplyConfiguration `json:"resourceSelector,omitempty"` - IdentityHash *string `json:"identityHash,omitempty"` + // all claims all resources for the given group/resource. + // This is mutually exclusive with resourceSelector. + All *bool `json:"all,omitempty"` + // resourceSelector is a list of claimed resource selectors. + ResourceSelector []ResourceSelectorApplyConfiguration `json:"resourceSelector,omitempty"` + // This is the identity for a given APIExport that the APIResourceSchema belongs to. + // The hash can be found on APIExport and APIResourceSchema's status. + // It will be empty for core types. + // Note that one must look this up for a particular kcp instance. + IdentityHash *string `json:"identityHash,omitempty"` } // PermissionClaimApplyConfiguration constructs a declarative configuration of the PermissionClaim type for use with diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/resourceselector.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/resourceselector.go index f95f5272578..860a65dc3da 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/resourceselector.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/resourceselector.go @@ -21,7 +21,12 @@ package v1alpha1 // ResourceSelectorApplyConfiguration represents a declarative configuration of the ResourceSelector type for use // with apply. type ResourceSelectorApplyConfiguration struct { - Name *string `json:"name,omitempty"` + // name of an object within a claimed group/resource. + // It matches the metadata.name field of the underlying object. + // If namespace is unset, all objects matching that name will be claimed. + Name *string `json:"name,omitempty"` + // namespace containing the named object. Matches metadata.namespace field. + // If "name" is unset, all objects from the namespace are being claimed. Namespace *string `json:"namespace,omitempty"` } diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/virtualworkspace.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/virtualworkspace.go index 44571438b71..ee9b2670e0b 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/virtualworkspace.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/virtualworkspace.go @@ -21,6 +21,7 @@ package v1alpha1 // VirtualWorkspaceApplyConfiguration represents a declarative configuration of the VirtualWorkspace type for use // with apply. type VirtualWorkspaceApplyConfiguration struct { + // url is an APIExport virtual workspace URL. URL *string `json:"url,omitempty"` } diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/webhookclientconfig.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/webhookclientconfig.go index 2c3d89c51fb..cabea7a57bf 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/webhookclientconfig.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/webhookclientconfig.go @@ -20,9 +20,33 @@ package v1alpha1 // WebhookClientConfigApplyConfiguration represents a declarative configuration of the WebhookClientConfig type for use // with apply. +// +// WebhookClientConfig contains the information to make a TLS connection with the webhook. type WebhookClientConfigApplyConfiguration struct { - URL *string `json:"url,omitempty"` - CABundle []byte `json:"caBundle,omitempty"` + // url gives the location of the webhook, in standard URL form + // (`scheme://host:port/path`). + // + // Please note that using `localhost` or `127.0.0.1` as a `host` is + // risky unless you take great care to run this webhook on all hosts + // which run an apiserver which might need to make calls to this + // webhook. Such installs are likely to be non-portable, i.e., not easy + // to turn up in a new cluster. + // + // The scheme must be "https"; the URL must begin with "https://". + // + // A path is optional, and if present may be any string permissible in + // a URL. You may use the path to pass an arbitrary string to the + // webhook, for example, a cluster identifier. + // + // Attempting to use a user or basic auth e.g. "user:password@" is not + // allowed. Fragments ("#...") and query parameters ("?...") are not + // allowed, either. + // + // Note: kcp does not support provided service names like Kubernetes does. + URL *string `json:"url,omitempty"` + // caBundle is a PEM encoded CA bundle which will be used to validate the webhook's server certificate. + // If unspecified, system trust roots on the apiserver are used. + CABundle []byte `json:"caBundle,omitempty"` } // WebhookClientConfigApplyConfiguration constructs a declarative configuration of the WebhookClientConfig type for use with diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/webhookconversion.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/webhookconversion.go index 96d666b95af..ac54a885015 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/webhookconversion.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha1/webhookconversion.go @@ -20,9 +20,18 @@ package v1alpha1 // WebhookConversionApplyConfiguration represents a declarative configuration of the WebhookConversion type for use // with apply. +// +// WebhookConversion describes how to call a conversion webhook. type WebhookConversionApplyConfiguration struct { - ClientConfig *WebhookClientConfigApplyConfiguration `json:"clientConfig,omitempty"` - ConversionReviewVersions []string `json:"conversionReviewVersions,omitempty"` + // clientConfig is the instructions for how to call the webhook if strategy is `Webhook`. + ClientConfig *WebhookClientConfigApplyConfiguration `json:"clientConfig,omitempty"` + // conversionReviewVersions is an ordered list of preferred `ConversionReview` + // versions the Webhook expects. The API server will use the first version in + // the list which it supports. If none of the versions specified in this list + // are supported by API server, conversion will fail for the custom resource. + // If a persisted Webhook configuration specifies allowed versions and does not + // include any versions known to the API Server, calls to the webhook will fail. + ConversionReviewVersions []string `json:"conversionReviewVersions,omitempty"` } // WebhookConversionApplyConfiguration constructs a declarative configuration of the WebhookConversion type for use with diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/acceptablepermissionclaim.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/acceptablepermissionclaim.go index 25f38f0dec7..d9351c25fa8 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/acceptablepermissionclaim.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/acceptablepermissionclaim.go @@ -24,6 +24,8 @@ import ( // AcceptablePermissionClaimApplyConfiguration represents a declarative configuration of the AcceptablePermissionClaim type for use // with apply. +// +// AcceptablePermissionClaim is a PermissionClaim that records if the user accepts or rejects it. type AcceptablePermissionClaimApplyConfiguration struct { ScopedPermissionClaimApplyConfiguration `json:",inline"` State *apisv1alpha2.AcceptablePermissionClaimState `json:"state,omitempty"` diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/apibinding.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/apibinding.go index 2436f027f4a..324d018ea99 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/apibinding.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/apibinding.go @@ -27,11 +27,18 @@ import ( // APIBindingApplyConfiguration represents a declarative configuration of the APIBinding type for use // with apply. +// +// APIBinding enables a set of resources and their behaviour through an external +// service provider in this workspace. +// +// The service provider uses an APIExport to expose the API. type APIBindingApplyConfiguration struct { v1.TypeMetaApplyConfiguration `json:",inline"` *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` - Spec *APIBindingSpecApplyConfiguration `json:"spec,omitempty"` - Status *APIBindingStatusApplyConfiguration `json:"status,omitempty"` + // Spec holds the desired state. + Spec *APIBindingSpecApplyConfiguration `json:"spec,omitempty"` + // Status communicates the observed state. + Status *APIBindingStatusApplyConfiguration `json:"status,omitempty"` } // APIBinding constructs a declarative configuration of the APIBinding type for use with @@ -43,6 +50,7 @@ func APIBinding(name string) *APIBindingApplyConfiguration { b.WithAPIVersion("apis.kcp.io/v1alpha2") return b } + func (b APIBindingApplyConfiguration) IsApplyConfiguration() {} // WithKind sets the Kind field in the declarative configuration to the given value diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/apibindingspec.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/apibindingspec.go index 1ab2fd8e769..d7de8fee5ee 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/apibindingspec.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/apibindingspec.go @@ -20,8 +20,15 @@ package v1alpha2 // APIBindingSpecApplyConfiguration represents a declarative configuration of the APIBindingSpec type for use // with apply. +// +// APIBindingSpec records the APIs and implementations that are to be bound. type APIBindingSpecApplyConfiguration struct { - Reference *BindingReferenceApplyConfiguration `json:"reference,omitempty"` + // reference uniquely identifies an API to bind to. + Reference *BindingReferenceApplyConfiguration `json:"reference,omitempty"` + // permissionClaims records decisions about permission claims requested by the API service provider. + // Individual claims can be accepted or rejected. If accepted, the API service provider gets the + // requested access to the specified resources in this workspace. Access is granted per + // GroupResource, identity, and other properties. PermissionClaims []AcceptablePermissionClaimApplyConfiguration `json:"permissionClaims,omitempty"` } diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/apibindingstatus.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/apibindingstatus.go index b00afb6eec7..530e23df194 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/apibindingstatus.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/apibindingstatus.go @@ -25,13 +25,27 @@ import ( // APIBindingStatusApplyConfiguration represents a declarative configuration of the APIBindingStatus type for use // with apply. +// +// APIBindingStatus records which schemas are bound. type APIBindingStatusApplyConfiguration struct { - APIExportClusterName *string `json:"apiExportClusterName,omitempty"` - BoundResources []BoundAPIResourceApplyConfiguration `json:"boundResources,omitempty"` - Phase *apisv1alpha2.APIBindingPhaseType `json:"phase,omitempty"` - Conditions *v1alpha1.Conditions `json:"conditions,omitempty"` + // APIExportClusterName records the name (not path) of the logical cluster that contains the APIExport. + APIExportClusterName *string `json:"apiExportClusterName,omitempty"` + // boundResources records the state of bound APIs. + BoundResources []BoundAPIResourceApplyConfiguration `json:"boundResources,omitempty"` + // phase is the current phase of the APIBinding: + // - "": the APIBinding has just been created, waiting to be bound. + // - Binding: the APIBinding is being bound. + // - Bound: the APIBinding is bound and the referenced APIs are available in the workspace. + Phase *apisv1alpha2.APIBindingPhaseType `json:"phase,omitempty"` + // conditions is a list of conditions that apply to the APIBinding. + Conditions *v1alpha1.Conditions `json:"conditions,omitempty"` + // appliedPermissionClaims is a list of the permission claims the system has seen and applied, + // according to the requests of the API service provider in the APIExport and the acceptance + // state in spec.permissionClaims. AppliedPermissionClaims []ScopedPermissionClaimApplyConfiguration `json:"appliedPermissionClaims,omitempty"` - ExportPermissionClaims []PermissionClaimApplyConfiguration `json:"exportPermissionClaims,omitempty"` + // exportPermissionClaims records the permissions that the export provider is asking for + // the binding to grant. + ExportPermissionClaims []PermissionClaimApplyConfiguration `json:"exportPermissionClaims,omitempty"` } // APIBindingStatusApplyConfiguration constructs a declarative configuration of the APIBindingStatus type for use with diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/apiexport.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/apiexport.go index feeeffd103d..978e1225514 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/apiexport.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/apiexport.go @@ -27,11 +27,16 @@ import ( // APIExportApplyConfiguration represents a declarative configuration of the APIExport type for use // with apply. +// +// APIExport registers an API and implementation to allow consumption by others +// through APIBindings. type APIExportApplyConfiguration struct { v1.TypeMetaApplyConfiguration `json:",inline"` *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` - Spec *APIExportSpecApplyConfiguration `json:"spec,omitempty"` - Status *APIExportStatusApplyConfiguration `json:"status,omitempty"` + // Spec holds the desired state. + Spec *APIExportSpecApplyConfiguration `json:"spec,omitempty"` + // Status communicates the observed state. + Status *APIExportStatusApplyConfiguration `json:"status,omitempty"` } // APIExport constructs a declarative configuration of the APIExport type for use with @@ -43,6 +48,7 @@ func APIExport(name string) *APIExportApplyConfiguration { b.WithAPIVersion("apis.kcp.io/v1alpha2") return b } + func (b APIExportApplyConfiguration) IsApplyConfiguration() {} // WithKind sets the Kind field in the declarative configuration to the given value diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/apiexportspec.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/apiexportspec.go index be9f2dd3d7b..0ffa1a9adc9 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/apiexportspec.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/apiexportspec.go @@ -20,11 +20,61 @@ package v1alpha2 // APIExportSpecApplyConfiguration represents a declarative configuration of the APIExportSpec type for use // with apply. +// +// APIExportSpec defines the desired state of APIExport. type APIExportSpecApplyConfiguration struct { - Resources []ResourceSchemaApplyConfiguration `json:"resources,omitempty"` - Identity *IdentityApplyConfiguration `json:"identity,omitempty"` + // Resources records the APIResourceSchemas that are exposed with this + // APIExport. + // + // The schemas can be changed in the life-cycle of the APIExport. These changes + // have no effect on existing APIBindings, but only on newly bound ones. + // + // For updating existing APIBindings, use an APIDeployment keeping bound + // workspaces up-to-date. + Resources []ResourceSchemaApplyConfiguration `json:"resources,omitempty"` + // identity points to a secret that contains the API identity in the 'key' file. + // The API identity determines an unique etcd prefix for objects stored via this + // APIExport. + // + // Different APIExport in a workspace can share a common identity, or have different + // ones. The identity (the secret) can also be transferred to another workspace + // when the APIExport is moved. + // + // The identity is a secret of the API provider. The APIBindings referencing this APIExport + // will store a derived, non-sensitive value of this identity. + // + // The identity of an APIExport cannot be changed. A derived, non-sensitive value of + // the identity key is stored in the APIExport status and this value is immutable. + // + // The identity is defaulted. A secret with the name of the APIExport is automatically + // created. + Identity *IdentityApplyConfiguration `json:"identity,omitempty"` + // maximalPermissionPolicy will allow for a service provider to set an upper bound on what is allowed + // for a consumer of this API. If the policy is not set, no upper bound is applied, + // i.e the consuming users can do whatever the user workspace allows the user to do. + // + // The policy consists of RBAC (Cluster)Roles and (Cluster)Bindings. A request of a user in + // a workspace that binds to this APIExport via an APIBinding is additionally checked against + // these rules, with the user name and the groups prefixed with `apis.kcp.io:binding:`. + // + // For example: assume a user `adam` with groups `system:authenticated` and `a-team` binds to + // this APIExport in another workspace root:org:ws. Then a request in that workspace + // against a resource of this APIExport is authorized as every other request in that workspace, + // but in addition the RBAC policy here in the APIExport workspace has to grant access to the + // user `apis.kcp.io:binding:adam` with the groups `apis.kcp.io:binding:system:authenticated` + // and `apis.kcp.io:binding:a-team`. MaximalPermissionPolicy *MaximalPermissionPolicyApplyConfiguration `json:"maximalPermissionPolicy,omitempty"` - PermissionClaims []PermissionClaimApplyConfiguration `json:"permissionClaims,omitempty"` + // permissionClaims make resources available in APIExport's virtual workspace that are not part + // of the actual APIExport resources. + // + // PermissionClaims are optional and should be the least access necessary to complete the functions + // that the service provider needs. Access is asked for on a GroupResource + identity basis. + // + // PermissionClaims must be accepted by the user's explicit acknowledgement. Hence, when claims + // change, the respecting objects are not visible immediately. + // + // PermissionClaims overlapping with the APIExport resources are ignored. + PermissionClaims []PermissionClaimApplyConfiguration `json:"permissionClaims,omitempty"` } // APIExportSpecApplyConfiguration constructs a declarative configuration of the APIExportSpec type for use with diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/apiexportstatus.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/apiexportstatus.go index 1339c38b70b..189ed1c97a2 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/apiexportstatus.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/apiexportstatus.go @@ -24,9 +24,20 @@ import ( // APIExportStatusApplyConfiguration represents a declarative configuration of the APIExportStatus type for use // with apply. +// +// APIExportStatus defines the observed state of APIExport. type APIExportStatusApplyConfiguration struct { - IdentityHash *string `json:"identityHash,omitempty"` - Conditions *v1alpha1.Conditions `json:"conditions,omitempty"` + // identityHash is the hash of the API identity key of this APIExport. This value + // is immutable as soon as it is set. + IdentityHash *string `json:"identityHash,omitempty"` + // conditions is a list of conditions that apply to the APIExport. + Conditions *v1alpha1.Conditions `json:"conditions,omitempty"` + // virtualWorkspaces contains all APIExport virtual workspace URLs. + // this field is empty unless kcp has been started with the + // 'EnableDeprecatedAPIExportVirtualWorkspacesUrls' feature gate. + // + // Deprecated: use APIExportEndpointSlice.status.endpoints instead. This + // field will be removed in an upcoming API version. VirtualWorkspaces []VirtualWorkspaceApplyConfiguration `json:"virtualWorkspaces,omitempty"` } diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/bindingreference.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/bindingreference.go index 3d1fe1a12ae..bd0c17d37bc 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/bindingreference.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/bindingreference.go @@ -20,7 +20,13 @@ package v1alpha2 // BindingReferenceApplyConfiguration represents a declarative configuration of the BindingReference type for use // with apply. +// +// BindingReference describes a reference to an APIExport. Exactly one of the +// fields must be set. type BindingReferenceApplyConfiguration struct { + // export is a reference to an APIExport by cluster name and export name. + // The creator of the APIBinding needs to have access to the APIExport with the + // verb `bind` in order to bind to it. Export *ExportBindingReferenceApplyConfiguration `json:"export,omitempty"` } diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/boundapiresource.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/boundapiresource.go index e90dc2097de..b3ba2f80223 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/boundapiresource.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/boundapiresource.go @@ -20,11 +20,25 @@ package v1alpha2 // BoundAPIResourceApplyConfiguration represents a declarative configuration of the BoundAPIResource type for use // with apply. +// +// BoundAPIResource describes a bound GroupVersionResource through an APIResourceSchema of an APIExport.. type BoundAPIResourceApplyConfiguration struct { - Group *string `json:"group,omitempty"` - Resource *string `json:"resource,omitempty"` - Schema *BoundAPIResourceSchemaApplyConfiguration `json:"schema,omitempty"` - StorageVersions []string `json:"storageVersions,omitempty"` + // group is the group of the bound API. Empty string for the core API group. + Group *string `json:"group,omitempty"` + // resource is the resource of the bound API. + // + // kubebuilder:validation:MinLength=1 + Resource *string `json:"resource,omitempty"` + // Schema references the APIResourceSchema that is bound to this API. + Schema *BoundAPIResourceSchemaApplyConfiguration `json:"schema,omitempty"` + // storageVersions lists all versions of a resource that were ever persisted. Tracking these + // versions allows a migration path for stored versions in etcd. The field is mutable + // so a migration controller can finish a migration to another version (ensuring + // no old objects are left in storage), and then remove the rest of the + // versions from this list. + // + // Versions may not be removed while they exist in this list. + StorageVersions []string `json:"storageVersions,omitempty"` } // BoundAPIResourceApplyConfiguration constructs a declarative configuration of the BoundAPIResource type for use with diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/boundapiresourceschema.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/boundapiresourceschema.go index 724eb26f44f..9cb59478478 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/boundapiresourceschema.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/boundapiresourceschema.go @@ -20,9 +20,18 @@ package v1alpha2 // BoundAPIResourceSchemaApplyConfiguration represents a declarative configuration of the BoundAPIResourceSchema type for use // with apply. +// +// BoundAPIResourceSchema is a reference to an APIResourceSchema. type BoundAPIResourceSchemaApplyConfiguration struct { - Name *string `json:"name,omitempty"` - UID *string `json:"UID,omitempty"` + // name is the bound APIResourceSchema name. + Name *string `json:"name,omitempty"` + // UID is the UID of the APIResourceSchema that is bound to this API. + UID *string `json:"UID,omitempty"` + // identityHash is the hash of the API identity that this schema is bound to. + // The API identity determines the etcd prefix used to persist the object. + // Different identity means that the objects are effectively served and stored + // under a distinct resource. A CRD of the same GroupVersionResource uses a + // different identity and hence a separate etcd prefix. IdentityHash *string `json:"identityHash,omitempty"` } diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/exportbindingreference.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/exportbindingreference.go index 7783fb6a05e..33a131828a1 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/exportbindingreference.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/exportbindingreference.go @@ -20,8 +20,13 @@ package v1alpha2 // ExportBindingReferenceApplyConfiguration represents a declarative configuration of the ExportBindingReference type for use // with apply. +// +// ExportBindingReference is a reference to an APIExport by cluster and name. type ExportBindingReferenceApplyConfiguration struct { + // path is a logical cluster path where the APIExport is defined. + // If the path is unset, the logical cluster of the APIBinding is used. Path *string `json:"path,omitempty"` + // name is the name of the APIExport that describes the API. Name *string `json:"name,omitempty"` } diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/groupresource.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/groupresource.go index 79fc05d0b52..a57a7f55751 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/groupresource.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/groupresource.go @@ -20,8 +20,15 @@ package v1alpha2 // GroupResourceApplyConfiguration represents a declarative configuration of the GroupResource type for use // with apply. +// +// GroupResource identifies a resource. type GroupResourceApplyConfiguration struct { - Group *string `json:"group,omitempty"` + // group is the name of an API group. + // For core groups this is the empty string '""'. + Group *string `json:"group,omitempty"` + // resource is the name of the resource. + // Note: it is worth noting that you can not ask for permissions for resource provided by a CRD + // not provided by an api export. Resource *string `json:"resource,omitempty"` } diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/identity.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/identity.go index 108b344b129..5649cefca74 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/identity.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/identity.go @@ -24,7 +24,11 @@ import ( // IdentityApplyConfiguration represents a declarative configuration of the Identity type for use // with apply. +// +// Identity defines the identity of an APIExport, i.e. determines the etcd prefix +// data of this APIExport are stored under. type IdentityApplyConfiguration struct { + // secretRef is a reference to a secret that contains the API identity in the 'key' file. SecretRef *v1.SecretReference `json:"secretRef,omitempty"` } diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/maximalpermissionpolicy.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/maximalpermissionpolicy.go index 7ddcaf77c28..1510cf9dee3 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/maximalpermissionpolicy.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/maximalpermissionpolicy.go @@ -24,7 +24,10 @@ import ( // MaximalPermissionPolicyApplyConfiguration represents a declarative configuration of the MaximalPermissionPolicy type for use // with apply. +// +// MaximalPermissionPolicy is a wrapper type around the multiple options that would be allowed. type MaximalPermissionPolicyApplyConfiguration struct { + // local is the policy that is defined in same workspace as the API Export. Local *apisv1alpha2.LocalAPIExportPolicy `json:"local,omitempty"` } diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/permissionclaim.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/permissionclaim.go index 86ffb7a218a..2214c019430 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/permissionclaim.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/permissionclaim.go @@ -20,11 +20,30 @@ package v1alpha2 // PermissionClaimApplyConfiguration represents a declarative configuration of the PermissionClaim type for use // with apply. +// +// PermissionClaim identifies an object by GR and identity hash. +// Its purpose is to determine the added permissions that a service provider may +// request and that a consumer may accept and allow the service provider access to. type PermissionClaimApplyConfiguration struct { GroupResourceApplyConfiguration `json:",inline"` - Verbs []string `json:"verbs,omitempty"` - IdentityHash *string `json:"identityHash,omitempty"` - DefaultSelector *PermissionClaimSelectorApplyConfiguration `json:"defaultSelector,omitempty"` + // verbs is a list of supported API operation types (this includes + // but is not limited to get, list, watch, create, update, patch, + // delete, deletecollection, and proxy). + Verbs []string `json:"verbs,omitempty"` + // This is the identity for a given APIExport that the APIResourceSchema belongs to. + // The hash can be found on APIExport and APIResourceSchema's status. + // It will be empty for core types. + // Note that one must look this up for a particular kcp instance. + IdentityHash *string `json:"identityHash,omitempty"` + // defaultSelector is the default selector to use when creating APIBindings + // via WorkspaceType's defaultAPIBindings. If not set, the APIBinding will + // default to matchAll: true. + // + // This allows API providers to suggest a default scope for permission claims + // that will be used when workspaces are automatically created with default + // APIBindings. Users can always override the default selector by accepting the + // claim with a different selector or by manually creating APIBindings with a custom selector. + DefaultSelector *PermissionClaimSelectorApplyConfiguration `json:"defaultSelector,omitempty"` } // PermissionClaimApplyConfiguration constructs a declarative configuration of the PermissionClaim type for use with diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/permissionclaimselector.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/permissionclaimselector.go index ce3a77278fa..bf95b58f540 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/permissionclaimselector.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/permissionclaimselector.go @@ -24,9 +24,13 @@ import ( // PermissionClaimSelectorApplyConfiguration represents a declarative configuration of the PermissionClaimSelector type for use // with apply. +// +// PermissionClaimSelector configures scoped access to objects +// of a claimed resource. type PermissionClaimSelectorApplyConfiguration struct { v1.LabelSelectorApplyConfiguration `json:",inline"` - MatchAll *bool `json:"matchAll,omitempty"` + // matchAll grants access to all objects of the claimed resource. + MatchAll *bool `json:"matchAll,omitempty"` } // PermissionClaimSelectorApplyConfiguration constructs a declarative configuration of the PermissionClaimSelector type for use with diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/resourceschema.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/resourceschema.go index 1a81305b8d9..76abd0a86fa 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/resourceschema.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/resourceschema.go @@ -20,10 +20,17 @@ package v1alpha2 // ResourceSchemaApplyConfiguration represents a declarative configuration of the ResourceSchema type for use // with apply. +// +// ResourceSchema defines the resource schemas that are exposed with this APIExport. type ResourceSchemaApplyConfiguration struct { - Name *string `json:"name,omitempty"` - Group *string `json:"group,omitempty"` - Schema *string `json:"schema,omitempty"` + // Name is the name of the resource. + Name *string `json:"name,omitempty"` + // Group is the API group of the resource. Empty string represents the core group. + Group *string `json:"group,omitempty"` + // Schema is the name of the referenced APIResourceSchema. This must be of the format + // "..". + Schema *string `json:"schema,omitempty"` + // Storage defines how the resource is stored. Storage *ResourceSchemaStorageApplyConfiguration `json:"storage,omitempty"` } diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/resourceschemastorage.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/resourceschemastorage.go index 13b6f38169c..88cc42d9a38 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/resourceschemastorage.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/resourceschemastorage.go @@ -24,8 +24,17 @@ import ( // ResourceSchemaStorageApplyConfiguration represents a declarative configuration of the ResourceSchemaStorage type for use // with apply. +// +// ResourceSchemaStorage defines how the resource is stored. type ResourceSchemaStorageApplyConfiguration struct { - CRD *apisv1alpha2.ResourceSchemaStorageCRD `json:"crd,omitempty"` + // CRD storage defines that this APIResourceSchema is exposed as + // CustomResourceDefinitions inside the workspaces that bind to the APIExport. + // Like in vanilla Kubernetes, users can then create, update and delete + // custom resources. + CRD *apisv1alpha2.ResourceSchemaStorageCRD `json:"crd,omitempty"` + // Virtual storage defines that this APIResourceSchema is exposed as + // a projection of the referenced resource inside the workspaces that + // bind to the APIExport. Virtual *ResourceSchemaStorageVirtualApplyConfiguration `json:"virtual,omitempty"` } diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/resourceschemastoragevirtual.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/resourceschemastoragevirtual.go index 28f52a3a5c6..3515195ed45 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/resourceschemastoragevirtual.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/resourceschemastoragevirtual.go @@ -24,9 +24,15 @@ import ( // ResourceSchemaStorageVirtualApplyConfiguration represents a declarative configuration of the ResourceSchemaStorageVirtual type for use // with apply. +// +// ResourceSchemaStorageVirtual refers to an endpoint slice object +// from which the virtual resource is served. type ResourceSchemaStorageVirtualApplyConfiguration struct { - Reference *v1.TypedLocalObjectReference `json:"reference,omitempty"` - IdentityHash *string `json:"identityHash,omitempty"` + // Reference points to another object that has a URL to a virtual workspace + // in a "url" field in its status. The object can be of any kind. + Reference *v1.TypedLocalObjectReference `json:"reference,omitempty"` + // IdentityHash is the identity of the virtual resource. + IdentityHash *string `json:"identityHash,omitempty"` } // ResourceSchemaStorageVirtualApplyConfiguration constructs a declarative configuration of the ResourceSchemaStorageVirtual type for use with diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/scopedpermissionclaim.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/scopedpermissionclaim.go index 29f14ddb9ba..7b9692d8cd4 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/scopedpermissionclaim.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/scopedpermissionclaim.go @@ -20,6 +20,9 @@ package v1alpha2 // ScopedPermissionClaimApplyConfiguration represents a declarative configuration of the ScopedPermissionClaim type for use // with apply. +// +// ScopedPermissionClaim embeds a PermissionClaim and adds a selector to +// scope down access to objects of the claimed resource. type ScopedPermissionClaimApplyConfiguration struct { PermissionClaimApplyConfiguration `json:",inline"` Selector *PermissionClaimSelectorApplyConfiguration `json:"selector,omitempty"` diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/virtualworkspace.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/virtualworkspace.go index f98e550c7d4..a68c5f8e648 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/virtualworkspace.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/apis/v1alpha2/virtualworkspace.go @@ -21,6 +21,7 @@ package v1alpha2 // VirtualWorkspaceApplyConfiguration represents a declarative configuration of the VirtualWorkspace type for use // with apply. type VirtualWorkspaceApplyConfiguration struct { + // url is an APIExport virtual workspace URL. URL *string `json:"url,omitempty"` } diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/cache/v1alpha1/cachedobject.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/cache/v1alpha1/cachedobject.go index 3313dee37e0..e86026fcd43 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/cache/v1alpha1/cachedobject.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/cache/v1alpha1/cachedobject.go @@ -27,6 +27,8 @@ import ( // CachedObjectApplyConfiguration represents a declarative configuration of the CachedObject type for use // with apply. +// +// CachedObject defines a resource that is cached in the cache. type CachedObjectApplyConfiguration struct { v1.TypeMetaApplyConfiguration `json:",inline"` *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` @@ -42,6 +44,7 @@ func CachedObject(name string) *CachedObjectApplyConfiguration { b.WithAPIVersion("cache.kcp.io/v1alpha1") return b } + func (b CachedObjectApplyConfiguration) IsApplyConfiguration() {} // WithKind sets the Kind field in the declarative configuration to the given value diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/cache/v1alpha1/cachedobjectspec.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/cache/v1alpha1/cachedobjectspec.go index 7334a341385..8f853066c72 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/cache/v1alpha1/cachedobjectspec.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/cache/v1alpha1/cachedobjectspec.go @@ -24,6 +24,8 @@ import ( // CachedObjectSpecApplyConfiguration represents a declarative configuration of the CachedObjectSpec type for use // with apply. +// +// CachedObjectSpec defines the desired state of CachedObject. type CachedObjectSpecApplyConfiguration struct { Raw *runtime.RawExtension `json:"raw,omitempty"` } diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/cache/v1alpha1/cachedresource.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/cache/v1alpha1/cachedresource.go index 09bc1e0871a..3edb5c85894 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/cache/v1alpha1/cachedresource.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/cache/v1alpha1/cachedresource.go @@ -27,6 +27,8 @@ import ( // CachedResourceApplyConfiguration represents a declarative configuration of the CachedResource type for use // with apply. +// +// CachedResource defines a resource that should be published to other workspaces type CachedResourceApplyConfiguration struct { v1.TypeMetaApplyConfiguration `json:",inline"` *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` @@ -43,6 +45,7 @@ func CachedResource(name string) *CachedResourceApplyConfiguration { b.WithAPIVersion("cache.kcp.io/v1alpha1") return b } + func (b CachedResourceApplyConfiguration) IsApplyConfiguration() {} // WithKind sets the Kind field in the declarative configuration to the given value diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/cache/v1alpha1/cachedresourceendpoint.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/cache/v1alpha1/cachedresourceendpoint.go index ad8100f9545..7f2cefbba42 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/cache/v1alpha1/cachedresourceendpoint.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/cache/v1alpha1/cachedresourceendpoint.go @@ -20,7 +20,11 @@ package v1alpha1 // CachedResourceEndpointApplyConfiguration represents a declarative configuration of the CachedResourceEndpoint type for use // with apply. +// +// Using a struct provides an extension point +// CachedResourceEndpoint contains the endpoint information of a Replication service for a specific shard. type CachedResourceEndpointApplyConfiguration struct { + // url is an CachedResource virtual workspace URL. URL *string `json:"url,omitempty"` } diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/cache/v1alpha1/cachedresourceendpointslice.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/cache/v1alpha1/cachedresourceendpointslice.go index c02e9882608..c4ef2f0b9ee 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/cache/v1alpha1/cachedresourceendpointslice.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/cache/v1alpha1/cachedresourceendpointslice.go @@ -27,11 +27,17 @@ import ( // CachedResourceEndpointSliceApplyConfiguration represents a declarative configuration of the CachedResourceEndpointSlice type for use // with apply. +// +// CachedResourceEndpointSlice is a sink for the endpoints of CachedResource virtual workspaces. type CachedResourceEndpointSliceApplyConfiguration struct { v1.TypeMetaApplyConfiguration `json:",inline"` *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` - Spec *CachedResourceEndpointSliceSpecApplyConfiguration `json:"spec,omitempty"` - Status *CachedResourceEndpointSliceStatusApplyConfiguration `json:"status,omitempty"` + // spec holds the desired state: + // - the targeted CachedResource + Spec *CachedResourceEndpointSliceSpecApplyConfiguration `json:"spec,omitempty"` + // status communicates the observed state: + // the filtered list of endpoints for the Replication service. + Status *CachedResourceEndpointSliceStatusApplyConfiguration `json:"status,omitempty"` } // CachedResourceEndpointSlice constructs a declarative configuration of the CachedResourceEndpointSlice type for use with @@ -43,6 +49,7 @@ func CachedResourceEndpointSlice(name string) *CachedResourceEndpointSliceApplyC b.WithAPIVersion("cache.kcp.io/v1alpha1") return b } + func (b CachedResourceEndpointSliceApplyConfiguration) IsApplyConfiguration() {} // WithKind sets the Kind field in the declarative configuration to the given value diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/cache/v1alpha1/cachedresourceendpointslicespec.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/cache/v1alpha1/cachedresourceendpointslicespec.go index ce602d5061a..867e812bf36 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/cache/v1alpha1/cachedresourceendpointslicespec.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/cache/v1alpha1/cachedresourceendpointslicespec.go @@ -20,9 +20,14 @@ package v1alpha1 // CachedResourceEndpointSliceSpecApplyConfiguration represents a declarative configuration of the CachedResourceEndpointSliceSpec type for use // with apply. +// +// CachedResourceEndpointSliceSpec defines the desired state of the CachedResourceEndpointSlice. type CachedResourceEndpointSliceSpecApplyConfiguration struct { + // CachedResource points to the real CachedResource the slice is created for. CachedResource *CachedResourceReferenceApplyConfiguration `json:"cachedResource,omitempty"` - Partition *string `json:"partition,omitempty"` + // partition points to a partition that is used for filtering the endpoints + // of the CachedResource part of the slice. + Partition *string `json:"partition,omitempty"` } // CachedResourceEndpointSliceSpecApplyConfiguration constructs a declarative configuration of the CachedResourceEndpointSliceSpec type for use with diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/cache/v1alpha1/cachedresourceendpointslicestatus.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/cache/v1alpha1/cachedresourceendpointslicestatus.go index e6398ec21b9..4cbf067179a 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/cache/v1alpha1/cachedresourceendpointslicestatus.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/cache/v1alpha1/cachedresourceendpointslicestatus.go @@ -24,10 +24,17 @@ import ( // CachedResourceEndpointSliceStatusApplyConfiguration represents a declarative configuration of the CachedResourceEndpointSliceStatus type for use // with apply. +// +// CachedResourceEndpointSliceStatus defines the observed state of CachedResourceEndpointSlice. type CachedResourceEndpointSliceStatusApplyConfiguration struct { - Conditions *conditionsv1alpha1.Conditions `json:"conditions,omitempty"` + // conditions is a list of conditions that apply to the CachedResourceEndpointSlice. + Conditions *conditionsv1alpha1.Conditions `json:"conditions,omitempty"` + // endpoints contains all the URLs of the Replication service. CachedResourceEndpoints []CachedResourceEndpointApplyConfiguration `json:"endpoints,omitempty"` - ShardSelector *string `json:"shardSelector,omitempty"` + // shardSelector is the selector used to filter the shards. It is used to filter the shards + // when determining partition scope when deriving the endpoints. This is set by owning shard, + // and is used by follower shards to determine if its inscope or not. + ShardSelector *string `json:"shardSelector,omitempty"` } // CachedResourceEndpointSliceStatusApplyConfiguration constructs a declarative configuration of the CachedResourceEndpointSliceStatus type for use with diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/cache/v1alpha1/cachedresourcereference.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/cache/v1alpha1/cachedresourcereference.go index 479b9dae43f..b9aee5132eb 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/cache/v1alpha1/cachedresourcereference.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/cache/v1alpha1/cachedresourcereference.go @@ -20,8 +20,13 @@ package v1alpha1 // CachedResourceReferenceApplyConfiguration represents a declarative configuration of the CachedResourceReference type for use // with apply. +// +// CachedResourceReference is a reference to a CachedResource. type CachedResourceReferenceApplyConfiguration struct { + // path is a logical cluster path where the CachedResource is defined. If empty, + // the CachedResource is assumed to be co-located with the referencing resource. Path *string `json:"path,omitempty"` + // name is the name of the CachedResource the reference points to. Name *string `json:"name,omitempty"` } diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/cache/v1alpha1/cachedresourcespec.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/cache/v1alpha1/cachedresourcespec.go index e2137bebf0e..8d1e9410ce4 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/cache/v1alpha1/cachedresourcespec.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/cache/v1alpha1/cachedresourcespec.go @@ -24,10 +24,23 @@ import ( // CachedResourceSpecApplyConfiguration represents a declarative configuration of the CachedResourceSpec type for use // with apply. +// +// CachedResourceSpec defines the desired state of CachedResource. type CachedResourceSpecApplyConfiguration struct { + // GroupVersionResource is the fully qualified name of the resource to be published. GroupVersionResourceApplyConfiguration `json:",inline"` - Identity *IdentityApplyConfiguration `json:"identity,omitempty"` - LabelSelector *v1.LabelSelectorApplyConfiguration `json:"labelSelector,omitempty"` + // identity points to a secret that contains the API identity in the 'key' file. + // The API identity allows access to CachedResource's resources via the APIExport. + // + // Different CachedResource in a workspace can share a common identity, or have different + // ones. The identity (the secret) can also be transferred to another workspace + // when the ublishedResource is moved. + // + // The identity is defaulted. A secret with the name of the CachedResource is automatically + // created. + Identity *IdentityApplyConfiguration `json:"identity,omitempty"` + // LabelSelector is used to filter which resources should be published + LabelSelector *v1.LabelSelectorApplyConfiguration `json:"labelSelector,omitempty"` } // CachedResourceSpecApplyConfiguration constructs a declarative configuration of the CachedResourceSpec type for use with diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/cache/v1alpha1/cachedresourcestatus.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/cache/v1alpha1/cachedresourcestatus.go index b524e17cb1b..64761a88947 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/cache/v1alpha1/cachedresourcestatus.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/cache/v1alpha1/cachedresourcestatus.go @@ -25,11 +25,17 @@ import ( // CachedResourceStatusApplyConfiguration represents a declarative configuration of the CachedResourceStatus type for use // with apply. +// +// CachedResourceStatus defines the observed state of CachedResource. type CachedResourceStatusApplyConfiguration struct { - IdentityHash *string `json:"identityHash,omitempty"` - ResourceCounts *ResourceCountApplyConfiguration `json:"resourceCounts,omitempty"` - Phase *cachev1alpha1.CachedResourcePhaseType `json:"phase,omitempty"` - Conditions *conditionsv1alpha1.Conditions `json:"conditions,omitempty"` + // IdentityHash is a hash of the identity configuration + IdentityHash *string `json:"identityHash,omitempty"` + // ResourceCount is the number of resources that match the label selector + ResourceCounts *ResourceCountApplyConfiguration `json:"resourceCounts,omitempty"` + // Phase of the workspace (Initializing, Ready, Unavailable). + Phase *cachev1alpha1.CachedResourcePhaseType `json:"phase,omitempty"` + // Current processing state of the Workspace. + Conditions *conditionsv1alpha1.Conditions `json:"conditions,omitempty"` } // CachedResourceStatusApplyConfiguration constructs a declarative configuration of the CachedResourceStatus type for use with diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/cache/v1alpha1/groupversionresource.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/cache/v1alpha1/groupversionresource.go index f8375437253..9821df40105 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/cache/v1alpha1/groupversionresource.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/cache/v1alpha1/groupversionresource.go @@ -20,9 +20,17 @@ package v1alpha1 // GroupVersionResourceApplyConfiguration represents a declarative configuration of the GroupVersionResource type for use // with apply. +// +// GroupVersionResource identifies a resource. type GroupVersionResourceApplyConfiguration struct { - Group *string `json:"group,omitempty"` - Version *string `json:"version,omitempty"` + // group is the name of an API group. + // For core groups this is the empty string '""'. + Group *string `json:"group,omitempty"` + // version is the version of the resource. + Version *string `json:"version,omitempty"` + // resource is the name of the resource. + // Note: it is worth noting that you can not ask for permissions for resource provided by a CRD + // not provided by an api export. Resource *string `json:"resource,omitempty"` } diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/cache/v1alpha1/identity.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/cache/v1alpha1/identity.go index 712d7b59912..80eac81db1b 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/cache/v1alpha1/identity.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/cache/v1alpha1/identity.go @@ -24,7 +24,11 @@ import ( // IdentityApplyConfiguration represents a declarative configuration of the Identity type for use // with apply. +// +// Identity defines the identity of an CachedResource, i.e. determines the cached resource access +// of the resources, that are published by this CachedResource. type IdentityApplyConfiguration struct { + // secretRef is a reference to a secret that contains the API identity in the 'key' file. SecretRef *v1.SecretReference `json:"secretRef,omitempty"` } diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/cache/v1alpha1/resourcecount.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/cache/v1alpha1/resourcecount.go index df9c0d3754e..36b4d50bf8d 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/cache/v1alpha1/resourcecount.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/cache/v1alpha1/resourcecount.go @@ -20,6 +20,9 @@ package v1alpha1 // ResourceCountApplyConfiguration represents a declarative configuration of the ResourceCount type for use // with apply. +// +// ResourceCount is the number of resources that match the label selector +// and are cached in the cache. type ResourceCountApplyConfiguration struct { Cache *int `json:"cache,omitempty"` Local *int `json:"local,omitempty"` diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/conditions/v1alpha1/condition.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/conditions/v1alpha1/condition.go index f18c2ec6bb3..494a781c18c 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/conditions/v1alpha1/condition.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/conditions/v1alpha1/condition.go @@ -27,13 +27,31 @@ import ( // ConditionApplyConfiguration represents a declarative configuration of the Condition type for use // with apply. +// +// ANCHOR: Condition +// Condition defines an observation of a object operational state. type ConditionApplyConfiguration struct { - Type *conditionsv1alpha1.ConditionType `json:"type,omitempty"` - Status *v1.ConditionStatus `json:"status,omitempty"` - Severity *conditionsv1alpha1.ConditionSeverity `json:"severity,omitempty"` - LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty"` - Reason *string `json:"reason,omitempty"` - Message *string `json:"message,omitempty"` + // Type of condition in CamelCase or in foo.example.com/CamelCase. + // Many .condition.type values are consistent across resources like Available, but because arbitrary conditions + // can be useful (see .node.status.conditions), the ability to deconflict is important. + Type *conditionsv1alpha1.ConditionType `json:"type,omitempty"` + // Status of the condition, one of True, False, Unknown. + Status *v1.ConditionStatus `json:"status,omitempty"` + // Severity provides an explicit classification of Reason code, so the users or machines can immediately + // understand the current situation and act accordingly. + // The Severity field MUST be set only when Status=False. + Severity *conditionsv1alpha1.ConditionSeverity `json:"severity,omitempty"` + // Last time the condition transitioned from one status to another. + // This should be when the underlying condition changed. If that is not known, then using the time when + // the API field changed is acceptable. + LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty"` + // The reason for the condition's last transition in CamelCase. + // The specific API may choose whether or not this field is considered a guaranteed API. + // This field may not be empty. + Reason *string `json:"reason,omitempty"` + // A human readable message indicating details about the transition. + // This field may be empty. + Message *string `json:"message,omitempty"` } // ConditionApplyConfiguration constructs a declarative configuration of the Condition type for use with diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/core/v1alpha1/logicalcluster.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/core/v1alpha1/logicalcluster.go index 664ca1e814c..6e81e6d16ff 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/core/v1alpha1/logicalcluster.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/core/v1alpha1/logicalcluster.go @@ -27,6 +27,11 @@ import ( // LogicalClusterApplyConfiguration represents a declarative configuration of the LogicalCluster type for use // with apply. +// +// LogicalCluster describes the current logical cluster. It is used to authorize +// requests to the logical cluster and to track state. +// +// A LogicalCluster is always named "cluster". type LogicalClusterApplyConfiguration struct { v1.TypeMetaApplyConfiguration `json:",inline"` *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` @@ -43,6 +48,7 @@ func LogicalCluster(name string) *LogicalClusterApplyConfiguration { b.WithAPIVersion("core.kcp.io/v1alpha1") return b } + func (b LogicalClusterApplyConfiguration) IsApplyConfiguration() {} // WithKind sets the Kind field in the declarative configuration to the given value diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/core/v1alpha1/logicalclusterowner.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/core/v1alpha1/logicalclusterowner.go index f4aa8515a4b..1b340642bf2 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/core/v1alpha1/logicalclusterowner.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/core/v1alpha1/logicalclusterowner.go @@ -24,13 +24,21 @@ import ( // LogicalClusterOwnerApplyConfiguration represents a declarative configuration of the LogicalClusterOwner type for use // with apply. +// +// LogicalClusterOwner is a reference to a resource controlling the life-cycle of a LogicalCluster. type LogicalClusterOwnerApplyConfiguration struct { - APIVersion *string `json:"apiVersion,omitempty"` - Resource *string `json:"resource,omitempty"` - Name *string `json:"name,omitempty"` - Namespace *string `json:"namespace,omitempty"` - Cluster *string `json:"cluster,omitempty"` - UID *types.UID `json:"uid,omitempty"` + // apiVersion is the group and API version of the owner. + APIVersion *string `json:"apiVersion,omitempty"` + // resource is API resource to access the owner. + Resource *string `json:"resource,omitempty"` + // name is the name of the owner. + Name *string `json:"name,omitempty"` + // namespace is the optional namespace of the owner. + Namespace *string `json:"namespace,omitempty"` + // cluster is the logical cluster in which the owner is located. + Cluster *string `json:"cluster,omitempty"` + // UID is the UID of the owner. + UID *types.UID `json:"uid,omitempty"` } // LogicalClusterOwnerApplyConfiguration constructs a declarative configuration of the LogicalClusterOwner type for use with diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/core/v1alpha1/logicalclusterspec.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/core/v1alpha1/logicalclusterspec.go index da91479f33a..66186cb6745 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/core/v1alpha1/logicalclusterspec.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/core/v1alpha1/logicalclusterspec.go @@ -24,11 +24,25 @@ import ( // LogicalClusterSpecApplyConfiguration represents a declarative configuration of the LogicalClusterSpec type for use // with apply. +// +// LogicalClusterSpec is the specification of the LogicalCluster resource. type LogicalClusterSpecApplyConfiguration struct { - DirectlyDeletable *bool `json:"directlyDeletable,omitempty"` - Owner *LogicalClusterOwnerApplyConfiguration `json:"owner,omitempty"` - Initializers []corev1alpha1.LogicalClusterInitializer `json:"initializers,omitempty"` - Terminators []corev1alpha1.LogicalClusterTerminator `json:"terminators,omitempty"` + // DirectlyDeletable indicates that this logical cluster can be directly deleted by the user + // from within by deleting the LogicalCluster object. + DirectlyDeletable *bool `json:"directlyDeletable,omitempty"` + // owner is a reference to a resource controlling the life-cycle of this logical cluster. + // On deletion of the LogicalCluster, the finalizer core.kcp.io/logicalcluster is + // removed from the owner. + // + // When this object is deleted, but the owner is not deleted, the owner is deleted + // too. + Owner *LogicalClusterOwnerApplyConfiguration `json:"owner,omitempty"` + // initializers are set on creation by the system and copied to status when + // initialization starts. + Initializers []corev1alpha1.LogicalClusterInitializer `json:"initializers,omitempty"` + // Terminators are set on creation by the system and copied to status when + // termination starts. + Terminators []corev1alpha1.LogicalClusterTerminator `json:"terminators,omitempty"` } // LogicalClusterSpecApplyConfiguration constructs a declarative configuration of the LogicalClusterSpec type for use with diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/core/v1alpha1/logicalclusterstatus.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/core/v1alpha1/logicalclusterstatus.go index c4d6dfc88fa..ae3cd7fc403 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/core/v1alpha1/logicalclusterstatus.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/core/v1alpha1/logicalclusterstatus.go @@ -25,12 +25,25 @@ import ( // LogicalClusterStatusApplyConfiguration represents a declarative configuration of the LogicalClusterStatus type for use // with apply. +// +// LogicalClusterStatus communicates the observed state of the Workspace. type LogicalClusterStatusApplyConfiguration struct { - URL *string `json:"URL,omitempty"` - Phase *corev1alpha1.LogicalClusterPhaseType `json:"phase,omitempty"` - Conditions *conditionsv1alpha1.Conditions `json:"conditions,omitempty"` + // url is the address under which the Kubernetes-cluster-like endpoint + // can be found. This URL can be used to access the logical cluster with standard Kubernetes + // client libraries and command line tools. + URL *string `json:"URL,omitempty"` + // Phase of the logical cluster (Initializing, Ready). + Phase *corev1alpha1.LogicalClusterPhaseType `json:"phase,omitempty"` + // Current processing state of the LogicalCluster. + Conditions *conditionsv1alpha1.Conditions `json:"conditions,omitempty"` + // initializers are set on creation by the system and must be cleared + // by a controller before the logical cluster can be used. The LogicalCluster object + // will stay in the phase "Initializing" state until all initializers are cleared. Initializers []corev1alpha1.LogicalClusterInitializer `json:"initializers,omitempty"` - Terminators []corev1alpha1.LogicalClusterTerminator `json:"terminators,omitempty"` + // Terminators are set on creation by the system and must be cleared + // by a controller before the logical cluster can be deleted. The LogicalCluster object + // will stay in the phase "Deleting" until all terminator are cleared. + Terminators []corev1alpha1.LogicalClusterTerminator `json:"terminators,omitempty"` } // LogicalClusterStatusApplyConfiguration constructs a declarative configuration of the LogicalClusterStatus type for use with diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/core/v1alpha1/shard.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/core/v1alpha1/shard.go index 6d5f85fef30..72a7337d22b 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/core/v1alpha1/shard.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/core/v1alpha1/shard.go @@ -27,6 +27,8 @@ import ( // ShardApplyConfiguration represents a declarative configuration of the Shard type for use // with apply. +// +// Shard describes a kcp instance on which a number of logical clusters will live type ShardApplyConfiguration struct { v1.TypeMetaApplyConfiguration `json:",inline"` *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` @@ -43,6 +45,7 @@ func Shard(name string) *ShardApplyConfiguration { b.WithAPIVersion("core.kcp.io/v1alpha1") return b } + func (b ShardApplyConfiguration) IsApplyConfiguration() {} // WithKind sets the Kind field in the declarative configuration to the given value diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/core/v1alpha1/shardspec.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/core/v1alpha1/shardspec.go index 17907008271..28f1b38e799 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/core/v1alpha1/shardspec.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/core/v1alpha1/shardspec.go @@ -20,9 +20,31 @@ package v1alpha1 // ShardSpecApplyConfiguration represents a declarative configuration of the ShardSpec type for use // with apply. +// +// ShardSpec holds the desired state of the Shard. type ShardSpecApplyConfiguration struct { - BaseURL *string `json:"baseURL,omitempty"` - ExternalURL *string `json:"externalURL,omitempty"` + // baseURL is the address of the kcp shard for direct connections, e.g. by some + // front-proxy doing the fan-out to the shards. + BaseURL *string `json:"baseURL,omitempty"` + // externalURL is the externally visible address presented to users in Workspace URLs. + // Changing this will break all existing logical clusters on that shard, i.e. existing + // kubeconfigs of clients will be invalid. Hence, when changing this value, the old + // URL used by clients must keep working. + // + // The external address will not be unique if a front-proxy does a fan-out to + // shards, but all logical cluster clients will talk to the front-proxy. In that case, + // put the address of the front-proxy here. + // + // Note that movement of shards is only possible (in the future) between shards + // that share a common external URL. + // + // This will be defaulted to the value of the baseURL. + ExternalURL *string `json:"externalURL,omitempty"` + // virtualWorkspaceURL is the address of the virtual workspace apiserver associated with this shard. + // It can be a direct address, an address of a front-proxy or even an address of an LB. + // As of today this address is assigned to APIExports. + // + // This will be defaulted to the value of the baseURL. VirtualWorkspaceURL *string `json:"virtualWorkspaceURL,omitempty"` } diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/core/v1alpha1/shardstatus.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/core/v1alpha1/shardstatus.go index e67b21a28ff..745b2ef7dc0 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/core/v1alpha1/shardstatus.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/core/v1alpha1/shardstatus.go @@ -26,8 +26,12 @@ import ( // ShardStatusApplyConfiguration represents a declarative configuration of the ShardStatus type for use // with apply. +// +// ShardStatus communicates the observed state of the Shard. type ShardStatusApplyConfiguration struct { - Capacity *v1.ResourceList `json:"capacity,omitempty"` + // Set of integer resources that logical clusters can be scheduled into + Capacity *v1.ResourceList `json:"capacity,omitempty"` + // Current processing state of the Shard. Conditions *conditionsv1alpha1.Conditions `json:"conditions,omitempty"` } diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/meta/v1/condition.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/meta/v1/condition.go index 9fd6ea18418..ee7a8c81ce9 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/meta/v1/condition.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/meta/v1/condition.go @@ -24,13 +24,47 @@ import ( // ConditionApplyConfiguration represents a declarative configuration of the Condition type for use // with apply. +// +// Condition contains details for one aspect of the current state of this API Resource. +// --- +// This struct is intended for direct use as an array at the field path .status.conditions. For example, +// +// type FooStatus struct{ +// // Represents the observations of a foo's current state. +// // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" +// // +patchMergeKey=type +// // +patchStrategy=merge +// // +listType=map +// // +listMapKey=type +// Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` +// +// // other fields +// } type ConditionApplyConfiguration struct { - Type *string `json:"type,omitempty"` - Status *metav1.ConditionStatus `json:"status,omitempty"` - ObservedGeneration *int64 `json:"observedGeneration,omitempty"` - LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty"` - Reason *string `json:"reason,omitempty"` - Message *string `json:"message,omitempty"` + // type of condition in CamelCase or in foo.example.com/CamelCase. + // --- + // Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be + // useful (see .node.status.conditions), the ability to deconflict is important. + // The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + Type *string `json:"type,omitempty"` + // status of the condition, one of True, False, Unknown. + Status *metav1.ConditionStatus `json:"status,omitempty"` + // observedGeneration represents the .metadata.generation that the condition was set based upon. + // For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date + // with respect to the current state of the instance. + ObservedGeneration *int64 `json:"observedGeneration,omitempty"` + // lastTransitionTime is the last time the condition transitioned from one status to another. + // This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty"` + // reason contains a programmatic identifier indicating the reason for the condition's last transition. + // Producers of specific condition types may define expected values and meanings for this field, + // and whether the values are considered a guaranteed API. + // The value should be a CamelCase string. + // This field may not be empty. + Reason *string `json:"reason,omitempty"` + // message is a human readable message indicating details about the transition. + // This may be an empty string. + Message *string `json:"message,omitempty"` } // ConditionApplyConfiguration constructs a declarative configuration of the Condition type for use with diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/meta/v1/deleteoptions.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/meta/v1/deleteoptions.go index e113de26a05..97370f00c8f 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/meta/v1/deleteoptions.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/meta/v1/deleteoptions.go @@ -24,14 +24,51 @@ import ( // DeleteOptionsApplyConfiguration represents a declarative configuration of the DeleteOptions type for use // with apply. +// +// DeleteOptions may be provided when deleting an API object. type DeleteOptionsApplyConfiguration struct { - TypeMetaApplyConfiguration `json:",inline"` - GracePeriodSeconds *int64 `json:"gracePeriodSeconds,omitempty"` - Preconditions *metav1.Preconditions `json:"preconditions,omitempty"` - OrphanDependents *bool `json:"orphanDependents,omitempty"` - PropagationPolicy *metav1.DeletionPropagation `json:"propagationPolicy,omitempty"` - DryRun []string `json:"dryRun,omitempty"` - IgnoreStoreReadErrorWithClusterBreakingPotential *bool `json:"ignoreStoreReadErrorWithClusterBreakingPotential,omitempty"` + TypeMetaApplyConfiguration `json:",inline"` + // The duration in seconds before the object should be deleted. Value must be non-negative integer. + // The value zero indicates delete immediately. If this value is nil, the default grace period for the + // specified type will be used. + // Defaults to a per object value if not specified. zero means delete immediately. + GracePeriodSeconds *int64 `json:"gracePeriodSeconds,omitempty"` + // Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be + // returned. + Preconditions *metav1.Preconditions `json:"preconditions,omitempty"` + // Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. + // Should the dependent objects be orphaned. If true/false, the "orphan" + // finalizer will be added to/removed from the object's finalizers list. + // Either this field or PropagationPolicy may be set, but not both. + OrphanDependents *bool `json:"orphanDependents,omitempty"` + // Whether and how garbage collection will be performed. + // Either this field or OrphanDependents may be set, but not both. + // The default policy is decided by the existing finalizer set in the + // metadata.finalizers and the resource-specific default policy. + // Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - + // allow the garbage collector to delete the dependents in the background; + // 'Foreground' - a cascading policy that deletes all dependents in the + // foreground. + PropagationPolicy *metav1.DeletionPropagation `json:"propagationPolicy,omitempty"` + // When present, indicates that modifications should not be + // persisted. An invalid or unrecognized dryRun directive will + // result in an error response and no further processing of the + // request. Valid values are: + // - All: all dry run stages will be processed + DryRun []string `json:"dryRun,omitempty"` + // if set to true, it will trigger an unsafe deletion of the resource in + // case the normal deletion flow fails with a corrupt object error. + // A resource is considered corrupt if it can not be retrieved from + // the underlying storage successfully because of a) its data can + // not be transformed e.g. decryption failure, or b) it fails + // to decode into an object. + // NOTE: unsafe deletion ignores finalizer constraints, skips + // precondition checks, and removes the object from the storage. + // WARNING: This may potentially break the cluster if the workload + // associated with the resource being unsafe-deleted relies on normal + // deletion flow. Use only if you REALLY know what you are doing. + // The default value is false, and the user must opt in to enable it + IgnoreStoreReadErrorWithClusterBreakingPotential *bool `json:"ignoreStoreReadErrorWithClusterBreakingPotential,omitempty"` } // DeleteOptionsApplyConfiguration constructs a declarative configuration of the DeleteOptions type for use with @@ -42,6 +79,7 @@ func DeleteOptions() *DeleteOptionsApplyConfiguration { b.WithAPIVersion("meta.k8s.io/v1") return b } + func (b DeleteOptionsApplyConfiguration) IsApplyConfiguration() {} // WithKind sets the Kind field in the declarative configuration to the given value diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/meta/v1/labelselector.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/meta/v1/labelselector.go index 71a371062d5..c94cdbe5f84 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/meta/v1/labelselector.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/meta/v1/labelselector.go @@ -20,8 +20,21 @@ package v1 // LabelSelectorApplyConfiguration represents a declarative configuration of the LabelSelector type for use // with apply. +// +// Note: +// There are two different styles of label selectors used in versioned types: +// an older style which is represented as just a string in versioned types, and a +// newer style that is structured. LabelSelector is an internal representation for the +// latter style. +// A label selector is a label query over a set of resources. The result of matchLabels and +// matchExpressions are ANDed. An empty label selector matches all objects. A null +// label selector matches no objects. type LabelSelectorApplyConfiguration struct { - MatchLabels map[string]string `json:"matchLabels,omitempty"` + // matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + // map is equivalent to an element of matchExpressions, whose key field is "key", the + // operator is "In", and the values array contains only "value". The requirements are ANDed. + MatchLabels map[string]string `json:"matchLabels,omitempty"` + // matchExpressions is a list of label selector requirements. The requirements are ANDed. MatchExpressions []LabelSelectorRequirementApplyConfiguration `json:"matchExpressions,omitempty"` } diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/meta/v1/labelselectorrequirement.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/meta/v1/labelselectorrequirement.go index 5c80e2a800c..88234e77830 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/meta/v1/labelselectorrequirement.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/meta/v1/labelselectorrequirement.go @@ -24,10 +24,20 @@ import ( // LabelSelectorRequirementApplyConfiguration represents a declarative configuration of the LabelSelectorRequirement type for use // with apply. +// +// A label selector requirement is a selector that contains values, a key, and an operator that +// relates the key and values. type LabelSelectorRequirementApplyConfiguration struct { - Key *string `json:"key,omitempty"` + // key is the label key that the selector applies to. + Key *string `json:"key,omitempty"` + // operator represents a key's relationship to a set of values. + // Valid operators are In, NotIn, Exists and DoesNotExist. Operator *metav1.LabelSelectorOperator `json:"operator,omitempty"` - Values []string `json:"values,omitempty"` + // values is an array of string values. If the operator is In or NotIn, + // the values array must be non-empty. If the operator is Exists or DoesNotExist, + // the values array must be empty. This array is replaced during a strategic + // merge patch. + Values []string `json:"values,omitempty"` } // LabelSelectorRequirementApplyConfiguration constructs a declarative configuration of the LabelSelectorRequirement type for use with diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/meta/v1/managedfieldsentry.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/meta/v1/managedfieldsentry.go index 26e6dbdb472..a0aae6623d6 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/meta/v1/managedfieldsentry.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/meta/v1/managedfieldsentry.go @@ -24,14 +24,39 @@ import ( // ManagedFieldsEntryApplyConfiguration represents a declarative configuration of the ManagedFieldsEntry type for use // with apply. +// +// ManagedFieldsEntry is a workflow-id, a FieldSet and the group version of the resource +// that the fieldset applies to. type ManagedFieldsEntryApplyConfiguration struct { - Manager *string `json:"manager,omitempty"` - Operation *metav1.ManagedFieldsOperationType `json:"operation,omitempty"` - APIVersion *string `json:"apiVersion,omitempty"` - Time *metav1.Time `json:"time,omitempty"` - FieldsType *string `json:"fieldsType,omitempty"` - FieldsV1 *metav1.FieldsV1 `json:"fieldsV1,omitempty"` - Subresource *string `json:"subresource,omitempty"` + // Manager is an identifier of the workflow managing these fields. + Manager *string `json:"manager,omitempty"` + // Operation is the type of operation which lead to this ManagedFieldsEntry being created. + // The only valid values for this field are 'Apply' and 'Update'. + Operation *metav1.ManagedFieldsOperationType `json:"operation,omitempty"` + // APIVersion defines the version of this resource that this field set + // applies to. The format is "group/version" just like the top-level + // APIVersion field. It is necessary to track the version of a field + // set because it cannot be automatically converted. + APIVersion *string `json:"apiVersion,omitempty"` + // Time is the timestamp of when the ManagedFields entry was added. The + // timestamp will also be updated if a field is added, the manager + // changes any of the owned fields value or removes a field. The + // timestamp does not update when a field is removed from the entry + // because another manager took it over. + Time *metav1.Time `json:"time,omitempty"` + // FieldsType is the discriminator for the different fields format and version. + // There is currently only one possible value: "FieldsV1" + FieldsType *string `json:"fieldsType,omitempty"` + // FieldsV1 holds the first JSON version format as described in the "FieldsV1" type. + FieldsV1 *metav1.FieldsV1 `json:"fieldsV1,omitempty"` + // Subresource is the name of the subresource used to update that object, or + // empty string if the object was updated through the main resource. The + // value of this field is used to distinguish between managers, even if they + // share the same name. For example, a status update will be distinct from a + // regular update using the same manager name. + // Note that the APIVersion field is not related to the Subresource field and + // it always corresponds to the version of the main resource. + Subresource *string `json:"subresource,omitempty"` } // ManagedFieldsEntryApplyConfiguration constructs a declarative configuration of the ManagedFieldsEntry type for use with diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/meta/v1/objectmeta.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/meta/v1/objectmeta.go index 3d89abfc54e..98d86b70051 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/meta/v1/objectmeta.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/meta/v1/objectmeta.go @@ -25,20 +25,123 @@ import ( // ObjectMetaApplyConfiguration represents a declarative configuration of the ObjectMeta type for use // with apply. +// +// ObjectMeta is metadata that all persisted resources must have, which includes all objects +// users must create. type ObjectMetaApplyConfiguration struct { - Name *string `json:"name,omitempty"` - GenerateName *string `json:"generateName,omitempty"` - Namespace *string `json:"namespace,omitempty"` - UID *types.UID `json:"uid,omitempty"` - ResourceVersion *string `json:"resourceVersion,omitempty"` - Generation *int64 `json:"generation,omitempty"` - CreationTimestamp *metav1.Time `json:"creationTimestamp,omitempty"` - DeletionTimestamp *metav1.Time `json:"deletionTimestamp,omitempty"` - DeletionGracePeriodSeconds *int64 `json:"deletionGracePeriodSeconds,omitempty"` - Labels map[string]string `json:"labels,omitempty"` - Annotations map[string]string `json:"annotations,omitempty"` - OwnerReferences []OwnerReferenceApplyConfiguration `json:"ownerReferences,omitempty"` - Finalizers []string `json:"finalizers,omitempty"` + // Name must be unique within a namespace. Is required when creating resources, although + // some resources may allow a client to request the generation of an appropriate name + // automatically. Name is primarily intended for creation idempotence and configuration + // definition. + // Cannot be updated. + // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names + Name *string `json:"name,omitempty"` + // GenerateName is an optional prefix, used by the server, to generate a unique + // name ONLY IF the Name field has not been provided. + // If this field is used, the name returned to the client will be different + // than the name passed. This value will also be combined with a unique suffix. + // The provided value has the same validation rules as the Name field, + // and may be truncated by the length of the suffix required to make the value + // unique on the server. + // + // If this field is specified and the generated name exists, the server will return a 409. + // + // Applied only if Name is not specified. + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency + GenerateName *string `json:"generateName,omitempty"` + // Namespace defines the space within which each name must be unique. An empty namespace is + // equivalent to the "default" namespace, but "default" is the canonical representation. + // Not all objects are required to be scoped to a namespace - the value of this field for + // those objects will be empty. + // + // Must be a DNS_LABEL. + // Cannot be updated. + // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces + Namespace *string `json:"namespace,omitempty"` + // UID is the unique in time and space value for this object. It is typically generated by + // the server on successful creation of a resource and is not allowed to change on PUT + // operations. + // + // Populated by the system. + // Read-only. + // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids + UID *types.UID `json:"uid,omitempty"` + // An opaque value that represents the internal version of this object that can + // be used by clients to determine when objects have changed. May be used for optimistic + // concurrency, change detection, and the watch operation on a resource or set of resources. + // Clients must treat these values as opaque and passed unmodified back to the server. + // They may only be valid for a particular resource or set of resources. + // + // Populated by the system. + // Read-only. + // Value must be treated as opaque by clients and . + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + ResourceVersion *string `json:"resourceVersion,omitempty"` + // A sequence number representing a specific generation of the desired state. + // Populated by the system. Read-only. + Generation *int64 `json:"generation,omitempty"` + // CreationTimestamp is a timestamp representing the server time when this object was + // created. It is not guaranteed to be set in happens-before order across separate operations. + // Clients may not set this value. It is represented in RFC3339 form and is in UTC. + // + // Populated by the system. + // Read-only. + // Null for lists. + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + CreationTimestamp *metav1.Time `json:"creationTimestamp,omitempty"` + // DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This + // field is set by the server when a graceful deletion is requested by the user, and is not + // directly settable by a client. The resource is expected to be deleted (no longer visible + // from resource lists, and not reachable by name) after the time in this field, once the + // finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. + // Once the deletionTimestamp is set, this value may not be unset or be set further into the + // future, although it may be shortened or the resource may be deleted prior to this time. + // For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react + // by sending a graceful termination signal to the containers in the pod. After that 30 seconds, + // the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, + // remove the pod from the API. In the presence of network partitions, this object may still + // exist after this timestamp, until an administrator or automated process can determine the + // resource is fully terminated. + // If not set, graceful deletion of the object has not been requested. + // + // Populated by the system when a graceful deletion is requested. + // Read-only. + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + DeletionTimestamp *metav1.Time `json:"deletionTimestamp,omitempty"` + // Number of seconds allowed for this object to gracefully terminate before + // it will be removed from the system. Only set when deletionTimestamp is also set. + // May only be shortened. + // Read-only. + DeletionGracePeriodSeconds *int64 `json:"deletionGracePeriodSeconds,omitempty"` + // Map of string keys and values that can be used to organize and categorize + // (scope and select) objects. May match selectors of replication controllers + // and services. + // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels + Labels map[string]string `json:"labels,omitempty"` + // Annotations is an unstructured key value map stored with a resource that may be + // set by external tools to store and retrieve arbitrary metadata. They are not + // queryable and should be preserved when modifying objects. + // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + Annotations map[string]string `json:"annotations,omitempty"` + // List of objects depended by this object. If ALL objects in the list have + // been deleted, this object will be garbage collected. If this object is managed by a controller, + // then an entry in this list will point to this controller, with the controller field set to true. + // There cannot be more than one managing controller. + OwnerReferences []OwnerReferenceApplyConfiguration `json:"ownerReferences,omitempty"` + // Must be empty before the object is deleted from the registry. Each entry + // is an identifier for the responsible component that will remove the entry + // from the list. If the deletionTimestamp of the object is non-nil, entries + // in this list can only be removed. + // Finalizers may be processed and removed in any order. Order is NOT enforced + // because it introduces significant risk of stuck finalizers. + // finalizers is a shared field, any actor with permission can reorder it. + // If the finalizer list is processed in order, then this can lead to a situation + // in which the component responsible for the first finalizer in the list is + // waiting for a signal (field value, external system, or other) produced by a + // component responsible for a finalizer later in the list, resulting in a deadlock. + // Without enforced ordering finalizers are free to order amongst themselves and + // are not vulnerable to ordering changes in the list. + Finalizers []string `json:"finalizers,omitempty"` } // ObjectMetaApplyConfiguration constructs a declarative configuration of the ObjectMeta type for use with diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/meta/v1/ownerreference.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/meta/v1/ownerreference.go index f0df3df2603..4179cf2177d 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/meta/v1/ownerreference.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/meta/v1/ownerreference.go @@ -24,13 +24,33 @@ import ( // OwnerReferenceApplyConfiguration represents a declarative configuration of the OwnerReference type for use // with apply. +// +// OwnerReference contains enough information to let you identify an owning +// object. An owning object must be in the same namespace as the dependent, or +// be cluster-scoped, so there is no namespace field. type OwnerReferenceApplyConfiguration struct { - APIVersion *string `json:"apiVersion,omitempty"` - Kind *string `json:"kind,omitempty"` - Name *string `json:"name,omitempty"` - UID *types.UID `json:"uid,omitempty"` - Controller *bool `json:"controller,omitempty"` - BlockOwnerDeletion *bool `json:"blockOwnerDeletion,omitempty"` + // API version of the referent. + APIVersion *string `json:"apiVersion,omitempty"` + // Kind of the referent. + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind *string `json:"kind,omitempty"` + // Name of the referent. + // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names + Name *string `json:"name,omitempty"` + // UID of the referent. + // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids + UID *types.UID `json:"uid,omitempty"` + // If true, this reference points to the managing controller. + Controller *bool `json:"controller,omitempty"` + // If true, AND if the owner has the "foregroundDeletion" finalizer, then + // the owner cannot be deleted from the key-value store until this + // reference is removed. + // See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion + // for how the garbage collector interacts with this field and enforces the foreground deletion. + // Defaults to false. + // To set this field, a user needs "delete" permission of the owner, + // otherwise 422 (Unprocessable Entity) will be returned. + BlockOwnerDeletion *bool `json:"blockOwnerDeletion,omitempty"` } // OwnerReferenceApplyConfiguration constructs a declarative configuration of the OwnerReference type for use with diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/meta/v1/typemeta.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/meta/v1/typemeta.go index 3fe1d138bf6..dab5736c33d 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/meta/v1/typemeta.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/meta/v1/typemeta.go @@ -20,8 +20,21 @@ package v1 // TypeMetaApplyConfiguration represents a declarative configuration of the TypeMeta type for use // with apply. +// +// TypeMeta describes an individual object in an API response or request +// with strings representing the type of the object and its API schema version. +// Structures that are versioned or persisted should inline TypeMeta. type TypeMetaApplyConfiguration struct { - Kind *string `json:"kind,omitempty"` + // Kind is a string value representing the REST resource this object represents. + // Servers may infer this from the endpoint the client submits requests to. + // Cannot be updated. + // In CamelCase. + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind *string `json:"kind,omitempty"` + // APIVersion defines the versioned schema of this representation of an object. + // Servers should convert recognized schemas to the latest internal value, and + // may reject unrecognized values. + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources APIVersion *string `json:"apiVersion,omitempty"` } diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/apiexportreference.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/apiexportreference.go index c29a798f4f0..123cf751423 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/apiexportreference.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/apiexportreference.go @@ -20,8 +20,13 @@ package v1alpha1 // APIExportReferenceApplyConfiguration represents a declarative configuration of the APIExportReference type for use // with apply. +// +// APIExportReference provides the fields necessary to resolve an APIExport. type APIExportReferenceApplyConfiguration struct { - Path *string `json:"path,omitempty"` + // path is the fully-qualified path to the workspace containing the APIExport. If it is + // empty, the current workspace is assumed. + Path *string `json:"path,omitempty"` + // export is the name of the APIExport. Export *string `json:"export,omitempty"` } diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/authenticationconfigurationreference.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/authenticationconfigurationreference.go index 20344d977d2..6a16b923be1 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/authenticationconfigurationreference.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/authenticationconfigurationreference.go @@ -20,7 +20,10 @@ package v1alpha1 // AuthenticationConfigurationReferenceApplyConfiguration represents a declarative configuration of the AuthenticationConfigurationReference type for use // with apply. +// +// AuthenticationConfigurationReference provides the fields necessary to resolve a WorkspaceAuthenticationConfiguration. type AuthenticationConfigurationReferenceApplyConfiguration struct { + // name is the name of the WorkspaceAuthenticationConfiguration. Name *string `json:"name,omitempty"` } diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/claimmappings.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/claimmappings.go index 619e152a1ee..eeed08cb600 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/claimmappings.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/claimmappings.go @@ -20,6 +20,8 @@ package v1alpha1 // ClaimMappingsApplyConfiguration represents a declarative configuration of the ClaimMappings type for use // with apply. +// +// ClaimMappings provides the configuration for claim mapping. type ClaimMappingsApplyConfiguration struct { Username *PrefixedClaimOrExpressionApplyConfiguration `json:"username,omitempty"` Groups *PrefixedClaimOrExpressionApplyConfiguration `json:"groups,omitempty"` diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/claimorexpression.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/claimorexpression.go index 1f5118f1aa8..d5452856f23 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/claimorexpression.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/claimorexpression.go @@ -20,6 +20,8 @@ package v1alpha1 // ClaimOrExpressionApplyConfiguration represents a declarative configuration of the ClaimOrExpression type for use // with apply. +// +// ClaimOrExpression provides the configuration for a single claim or expression. type ClaimOrExpressionApplyConfiguration struct { Claim *string `json:"claim,omitempty"` Expression *string `json:"expression,omitempty"` diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/claimvalidationrule.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/claimvalidationrule.go index c48f75d9b34..c49209abf76 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/claimvalidationrule.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/claimvalidationrule.go @@ -20,6 +20,8 @@ package v1alpha1 // ClaimValidationRuleApplyConfiguration represents a declarative configuration of the ClaimValidationRule type for use // with apply. +// +// ClaimValidationRule provides the configuration for a single claim validation rule. type ClaimValidationRuleApplyConfiguration struct { Claim *string `json:"claim,omitempty"` RequiredValue *string `json:"requiredValue,omitempty"` diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/extramapping.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/extramapping.go index 7ef19072813..1e0e1c6a3c3 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/extramapping.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/extramapping.go @@ -20,6 +20,8 @@ package v1alpha1 // ExtraMappingApplyConfiguration represents a declarative configuration of the ExtraMapping type for use // with apply. +// +// ExtraMapping provides the configuration for a single extra mapping. type ExtraMappingApplyConfiguration struct { Key *string `json:"key,omitempty"` ValueExpression *string `json:"valueExpression,omitempty"` diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/issuer.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/issuer.go index e0e78ff6d1a..45aaf437b2f 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/issuer.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/issuer.go @@ -24,8 +24,41 @@ import ( // IssuerApplyConfiguration represents a declarative configuration of the Issuer type for use // with apply. +// +// Issuer provides the configuration for an external provider's specific settings. type IssuerApplyConfiguration struct { - URL *string `json:"url,omitempty"` + // url points to the issuer URL in a format https://url or https://url/path. + // This must match the "iss" claim in the presented JWT, and the issuer returned from discovery. + // Same value as the --oidc-issuer-url flag. + // Discovery information is fetched from "{url}/.well-known/openid-configuration" unless overridden by discoveryURL. + // Required to be unique across all JWT authenticators. + // Note that egress selection configuration is not used for this network connection. + URL *string `json:"url,omitempty"` + // discoveryURL, if specified, overrides the URL used to fetch discovery + // information instead of using "{url}/.well-known/openid-configuration". + // The exact value specified is used, so "/.well-known/openid-configuration" + // must be included in discoveryURL if needed. + // + // The "issuer" field in the fetched discovery information must match the "issuer.url" field + // in the AuthenticationConfiguration and will be used to validate the "iss" claim in the presented JWT. + // This is for scenarios where the well-known and jwks endpoints are hosted at a different + // location than the issuer (such as locally in the cluster). + // + // Example: + // A discovery url that is exposed using kubernetes service 'oidc' in namespace 'oidc-namespace' + // and discovery information is available at '/.well-known/openid-configuration'. + // discoveryURL: "https://oidc.oidc-namespace/.well-known/openid-configuration" + // certificateAuthority is used to verify the TLS connection and the hostname on the leaf certificate + // must be set to 'oidc.oidc-namespace'. + // + // curl https://oidc.oidc-namespace/.well-known/openid-configuration (.discoveryURL field) + // { + // issuer: "https://oidc.example.com" (.url field) + // } + // + // discoveryURL must be different from url. + // Required to be unique across all JWT authenticators. + // Note that egress selection configuration is not used for this network connection. DiscoveryURL *string `json:"discoveryURL,omitempty"` CertificateAuthority *string `json:"certificateAuthority,omitempty"` Audiences []string `json:"audiences,omitempty"` diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/mount.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/mount.go index d7d26de2c6c..f333a483679 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/mount.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/mount.go @@ -20,7 +20,11 @@ package v1alpha1 // MountApplyConfiguration represents a declarative configuration of the Mount type for use // with apply. +// +// Mount is a reference to an object implementing a mounting feature. It is used to orchestrate +// where the traffic, intended for the workspace, is sent. type MountApplyConfiguration struct { + // Reference is an ObjectReference to the object that is mounted. Reference *ObjectReferenceApplyConfiguration `json:"ref,omitempty"` } diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/objectreference.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/objectreference.go index 7e67f618d2d..c8b82894b20 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/objectreference.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/objectreference.go @@ -21,10 +21,14 @@ package v1alpha1 // ObjectReferenceApplyConfiguration represents a declarative configuration of the ObjectReference type for use // with apply. type ObjectReferenceApplyConfiguration struct { + // APIVersion is the API group and version of the object. APIVersion *string `json:"apiVersion,omitempty"` - Kind *string `json:"kind,omitempty"` - Name *string `json:"name,omitempty"` - Namespace *string `json:"namespace,omitempty"` + // Kind is the kind of the object. + Kind *string `json:"kind,omitempty"` + // Name is the name of the object. + Name *string `json:"name,omitempty"` + // Namespace is the namespace of the object. + Namespace *string `json:"namespace,omitempty"` } // ObjectReferenceApplyConfiguration constructs a declarative configuration of the ObjectReference type for use with diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/prefixedclaimorexpression.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/prefixedclaimorexpression.go index 337b710c209..5ae45d5d58f 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/prefixedclaimorexpression.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/prefixedclaimorexpression.go @@ -20,6 +20,8 @@ package v1alpha1 // PrefixedClaimOrExpressionApplyConfiguration represents a declarative configuration of the PrefixedClaimOrExpression type for use // with apply. +// +// PrefixedClaimOrExpression provides the configuration for a single prefixed claim or expression. type PrefixedClaimOrExpressionApplyConfiguration struct { Claim *string `json:"claim,omitempty"` Prefix *string `json:"prefix,omitempty"` diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/uservalidationrule.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/uservalidationrule.go index 5ab4b4a6b5f..de13660a210 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/uservalidationrule.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/uservalidationrule.go @@ -20,6 +20,8 @@ package v1alpha1 // UserValidationRuleApplyConfiguration represents a declarative configuration of the UserValidationRule type for use // with apply. +// +// UserValidationRule provides the configuration for a single user validation rule. type UserValidationRuleApplyConfiguration struct { Expression *string `json:"expression,omitempty"` Message *string `json:"message,omitempty"` diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/virtualworkspace.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/virtualworkspace.go index 72193e45e7b..2f3957a0260 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/virtualworkspace.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/virtualworkspace.go @@ -25,7 +25,9 @@ import ( // VirtualWorkspaceApplyConfiguration represents a declarative configuration of the VirtualWorkspace type for use // with apply. type VirtualWorkspaceApplyConfiguration struct { - URL *string `json:"url,omitempty"` + // url is a WorkspaceType initialization virtual workspace URL. + URL *string `json:"url,omitempty"` + // type indicates the type of virtual workspace this URL represents. Type *tenancyv1alpha1.VirtualWorkspaceType `json:"type,omitempty"` } diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/workspace.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/workspace.go index c4ceacb340a..22a518e8199 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/workspace.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/workspace.go @@ -27,6 +27,18 @@ import ( // WorkspaceApplyConfiguration represents a declarative configuration of the Workspace type for use // with apply. +// +// Workspace defines a generic Kubernetes-cluster-like endpoint, with standard Kubernetes +// discovery APIs, OpenAPI and resource API endpoints. +// +// A workspace can be backed by different concrete types of workspace implementation, +// depending on access pattern. All workspace implementations share the characteristic +// that the URL that serves a given workspace can be used with standard Kubernetes +// API machinery and client libraries and command line tools. +// +// Workspaces supports mounting, by specifying an Mount object in the spec. +// If a Mount is specified, the workspace will be mounted to the specified mount object and +// LogicalCluster will not be created. type WorkspaceApplyConfiguration struct { v1.TypeMetaApplyConfiguration `json:",inline"` *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` @@ -43,6 +55,7 @@ func Workspace(name string) *WorkspaceApplyConfiguration { b.WithAPIVersion("tenancy.kcp.io/v1alpha1") return b } + func (b WorkspaceApplyConfiguration) IsApplyConfiguration() {} // WithKind sets the Kind field in the declarative configuration to the given value diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/workspaceauthenticationconfiguration.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/workspaceauthenticationconfiguration.go index 80702cf01d3..d4502e8c246 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/workspaceauthenticationconfiguration.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/workspaceauthenticationconfiguration.go @@ -27,6 +27,9 @@ import ( // WorkspaceAuthenticationConfigurationApplyConfiguration represents a declarative configuration of the WorkspaceAuthenticationConfiguration type for use // with apply. +// +// WorkspaceAuthenticationConfiguration specifies additional authentication options +// for workspaces. type WorkspaceAuthenticationConfigurationApplyConfiguration struct { v1.TypeMetaApplyConfiguration `json:",inline"` *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` @@ -42,6 +45,7 @@ func WorkspaceAuthenticationConfiguration(name string) *WorkspaceAuthenticationC b.WithAPIVersion("tenancy.kcp.io/v1alpha1") return b } + func (b WorkspaceAuthenticationConfigurationApplyConfiguration) IsApplyConfiguration() {} // WithKind sets the Kind field in the declarative configuration to the given value diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/workspacelocation.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/workspacelocation.go index 824e3591e49..88fbb134863 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/workspacelocation.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/workspacelocation.go @@ -25,6 +25,7 @@ import ( // WorkspaceLocationApplyConfiguration represents a declarative configuration of the WorkspaceLocation type for use // with apply. type WorkspaceLocationApplyConfiguration struct { + // selector is a label selector that filters workspace scheduling targets. Selector *v1.LabelSelectorApplyConfiguration `json:"selector,omitempty"` } diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/workspacespec.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/workspacespec.go index 80120499152..f6d6f62f47c 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/workspacespec.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/workspacespec.go @@ -20,12 +20,38 @@ package v1alpha1 // WorkspaceSpecApplyConfiguration represents a declarative configuration of the WorkspaceSpec type for use // with apply. +// +// WorkspaceSpec holds the desired state of the Workspace. type WorkspaceSpecApplyConfiguration struct { - Type *WorkspaceTypeReferenceApplyConfiguration `json:"type,omitempty"` - Location *WorkspaceLocationApplyConfiguration `json:"location,omitempty"` - Cluster *string `json:"cluster,omitempty"` - URL *string `json:"URL,omitempty"` - Mount *MountApplyConfiguration `json:"mount,omitempty"` + // type defines properties of the workspace both on creation (e.g. initial + // resources and initially installed APIs) and during runtime (e.g. permissions). + // If no type is provided, the default type for the workspace in which this workspace + // is nesting will be used. + // + // The type is a reference to a WorkspaceType in the listed workspace, but + // lower-cased. The WorkspaceType existence is validated at admission during + // creation. The type is immutable after creation. The use of a type is gated via + // the RBAC workspacetypes/use resource permission. + Type *WorkspaceTypeReferenceApplyConfiguration `json:"type,omitempty"` + // location constraints where this workspace can be scheduled to. + // + // If the no location is specified, an arbitrary location is chosen. + Location *WorkspaceLocationApplyConfiguration `json:"location,omitempty"` + // cluster is the name of the logical cluster this workspace is stored under. + // + // Set by the system. + Cluster *string `json:"cluster,omitempty"` + // URL is the address under which the Kubernetes-cluster-like endpoint + // can be found. This URL can be used to access the workspace with standard Kubernetes + // client libraries and command line tools. + // + // Set by the system. + URL *string `json:"URL,omitempty"` + // Mount is a reference to an object implementing a mounting feature. It is used to orchestrate + // where the traffic, intended for the workspace, is sent. + // If specified, logicalcluster will not be created and the workspace will be mounted + // using reference mount object. + Mount *MountApplyConfiguration `json:"mount,omitempty"` } // WorkspaceSpecApplyConfiguration constructs a declarative configuration of the WorkspaceSpec type for use with diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/workspacestatus.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/workspacestatus.go index ee42abdef43..219029df669 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/workspacestatus.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/workspacestatus.go @@ -25,11 +25,19 @@ import ( // WorkspaceStatusApplyConfiguration represents a declarative configuration of the WorkspaceStatus type for use // with apply. +// +// WorkspaceStatus communicates the observed state of the Workspace. type WorkspaceStatusApplyConfiguration struct { - Phase *corev1alpha1.LogicalClusterPhaseType `json:"phase,omitempty"` - Conditions *conditionsv1alpha1.Conditions `json:"conditions,omitempty"` + // Phase of the workspace (Scheduling, Initializing, Ready). + Phase *corev1alpha1.LogicalClusterPhaseType `json:"phase,omitempty"` + // Current processing state of the Workspace. + Conditions *conditionsv1alpha1.Conditions `json:"conditions,omitempty"` + // initializers must be cleared by a controller before the workspace is ready + // and can be used. Initializers []corev1alpha1.LogicalClusterInitializer `json:"initializers,omitempty"` - Terminators []corev1alpha1.LogicalClusterTerminator `json:"terminators,omitempty"` + // terminators must be cleared by a controller before the workspace is being + // deleted. + Terminators []corev1alpha1.LogicalClusterTerminator `json:"terminators,omitempty"` } // WorkspaceStatusApplyConfiguration constructs a declarative configuration of the WorkspaceStatus type for use with diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/workspacetype.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/workspacetype.go index 731e5c3c15f..d4de51029bf 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/workspacetype.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/workspacetype.go @@ -27,6 +27,8 @@ import ( // WorkspaceTypeApplyConfiguration represents a declarative configuration of the WorkspaceType type for use // with apply. +// +// WorkspaceType specifies behaviour of workspaces of this type. type WorkspaceTypeApplyConfiguration struct { v1.TypeMetaApplyConfiguration `json:",inline"` *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` @@ -43,6 +45,7 @@ func WorkspaceType(name string) *WorkspaceTypeApplyConfiguration { b.WithAPIVersion("tenancy.kcp.io/v1alpha1") return b } + func (b WorkspaceTypeApplyConfiguration) IsApplyConfiguration() {} // WithKind sets the Kind field in the declarative configuration to the given value diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/workspacetypeextension.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/workspacetypeextension.go index 7df7aa63791..8d6db1ee98b 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/workspacetypeextension.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/workspacetypeextension.go @@ -20,7 +20,13 @@ package v1alpha1 // WorkspaceTypeExtensionApplyConfiguration represents a declarative configuration of the WorkspaceTypeExtension type for use // with apply. +// +// WorkspaceTypeExtension defines how other WorkspaceTypes are +// composed together to add functionality to the owning WorkspaceType. type WorkspaceTypeExtensionApplyConfiguration struct { + // with are WorkspaceTypes whose initializers are added to the list + // for the owning type, and for whom the owning type becomes an alias, as long + // as all of their required types are not mentioned in without. With []WorkspaceTypeReferenceApplyConfiguration `json:"with,omitempty"` } diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/workspacetypereference.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/workspacetypereference.go index 22c37fefb04..d44833cfe43 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/workspacetypereference.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/workspacetypereference.go @@ -24,9 +24,13 @@ import ( // WorkspaceTypeReferenceApplyConfiguration represents a declarative configuration of the WorkspaceTypeReference type for use // with apply. +// +// WorkspaceTypeReference is a globally unique, fully qualified reference to a workspace type. type WorkspaceTypeReferenceApplyConfiguration struct { + // name is the name of the WorkspaceType Name *tenancyv1alpha1.WorkspaceTypeName `json:"name,omitempty"` - Path *string `json:"path,omitempty"` + // path is an absolute reference to the workspace that owns this type, e.g. root:org:ws. + Path *string `json:"path,omitempty"` } // WorkspaceTypeReferenceApplyConfiguration constructs a declarative configuration of the WorkspaceTypeReference type for use with diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/workspacetypeselector.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/workspacetypeselector.go index dd48829a9c7..12e85479f0c 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/workspacetypeselector.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/workspacetypeselector.go @@ -20,8 +20,16 @@ package v1alpha1 // WorkspaceTypeSelectorApplyConfiguration represents a declarative configuration of the WorkspaceTypeSelector type for use // with apply. +// +// WorkspaceTypeSelector describes a set of types. type WorkspaceTypeSelectorApplyConfiguration struct { - None *bool `json:"none,omitempty"` + // none means that no type matches. + None *bool `json:"none,omitempty"` + // types is a list of WorkspaceTypes that match. A workspace type extending + // another workspace type automatically is considered as that extended type as well + // (even transitively). + // + // An empty list matches all types. Types []WorkspaceTypeReferenceApplyConfiguration `json:"types,omitempty"` } diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/workspacetypespec.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/workspacetypespec.go index ab9671f164a..2c9cace25c7 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/workspacetypespec.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/workspacetypespec.go @@ -25,15 +25,61 @@ import ( // WorkspaceTypeSpecApplyConfiguration represents a declarative configuration of the WorkspaceTypeSpec type for use // with apply. type WorkspaceTypeSpecApplyConfiguration struct { - Initializer *bool `json:"initializer,omitempty"` - Terminator *bool `json:"terminator,omitempty"` - Extend *WorkspaceTypeExtensionApplyConfiguration `json:"extend,omitempty"` - AdditionalWorkspaceLabels map[string]string `json:"additionalWorkspaceLabels,omitempty"` - DefaultChildWorkspaceType *WorkspaceTypeReferenceApplyConfiguration `json:"defaultChildWorkspaceType,omitempty"` - LimitAllowedChildren *WorkspaceTypeSelectorApplyConfiguration `json:"limitAllowedChildren,omitempty"` - LimitAllowedParents *WorkspaceTypeSelectorApplyConfiguration `json:"limitAllowedParents,omitempty"` - DefaultAPIBindings []APIExportReferenceApplyConfiguration `json:"defaultAPIBindings,omitempty"` - DefaultAPIBindingLifecycle *tenancyv1alpha1.APIBindingLifecycleMode `json:"defaultAPIBindingLifecycle,omitempty"` + // initializer determines if this WorkspaceType has an associated initializing + // controller. These controllers are used to add functionality to a Workspace; + // all controllers must finish their work before the Workspace becomes ready + // for use. + // + // One initializing controller is supported per WorkspaceType; the identifier + // for this initializer will be a colon-delimited string using the workspace in which + // the WorkspaceType is defined, and the type's name. For example, if a + // WorkspaceType `example` is created in the `root:org` workspace, the implicit + // initializer name is `root:org:example`. + Initializer *bool `json:"initializer,omitempty"` + // Terminator determines if this WorkspaceType has an associated terminating + // controller. These controllers are used to add functionality to a Workspace; + // all controllers must finish their work before the Workspace is being deleted. + // + // One terminating controller is supported per WorkspaceType; the identifier + // for this terminator will be a colon-delimited string using the workspace in which + // the WorkspaceType is defined, and the type's name. For example, if a + // WorkspaceType `example` is created in the `root:org` workspace, the implicit + // terminator name is `root:org:example`. + Terminator *bool `json:"terminator,omitempty"` + // extend is a list of other WorkspaceTypes whose initializers and limitAllowedChildren + // and limitAllowedParents this WorkspaceType is inheriting. By (transitively) extending + // another WorkspaceType, this WorkspaceType will be considered as that + // other type in evaluation of limitAllowedChildren and limitAllowedParents constraints. + // + // A dependency cycle stop this WorkspaceType from being admitted as the type + // of a Workspace. + // + // A non-existing dependency stop this WorkspaceType from being admitted as the type + // of a Workspace. + Extend *WorkspaceTypeExtensionApplyConfiguration `json:"extend,omitempty"` + // additionalWorkspaceLabels are a set of labels that will be added to a + // Workspace on creation. + AdditionalWorkspaceLabels map[string]string `json:"additionalWorkspaceLabels,omitempty"` + // defaultChildWorkspaceType is the WorkspaceType that will be used + // by default if another, nested Workspace is created in a workspace + // of this type. When this field is unset, the user must specify a type when + // creating nested workspaces. Extending another WorkspaceType does + // not inherit its defaultChildWorkspaceType. + DefaultChildWorkspaceType *WorkspaceTypeReferenceApplyConfiguration `json:"defaultChildWorkspaceType,omitempty"` + // limitAllowedChildren specifies constraints for sub-workspaces created in workspaces + // of this type. These are in addition to child constraints of types this one extends. + LimitAllowedChildren *WorkspaceTypeSelectorApplyConfiguration `json:"limitAllowedChildren,omitempty"` + // limitAllowedParents specifies constraints for the parent workspace that workspaces + // of this type are created in. These are in addition to parent constraints of types this one + // extends. + LimitAllowedParents *WorkspaceTypeSelectorApplyConfiguration `json:"limitAllowedParents,omitempty"` + // defaultAPIBindings are the APIs to bind during initialization of workspaces created from this type. + // The APIBinding names will be generated dynamically. + DefaultAPIBindings []APIExportReferenceApplyConfiguration `json:"defaultAPIBindings,omitempty"` + // Configure the lifecycle behaviour of defaultAPIBindings. + DefaultAPIBindingLifecycle *tenancyv1alpha1.APIBindingLifecycleMode `json:"defaultAPIBindingLifecycle,omitempty"` + // authenticationConfigurations are additional authentication options that should apply to any + // workspace using this workspace type. AuthenticationConfigurations []AuthenticationConfigurationReferenceApplyConfiguration `json:"authenticationConfigurations,omitempty"` } diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/workspacetypestatus.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/workspacetypestatus.go index 81a9c379595..59410ce4707 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/workspacetypestatus.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/tenancy/v1alpha1/workspacetypestatus.go @@ -24,8 +24,12 @@ import ( // WorkspaceTypeStatusApplyConfiguration represents a declarative configuration of the WorkspaceTypeStatus type for use // with apply. +// +// WorkspaceTypeStatus defines the observed state of WorkspaceType. type WorkspaceTypeStatusApplyConfiguration struct { - Conditions *conditionsv1alpha1.Conditions `json:"conditions,omitempty"` + // conditions is a list of conditions that apply to the APIExport. + Conditions *conditionsv1alpha1.Conditions `json:"conditions,omitempty"` + // virtualWorkspaces contains all APIExport virtual workspace URLs. VirtualWorkspaces []VirtualWorkspaceApplyConfiguration `json:"virtualWorkspaces,omitempty"` } diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/topology/v1alpha1/partition.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/topology/v1alpha1/partition.go index 356872001a4..6b2da8738e8 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/topology/v1alpha1/partition.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/topology/v1alpha1/partition.go @@ -27,10 +27,14 @@ import ( // PartitionApplyConfiguration represents a declarative configuration of the Partition type for use // with apply. +// +// Partition defines the selection of a set of shards along multiple dimensions. +// Partitions can get automatically generated through a partitioner or manually crafted. type PartitionApplyConfiguration struct { v1.TypeMetaApplyConfiguration `json:",inline"` *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` - Spec *PartitionSpecApplyConfiguration `json:"spec,omitempty"` + // spec holds the desired state. + Spec *PartitionSpecApplyConfiguration `json:"spec,omitempty"` } // Partition constructs a declarative configuration of the Partition type for use with @@ -42,6 +46,7 @@ func Partition(name string) *PartitionApplyConfiguration { b.WithAPIVersion("topology.kcp.io/v1alpha1") return b } + func (b PartitionApplyConfiguration) IsApplyConfiguration() {} // WithKind sets the Kind field in the declarative configuration to the given value diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/topology/v1alpha1/partitionset.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/topology/v1alpha1/partitionset.go index 3a3c44fbd39..93a906690fa 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/topology/v1alpha1/partitionset.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/topology/v1alpha1/partitionset.go @@ -27,11 +27,15 @@ import ( // PartitionSetApplyConfiguration represents a declarative configuration of the PartitionSet type for use // with apply. +// +// PartitionSet defines a target domain and dimensions to divide a set of shards into 1 or more partitions. type PartitionSetApplyConfiguration struct { v1.TypeMetaApplyConfiguration `json:",inline"` *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` - Spec *PartitionSetSpecApplyConfiguration `json:"spec,omitempty"` - Status *PartitionSetStatusApplyConfiguration `json:"status,omitempty"` + // spec holds the desired state. + Spec *PartitionSetSpecApplyConfiguration `json:"spec,omitempty"` + // status holds information about the current status + Status *PartitionSetStatusApplyConfiguration `json:"status,omitempty"` } // PartitionSet constructs a declarative configuration of the PartitionSet type for use with @@ -43,6 +47,7 @@ func PartitionSet(name string) *PartitionSetApplyConfiguration { b.WithAPIVersion("topology.kcp.io/v1alpha1") return b } + func (b PartitionSetApplyConfiguration) IsApplyConfiguration() {} // WithKind sets the Kind field in the declarative configuration to the given value diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/topology/v1alpha1/partitionsetspec.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/topology/v1alpha1/partitionsetspec.go index 21cf1ae8036..098d061a04a 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/topology/v1alpha1/partitionsetspec.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/topology/v1alpha1/partitionsetspec.go @@ -24,8 +24,12 @@ import ( // PartitionSetSpecApplyConfiguration represents a declarative configuration of the PartitionSetSpec type for use // with apply. +// +// PartitionSetSpec records dimensions and a target domain for the partitioning. type PartitionSetSpecApplyConfiguration struct { - Dimensions []string `json:"dimensions,omitempty"` + // dimensions (optional) are used to group shards into partitions + Dimensions []string `json:"dimensions,omitempty"` + // shardSelector (optional) specifies filtering for shard targets. ShardSelector *v1.LabelSelectorApplyConfiguration `json:"shardSelector,omitempty"` } diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/topology/v1alpha1/partitionsetstatus.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/topology/v1alpha1/partitionsetstatus.go index 30fe93628ba..d330665a357 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/topology/v1alpha1/partitionsetstatus.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/topology/v1alpha1/partitionsetstatus.go @@ -24,8 +24,12 @@ import ( // PartitionSetStatusApplyConfiguration represents a declarative configuration of the PartitionSetStatus type for use // with apply. +// +// PartitionSetStatus records the status of the PartitionSet. type PartitionSetStatusApplyConfiguration struct { - Count *uint `json:"count,omitempty"` + // count is the total number of partitions. + Count *uint `json:"count,omitempty"` + // conditions is a list of conditions that apply to the APIExportEndpointSlice. Conditions *conditionsv1alpha1.Conditions `json:"conditions,omitempty"` } diff --git a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/topology/v1alpha1/partitionspec.go b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/topology/v1alpha1/partitionspec.go index eaaf12eda04..cb7540a6710 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/topology/v1alpha1/partitionspec.go +++ b/staging/src/github.com/kcp-dev/sdk/client/applyconfiguration/topology/v1alpha1/partitionspec.go @@ -24,7 +24,10 @@ import ( // PartitionSpecApplyConfiguration represents a declarative configuration of the PartitionSpec type for use // with apply. +// +// PartitionSpec records the values defining the partition along multiple dimensions. type PartitionSpecApplyConfiguration struct { + // selector (optional) is a label selector that filters shard targets. Selector *v1.LabelSelectorApplyConfiguration `json:"selector,omitempty"` } diff --git a/staging/src/github.com/kcp-dev/sdk/client/clientset/versioned/cluster/fake/clientset.go b/staging/src/github.com/kcp-dev/sdk/client/clientset/versioned/cluster/fake/clientset.go index b6f7607619f..a2bb8cf91b7 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/clientset/versioned/cluster/fake/clientset.go +++ b/staging/src/github.com/kcp-dev/sdk/client/clientset/versioned/cluster/fake/clientset.go @@ -54,7 +54,7 @@ import ( // without applying any field management, validations and/or defaults. It shouldn't be considered a replacement // for a real clientset and is mostly useful in simple unit tests. // -// DEPRECATED: NewClientset replaces this with support for field management, which significantly improves +// Deprecated: NewClientset replaces this with support for field management, which significantly improves // server side apply testing. NewClientset is only available when apply configurations are generated (e.g. // via --with-applyconfig). func NewSimpleClientset(objects ...runtime.Object) *ClusterClientset { @@ -87,6 +87,28 @@ func (c *ClusterClientset) Tracker() kcptesting.ObjectTracker { return c.tracker } +// IsWatchListSemanticsUnSupported informs the reflector that this client +// doesn't support WatchList semantics. +// +// This is a synthetic method whose sole purpose is to satisfy the optional +// interface check performed by the reflector. +// Returning true signals that WatchList can NOT be used. +// No additional logic is implemented here. +func (c *ClusterClientset) IsWatchListSemanticsUnSupported() bool { + return true +} + +// IsWatchListSemanticsSupported informs the reflector that this client +// doesn't support WatchList semantics. +// +// This is a synthetic method whose sole purpose is to satisfy the optional +// interface check performed by the reflector. +// Returning true signals that WatchList can NOT be used. +// No additional logic is implemented here. +func (c *Clientset) IsWatchListSemanticsUnSupported() bool { + return true +} + // Cluster scopes this clientset to one cluster. func (c *ClusterClientset) Cluster(clusterPath logicalcluster.Path) clientset.Interface { if clusterPath == logicalcluster.Wildcard { diff --git a/staging/src/github.com/kcp-dev/sdk/client/clientset/versioned/fake/clientset_generated.go b/staging/src/github.com/kcp-dev/sdk/client/clientset/versioned/fake/clientset_generated.go index cb1ed61555b..2df46631d99 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/clientset/versioned/fake/clientset_generated.go +++ b/staging/src/github.com/kcp-dev/sdk/client/clientset/versioned/fake/clientset_generated.go @@ -47,7 +47,7 @@ import ( // without applying any field management, validations and/or defaults. It shouldn't be considered a replacement // for a real clientset and is mostly useful in simple unit tests. // -// DEPRECATED: NewClientset replaces this with support for field management, which significantly improves +// Deprecated: NewClientset replaces this with support for field management, which significantly improves // server side apply testing. NewClientset is only available when apply configurations are generated (e.g. // via --with-applyconfig). func NewSimpleClientset(objects ...runtime.Object) *Clientset { @@ -63,8 +63,8 @@ func NewSimpleClientset(objects ...runtime.Object) *Clientset { cs.AddReactor("*", "*", testing.ObjectReaction(o)) cs.AddWatchReactor("*", func(action testing.Action) (handled bool, ret watch.Interface, err error) { var opts metav1.ListOptions - if watchActcion, ok := action.(testing.WatchActionImpl); ok { - opts = watchActcion.ListOptions + if watchAction, ok := action.(testing.WatchActionImpl); ok { + opts = watchAction.ListOptions } gvr := action.GetResource() ns := action.GetNamespace() @@ -95,6 +95,17 @@ func (c *Clientset) Tracker() testing.ObjectTracker { return c.tracker } +// IsWatchListSemanticsSupported informs the reflector that this client +// doesn't support WatchList semantics. +// +// This is a synthetic method whose sole purpose is to satisfy the optional +// interface check performed by the reflector. +// Returning true signals that WatchList can NOT be used. +// No additional logic is implemented here. +func (c *Clientset) IsWatchListSemanticsUnSupported() bool { + return true +} + // NewClientset returns a clientset that will respond with the provided objects. // It's backed by a very simple object tracker that processes creates, updates and deletions as-is, // without applying any validations and/or defaults. It shouldn't be considered a replacement diff --git a/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/apis/v1alpha1/apibinding.go b/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/apis/v1alpha1/apibinding.go index 4c4569e00a7..5e4892aa335 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/apis/v1alpha1/apibinding.go +++ b/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/apis/v1alpha1/apibinding.go @@ -63,7 +63,7 @@ func NewAPIBindingClusterInformer(client kcpcluster.ClusterInterface, resyncPeri // one. This reduces memory footprint and number of connections to the server. func NewFilteredAPIBindingClusterInformer(client kcpcluster.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -76,7 +76,7 @@ func NewFilteredAPIBindingClusterInformer(client kcpcluster.ClusterInterface, re } return client.ApisV1alpha1().APIBindings().Watch(context.Background(), options) }, - }, + }, client), &kcpapisv1alpha1.APIBinding{}, resyncPeriod, indexers, @@ -149,7 +149,7 @@ func NewAPIBindingInformer(client kcpversioned.Interface, resyncPeriod time.Dura // one. This reduces memory footprint and number of connections to the server. func NewFilteredAPIBindingInformer(client kcpversioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -162,7 +162,7 @@ func NewFilteredAPIBindingInformer(client kcpversioned.Interface, resyncPeriod t } return client.ApisV1alpha1().APIBindings().Watch(context.Background(), options) }, - }, + }, client), &kcpapisv1alpha1.APIBinding{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/apis/v1alpha1/apiconversion.go b/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/apis/v1alpha1/apiconversion.go index b5c024388a4..d9415042ddd 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/apis/v1alpha1/apiconversion.go +++ b/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/apis/v1alpha1/apiconversion.go @@ -63,7 +63,7 @@ func NewAPIConversionClusterInformer(client kcpcluster.ClusterInterface, resyncP // one. This reduces memory footprint and number of connections to the server. func NewFilteredAPIConversionClusterInformer(client kcpcluster.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -76,7 +76,7 @@ func NewFilteredAPIConversionClusterInformer(client kcpcluster.ClusterInterface, } return client.ApisV1alpha1().APIConversions().Watch(context.Background(), options) }, - }, + }, client), &kcpapisv1alpha1.APIConversion{}, resyncPeriod, indexers, @@ -149,7 +149,7 @@ func NewAPIConversionInformer(client kcpversioned.Interface, resyncPeriod time.D // one. This reduces memory footprint and number of connections to the server. func NewFilteredAPIConversionInformer(client kcpversioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -162,7 +162,7 @@ func NewFilteredAPIConversionInformer(client kcpversioned.Interface, resyncPerio } return client.ApisV1alpha1().APIConversions().Watch(context.Background(), options) }, - }, + }, client), &kcpapisv1alpha1.APIConversion{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/apis/v1alpha1/apiexport.go b/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/apis/v1alpha1/apiexport.go index b75b592ff00..5e712280a7e 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/apis/v1alpha1/apiexport.go +++ b/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/apis/v1alpha1/apiexport.go @@ -63,7 +63,7 @@ func NewAPIExportClusterInformer(client kcpcluster.ClusterInterface, resyncPerio // one. This reduces memory footprint and number of connections to the server. func NewFilteredAPIExportClusterInformer(client kcpcluster.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -76,7 +76,7 @@ func NewFilteredAPIExportClusterInformer(client kcpcluster.ClusterInterface, res } return client.ApisV1alpha1().APIExports().Watch(context.Background(), options) }, - }, + }, client), &kcpapisv1alpha1.APIExport{}, resyncPeriod, indexers, @@ -149,7 +149,7 @@ func NewAPIExportInformer(client kcpversioned.Interface, resyncPeriod time.Durat // one. This reduces memory footprint and number of connections to the server. func NewFilteredAPIExportInformer(client kcpversioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -162,7 +162,7 @@ func NewFilteredAPIExportInformer(client kcpversioned.Interface, resyncPeriod ti } return client.ApisV1alpha1().APIExports().Watch(context.Background(), options) }, - }, + }, client), &kcpapisv1alpha1.APIExport{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/apis/v1alpha1/apiexportendpointslice.go b/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/apis/v1alpha1/apiexportendpointslice.go index e2f3270e7d5..86b8bf5f63c 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/apis/v1alpha1/apiexportendpointslice.go +++ b/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/apis/v1alpha1/apiexportendpointslice.go @@ -63,7 +63,7 @@ func NewAPIExportEndpointSliceClusterInformer(client kcpcluster.ClusterInterface // one. This reduces memory footprint and number of connections to the server. func NewFilteredAPIExportEndpointSliceClusterInformer(client kcpcluster.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -76,7 +76,7 @@ func NewFilteredAPIExportEndpointSliceClusterInformer(client kcpcluster.ClusterI } return client.ApisV1alpha1().APIExportEndpointSlices().Watch(context.Background(), options) }, - }, + }, client), &kcpapisv1alpha1.APIExportEndpointSlice{}, resyncPeriod, indexers, @@ -149,7 +149,7 @@ func NewAPIExportEndpointSliceInformer(client kcpversioned.Interface, resyncPeri // one. This reduces memory footprint and number of connections to the server. func NewFilteredAPIExportEndpointSliceInformer(client kcpversioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -162,7 +162,7 @@ func NewFilteredAPIExportEndpointSliceInformer(client kcpversioned.Interface, re } return client.ApisV1alpha1().APIExportEndpointSlices().Watch(context.Background(), options) }, - }, + }, client), &kcpapisv1alpha1.APIExportEndpointSlice{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/apis/v1alpha1/apiresourceschema.go b/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/apis/v1alpha1/apiresourceschema.go index 3a23bc1d375..99bca4604ea 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/apis/v1alpha1/apiresourceschema.go +++ b/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/apis/v1alpha1/apiresourceschema.go @@ -63,7 +63,7 @@ func NewAPIResourceSchemaClusterInformer(client kcpcluster.ClusterInterface, res // one. This reduces memory footprint and number of connections to the server. func NewFilteredAPIResourceSchemaClusterInformer(client kcpcluster.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -76,7 +76,7 @@ func NewFilteredAPIResourceSchemaClusterInformer(client kcpcluster.ClusterInterf } return client.ApisV1alpha1().APIResourceSchemas().Watch(context.Background(), options) }, - }, + }, client), &kcpapisv1alpha1.APIResourceSchema{}, resyncPeriod, indexers, @@ -149,7 +149,7 @@ func NewAPIResourceSchemaInformer(client kcpversioned.Interface, resyncPeriod ti // one. This reduces memory footprint and number of connections to the server. func NewFilteredAPIResourceSchemaInformer(client kcpversioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -162,7 +162,7 @@ func NewFilteredAPIResourceSchemaInformer(client kcpversioned.Interface, resyncP } return client.ApisV1alpha1().APIResourceSchemas().Watch(context.Background(), options) }, - }, + }, client), &kcpapisv1alpha1.APIResourceSchema{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/apis/v1alpha2/apibinding.go b/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/apis/v1alpha2/apibinding.go index e04adcbae26..06714555b49 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/apis/v1alpha2/apibinding.go +++ b/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/apis/v1alpha2/apibinding.go @@ -63,7 +63,7 @@ func NewAPIBindingClusterInformer(client kcpcluster.ClusterInterface, resyncPeri // one. This reduces memory footprint and number of connections to the server. func NewFilteredAPIBindingClusterInformer(client kcpcluster.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -76,7 +76,7 @@ func NewFilteredAPIBindingClusterInformer(client kcpcluster.ClusterInterface, re } return client.ApisV1alpha2().APIBindings().Watch(context.Background(), options) }, - }, + }, client), &kcpapisv1alpha2.APIBinding{}, resyncPeriod, indexers, @@ -149,7 +149,7 @@ func NewAPIBindingInformer(client kcpversioned.Interface, resyncPeriod time.Dura // one. This reduces memory footprint and number of connections to the server. func NewFilteredAPIBindingInformer(client kcpversioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -162,7 +162,7 @@ func NewFilteredAPIBindingInformer(client kcpversioned.Interface, resyncPeriod t } return client.ApisV1alpha2().APIBindings().Watch(context.Background(), options) }, - }, + }, client), &kcpapisv1alpha2.APIBinding{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/apis/v1alpha2/apiexport.go b/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/apis/v1alpha2/apiexport.go index dc0de432872..8c52f3bd1ea 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/apis/v1alpha2/apiexport.go +++ b/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/apis/v1alpha2/apiexport.go @@ -63,7 +63,7 @@ func NewAPIExportClusterInformer(client kcpcluster.ClusterInterface, resyncPerio // one. This reduces memory footprint and number of connections to the server. func NewFilteredAPIExportClusterInformer(client kcpcluster.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -76,7 +76,7 @@ func NewFilteredAPIExportClusterInformer(client kcpcluster.ClusterInterface, res } return client.ApisV1alpha2().APIExports().Watch(context.Background(), options) }, - }, + }, client), &kcpapisv1alpha2.APIExport{}, resyncPeriod, indexers, @@ -149,7 +149,7 @@ func NewAPIExportInformer(client kcpversioned.Interface, resyncPeriod time.Durat // one. This reduces memory footprint and number of connections to the server. func NewFilteredAPIExportInformer(client kcpversioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -162,7 +162,7 @@ func NewFilteredAPIExportInformer(client kcpversioned.Interface, resyncPeriod ti } return client.ApisV1alpha2().APIExports().Watch(context.Background(), options) }, - }, + }, client), &kcpapisv1alpha2.APIExport{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/cache/v1alpha1/cachedobject.go b/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/cache/v1alpha1/cachedobject.go index 72c69568538..d5ab8e53fb6 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/cache/v1alpha1/cachedobject.go +++ b/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/cache/v1alpha1/cachedobject.go @@ -63,7 +63,7 @@ func NewCachedObjectClusterInformer(client kcpcluster.ClusterInterface, resyncPe // one. This reduces memory footprint and number of connections to the server. func NewFilteredCachedObjectClusterInformer(client kcpcluster.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -76,7 +76,7 @@ func NewFilteredCachedObjectClusterInformer(client kcpcluster.ClusterInterface, } return client.CacheV1alpha1().CachedObjects().Watch(context.Background(), options) }, - }, + }, client), &kcpcachev1alpha1.CachedObject{}, resyncPeriod, indexers, @@ -149,7 +149,7 @@ func NewCachedObjectInformer(client kcpversioned.Interface, resyncPeriod time.Du // one. This reduces memory footprint and number of connections to the server. func NewFilteredCachedObjectInformer(client kcpversioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -162,7 +162,7 @@ func NewFilteredCachedObjectInformer(client kcpversioned.Interface, resyncPeriod } return client.CacheV1alpha1().CachedObjects().Watch(context.Background(), options) }, - }, + }, client), &kcpcachev1alpha1.CachedObject{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/cache/v1alpha1/cachedresource.go b/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/cache/v1alpha1/cachedresource.go index 89191e80c12..71bf4cb16fa 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/cache/v1alpha1/cachedresource.go +++ b/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/cache/v1alpha1/cachedresource.go @@ -63,7 +63,7 @@ func NewCachedResourceClusterInformer(client kcpcluster.ClusterInterface, resync // one. This reduces memory footprint and number of connections to the server. func NewFilteredCachedResourceClusterInformer(client kcpcluster.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -76,7 +76,7 @@ func NewFilteredCachedResourceClusterInformer(client kcpcluster.ClusterInterface } return client.CacheV1alpha1().CachedResources().Watch(context.Background(), options) }, - }, + }, client), &kcpcachev1alpha1.CachedResource{}, resyncPeriod, indexers, @@ -149,7 +149,7 @@ func NewCachedResourceInformer(client kcpversioned.Interface, resyncPeriod time. // one. This reduces memory footprint and number of connections to the server. func NewFilteredCachedResourceInformer(client kcpversioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -162,7 +162,7 @@ func NewFilteredCachedResourceInformer(client kcpversioned.Interface, resyncPeri } return client.CacheV1alpha1().CachedResources().Watch(context.Background(), options) }, - }, + }, client), &kcpcachev1alpha1.CachedResource{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/cache/v1alpha1/cachedresourceendpointslice.go b/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/cache/v1alpha1/cachedresourceendpointslice.go index d759d16fa3e..f51fc97d39e 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/cache/v1alpha1/cachedresourceendpointslice.go +++ b/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/cache/v1alpha1/cachedresourceendpointslice.go @@ -63,7 +63,7 @@ func NewCachedResourceEndpointSliceClusterInformer(client kcpcluster.ClusterInte // one. This reduces memory footprint and number of connections to the server. func NewFilteredCachedResourceEndpointSliceClusterInformer(client kcpcluster.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -76,7 +76,7 @@ func NewFilteredCachedResourceEndpointSliceClusterInformer(client kcpcluster.Clu } return client.CacheV1alpha1().CachedResourceEndpointSlices().Watch(context.Background(), options) }, - }, + }, client), &kcpcachev1alpha1.CachedResourceEndpointSlice{}, resyncPeriod, indexers, @@ -149,7 +149,7 @@ func NewCachedResourceEndpointSliceInformer(client kcpversioned.Interface, resyn // one. This reduces memory footprint and number of connections to the server. func NewFilteredCachedResourceEndpointSliceInformer(client kcpversioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -162,7 +162,7 @@ func NewFilteredCachedResourceEndpointSliceInformer(client kcpversioned.Interfac } return client.CacheV1alpha1().CachedResourceEndpointSlices().Watch(context.Background(), options) }, - }, + }, client), &kcpcachev1alpha1.CachedResourceEndpointSlice{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/core/v1alpha1/logicalcluster.go b/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/core/v1alpha1/logicalcluster.go index 6638790c60b..e51a36ee0ca 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/core/v1alpha1/logicalcluster.go +++ b/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/core/v1alpha1/logicalcluster.go @@ -63,7 +63,7 @@ func NewLogicalClusterClusterInformer(client kcpcluster.ClusterInterface, resync // one. This reduces memory footprint and number of connections to the server. func NewFilteredLogicalClusterClusterInformer(client kcpcluster.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -76,7 +76,7 @@ func NewFilteredLogicalClusterClusterInformer(client kcpcluster.ClusterInterface } return client.CoreV1alpha1().LogicalClusters().Watch(context.Background(), options) }, - }, + }, client), &kcpcorev1alpha1.LogicalCluster{}, resyncPeriod, indexers, @@ -149,7 +149,7 @@ func NewLogicalClusterInformer(client kcpversioned.Interface, resyncPeriod time. // one. This reduces memory footprint and number of connections to the server. func NewFilteredLogicalClusterInformer(client kcpversioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -162,7 +162,7 @@ func NewFilteredLogicalClusterInformer(client kcpversioned.Interface, resyncPeri } return client.CoreV1alpha1().LogicalClusters().Watch(context.Background(), options) }, - }, + }, client), &kcpcorev1alpha1.LogicalCluster{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/core/v1alpha1/shard.go b/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/core/v1alpha1/shard.go index 9c8afa3f294..df17501fd91 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/core/v1alpha1/shard.go +++ b/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/core/v1alpha1/shard.go @@ -63,7 +63,7 @@ func NewShardClusterInformer(client kcpcluster.ClusterInterface, resyncPeriod ti // one. This reduces memory footprint and number of connections to the server. func NewFilteredShardClusterInformer(client kcpcluster.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -76,7 +76,7 @@ func NewFilteredShardClusterInformer(client kcpcluster.ClusterInterface, resyncP } return client.CoreV1alpha1().Shards().Watch(context.Background(), options) }, - }, + }, client), &kcpcorev1alpha1.Shard{}, resyncPeriod, indexers, @@ -149,7 +149,7 @@ func NewShardInformer(client kcpversioned.Interface, resyncPeriod time.Duration, // one. This reduces memory footprint and number of connections to the server. func NewFilteredShardInformer(client kcpversioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -162,7 +162,7 @@ func NewFilteredShardInformer(client kcpversioned.Interface, resyncPeriod time.D } return client.CoreV1alpha1().Shards().Watch(context.Background(), options) }, - }, + }, client), &kcpcorev1alpha1.Shard{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/factory.go b/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/factory.go index 6f184130c77..2af0156fa8c 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/factory.go +++ b/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/factory.go @@ -103,6 +103,7 @@ func NewSharedInformerFactory(client kcpcluster.ClusterInterface, defaultResync // NewFilteredSharedInformerFactory constructs a new instance of sharedInformerFactory. // Listers obtained via this SharedInformerFactory will be subject to the same filters // as specified here. +// // Deprecated: Please use NewSharedInformerFactoryWithOptions instead func NewFilteredSharedInformerFactory(client kcpcluster.ClusterInterface, defaultResync time.Duration, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) SharedInformerFactory { return NewSharedInformerFactoryWithOptions(client, defaultResync, WithTweakListOptions(tweakListOptions)) @@ -227,7 +228,7 @@ type ScopedDynamicSharedInformerFactory interface { // // It is typically used like this: // -// ctx, cancel := context.Background() +// ctx, cancel := context.WithCancel(context.Background()) // defer cancel() // factory := NewSharedInformerFactory(client, resyncPeriod) // defer factory.WaitForStop() // Returns immediately if nothing was started. diff --git a/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/tenancy/v1alpha1/workspace.go b/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/tenancy/v1alpha1/workspace.go index 198c9a50fd8..6c3ccd453ac 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/tenancy/v1alpha1/workspace.go +++ b/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/tenancy/v1alpha1/workspace.go @@ -63,7 +63,7 @@ func NewWorkspaceClusterInformer(client kcpcluster.ClusterInterface, resyncPerio // one. This reduces memory footprint and number of connections to the server. func NewFilteredWorkspaceClusterInformer(client kcpcluster.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -76,7 +76,7 @@ func NewFilteredWorkspaceClusterInformer(client kcpcluster.ClusterInterface, res } return client.TenancyV1alpha1().Workspaces().Watch(context.Background(), options) }, - }, + }, client), &kcptenancyv1alpha1.Workspace{}, resyncPeriod, indexers, @@ -149,7 +149,7 @@ func NewWorkspaceInformer(client kcpversioned.Interface, resyncPeriod time.Durat // one. This reduces memory footprint and number of connections to the server. func NewFilteredWorkspaceInformer(client kcpversioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -162,7 +162,7 @@ func NewFilteredWorkspaceInformer(client kcpversioned.Interface, resyncPeriod ti } return client.TenancyV1alpha1().Workspaces().Watch(context.Background(), options) }, - }, + }, client), &kcptenancyv1alpha1.Workspace{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/tenancy/v1alpha1/workspaceauthenticationconfiguration.go b/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/tenancy/v1alpha1/workspaceauthenticationconfiguration.go index 77be63bf60e..b4eaf26cb11 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/tenancy/v1alpha1/workspaceauthenticationconfiguration.go +++ b/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/tenancy/v1alpha1/workspaceauthenticationconfiguration.go @@ -63,7 +63,7 @@ func NewWorkspaceAuthenticationConfigurationClusterInformer(client kcpcluster.Cl // one. This reduces memory footprint and number of connections to the server. func NewFilteredWorkspaceAuthenticationConfigurationClusterInformer(client kcpcluster.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -76,7 +76,7 @@ func NewFilteredWorkspaceAuthenticationConfigurationClusterInformer(client kcpcl } return client.TenancyV1alpha1().WorkspaceAuthenticationConfigurations().Watch(context.Background(), options) }, - }, + }, client), &kcptenancyv1alpha1.WorkspaceAuthenticationConfiguration{}, resyncPeriod, indexers, @@ -149,7 +149,7 @@ func NewWorkspaceAuthenticationConfigurationInformer(client kcpversioned.Interfa // one. This reduces memory footprint and number of connections to the server. func NewFilteredWorkspaceAuthenticationConfigurationInformer(client kcpversioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -162,7 +162,7 @@ func NewFilteredWorkspaceAuthenticationConfigurationInformer(client kcpversioned } return client.TenancyV1alpha1().WorkspaceAuthenticationConfigurations().Watch(context.Background(), options) }, - }, + }, client), &kcptenancyv1alpha1.WorkspaceAuthenticationConfiguration{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/tenancy/v1alpha1/workspacetype.go b/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/tenancy/v1alpha1/workspacetype.go index 1be6d051af0..68bd204044d 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/tenancy/v1alpha1/workspacetype.go +++ b/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/tenancy/v1alpha1/workspacetype.go @@ -63,7 +63,7 @@ func NewWorkspaceTypeClusterInformer(client kcpcluster.ClusterInterface, resyncP // one. This reduces memory footprint and number of connections to the server. func NewFilteredWorkspaceTypeClusterInformer(client kcpcluster.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -76,7 +76,7 @@ func NewFilteredWorkspaceTypeClusterInformer(client kcpcluster.ClusterInterface, } return client.TenancyV1alpha1().WorkspaceTypes().Watch(context.Background(), options) }, - }, + }, client), &kcptenancyv1alpha1.WorkspaceType{}, resyncPeriod, indexers, @@ -149,7 +149,7 @@ func NewWorkspaceTypeInformer(client kcpversioned.Interface, resyncPeriod time.D // one. This reduces memory footprint and number of connections to the server. func NewFilteredWorkspaceTypeInformer(client kcpversioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -162,7 +162,7 @@ func NewFilteredWorkspaceTypeInformer(client kcpversioned.Interface, resyncPerio } return client.TenancyV1alpha1().WorkspaceTypes().Watch(context.Background(), options) }, - }, + }, client), &kcptenancyv1alpha1.WorkspaceType{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/topology/v1alpha1/partition.go b/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/topology/v1alpha1/partition.go index 970bea3d586..0cd5cc78644 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/topology/v1alpha1/partition.go +++ b/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/topology/v1alpha1/partition.go @@ -63,7 +63,7 @@ func NewPartitionClusterInformer(client kcpcluster.ClusterInterface, resyncPerio // one. This reduces memory footprint and number of connections to the server. func NewFilteredPartitionClusterInformer(client kcpcluster.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -76,7 +76,7 @@ func NewFilteredPartitionClusterInformer(client kcpcluster.ClusterInterface, res } return client.TopologyV1alpha1().Partitions().Watch(context.Background(), options) }, - }, + }, client), &kcptopologyv1alpha1.Partition{}, resyncPeriod, indexers, @@ -149,7 +149,7 @@ func NewPartitionInformer(client kcpversioned.Interface, resyncPeriod time.Durat // one. This reduces memory footprint and number of connections to the server. func NewFilteredPartitionInformer(client kcpversioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -162,7 +162,7 @@ func NewFilteredPartitionInformer(client kcpversioned.Interface, resyncPeriod ti } return client.TopologyV1alpha1().Partitions().Watch(context.Background(), options) }, - }, + }, client), &kcptopologyv1alpha1.Partition{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/topology/v1alpha1/partitionset.go b/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/topology/v1alpha1/partitionset.go index 9c0288cfab2..4b35373ac24 100644 --- a/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/topology/v1alpha1/partitionset.go +++ b/staging/src/github.com/kcp-dev/sdk/client/informers/externalversions/topology/v1alpha1/partitionset.go @@ -63,7 +63,7 @@ func NewPartitionSetClusterInformer(client kcpcluster.ClusterInterface, resyncPe // one. This reduces memory footprint and number of connections to the server. func NewFilteredPartitionSetClusterInformer(client kcpcluster.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -76,7 +76,7 @@ func NewFilteredPartitionSetClusterInformer(client kcpcluster.ClusterInterface, } return client.TopologyV1alpha1().PartitionSets().Watch(context.Background(), options) }, - }, + }, client), &kcptopologyv1alpha1.PartitionSet{}, resyncPeriod, indexers, @@ -149,7 +149,7 @@ func NewPartitionSetInformer(client kcpversioned.Interface, resyncPeriod time.Du // one. This reduces memory footprint and number of connections to the server. func NewFilteredPartitionSetInformer(client kcpversioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -162,7 +162,7 @@ func NewFilteredPartitionSetInformer(client kcpversioned.Interface, resyncPeriod } return client.TopologyV1alpha1().PartitionSets().Watch(context.Background(), options) }, - }, + }, client), &kcptopologyv1alpha1.PartitionSet{}, resyncPeriod, indexers, diff --git a/staging/src/github.com/kcp-dev/sdk/go.mod b/staging/src/github.com/kcp-dev/sdk/go.mod index 39b34070731..bab2be8183d 100644 --- a/staging/src/github.com/kcp-dev/sdk/go.mod +++ b/staging/src/github.com/kcp-dev/sdk/go.mod @@ -1,33 +1,33 @@ module github.com/kcp-dev/sdk -go 1.24.0 +go 1.25.0 require ( github.com/MakeNowJust/heredoc v1.0.0 github.com/bombsimon/logrusr/v3 v3.1.0 github.com/egymgmbh/go-prefix-writer v0.0.0-20180609083313-7326ea162eca - github.com/go-logr/logr v1.4.2 + github.com/go-logr/logr v1.4.3 github.com/google/go-cmp v0.7.0 github.com/kcp-dev/apimachinery/v2 v2.0.0-00010101000000-000000000000 github.com/kcp-dev/client-go v0.0.0 github.com/kcp-dev/logicalcluster/v3 v3.0.5 github.com/martinlindhe/base36 v1.1.1 github.com/muesli/reflow v0.3.0 - github.com/onsi/gomega v1.35.1 + github.com/onsi/gomega v1.38.2 github.com/sirupsen/logrus v1.9.3 - github.com/spf13/cobra v1.9.1 - github.com/spf13/pflag v1.0.6 - github.com/stretchr/testify v1.10.0 - golang.org/x/sync v0.14.0 + github.com/spf13/cobra v1.10.0 + github.com/spf13/pflag v1.0.9 + github.com/stretchr/testify v1.11.1 + golang.org/x/sync v0.18.0 gopkg.in/yaml.v3 v3.0.1 - k8s.io/api v0.34.2 - k8s.io/apiextensions-apiserver v0.34.2 - k8s.io/apimachinery v0.34.2 - k8s.io/apiserver v0.34.2 - k8s.io/client-go v0.34.2 - k8s.io/component-base v0.34.2 + k8s.io/api v0.35.1 + k8s.io/apiextensions-apiserver v0.35.1 + k8s.io/apimachinery v0.35.1 + k8s.io/apiserver v0.35.1 + k8s.io/client-go v0.35.1 + k8s.io/component-base v0.35.1 k8s.io/klog/v2 v2.130.1 - k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 + k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 sigs.k8s.io/randfill v1.0.0 sigs.k8s.io/structured-merge-diff/v6 v6.3.0 sigs.k8s.io/yaml v1.6.0 @@ -77,47 +77,46 @@ require ( github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect - github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect - github.com/prometheus/client_golang v1.22.0 // indirect - github.com/prometheus/client_model v0.6.1 // indirect - github.com/prometheus/common v0.62.0 // indirect - github.com/prometheus/procfs v0.15.1 // indirect + github.com/prometheus/client_golang v1.23.2 // indirect + github.com/prometheus/client_model v0.6.2 // indirect + github.com/prometheus/common v0.66.1 // indirect + github.com/prometheus/procfs v0.16.1 // indirect github.com/rivo/uniseg v0.2.0 // indirect github.com/stoewer/go-strcase v1.3.0 // indirect github.com/x448/float16 v0.8.4 // indirect - go.etcd.io/etcd/api/v3 v3.6.4 // indirect - go.etcd.io/etcd/client/pkg/v3 v3.6.4 // indirect - go.etcd.io/etcd/client/v3 v3.6.4 // indirect + go.etcd.io/etcd/api/v3 v3.6.5 // indirect + go.etcd.io/etcd/client/pkg/v3 v3.6.5 // indirect + go.etcd.io/etcd/client/v3 v3.6.5 // indirect go.opentelemetry.io/auto/sdk v1.1.0 // indirect go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 // indirect - go.opentelemetry.io/otel v1.35.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 // indirect + go.opentelemetry.io/otel v1.36.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.34.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.34.0 // indirect - go.opentelemetry.io/otel/metric v1.35.0 // indirect - go.opentelemetry.io/otel/sdk v1.34.0 // indirect - go.opentelemetry.io/otel/trace v1.35.0 // indirect + go.opentelemetry.io/otel/metric v1.36.0 // indirect + go.opentelemetry.io/otel/sdk v1.36.0 // indirect + go.opentelemetry.io/otel/trace v1.36.0 // indirect go.opentelemetry.io/proto/otlp v1.5.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - go.yaml.in/yaml/v2 v2.4.2 // indirect + go.yaml.in/yaml/v2 v2.4.3 // indirect go.yaml.in/yaml/v3 v3.0.4 // indirect - golang.org/x/crypto v0.38.0 // indirect + golang.org/x/crypto v0.45.0 // indirect golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 // indirect - golang.org/x/net v0.40.0 // indirect - golang.org/x/oauth2 v0.29.0 // indirect - golang.org/x/sys v0.33.0 // indirect - golang.org/x/term v0.32.0 // indirect - golang.org/x/text v0.25.0 // indirect + golang.org/x/net v0.47.0 // indirect + golang.org/x/oauth2 v0.30.0 // indirect + golang.org/x/sys v0.38.0 // indirect + golang.org/x/term v0.37.0 // indirect + golang.org/x/text v0.31.0 // indirect golang.org/x/time v0.11.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20250303144028-a0af3efb3deb // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20250303144028-a0af3efb3deb // indirect - google.golang.org/grpc v1.72.1 // indirect - google.golang.org/protobuf v1.36.5 // indirect - gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20250528174236-200df99c418a // indirect + google.golang.org/grpc v1.72.2 // indirect + google.golang.org/protobuf v1.36.8 // indirect + gopkg.in/evanphx/json-patch.v4 v4.13.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect - k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b // indirect + k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912 // indirect sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.2 // indirect - sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect + sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 // indirect ) diff --git a/staging/src/github.com/kcp-dev/sdk/go.sum b/staging/src/github.com/kcp-dev/sdk/go.sum index 7e54ec531fd..fbc7c70ece9 100644 --- a/staging/src/github.com/kcp-dev/sdk/go.sum +++ b/staging/src/github.com/kcp-dev/sdk/go.sum @@ -4,6 +4,8 @@ github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25 github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/MakeNowJust/heredoc v1.0.0 h1:cXCdzVdstXyiTqTvfqk9SDHpKNjxuom+DOlyEeQ4pzQ= github.com/MakeNowJust/heredoc v1.0.0/go.mod h1:mG5amYoWBHf8vpLOuehzbGGw0EHxpZZ6lCpQ4fNJ8LE= +github.com/Masterminds/semver/v3 v3.4.0 h1:Zog+i5UMtVoCU8oKka5P7i9q9HgrJeGzI9SA1Xbatp0= +github.com/Masterminds/semver/v3 v3.4.0/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM= github.com/NYTimes/gziphandler v1.1.1 h1:ZUDjpQae29j0ryrS0u/B8HZfJBtBQHjqw2rQ2cqUQ3I= github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c= github.com/antlr4-go/antlr/v4 v4.13.1 h1:SqQKkuVZ+zWkMMNkjy5FZe5mr5WURWnlpmOuzYWrPrQ= @@ -42,8 +44,8 @@ github.com/fsnotify/fsnotify v1.9.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8 github.com/fxamacker/cbor/v2 v2.9.0 h1:NpKPmjDBgUfBms6tr6JZkTHtfFGcMKsw3eGcmD/sapM= github.com/fxamacker/cbor/v2 v2.9.0/go.mod h1:vM4b+DJCtHn+zz7h3FFp/hDAI9WNWCsZj23V5ytsSxQ= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= +github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-logr/zapr v1.3.0 h1:XGdV8XW8zdwFiwOA2Dryh1gj2KRQyOOoNmBy4EplIcQ= @@ -72,8 +74,8 @@ github.com/google/gnostic-models v0.7.0/go.mod h1:whL5G0m6dmc5cPxKc5bdKdEN3UjI7O github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db h1:097atOisP2aRj7vFgYQBbFN4U4JNXUNYpxael3UzMyo= -github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= +github.com/google/pprof v0.0.0-20250403155104-27863c87afa6 h1:BHT72Gu3keYf3ZEu2J0b1vyeLSOYI8bm5wbJM/8yDe8= +github.com/google/pprof v0.0.0-20250403155104-27863c87afa6/go.mod h1:boTsfXsheKC2y+lKOCMpSfarhxDeIzfZG1jqGcPl3cA= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674 h1:JeSE6pjso5THxAzdVpqr6/geYxZytqFMBCOtn/ujyeo= @@ -124,37 +126,36 @@ github.com/muesli/reflow v0.3.0 h1:IFsN6K9NfGtjeggFP+68I4chLZV2yIKsXJFNZ+eWh6s= github.com/muesli/reflow v0.3.0/go.mod h1:pbwTDkVPibjO2kyvBQRBxTWEEGDGq0FlB1BIKtnHY/8= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/onsi/ginkgo/v2 v2.21.0 h1:7rg/4f3rB88pb5obDgNZrNHrQ4e6WpjonchcpuBRnZM= -github.com/onsi/ginkgo/v2 v2.21.0/go.mod h1:7Du3c42kxCUegi0IImZ1wUQzMBVecgIHjR1C+NkhLQo= -github.com/onsi/gomega v1.35.1 h1:Cwbd75ZBPxFSuZ6T+rN/WCb/gOc6YgFBXLlZLhC7Ds4= -github.com/onsi/gomega v1.35.1/go.mod h1:PvZbdDc8J6XJEpDK4HCuRBm8a6Fzp9/DmhC9C7yFlog= -github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= -github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/onsi/ginkgo/v2 v2.27.2 h1:LzwLj0b89qtIy6SSASkzlNvX6WktqurSHwkk2ipF/Ns= +github.com/onsi/ginkgo/v2 v2.27.2/go.mod h1:ArE1D/XhNXBXCBkKOLkbsb2c81dQHCRcF5zwn/ykDRo= +github.com/onsi/gomega v1.38.2 h1:eZCjf2xjZAqe+LeWvKb5weQ+NcPwX84kqJ0cZNxok2A= +github.com/onsi/gomega v1.38.2/go.mod h1:W2MJcYxRGV63b418Ai34Ud0hEdTVXq9NW9+Sx6uXf3k= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v1.22.0 h1:rb93p9lokFEsctTys46VnV1kLCDpVZ0a/Y92Vm0Zc6Q= -github.com/prometheus/client_golang v1.22.0/go.mod h1:R7ljNsLXhuQXYZYtw6GAE9AZg8Y7vEW5scdCXrWRXC0= -github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= -github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= -github.com/prometheus/common v0.62.0 h1:xasJaQlnWAeyHdUBeGjXmutelfJHWMRr+Fg4QszZ2Io= -github.com/prometheus/common v0.62.0/go.mod h1:vyBcEuLSvWos9B1+CyL7JZ2up+uFzXhkqml0W5zIY1I= -github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= -github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= +github.com/prometheus/client_golang v1.23.2 h1:Je96obch5RDVy3FDMndoUsjAhG5Edi49h0RJWRi/o0o= +github.com/prometheus/client_golang v1.23.2/go.mod h1:Tb1a6LWHB3/SPIzCoaDXI4I8UHKeFTEQ1YCr+0Gyqmg= +github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk= +github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= +github.com/prometheus/common v0.66.1 h1:h5E0h5/Y8niHc5DlaLlWLArTQI7tMrsfQjHV+d9ZoGs= +github.com/prometheus/common v0.66.1/go.mod h1:gcaUsgf3KfRSwHY4dIMXLPV0K/Wg1oZ8+SbZk/HH/dA= +github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg= +github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is= github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= -github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= -github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= +github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= +github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/soheilhy/cmux v0.1.5 h1:jjzc5WVemNEDTLwv9tlmemhC73tI08BNOIGwBOo10Js= github.com/soheilhy/cmux v0.1.5/go.mod h1:T7TcVDs9LWfQgPlPsdngu6I6QIoyIFZDDC6sNE1GqG0= -github.com/spf13/cobra v1.9.1 h1:CXSaggrXdbHK9CF+8ywj8Amf7PBRmPCOJugH954Nnlo= -github.com/spf13/cobra v1.9.1/go.mod h1:nDyEzZ8ogv936Cinf6g1RU9MRY64Ir93oCnqb9wxYW0= -github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o= -github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/cobra v1.10.0 h1:a5/WeUlSDCvV5a45ljW2ZFtV0bTDpkfSAj3uqB6Sc+0= +github.com/spf13/cobra v1.10.0/go.mod h1:9dhySC7dnTtEiqzmqfkLj47BslqLCUPMXjG2lj/NgoE= +github.com/spf13/pflag v1.0.8/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/pflag v1.0.9 h1:9exaQaMOCwffKiiiYk6/BndUBv+iRViNW+4lEMi0PvY= +github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stoewer/go-strcase v1.3.0 h1:g0eASXYtp+yvN9fK8sH94oCIk0fau9uV1/ZdJ0AVEzs= github.com/stoewer/go-strcase v1.3.0/go.mod h1:fAH5hQ5pehh+j3nZfvwdk2RgEgQjAoM8wodgtPmh1xo= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -167,8 +168,8 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= -github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= +github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= github.com/tmc/grpc-websocket-proxy v0.0.0-20220101234140-673ab2c3ae75 h1:6fotK7otjonDflCTK0BCfls4SPy3NcCVb5dqqmbRknE= github.com/tmc/grpc-websocket-proxy v0.0.0-20220101234140-673ab2c3ae75/go.mod h1:KO6IkyS8Y3j8OdNO85qEYBsRPuteD+YciPomcXdrMnk= github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= @@ -177,40 +178,40 @@ github.com/xiang90/probing v0.0.0-20221125231312-a49e3df8f510 h1:S2dVYn90KE98chq github.com/xiang90/probing v0.0.0-20221125231312-a49e3df8f510/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -go.etcd.io/bbolt v1.4.2 h1:IrUHp260R8c+zYx/Tm8QZr04CX+qWS5PGfPdevhdm1I= -go.etcd.io/bbolt v1.4.2/go.mod h1:Is8rSHO/b4f3XigBC0lL0+4FwAQv3HXEEIgFMuKHceM= -go.etcd.io/etcd/api/v3 v3.6.4 h1:7F6N7toCKcV72QmoUKa23yYLiiljMrT4xCeBL9BmXdo= -go.etcd.io/etcd/api/v3 v3.6.4/go.mod h1:eFhhvfR8Px1P6SEuLT600v+vrhdDTdcfMzmnxVXXSbk= -go.etcd.io/etcd/client/pkg/v3 v3.6.4 h1:9HBYrjppeOfFjBjaMTRxT3R7xT0GLK8EJMVC4xg6ok0= -go.etcd.io/etcd/client/pkg/v3 v3.6.4/go.mod h1:sbdzr2cl3HzVmxNw//PH7aLGVtY4QySjQFuaCgcRFAI= -go.etcd.io/etcd/client/v3 v3.6.4 h1:YOMrCfMhRzY8NgtzUsHl8hC2EBSnuqbR3dh84Uryl7A= -go.etcd.io/etcd/client/v3 v3.6.4/go.mod h1:jaNNHCyg2FdALyKWnd7hxZXZxZANb0+KGY+YQaEMISo= -go.etcd.io/etcd/pkg/v3 v3.6.4 h1:fy8bmXIec1Q35/jRZ0KOes8vuFxbvdN0aAFqmEfJZWA= -go.etcd.io/etcd/pkg/v3 v3.6.4/go.mod h1:kKcYWP8gHuBRcteyv6MXWSN0+bVMnfgqiHueIZnKMtE= -go.etcd.io/etcd/server/v3 v3.6.4 h1:LsCA7CzjVt+8WGrdsnh6RhC0XqCsLkBly3ve5rTxMAU= -go.etcd.io/etcd/server/v3 v3.6.4/go.mod h1:aYCL/h43yiONOv0QIR82kH/2xZ7m+IWYjzRmyQfnCAg= +go.etcd.io/bbolt v1.4.3 h1:dEadXpI6G79deX5prL3QRNP6JB8UxVkqo4UPnHaNXJo= +go.etcd.io/bbolt v1.4.3/go.mod h1:tKQlpPaYCVFctUIgFKFnAlvbmB3tpy1vkTnDWohtc0E= +go.etcd.io/etcd/api/v3 v3.6.5 h1:pMMc42276sgR1j1raO/Qv3QI9Af/AuyQUW6CBAWuntA= +go.etcd.io/etcd/api/v3 v3.6.5/go.mod h1:ob0/oWA/UQQlT1BmaEkWQzI0sJ1M0Et0mMpaABxguOQ= +go.etcd.io/etcd/client/pkg/v3 v3.6.5 h1:Duz9fAzIZFhYWgRjp/FgNq2gO1jId9Yae/rLn3RrBP8= +go.etcd.io/etcd/client/pkg/v3 v3.6.5/go.mod h1:8Wx3eGRPiy0qOFMZT/hfvdos+DjEaPxdIDiCDUv/FQk= +go.etcd.io/etcd/client/v3 v3.6.5 h1:yRwZNFBx/35VKHTcLDeO7XVLbCBFbPi+XV4OC3QJf2U= +go.etcd.io/etcd/client/v3 v3.6.5/go.mod h1:ZqwG/7TAFZ0BJ0jXRPoJjKQJtbFo/9NIY8uoFFKcCyo= +go.etcd.io/etcd/pkg/v3 v3.6.5 h1:byxWB4AqIKI4SBmquZUG1WGtvMfMaorXFoCcFbVeoxM= +go.etcd.io/etcd/pkg/v3 v3.6.5/go.mod h1:uqrXrzmMIJDEy5j00bCqhVLzR5jEJIwDp5wTlLwPGOU= +go.etcd.io/etcd/server/v3 v3.6.5 h1:4RbUb1Bd4y1WkBHmuF+cZII83JNQMuNXzyjwigQ06y0= +go.etcd.io/etcd/server/v3 v3.6.5/go.mod h1:PLuhyVXz8WWRhzXDsl3A3zv/+aK9e4A9lpQkqawIaH0= go.etcd.io/raft/v3 v3.6.0 h1:5NtvbDVYpnfZWcIHgGRk9DyzkBIXOi8j+DDp1IcnUWQ= go.etcd.io/raft/v3 v3.6.0/go.mod h1:nLvLevg6+xrVtHUmVaTcTz603gQPHfh7kUAwV6YpfGo= go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0 h1:x7wzEgXfnzJcHDwStJT+mxOz4etr2EcexjqhBvmoakw= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0/go.mod h1:rg+RlpR5dKwaS95IyyZqj5Wd4E13lk/msnTS0Xl9lJM= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 h1:yd02MEjBdJkG3uabWP9apV+OuWRIXGDuJEUJbOHmCFU= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0/go.mod h1:umTcuxiv1n/s/S6/c2AT/g2CQ7u5C59sHDNmfSwgz7Q= -go.opentelemetry.io/otel v1.35.0 h1:xKWKPxrxB6OtMCbmMY021CqC45J+3Onta9MqjhnusiQ= -go.opentelemetry.io/otel v1.35.0/go.mod h1:UEqy8Zp11hpkUrL73gSlELM0DupHoiq72dR+Zqel/+Y= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 h1:F7Jx+6hwnZ41NSFTO5q4LYDtJRXBf2PD0rNBkeB/lus= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0/go.mod h1:UHB22Z8QsdRDrnAtX4PntOl36ajSxcdUMt1sF7Y6E7Q= +go.opentelemetry.io/otel v1.36.0 h1:UumtzIklRBY6cI/lllNZlALOF5nNIzJVb16APdvgTXg= +go.opentelemetry.io/otel v1.36.0/go.mod h1:/TcFMXYjyRNh8khOAO9ybYkqaDBb/70aVwkNML4pP8E= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.34.0 h1:OeNbIYk/2C15ckl7glBlOBp5+WlYsOElzTNmiPW/x60= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.34.0/go.mod h1:7Bept48yIeqxP2OZ9/AqIpYS94h2or0aB4FypJTc8ZM= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.34.0 h1:tgJ0uaNS4c98WRNUEx5U3aDlrDOI5Rs+1Vifcw4DJ8U= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.34.0/go.mod h1:U7HYyW0zt/a9x5J1Kjs+r1f/d4ZHnYFclhYY2+YbeoE= -go.opentelemetry.io/otel/metric v1.35.0 h1:0znxYu2SNyuMSQT4Y9WDWej0VpcsxkuklLa4/siN90M= -go.opentelemetry.io/otel/metric v1.35.0/go.mod h1:nKVFgxBZ2fReX6IlyW28MgZojkoAkJGaE8CpgeAU3oE= -go.opentelemetry.io/otel/sdk v1.34.0 h1:95zS4k/2GOy069d321O8jWgYsW3MzVV+KuSPKp7Wr1A= -go.opentelemetry.io/otel/sdk v1.34.0/go.mod h1:0e/pNiaMAqaykJGKbi+tSjWfNNHMTxoC9qANsCzbyxU= -go.opentelemetry.io/otel/sdk/metric v1.34.0 h1:5CeK9ujjbFVL5c1PhLuStg1wxA7vQv7ce1EK0Gyvahk= -go.opentelemetry.io/otel/sdk/metric v1.34.0/go.mod h1:jQ/r8Ze28zRKoNRdkjCZxfs6YvBTG1+YIqyFVFYec5w= -go.opentelemetry.io/otel/trace v1.35.0 h1:dPpEfJu1sDIqruz7BHFG3c7528f6ddfSWfFDVt/xgMs= -go.opentelemetry.io/otel/trace v1.35.0/go.mod h1:WUk7DtFp1Aw2MkvqGdwiXYDZZNvA/1J8o6xRXLrIkyc= +go.opentelemetry.io/otel/metric v1.36.0 h1:MoWPKVhQvJ+eeXWHFBOPoBOi20jh6Iq2CcCREuTYufE= +go.opentelemetry.io/otel/metric v1.36.0/go.mod h1:zC7Ks+yeyJt4xig9DEw9kuUFe5C3zLbVjV2PzT6qzbs= +go.opentelemetry.io/otel/sdk v1.36.0 h1:b6SYIuLRs88ztox4EyrvRti80uXIFy+Sqzoh9kFULbs= +go.opentelemetry.io/otel/sdk v1.36.0/go.mod h1:+lC+mTgD+MUWfjJubi2vvXWcVxyr9rmlshZni72pXeY= +go.opentelemetry.io/otel/sdk/metric v1.36.0 h1:r0ntwwGosWGaa0CrSt8cuNuTcccMXERFwHX4dThiPis= +go.opentelemetry.io/otel/sdk/metric v1.36.0/go.mod h1:qTNOhFDfKRwX0yXOqJYegL5WRaW376QbB7P4Pb0qva4= +go.opentelemetry.io/otel/trace v1.36.0 h1:ahxWNuqZjpdiFAyrIoQ4GIiAIhxAunQR6MUoKrsNd4w= +go.opentelemetry.io/otel/trace v1.36.0/go.mod h1:gQ+OnDZzrybY4k4seLzPAWNwVBBVlF2szhehOBB/tGA= go.opentelemetry.io/proto/otlp v1.5.0 h1:xJvq7gMzB31/d406fB8U5CBdyQGw4P399D1aQWU/3i4= go.opentelemetry.io/proto/otlp v1.5.0/go.mod h1:keN8WnHxOy8PG0rQZjJJ5A2ebUoafqWp0eVQ4yIXvJ4= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= @@ -219,70 +220,72 @@ 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/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= -go.yaml.in/yaml/v2 v2.4.2 h1:DzmwEr2rDGHl7lsFgAHxmNz/1NlQ7xLIrlN2h5d1eGI= -go.yaml.in/yaml/v2 v2.4.2/go.mod h1:081UH+NErpNdqlCXm3TtEran0rJZGxAYx9hb/ELlsPU= +go.yaml.in/yaml/v2 v2.4.3 h1:6gvOSjQoTB3vt1l+CU+tSyi/HOjfOjRLJ4YwYZGwRO0= +go.yaml.in/yaml/v2 v2.4.3/go.mod h1:zSxWcmIDjOzPXpjlTTbAsKokqkDNAVtZO0WOMiT90s8= go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.38.0 h1:jt+WWG8IZlBnVbomuhg2Mdq0+BBQaHbtqHEFEigjUV8= -golang.org/x/crypto v0.38.0/go.mod h1:MvrbAqul58NNYPKnOra203SB9vpuZW0e+RRZV+Ggqjw= +golang.org/x/crypto v0.45.0 h1:jMBrvKuj23MTlT0bQEOBcAE0mjg8mK9RXFhRH6nyF3Q= +golang.org/x/crypto v0.45.0/go.mod h1:XTGrrkGJve7CYK7J8PEww4aY7gM3qMCElcJQ8n8JdX4= golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 h1:R84qjqJb5nVJMxqWYb3np9L5ZsaDtB+a39EqjV0JSUM= golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0/go.mod h1:S9Xr4PYopiDyqSyp5NjCrhFrqg6A5zA2E/iPHPhqnS8= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.29.0 h1:HV8lRxZC4l2cr3Zq1LvtOsi/ThTgWnUk/y64QSs8GwA= +golang.org/x/mod v0.29.0/go.mod h1:NyhrlYXJ2H4eJiRy/WDBO6HMqZQ6q9nk4JzS3NuCK+w= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.40.0 h1:79Xs7wF06Gbdcg4kdCCIQArK11Z1hr5POQ6+fIYHNuY= -golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds= -golang.org/x/oauth2 v0.29.0 h1:WdYw2tdTK1S8olAzWHdgeqfy+Mtm9XNhv/xJsY65d98= -golang.org/x/oauth2 v0.29.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8= +golang.org/x/net v0.47.0 h1:Mx+4dIFzqraBXUugkia1OOvlD6LemFo1ALMHjrXDOhY= +golang.org/x/net v0.47.0/go.mod h1:/jNxtkgq5yWUGYkaZGqo27cfGZ1c5Nen03aYrrKpVRU= +golang.org/x/oauth2 v0.30.0 h1:dnDm7JmhM45NNpd8FDDeLhK6FwqbOf4MLCM9zb1BOHI= +golang.org/x/oauth2 v0.30.0/go.mod h1:B++QgG3ZKulg6sRPGD/mqlHQs5rB3Ml9erfeDY7xKlU= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.14.0 h1:woo0S4Yywslg6hp4eUFjTVOyKt0RookbpAHG4c1HmhQ= -golang.org/x/sync v0.14.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/sync v0.18.0 h1:kr88TuHDroi+UVf+0hZnirlk8o8T+4MrK6mr60WkH/I= +golang.org/x/sync v0.18.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw= -golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= -golang.org/x/term v0.32.0 h1:DR4lr0TjUs3epypdhTOkMmuF5CDFJ/8pOnbzMZPQ7bg= -golang.org/x/term v0.32.0/go.mod h1:uZG1FhGx848Sqfsq4/DlJr3xGGsYMu/L5GW4abiaEPQ= +golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc= +golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/term v0.37.0 h1:8EGAD0qCmHYZg6J17DvsMy9/wJ7/D/4pV/wfnld5lTU= +golang.org/x/term v0.37.0/go.mod h1:5pB4lxRNYYVZuTLmy8oR2BH8dflOR+IbTYFD8fi3254= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4= -golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA= +golang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM= +golang.org/x/text v0.31.0/go.mod h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM= golang.org/x/time v0.11.0 h1:/bpjEDfN9tkoN/ryeYHnv5hcMlc8ncjMcM4XBk5NWV0= golang.org/x/time v0.11.0/go.mod h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.33.0 h1:4qz2S3zmRxbGIhDIAgjxvFutSvH5EfnsYrRBj0UI0bc= -golang.org/x/tools v0.33.0/go.mod h1:CIJMaWEY88juyUfo7UbgPqbC8rU2OqfAV1h2Qp0oMYI= +golang.org/x/tools v0.38.0 h1:Hx2Xv8hISq8Lm16jvBZ2VQf+RLmbd7wVUsALibYI/IQ= +golang.org/x/tools v0.38.0/go.mod h1:yEsQ/d/YK8cjh0L6rZlY8tgtlKiBNTL14pGDJPJpYQs= 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= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/genproto/googleapis/api v0.0.0-20250303144028-a0af3efb3deb h1:p31xT4yrYrSM/G4Sn2+TNUkVhFCbG9y8itM2S6Th950= google.golang.org/genproto/googleapis/api v0.0.0-20250303144028-a0af3efb3deb/go.mod h1:jbe3Bkdp+Dh2IrslsFCklNhweNTBgSYanP1UXhJDhKg= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250303144028-a0af3efb3deb h1:TLPQVbx1GJ8VKZxz52VAxl1EBgKXXbTiU9Fc5fZeLn4= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250303144028-a0af3efb3deb/go.mod h1:LuRYeWDFV6WOn90g357N17oMCaxpgCnbi/44qJvDn2I= -google.golang.org/grpc v1.72.1 h1:HR03wO6eyZ7lknl75XlxABNVLLFc2PAb6mHlYh756mA= -google.golang.org/grpc v1.72.1/go.mod h1:wH5Aktxcg25y1I3w7H69nHfXdOG3UiadoBtjh3izSDM= -google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM= -google.golang.org/protobuf v1.36.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250528174236-200df99c418a h1:v2PbRU4K3llS09c7zodFpNePeamkAwG3mPrAery9VeE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250528174236-200df99c418a/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A= +google.golang.org/grpc v1.72.2 h1:TdbGzwb82ty4OusHWepvFWGLgIbNo1/SUynEN0ssqv8= +google.golang.org/grpc v1.72.2/go.mod h1:wH5Aktxcg25y1I3w7H69nHfXdOG3UiadoBtjh3izSDM= +google.golang.org/protobuf v1.36.8 h1:xHScyCOEuuwZEc6UtSOvPbAT4zRh0xcNRYekJwfqyMc= +google.golang.org/protobuf v1.36.8/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/evanphx/json-patch.v4 v4.12.0 h1:n6jtcsulIzXPJaxegRbvFNNrZDjbij7ny3gmSPG+6V4= -gopkg.in/evanphx/json-patch.v4 v4.12.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M= +gopkg.in/evanphx/json-patch.v4 v4.13.0 h1:czT3CmqEaQ1aanPc5SdlgQrrEIb8w/wwCvWWnfEbYzo= +gopkg.in/evanphx/json-patch.v4 v4.13.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/natefinch/lumberjack.v2 v2.2.1 h1:bBRl1b0OH9s/DuPhuXpNl+VtCaJXFZ5/uEFST95x9zc= @@ -290,30 +293,30 @@ gopkg.in/natefinch/lumberjack.v2 v2.2.1/go.mod h1:YD8tP3GAjkrDg1eZH7EGmyESg/lsYs gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -k8s.io/api v0.34.2 h1:fsSUNZhV+bnL6Aqrp6O7lMTy6o5x2C4XLjnh//8SLYY= -k8s.io/api v0.34.2/go.mod h1:MMBPaWlED2a8w4RSeanD76f7opUoypY8TFYkSM+3XHw= -k8s.io/apiextensions-apiserver v0.34.2 h1:WStKftnGeoKP4AZRz/BaAAEJvYp4mlZGN0UCv+uvsqo= -k8s.io/apiextensions-apiserver v0.34.2/go.mod h1:398CJrsgXF1wytdaanynDpJ67zG4Xq7yj91GrmYN2SE= -k8s.io/apimachinery v0.34.2 h1:zQ12Uk3eMHPxrsbUJgNF8bTauTVR2WgqJsTmwTE/NW4= -k8s.io/apimachinery v0.34.2/go.mod h1:/GwIlEcWuTX9zKIg2mbw0LRFIsXwrfoVxn+ef0X13lw= -k8s.io/apiserver v0.34.2 h1:2/yu8suwkmES7IzwlehAovo8dDE07cFRC7KMDb1+MAE= -k8s.io/apiserver v0.34.2/go.mod h1:gqJQy2yDOB50R3JUReHSFr+cwJnL8G1dzTA0YLEqAPI= -k8s.io/client-go v0.34.2 h1:Co6XiknN+uUZqiddlfAjT68184/37PS4QAzYvQvDR8M= -k8s.io/client-go v0.34.2/go.mod h1:2VYDl1XXJsdcAxw7BenFslRQX28Dxz91U9MWKjX97fE= -k8s.io/component-base v0.34.2 h1:HQRqK9x2sSAsd8+R4xxRirlTjowsg6fWCPwWYeSvogQ= -k8s.io/component-base v0.34.2/go.mod h1:9xw2FHJavUHBFpiGkZoKuYZ5pdtLKe97DEByaA+hHbM= +k8s.io/api v0.35.1 h1:0PO/1FhlK/EQNVK5+txc4FuhQibV25VLSdLMmGpDE/Q= +k8s.io/api v0.35.1/go.mod h1:28uR9xlXWml9eT0uaGo6y71xK86JBELShLy4wR1XtxM= +k8s.io/apiextensions-apiserver v0.35.1 h1:p5vvALkknlOcAqARwjS20kJffgzHqwyQRM8vHLwgU7w= +k8s.io/apiextensions-apiserver v0.35.1/go.mod h1:2CN4fe1GZ3HMe4wBr25qXyJnJyZaquy4nNlNmb3R7AQ= +k8s.io/apimachinery v0.35.1 h1:yxO6gV555P1YV0SANtnTjXYfiivaTPvCTKX6w6qdDsU= +k8s.io/apimachinery v0.35.1/go.mod h1:jQCgFZFR1F4Ik7hvr2g84RTJSZegBc8yHgFWKn//hns= +k8s.io/apiserver v0.35.1 h1:potxdhhTL4i6AYAa2QCwtlhtB1eCdWQFvJV6fXgJzxs= +k8s.io/apiserver v0.35.1/go.mod h1:BiL6Dd3A2I/0lBnteXfWmCFobHM39vt5+hJQd7Lbpi4= +k8s.io/client-go v0.35.1 h1:+eSfZHwuo/I19PaSxqumjqZ9l5XiTEKbIaJ+j1wLcLM= +k8s.io/client-go v0.35.1/go.mod h1:1p1KxDt3a0ruRfc/pG4qT/3oHmUj1AhSHEcxNSGg+OA= +k8s.io/component-base v0.35.1 h1:XgvpRf4srp037QWfGBLFsYMUQJkE5yMa94UsJU7pmcE= +k8s.io/component-base v0.35.1/go.mod h1:HI/6jXlwkiOL5zL9bqA3en1Ygv60F03oEpnuU1G56Bs= k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= -k8s.io/kms v0.34.2 h1:91rj4MDZLyIT9KxG8J5/CcMH666Z88CF/xJQeuPfJc8= -k8s.io/kms v0.34.2/go.mod h1:s1CFkLG7w9eaTYvctOxosx88fl4spqmixnNpys0JAtM= -k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b h1:MloQ9/bdJyIu9lb1PzujOPolHyvO06MXG5TUIj2mNAA= -k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b/go.mod h1:UZ2yyWbFTpuhSbFhv24aGNOdoRdJZgsIObGBUaYVsts= -k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 h1:hwvWFiBzdWw1FhfY1FooPn3kzWuJ8tmbZBHi4zVsl1Y= -k8s.io/utils v0.0.0-20250604170112-4c0f3b243397/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +k8s.io/kms v0.35.1 h1:kjv2r9g1mY7uL+l1RhyAZvWVZIA/4qIfBHXyjFGLRhU= +k8s.io/kms v0.35.1/go.mod h1:VT+4ekZAdrZDMgShK37vvlyHUVhwI9t/9tvh0AyCWmQ= +k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912 h1:Y3gxNAuB0OBLImH611+UDZcmKS3g6CthxToOb37KgwE= +k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912/go.mod h1:kdmbQkyfwUagLfXIad1y2TdrjPFWp2Q89B3qkRwf/pQ= +k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 h1:SjGebBtkBqHFOli+05xYbK8YF1Dzkbzn+gDM4X9T4Ck= +k8s.io/utils v0.0.0-20251002143259-bc988d571ff4/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.2 h1:jpcvIRr3GLoUoEKRkHKSmGjxb6lWwrBlJsXc+eUYQHM= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.2/go.mod h1:Ve9uj1L+deCXFrPOk1LpFXqTg7LCFzFso6PA48q/XZw= -sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 h1:gBQPwqORJ8d8/YNZWEjoZs7npUVDpVXUUOFfW6CgAqE= -sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg= +sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 h1:IpInykpT6ceI+QxKBbEflcR5EXP7sU1kvOlxwZh5txg= +sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg= sigs.k8s.io/randfill v1.0.0 h1:JfjMILfT8A6RbawdsK2JXGBR5AQVfd+9TbzrlneTyrU= sigs.k8s.io/randfill v1.0.0/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY= sigs.k8s.io/structured-merge-diff/v6 v6.3.0 h1:jTijUJbW353oVOd9oTlifJqOGEkUw2jB/fXCbTiQEco= diff --git a/test/e2e/authorizer/authorizer_test.go b/test/e2e/authorizer/authorizer_test.go index 19d382e6ca6..bd0efc307c1 100644 --- a/test/e2e/authorizer/authorizer_test.go +++ b/test/e2e/authorizer/authorizer_test.go @@ -368,8 +368,14 @@ func TestAuthorizer(t *testing.T) { } t.Logf("checking if review response includes permissions granted by system:admin ClusterRole bound in %s", ws) - return assert.Contains(t, review.Status.ResourceRules, authorizationv1.ResourceRule{Verbs: []string{"*"}, APIGroups: []string{""}, Resources: []string{"namespaces"}}), "returned resource rules do not contain '*' verb for namespaces." - }, wait.ForeverTestTimeout, time.Millisecond*100, "SelfSubjectRulesReview response in %s should contain resource rule for namespaces", org2.Join("workspace1")) + expected := authorizationv1.ResourceRule{Verbs: []string{"*"}, APIGroups: []string{""}, Resources: []string{"namespaces"}} + for _, rule := range review.Status.ResourceRules { + if assert.ObjectsAreEqual(expected, rule) { + return true, "" + } + } + return false, fmt.Sprintf("returned resource rules %v do not contain '*' verb for namespaces", review.Status.ResourceRules) + }, wait.ForeverTestTimeout, time.Millisecond*100, "SelfSubjectRulesReview response in %s should contain resource rule for namespaces", ws) }}, } diff --git a/test/e2e/fixtures/wildwest/client/applyconfiguration/meta/v1/condition.go b/test/e2e/fixtures/wildwest/client/applyconfiguration/meta/v1/condition.go index 9fd6ea18418..ee7a8c81ce9 100644 --- a/test/e2e/fixtures/wildwest/client/applyconfiguration/meta/v1/condition.go +++ b/test/e2e/fixtures/wildwest/client/applyconfiguration/meta/v1/condition.go @@ -24,13 +24,47 @@ import ( // ConditionApplyConfiguration represents a declarative configuration of the Condition type for use // with apply. +// +// Condition contains details for one aspect of the current state of this API Resource. +// --- +// This struct is intended for direct use as an array at the field path .status.conditions. For example, +// +// type FooStatus struct{ +// // Represents the observations of a foo's current state. +// // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" +// // +patchMergeKey=type +// // +patchStrategy=merge +// // +listType=map +// // +listMapKey=type +// Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` +// +// // other fields +// } type ConditionApplyConfiguration struct { - Type *string `json:"type,omitempty"` - Status *metav1.ConditionStatus `json:"status,omitempty"` - ObservedGeneration *int64 `json:"observedGeneration,omitempty"` - LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty"` - Reason *string `json:"reason,omitempty"` - Message *string `json:"message,omitempty"` + // type of condition in CamelCase or in foo.example.com/CamelCase. + // --- + // Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be + // useful (see .node.status.conditions), the ability to deconflict is important. + // The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + Type *string `json:"type,omitempty"` + // status of the condition, one of True, False, Unknown. + Status *metav1.ConditionStatus `json:"status,omitempty"` + // observedGeneration represents the .metadata.generation that the condition was set based upon. + // For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date + // with respect to the current state of the instance. + ObservedGeneration *int64 `json:"observedGeneration,omitempty"` + // lastTransitionTime is the last time the condition transitioned from one status to another. + // This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty"` + // reason contains a programmatic identifier indicating the reason for the condition's last transition. + // Producers of specific condition types may define expected values and meanings for this field, + // and whether the values are considered a guaranteed API. + // The value should be a CamelCase string. + // This field may not be empty. + Reason *string `json:"reason,omitempty"` + // message is a human readable message indicating details about the transition. + // This may be an empty string. + Message *string `json:"message,omitempty"` } // ConditionApplyConfiguration constructs a declarative configuration of the Condition type for use with diff --git a/test/e2e/fixtures/wildwest/client/applyconfiguration/meta/v1/deleteoptions.go b/test/e2e/fixtures/wildwest/client/applyconfiguration/meta/v1/deleteoptions.go index e113de26a05..97370f00c8f 100644 --- a/test/e2e/fixtures/wildwest/client/applyconfiguration/meta/v1/deleteoptions.go +++ b/test/e2e/fixtures/wildwest/client/applyconfiguration/meta/v1/deleteoptions.go @@ -24,14 +24,51 @@ import ( // DeleteOptionsApplyConfiguration represents a declarative configuration of the DeleteOptions type for use // with apply. +// +// DeleteOptions may be provided when deleting an API object. type DeleteOptionsApplyConfiguration struct { - TypeMetaApplyConfiguration `json:",inline"` - GracePeriodSeconds *int64 `json:"gracePeriodSeconds,omitempty"` - Preconditions *metav1.Preconditions `json:"preconditions,omitempty"` - OrphanDependents *bool `json:"orphanDependents,omitempty"` - PropagationPolicy *metav1.DeletionPropagation `json:"propagationPolicy,omitempty"` - DryRun []string `json:"dryRun,omitempty"` - IgnoreStoreReadErrorWithClusterBreakingPotential *bool `json:"ignoreStoreReadErrorWithClusterBreakingPotential,omitempty"` + TypeMetaApplyConfiguration `json:",inline"` + // The duration in seconds before the object should be deleted. Value must be non-negative integer. + // The value zero indicates delete immediately. If this value is nil, the default grace period for the + // specified type will be used. + // Defaults to a per object value if not specified. zero means delete immediately. + GracePeriodSeconds *int64 `json:"gracePeriodSeconds,omitempty"` + // Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be + // returned. + Preconditions *metav1.Preconditions `json:"preconditions,omitempty"` + // Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. + // Should the dependent objects be orphaned. If true/false, the "orphan" + // finalizer will be added to/removed from the object's finalizers list. + // Either this field or PropagationPolicy may be set, but not both. + OrphanDependents *bool `json:"orphanDependents,omitempty"` + // Whether and how garbage collection will be performed. + // Either this field or OrphanDependents may be set, but not both. + // The default policy is decided by the existing finalizer set in the + // metadata.finalizers and the resource-specific default policy. + // Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - + // allow the garbage collector to delete the dependents in the background; + // 'Foreground' - a cascading policy that deletes all dependents in the + // foreground. + PropagationPolicy *metav1.DeletionPropagation `json:"propagationPolicy,omitempty"` + // When present, indicates that modifications should not be + // persisted. An invalid or unrecognized dryRun directive will + // result in an error response and no further processing of the + // request. Valid values are: + // - All: all dry run stages will be processed + DryRun []string `json:"dryRun,omitempty"` + // if set to true, it will trigger an unsafe deletion of the resource in + // case the normal deletion flow fails with a corrupt object error. + // A resource is considered corrupt if it can not be retrieved from + // the underlying storage successfully because of a) its data can + // not be transformed e.g. decryption failure, or b) it fails + // to decode into an object. + // NOTE: unsafe deletion ignores finalizer constraints, skips + // precondition checks, and removes the object from the storage. + // WARNING: This may potentially break the cluster if the workload + // associated with the resource being unsafe-deleted relies on normal + // deletion flow. Use only if you REALLY know what you are doing. + // The default value is false, and the user must opt in to enable it + IgnoreStoreReadErrorWithClusterBreakingPotential *bool `json:"ignoreStoreReadErrorWithClusterBreakingPotential,omitempty"` } // DeleteOptionsApplyConfiguration constructs a declarative configuration of the DeleteOptions type for use with @@ -42,6 +79,7 @@ func DeleteOptions() *DeleteOptionsApplyConfiguration { b.WithAPIVersion("meta.k8s.io/v1") return b } + func (b DeleteOptionsApplyConfiguration) IsApplyConfiguration() {} // WithKind sets the Kind field in the declarative configuration to the given value diff --git a/test/e2e/fixtures/wildwest/client/applyconfiguration/meta/v1/labelselector.go b/test/e2e/fixtures/wildwest/client/applyconfiguration/meta/v1/labelselector.go index 8faaf655597..6d9a50a68a5 100644 --- a/test/e2e/fixtures/wildwest/client/applyconfiguration/meta/v1/labelselector.go +++ b/test/e2e/fixtures/wildwest/client/applyconfiguration/meta/v1/labelselector.go @@ -24,8 +24,21 @@ import ( // LabelSelectorApplyConfiguration represents a declarative configuration of the LabelSelector type for use // with apply. +// +// Note: +// There are two different styles of label selectors used in versioned types: +// an older style which is represented as just a string in versioned types, and a +// newer style that is structured. LabelSelector is an internal representation for the +// latter style. +// A label selector is a label query over a set of resources. The result of matchLabels and +// matchExpressions are ANDed. An empty label selector matches all objects. A null +// label selector matches no objects. type LabelSelectorApplyConfiguration struct { - MatchLabels map[string]string `json:"matchLabels,omitempty"` + // matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + // map is equivalent to an element of matchExpressions, whose key field is "key", the + // operator is "In", and the values array contains only "value". The requirements are ANDed. + MatchLabels map[string]string `json:"matchLabels,omitempty"` + // matchExpressions is a list of label selector requirements. The requirements are ANDed. MatchExpressions []metav1.LabelSelectorRequirementApplyConfiguration `json:"matchExpressions,omitempty"` } diff --git a/test/e2e/fixtures/wildwest/client/applyconfiguration/meta/v1/labelselectorrequirement.go b/test/e2e/fixtures/wildwest/client/applyconfiguration/meta/v1/labelselectorrequirement.go index 5c80e2a800c..88234e77830 100644 --- a/test/e2e/fixtures/wildwest/client/applyconfiguration/meta/v1/labelselectorrequirement.go +++ b/test/e2e/fixtures/wildwest/client/applyconfiguration/meta/v1/labelselectorrequirement.go @@ -24,10 +24,20 @@ import ( // LabelSelectorRequirementApplyConfiguration represents a declarative configuration of the LabelSelectorRequirement type for use // with apply. +// +// A label selector requirement is a selector that contains values, a key, and an operator that +// relates the key and values. type LabelSelectorRequirementApplyConfiguration struct { - Key *string `json:"key,omitempty"` + // key is the label key that the selector applies to. + Key *string `json:"key,omitempty"` + // operator represents a key's relationship to a set of values. + // Valid operators are In, NotIn, Exists and DoesNotExist. Operator *metav1.LabelSelectorOperator `json:"operator,omitempty"` - Values []string `json:"values,omitempty"` + // values is an array of string values. If the operator is In or NotIn, + // the values array must be non-empty. If the operator is Exists or DoesNotExist, + // the values array must be empty. This array is replaced during a strategic + // merge patch. + Values []string `json:"values,omitempty"` } // LabelSelectorRequirementApplyConfiguration constructs a declarative configuration of the LabelSelectorRequirement type for use with diff --git a/test/e2e/fixtures/wildwest/client/applyconfiguration/meta/v1/managedfieldsentry.go b/test/e2e/fixtures/wildwest/client/applyconfiguration/meta/v1/managedfieldsentry.go index 26e6dbdb472..a0aae6623d6 100644 --- a/test/e2e/fixtures/wildwest/client/applyconfiguration/meta/v1/managedfieldsentry.go +++ b/test/e2e/fixtures/wildwest/client/applyconfiguration/meta/v1/managedfieldsentry.go @@ -24,14 +24,39 @@ import ( // ManagedFieldsEntryApplyConfiguration represents a declarative configuration of the ManagedFieldsEntry type for use // with apply. +// +// ManagedFieldsEntry is a workflow-id, a FieldSet and the group version of the resource +// that the fieldset applies to. type ManagedFieldsEntryApplyConfiguration struct { - Manager *string `json:"manager,omitempty"` - Operation *metav1.ManagedFieldsOperationType `json:"operation,omitempty"` - APIVersion *string `json:"apiVersion,omitempty"` - Time *metav1.Time `json:"time,omitempty"` - FieldsType *string `json:"fieldsType,omitempty"` - FieldsV1 *metav1.FieldsV1 `json:"fieldsV1,omitempty"` - Subresource *string `json:"subresource,omitempty"` + // Manager is an identifier of the workflow managing these fields. + Manager *string `json:"manager,omitempty"` + // Operation is the type of operation which lead to this ManagedFieldsEntry being created. + // The only valid values for this field are 'Apply' and 'Update'. + Operation *metav1.ManagedFieldsOperationType `json:"operation,omitempty"` + // APIVersion defines the version of this resource that this field set + // applies to. The format is "group/version" just like the top-level + // APIVersion field. It is necessary to track the version of a field + // set because it cannot be automatically converted. + APIVersion *string `json:"apiVersion,omitempty"` + // Time is the timestamp of when the ManagedFields entry was added. The + // timestamp will also be updated if a field is added, the manager + // changes any of the owned fields value or removes a field. The + // timestamp does not update when a field is removed from the entry + // because another manager took it over. + Time *metav1.Time `json:"time,omitempty"` + // FieldsType is the discriminator for the different fields format and version. + // There is currently only one possible value: "FieldsV1" + FieldsType *string `json:"fieldsType,omitempty"` + // FieldsV1 holds the first JSON version format as described in the "FieldsV1" type. + FieldsV1 *metav1.FieldsV1 `json:"fieldsV1,omitempty"` + // Subresource is the name of the subresource used to update that object, or + // empty string if the object was updated through the main resource. The + // value of this field is used to distinguish between managers, even if they + // share the same name. For example, a status update will be distinct from a + // regular update using the same manager name. + // Note that the APIVersion field is not related to the Subresource field and + // it always corresponds to the version of the main resource. + Subresource *string `json:"subresource,omitempty"` } // ManagedFieldsEntryApplyConfiguration constructs a declarative configuration of the ManagedFieldsEntry type for use with diff --git a/test/e2e/fixtures/wildwest/client/applyconfiguration/meta/v1/objectmeta.go b/test/e2e/fixtures/wildwest/client/applyconfiguration/meta/v1/objectmeta.go index 3d89abfc54e..98d86b70051 100644 --- a/test/e2e/fixtures/wildwest/client/applyconfiguration/meta/v1/objectmeta.go +++ b/test/e2e/fixtures/wildwest/client/applyconfiguration/meta/v1/objectmeta.go @@ -25,20 +25,123 @@ import ( // ObjectMetaApplyConfiguration represents a declarative configuration of the ObjectMeta type for use // with apply. +// +// ObjectMeta is metadata that all persisted resources must have, which includes all objects +// users must create. type ObjectMetaApplyConfiguration struct { - Name *string `json:"name,omitempty"` - GenerateName *string `json:"generateName,omitempty"` - Namespace *string `json:"namespace,omitempty"` - UID *types.UID `json:"uid,omitempty"` - ResourceVersion *string `json:"resourceVersion,omitempty"` - Generation *int64 `json:"generation,omitempty"` - CreationTimestamp *metav1.Time `json:"creationTimestamp,omitempty"` - DeletionTimestamp *metav1.Time `json:"deletionTimestamp,omitempty"` - DeletionGracePeriodSeconds *int64 `json:"deletionGracePeriodSeconds,omitempty"` - Labels map[string]string `json:"labels,omitempty"` - Annotations map[string]string `json:"annotations,omitempty"` - OwnerReferences []OwnerReferenceApplyConfiguration `json:"ownerReferences,omitempty"` - Finalizers []string `json:"finalizers,omitempty"` + // Name must be unique within a namespace. Is required when creating resources, although + // some resources may allow a client to request the generation of an appropriate name + // automatically. Name is primarily intended for creation idempotence and configuration + // definition. + // Cannot be updated. + // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names + Name *string `json:"name,omitempty"` + // GenerateName is an optional prefix, used by the server, to generate a unique + // name ONLY IF the Name field has not been provided. + // If this field is used, the name returned to the client will be different + // than the name passed. This value will also be combined with a unique suffix. + // The provided value has the same validation rules as the Name field, + // and may be truncated by the length of the suffix required to make the value + // unique on the server. + // + // If this field is specified and the generated name exists, the server will return a 409. + // + // Applied only if Name is not specified. + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency + GenerateName *string `json:"generateName,omitempty"` + // Namespace defines the space within which each name must be unique. An empty namespace is + // equivalent to the "default" namespace, but "default" is the canonical representation. + // Not all objects are required to be scoped to a namespace - the value of this field for + // those objects will be empty. + // + // Must be a DNS_LABEL. + // Cannot be updated. + // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces + Namespace *string `json:"namespace,omitempty"` + // UID is the unique in time and space value for this object. It is typically generated by + // the server on successful creation of a resource and is not allowed to change on PUT + // operations. + // + // Populated by the system. + // Read-only. + // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids + UID *types.UID `json:"uid,omitempty"` + // An opaque value that represents the internal version of this object that can + // be used by clients to determine when objects have changed. May be used for optimistic + // concurrency, change detection, and the watch operation on a resource or set of resources. + // Clients must treat these values as opaque and passed unmodified back to the server. + // They may only be valid for a particular resource or set of resources. + // + // Populated by the system. + // Read-only. + // Value must be treated as opaque by clients and . + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency + ResourceVersion *string `json:"resourceVersion,omitempty"` + // A sequence number representing a specific generation of the desired state. + // Populated by the system. Read-only. + Generation *int64 `json:"generation,omitempty"` + // CreationTimestamp is a timestamp representing the server time when this object was + // created. It is not guaranteed to be set in happens-before order across separate operations. + // Clients may not set this value. It is represented in RFC3339 form and is in UTC. + // + // Populated by the system. + // Read-only. + // Null for lists. + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + CreationTimestamp *metav1.Time `json:"creationTimestamp,omitempty"` + // DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This + // field is set by the server when a graceful deletion is requested by the user, and is not + // directly settable by a client. The resource is expected to be deleted (no longer visible + // from resource lists, and not reachable by name) after the time in this field, once the + // finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. + // Once the deletionTimestamp is set, this value may not be unset or be set further into the + // future, although it may be shortened or the resource may be deleted prior to this time. + // For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react + // by sending a graceful termination signal to the containers in the pod. After that 30 seconds, + // the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, + // remove the pod from the API. In the presence of network partitions, this object may still + // exist after this timestamp, until an administrator or automated process can determine the + // resource is fully terminated. + // If not set, graceful deletion of the object has not been requested. + // + // Populated by the system when a graceful deletion is requested. + // Read-only. + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + DeletionTimestamp *metav1.Time `json:"deletionTimestamp,omitempty"` + // Number of seconds allowed for this object to gracefully terminate before + // it will be removed from the system. Only set when deletionTimestamp is also set. + // May only be shortened. + // Read-only. + DeletionGracePeriodSeconds *int64 `json:"deletionGracePeriodSeconds,omitempty"` + // Map of string keys and values that can be used to organize and categorize + // (scope and select) objects. May match selectors of replication controllers + // and services. + // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels + Labels map[string]string `json:"labels,omitempty"` + // Annotations is an unstructured key value map stored with a resource that may be + // set by external tools to store and retrieve arbitrary metadata. They are not + // queryable and should be preserved when modifying objects. + // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + Annotations map[string]string `json:"annotations,omitempty"` + // List of objects depended by this object. If ALL objects in the list have + // been deleted, this object will be garbage collected. If this object is managed by a controller, + // then an entry in this list will point to this controller, with the controller field set to true. + // There cannot be more than one managing controller. + OwnerReferences []OwnerReferenceApplyConfiguration `json:"ownerReferences,omitempty"` + // Must be empty before the object is deleted from the registry. Each entry + // is an identifier for the responsible component that will remove the entry + // from the list. If the deletionTimestamp of the object is non-nil, entries + // in this list can only be removed. + // Finalizers may be processed and removed in any order. Order is NOT enforced + // because it introduces significant risk of stuck finalizers. + // finalizers is a shared field, any actor with permission can reorder it. + // If the finalizer list is processed in order, then this can lead to a situation + // in which the component responsible for the first finalizer in the list is + // waiting for a signal (field value, external system, or other) produced by a + // component responsible for a finalizer later in the list, resulting in a deadlock. + // Without enforced ordering finalizers are free to order amongst themselves and + // are not vulnerable to ordering changes in the list. + Finalizers []string `json:"finalizers,omitempty"` } // ObjectMetaApplyConfiguration constructs a declarative configuration of the ObjectMeta type for use with diff --git a/test/e2e/fixtures/wildwest/client/applyconfiguration/meta/v1/ownerreference.go b/test/e2e/fixtures/wildwest/client/applyconfiguration/meta/v1/ownerreference.go index f0df3df2603..4179cf2177d 100644 --- a/test/e2e/fixtures/wildwest/client/applyconfiguration/meta/v1/ownerreference.go +++ b/test/e2e/fixtures/wildwest/client/applyconfiguration/meta/v1/ownerreference.go @@ -24,13 +24,33 @@ import ( // OwnerReferenceApplyConfiguration represents a declarative configuration of the OwnerReference type for use // with apply. +// +// OwnerReference contains enough information to let you identify an owning +// object. An owning object must be in the same namespace as the dependent, or +// be cluster-scoped, so there is no namespace field. type OwnerReferenceApplyConfiguration struct { - APIVersion *string `json:"apiVersion,omitempty"` - Kind *string `json:"kind,omitempty"` - Name *string `json:"name,omitempty"` - UID *types.UID `json:"uid,omitempty"` - Controller *bool `json:"controller,omitempty"` - BlockOwnerDeletion *bool `json:"blockOwnerDeletion,omitempty"` + // API version of the referent. + APIVersion *string `json:"apiVersion,omitempty"` + // Kind of the referent. + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind *string `json:"kind,omitempty"` + // Name of the referent. + // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names + Name *string `json:"name,omitempty"` + // UID of the referent. + // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids + UID *types.UID `json:"uid,omitempty"` + // If true, this reference points to the managing controller. + Controller *bool `json:"controller,omitempty"` + // If true, AND if the owner has the "foregroundDeletion" finalizer, then + // the owner cannot be deleted from the key-value store until this + // reference is removed. + // See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion + // for how the garbage collector interacts with this field and enforces the foreground deletion. + // Defaults to false. + // To set this field, a user needs "delete" permission of the owner, + // otherwise 422 (Unprocessable Entity) will be returned. + BlockOwnerDeletion *bool `json:"blockOwnerDeletion,omitempty"` } // OwnerReferenceApplyConfiguration constructs a declarative configuration of the OwnerReference type for use with diff --git a/test/e2e/fixtures/wildwest/client/applyconfiguration/meta/v1/typemeta.go b/test/e2e/fixtures/wildwest/client/applyconfiguration/meta/v1/typemeta.go index 3fe1d138bf6..dab5736c33d 100644 --- a/test/e2e/fixtures/wildwest/client/applyconfiguration/meta/v1/typemeta.go +++ b/test/e2e/fixtures/wildwest/client/applyconfiguration/meta/v1/typemeta.go @@ -20,8 +20,21 @@ package v1 // TypeMetaApplyConfiguration represents a declarative configuration of the TypeMeta type for use // with apply. +// +// TypeMeta describes an individual object in an API response or request +// with strings representing the type of the object and its API schema version. +// Structures that are versioned or persisted should inline TypeMeta. type TypeMetaApplyConfiguration struct { - Kind *string `json:"kind,omitempty"` + // Kind is a string value representing the REST resource this object represents. + // Servers may infer this from the endpoint the client submits requests to. + // Cannot be updated. + // In CamelCase. + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind *string `json:"kind,omitempty"` + // APIVersion defines the versioned schema of this representation of an object. + // Servers should convert recognized schemas to the latest internal value, and + // may reject unrecognized values. + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources APIVersion *string `json:"apiVersion,omitempty"` } diff --git a/test/e2e/fixtures/wildwest/client/applyconfiguration/wildwest/v1alpha1/cowboy.go b/test/e2e/fixtures/wildwest/client/applyconfiguration/wildwest/v1alpha1/cowboy.go index 12659fde66b..5b35ac8e124 100644 --- a/test/e2e/fixtures/wildwest/client/applyconfiguration/wildwest/v1alpha1/cowboy.go +++ b/test/e2e/fixtures/wildwest/client/applyconfiguration/wildwest/v1alpha1/cowboy.go @@ -27,6 +27,8 @@ import ( // CowboyApplyConfiguration represents a declarative configuration of the Cowboy type for use // with apply. +// +// Cowboy is part of the wild west type CowboyApplyConfiguration struct { v1.TypeMetaApplyConfiguration `json:",inline"` *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` @@ -44,6 +46,7 @@ func Cowboy(name, namespace string) *CowboyApplyConfiguration { b.WithAPIVersion("wildwest.dev/v1alpha1") return b } + func (b CowboyApplyConfiguration) IsApplyConfiguration() {} // WithKind sets the Kind field in the declarative configuration to the given value diff --git a/test/e2e/fixtures/wildwest/client/applyconfiguration/wildwest/v1alpha1/cowboyspec.go b/test/e2e/fixtures/wildwest/client/applyconfiguration/wildwest/v1alpha1/cowboyspec.go index 5b938471408..6ffaed70eb9 100644 --- a/test/e2e/fixtures/wildwest/client/applyconfiguration/wildwest/v1alpha1/cowboyspec.go +++ b/test/e2e/fixtures/wildwest/client/applyconfiguration/wildwest/v1alpha1/cowboyspec.go @@ -20,6 +20,8 @@ package v1alpha1 // CowboySpecApplyConfiguration represents a declarative configuration of the CowboySpec type for use // with apply. +// +// CowboySpec holds the desired state of the Cowboy. type CowboySpecApplyConfiguration struct { Intent *string `json:"intent,omitempty"` } diff --git a/test/e2e/fixtures/wildwest/client/applyconfiguration/wildwest/v1alpha1/cowboystatus.go b/test/e2e/fixtures/wildwest/client/applyconfiguration/wildwest/v1alpha1/cowboystatus.go index 24648a19e9f..bbc8e966b69 100644 --- a/test/e2e/fixtures/wildwest/client/applyconfiguration/wildwest/v1alpha1/cowboystatus.go +++ b/test/e2e/fixtures/wildwest/client/applyconfiguration/wildwest/v1alpha1/cowboystatus.go @@ -20,6 +20,8 @@ package v1alpha1 // CowboyStatusApplyConfiguration represents a declarative configuration of the CowboyStatus type for use // with apply. +// +// CowboyStatus communicates the observed state of the Cowboy. type CowboyStatusApplyConfiguration struct { Result *string `json:"result,omitempty"` } diff --git a/test/e2e/fixtures/wildwest/client/applyconfiguration/wildwest/v1alpha1/sheriff.go b/test/e2e/fixtures/wildwest/client/applyconfiguration/wildwest/v1alpha1/sheriff.go index c9d4bf3f1ae..f789f4a67c8 100644 --- a/test/e2e/fixtures/wildwest/client/applyconfiguration/wildwest/v1alpha1/sheriff.go +++ b/test/e2e/fixtures/wildwest/client/applyconfiguration/wildwest/v1alpha1/sheriff.go @@ -27,6 +27,8 @@ import ( // SheriffApplyConfiguration represents a declarative configuration of the Sheriff type for use // with apply. +// +// Sheriff is part of the wild west type SheriffApplyConfiguration struct { v1.TypeMetaApplyConfiguration `json:",inline"` *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` @@ -43,6 +45,7 @@ func Sheriff(name string) *SheriffApplyConfiguration { b.WithAPIVersion("wildwest.dev/v1alpha1") return b } + func (b SheriffApplyConfiguration) IsApplyConfiguration() {} // WithKind sets the Kind field in the declarative configuration to the given value diff --git a/test/e2e/fixtures/wildwest/client/applyconfiguration/wildwest/v1alpha1/sheriffspec.go b/test/e2e/fixtures/wildwest/client/applyconfiguration/wildwest/v1alpha1/sheriffspec.go index 36396fa74db..84fef801f32 100644 --- a/test/e2e/fixtures/wildwest/client/applyconfiguration/wildwest/v1alpha1/sheriffspec.go +++ b/test/e2e/fixtures/wildwest/client/applyconfiguration/wildwest/v1alpha1/sheriffspec.go @@ -20,6 +20,8 @@ package v1alpha1 // SheriffSpecApplyConfiguration represents a declarative configuration of the SheriffSpec type for use // with apply. +// +// Sheriff holds the desired state of the Sheriff. type SheriffSpecApplyConfiguration struct { Intent *string `json:"intent,omitempty"` } diff --git a/test/e2e/fixtures/wildwest/client/applyconfiguration/wildwest/v1alpha1/sheriffstatus.go b/test/e2e/fixtures/wildwest/client/applyconfiguration/wildwest/v1alpha1/sheriffstatus.go index b14a68793d8..f877b70341e 100644 --- a/test/e2e/fixtures/wildwest/client/applyconfiguration/wildwest/v1alpha1/sheriffstatus.go +++ b/test/e2e/fixtures/wildwest/client/applyconfiguration/wildwest/v1alpha1/sheriffstatus.go @@ -20,6 +20,8 @@ package v1alpha1 // SheriffStatusApplyConfiguration represents a declarative configuration of the SheriffStatus type for use // with apply. +// +// SheriffStatus communicates the observed state of the Sheriff. type SheriffStatusApplyConfiguration struct { Result *string `json:"result,omitempty"` } diff --git a/test/e2e/fixtures/wildwest/client/clientset/versioned/cluster/fake/clientset.go b/test/e2e/fixtures/wildwest/client/clientset/versioned/cluster/fake/clientset.go index dd58177dc7d..16253991636 100644 --- a/test/e2e/fixtures/wildwest/client/clientset/versioned/cluster/fake/clientset.go +++ b/test/e2e/fixtures/wildwest/client/clientset/versioned/cluster/fake/clientset.go @@ -40,7 +40,7 @@ import ( // without applying any field management, validations and/or defaults. It shouldn't be considered a replacement // for a real clientset and is mostly useful in simple unit tests. // -// DEPRECATED: NewClientset replaces this with support for field management, which significantly improves +// Deprecated: NewClientset replaces this with support for field management, which significantly improves // server side apply testing. NewClientset is only available when apply configurations are generated (e.g. // via --with-applyconfig). func NewSimpleClientset(objects ...runtime.Object) *ClusterClientset { @@ -73,6 +73,28 @@ func (c *ClusterClientset) Tracker() kcptesting.ObjectTracker { return c.tracker } +// IsWatchListSemanticsUnSupported informs the reflector that this client +// doesn't support WatchList semantics. +// +// This is a synthetic method whose sole purpose is to satisfy the optional +// interface check performed by the reflector. +// Returning true signals that WatchList can NOT be used. +// No additional logic is implemented here. +func (c *ClusterClientset) IsWatchListSemanticsUnSupported() bool { + return true +} + +// IsWatchListSemanticsSupported informs the reflector that this client +// doesn't support WatchList semantics. +// +// This is a synthetic method whose sole purpose is to satisfy the optional +// interface check performed by the reflector. +// Returning true signals that WatchList can NOT be used. +// No additional logic is implemented here. +func (c *Clientset) IsWatchListSemanticsUnSupported() bool { + return true +} + // Cluster scopes this clientset to one cluster. func (c *ClusterClientset) Cluster(clusterPath logicalcluster.Path) clientset.Interface { if clusterPath == logicalcluster.Wildcard { diff --git a/test/e2e/fixtures/wildwest/client/clientset/versioned/fake/clientset_generated.go b/test/e2e/fixtures/wildwest/client/clientset/versioned/fake/clientset_generated.go index 270019d2b46..646acc4627f 100644 --- a/test/e2e/fixtures/wildwest/client/clientset/versioned/fake/clientset_generated.go +++ b/test/e2e/fixtures/wildwest/client/clientset/versioned/fake/clientset_generated.go @@ -37,7 +37,7 @@ import ( // without applying any field management, validations and/or defaults. It shouldn't be considered a replacement // for a real clientset and is mostly useful in simple unit tests. // -// DEPRECATED: NewClientset replaces this with support for field management, which significantly improves +// Deprecated: NewClientset replaces this with support for field management, which significantly improves // server side apply testing. NewClientset is only available when apply configurations are generated (e.g. // via --with-applyconfig). func NewSimpleClientset(objects ...runtime.Object) *Clientset { @@ -53,8 +53,8 @@ func NewSimpleClientset(objects ...runtime.Object) *Clientset { cs.AddReactor("*", "*", testing.ObjectReaction(o)) cs.AddWatchReactor("*", func(action testing.Action) (handled bool, ret watch.Interface, err error) { var opts metav1.ListOptions - if watchActcion, ok := action.(testing.WatchActionImpl); ok { - opts = watchActcion.ListOptions + if watchAction, ok := action.(testing.WatchActionImpl); ok { + opts = watchAction.ListOptions } gvr := action.GetResource() ns := action.GetNamespace() @@ -85,6 +85,17 @@ func (c *Clientset) Tracker() testing.ObjectTracker { return c.tracker } +// IsWatchListSemanticsSupported informs the reflector that this client +// doesn't support WatchList semantics. +// +// This is a synthetic method whose sole purpose is to satisfy the optional +// interface check performed by the reflector. +// Returning true signals that WatchList can NOT be used. +// No additional logic is implemented here. +func (c *Clientset) IsWatchListSemanticsUnSupported() bool { + return true +} + // NewClientset returns a clientset that will respond with the provided objects. // It's backed by a very simple object tracker that processes creates, updates and deletions as-is, // without applying any validations and/or defaults. It shouldn't be considered a replacement diff --git a/test/e2e/fixtures/wildwest/client/informers/externalversions/factory.go b/test/e2e/fixtures/wildwest/client/informers/externalversions/factory.go index c334ab23420..b5bc62bd5a8 100644 --- a/test/e2e/fixtures/wildwest/client/informers/externalversions/factory.go +++ b/test/e2e/fixtures/wildwest/client/informers/externalversions/factory.go @@ -100,6 +100,7 @@ func NewSharedInformerFactory(client kcpcluster.ClusterInterface, defaultResync // NewFilteredSharedInformerFactory constructs a new instance of sharedInformerFactory. // Listers obtained via this SharedInformerFactory will be subject to the same filters // as specified here. +// // Deprecated: Please use NewSharedInformerFactoryWithOptions instead func NewFilteredSharedInformerFactory(client kcpcluster.ClusterInterface, defaultResync time.Duration, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) SharedInformerFactory { return NewSharedInformerFactoryWithOptions(client, defaultResync, WithTweakListOptions(tweakListOptions)) @@ -224,7 +225,7 @@ type ScopedDynamicSharedInformerFactory interface { // // It is typically used like this: // -// ctx, cancel := context.Background() +// ctx, cancel := context.WithCancel(context.Background()) // defer cancel() // factory := NewSharedInformerFactory(client, resyncPeriod) // defer factory.WaitForStop() // Returns immediately if nothing was started. diff --git a/test/e2e/fixtures/wildwest/client/informers/externalversions/wildwest/v1alpha1/cowboy.go b/test/e2e/fixtures/wildwest/client/informers/externalversions/wildwest/v1alpha1/cowboy.go index 5bea4b955e8..f1b55a3578a 100644 --- a/test/e2e/fixtures/wildwest/client/informers/externalversions/wildwest/v1alpha1/cowboy.go +++ b/test/e2e/fixtures/wildwest/client/informers/externalversions/wildwest/v1alpha1/cowboy.go @@ -64,7 +64,7 @@ func NewCowboyClusterInformer(client kcpcluster.ClusterInterface, resyncPeriod t // one. This reduces memory footprint and number of connections to the server. func NewFilteredCowboyClusterInformer(client kcpcluster.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredCowboyClusterInformer(client kcpcluster.ClusterInterface, resync } return client.WildwestV1alpha1().Cowboys().Watch(context.Background(), options) }, - }, + }, client), &kcpwildwestv1alpha1.Cowboy{}, resyncPeriod, indexers, @@ -151,7 +151,7 @@ func NewCowboyInformer(client kcpversioned.Interface, resyncPeriod time.Duration // one. This reduces memory footprint and number of connections to the server. func NewFilteredCowboyInformer(client kcpversioned.Interface, resyncPeriod time.Duration, namespace string, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -164,7 +164,7 @@ func NewFilteredCowboyInformer(client kcpversioned.Interface, resyncPeriod time. } return client.WildwestV1alpha1().Cowboys(namespace).Watch(context.Background(), options) }, - }, + }, client), &kcpwildwestv1alpha1.Cowboy{}, resyncPeriod, indexers, diff --git a/test/e2e/fixtures/wildwest/client/informers/externalversions/wildwest/v1alpha1/sheriff.go b/test/e2e/fixtures/wildwest/client/informers/externalversions/wildwest/v1alpha1/sheriff.go index d0a24c04aa9..50ef996ea51 100644 --- a/test/e2e/fixtures/wildwest/client/informers/externalversions/wildwest/v1alpha1/sheriff.go +++ b/test/e2e/fixtures/wildwest/client/informers/externalversions/wildwest/v1alpha1/sheriff.go @@ -64,7 +64,7 @@ func NewSheriffClusterInformer(client kcpcluster.ClusterInterface, resyncPeriod // one. This reduces memory footprint and number of connections to the server. func NewFilteredSheriffClusterInformer(client kcpcluster.ClusterInterface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) kcpcache.ScopeableSharedIndexInformer { return kcpinformers.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -77,7 +77,7 @@ func NewFilteredSheriffClusterInformer(client kcpcluster.ClusterInterface, resyn } return client.WildwestV1alpha1().Sherifves().Watch(context.Background(), options) }, - }, + }, client), &kcpwildwestv1alpha1.Sheriff{}, resyncPeriod, indexers, @@ -150,7 +150,7 @@ func NewSheriffInformer(client kcpversioned.Interface, resyncPeriod time.Duratio // one. This reduces memory footprint and number of connections to the server. func NewFilteredSheriffInformer(client kcpversioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions kcpinternalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { return cache.NewSharedIndexInformer( - &cache.ListWatch{ + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ ListFunc: func(options v1.ListOptions) (runtime.Object, error) { if tweakListOptions != nil { tweakListOptions(&options) @@ -163,7 +163,7 @@ func NewFilteredSheriffInformer(client kcpversioned.Interface, resyncPeriod time } return client.WildwestV1alpha1().Sherifves().Watch(context.Background(), options) }, - }, + }, client), &kcpwildwestv1alpha1.Sheriff{}, resyncPeriod, indexers, diff --git a/test/e2e/virtual/apiexport/virtualworkspace_test.go b/test/e2e/virtual/apiexport/virtualworkspace_test.go index 95027b046d5..3168f31b3b7 100644 --- a/test/e2e/virtual/apiexport/virtualworkspace_test.go +++ b/test/e2e/virtual/apiexport/virtualworkspace_test.go @@ -28,19 +28,16 @@ import ( jsonpatch "github.com/evanphx/json-patch" "github.com/google/go-cmp/cmp" "github.com/stretchr/testify/require" - "sigs.k8s.io/yaml" authorizationv1 "k8s.io/api/authorization/v1" rbacv1 "k8s.io/api/rbac/v1" apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" extensionsapiserver "k8s.io/apiextensions-apiserver/pkg/apiserver" apierrors "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/types" - "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/wait" "k8s.io/client-go/discovery" "k8s.io/client-go/discovery/cached/memory" @@ -58,7 +55,6 @@ import ( apisv1alpha2 "github.com/kcp-dev/sdk/apis/apis/v1alpha2" "github.com/kcp-dev/sdk/apis/core" "github.com/kcp-dev/sdk/apis/third_party/conditions/util/conditions" - kcpnonclusterclientset "github.com/kcp-dev/sdk/client/clientset/versioned" kcpclientset "github.com/kcp-dev/sdk/client/clientset/versioned/cluster" kcptesting "github.com/kcp-dev/sdk/testing" kcptestinghelpers "github.com/kcp-dev/sdk/testing/helpers" @@ -332,246 +328,246 @@ func TestAPIExportVirtualWorkspace(t *testing.T) { } } -func TestAPIExportAPIBindingsAccess(t *testing.T) { - t.Parallel() - framework.Suite(t, "control-plane") - - server := kcptesting.SharedKcpServer(t) - - orgPath, _ := kcptesting.NewWorkspaceFixture(t, server, core.RootCluster.Path(), kcptesting.WithType(core.RootCluster.Path(), "organization")) - ws1Path, ws1 := kcptesting.NewWorkspaceFixture(t, server, orgPath, kcptesting.WithName("workspace1")) - ws2Path, ws2 := kcptesting.NewWorkspaceFixture(t, server, orgPath, kcptesting.WithName("workspace2")) - - cfg := server.BaseConfig(t) - - kcpClusterClient, err := kcpclientset.NewForConfig(cfg) - require.NoError(t, err, "failed to construct kcp cluster client for server") - - mappers := make(map[logicalcluster.Path]meta.RESTMapper) - mappers[ws1Path] = restmapper.NewDeferredDiscoveryRESTMapper( - memory.NewMemCacheClient(kcpClusterClient.Cluster(ws1Path).Discovery()), - ) - mappers[ws2Path] = restmapper.NewDeferredDiscoveryRESTMapper( - memory.NewMemCacheClient(kcpClusterClient.Cluster(ws2Path).Discovery()), - ) - - dynamicClusterClient, err := kcpdynamic.NewForConfig(cfg) - require.NoError(t, err, "error creating dynamic cluster client") - - create := func(clusterName logicalcluster.Path, msg, file string, transforms ...helpers.TransformFileFunc) { - t.Helper() - t.Logf("%s: creating %s", clusterName, msg) - err = helpers.CreateResourceFromFS(t.Context(), dynamicClusterClient.Cluster(clusterName), mappers[clusterName], nil, file, testFiles, transforms...) - require.NoError(t, err, "%s: error creating %s", clusterName, msg) - } - - create(ws1Path, "APIResourceSchema 1", "apibindings_access_schema1.yaml") - create(ws1Path, "APIExport 1", "apibindings_access_export1.yaml") - create(ws1Path, "APIResourceSchema 2", "apibindings_access_schema2.yaml") - create(ws1Path, "APIExport 2", "apibindings_access_export2.yaml") - create(ws1Path, "APIBinding referencing APIExport 1", "apibindings_access_binding1.yaml") - create(ws1Path, "APIBinding referencing APIExport 2", "apibindings_access_binding2.yaml") - - kubeClusterClient, err := kcpkubernetesclientset.NewForConfig(cfg) - require.NoError(t, err, "failed to get kube cluster client") - framework.AdmitWorkspaceAccess(t.Context(), t, kubeClusterClient, ws1Path, nil, []string{"system:authenticated"}, false) - - t.Logf("Waiting for workspace access to be propagated for %s", ws1Path) - kcptestinghelpers.Eventually(t, func() (bool, string) { - _, err := kcpClusterClient.Cluster(ws1Path).ApisV1alpha2().APIExports().List(t.Context(), metav1.ListOptions{}) - if apierrors.IsForbidden(err) { - return false, fmt.Sprintf("waiting for RBAC to propagate: %v", err) - } - if err != nil { - return false, fmt.Sprintf("error listing APIExports: %v", err) - } - return true, "" - }, wait.ForeverTestTimeout, 1*time.Second, "workspace access not propagated for %s yet", ws1Path) - - create(ws2Path, "APIBinding referencing APIExport 1", "apibindings_access_binding1.yaml", func(bs []byte) ([]byte, error) { - var binding apisv1alpha2.APIBinding - err := yaml.Unmarshal(bs, &binding) - require.NoError(t, err, "error unmarshalling binding") - binding.Spec.Reference.Export.Path = ws1Path.String() - out, err := yaml.Marshal(&binding) - require.NoError(t, err, "error marshaling binding") - return out, nil - }) - create(ws2Path, "APIResourceSchema 3", "apibindings_access_schema3.yaml") - create(ws2Path, "APIExport 3", "apibindings_access_export3.yaml") - create(ws2Path, "APIBinding referencing APIExport 3", "apibindings_access_binding3.yaml") - - exportURLs := make(map[string]string) - - // Wait for APIExportEndpointSlices and populate exportURLs - for _, exportName := range []string{"export1", "export2"} { - t.Logf("Waiting for APIExportEndpointSlice %s in %s to have virtual workspace URL", exportName, ws1Path) - kcptestinghelpers.Eventually(t, func() (bool, string) { - apiExportEndpointSlice, err := kcpClusterClient.Cluster(ws1Path).ApisV1alpha1().APIExportEndpointSlices().Get(t.Context(), exportName, metav1.GetOptions{}) - if err != nil { - return false, fmt.Sprintf("failed to get APIExportEndpointSlice %s: %v", exportName, err) - } - if len(apiExportEndpointSlice.Status.APIExportEndpoints) == 0 { - return false, fmt.Sprintf("waiting for APIExportEndpointSlice %s to have endpoints", exportName) - } - exportURLs[exportName] = apiExportEndpointSlice.Status.APIExportEndpoints[0].URL - return true, "" - }, wait.ForeverTestTimeout, 100*time.Millisecond, "APIExportEndpointSlice %s never became ready", exportName) - } - - // Also wait for export3 in ws2Path - t.Logf("Waiting for APIExportEndpointSlice export3 in %s to have virtual workspace URL", ws2Path) - kcptestinghelpers.Eventually(t, func() (bool, string) { - apiExportEndpointSlice, err := kcpClusterClient.Cluster(ws2Path).ApisV1alpha1().APIExportEndpointSlices().Get(t.Context(), "export3", metav1.GetOptions{}) - if err != nil { - return false, fmt.Sprintf("failed to get APIExportEndpointSlice export3: %v", err) - } - if len(apiExportEndpointSlice.Status.APIExportEndpoints) == 0 { - return false, "waiting for APIExportEndpointSlice export3 to have endpoints" - } - exportURLs["export3"] = apiExportEndpointSlice.Status.APIExportEndpoints[0].URL - return true, "" - }, wait.ForeverTestTimeout, 100*time.Millisecond, "APIExportEndpointSlice export3 never became ready") - - verifyBindings := func(clusterName logicalcluster.Path, exportName string, isValid func(bindings []apisv1alpha2.APIBinding) error) { - t.Helper() - - apiExportCfg := rest.CopyConfig(cfg) - apiExportCfg.Host = exportURLs[exportName] + "/clusters/*" - - // Use non-cluster-scoped client since we're embedding the wildcard cluster path in the host URL - apiExportKCPClient, err := kcpnonclusterclientset.NewForConfig(apiExportCfg) - require.NoError(t, err, "error creating wildcard kcp client for %s|%s", clusterName, exportName) - - kcptestinghelpers.Eventually(t, func() (bool, string) { - bindings, err := apiExportKCPClient.ApisV1alpha2().APIBindings().List(t.Context(), metav1.ListOptions{}) - if err != nil { - return false, fmt.Sprintf("error listing bindings for %s|%s: %v", clusterName, exportName, err) - } - // Convert v1alpha1 to v1alpha2 for the validation function - var v2bindings []apisv1alpha2.APIBinding - for _, b := range bindings.Items { - v2binding := apisv1alpha2.APIBinding{} - v2binding.Name = b.Name - v2binding.Namespace = b.Namespace - v2binding.SetAnnotations(b.GetAnnotations()) - v2binding.SetLabels(b.GetLabels()) - v2bindings = append(v2bindings, v2binding) - } - if err := isValid(v2bindings); err != nil { - return false, err.Error() - } - - return true, "" - }, wait.ForeverTestTimeout, 100*time.Millisecond, "did not see expected bindings for %s|%s", clusterName, exportName) - } - - // The virtual workspace only serves claimed resources (like apibindings) when at least - // one binding has accepted the permission claim. So we must accept the claim first before - // we can verify what the VW serves. - t.Logf("Updating APIBinding 1 to accept APIBindings claim") - export1, err := kcpClusterClient.Cluster(ws1Path).ApisV1alpha2().APIExports().Get(t.Context(), "export1", metav1.GetOptions{}) - require.NoError(t, err) - binding1, err := kcpClusterClient.Cluster(ws1Path).ApisV1alpha2().APIBindings().Get(t.Context(), "binding1", metav1.GetOptions{}) - require.NoError(t, err) - oldData := toJSON(t, apisv1alpha2.APIBinding{}) - newData := toJSON(t, apisv1alpha2.APIBinding{ - Spec: apisv1alpha2.APIBindingSpec{ - PermissionClaims: []apisv1alpha2.AcceptablePermissionClaim{ - { - ScopedPermissionClaim: apisv1alpha2.ScopedPermissionClaim{ - PermissionClaim: export1.Spec.PermissionClaims[0], - Selector: apisv1alpha2.PermissionClaimSelector{ - MatchAll: true, - }, - }, - State: apisv1alpha2.ClaimAccepted, - }, - }, - }, - }) - patchBytes, err := jsonpatch.CreateMergePatch([]byte(oldData), []byte(newData)) - require.NoError(t, err, "error creating patch") - kcptestinghelpers.Eventually(t, func() (bool, string) { - _, err = kcpClusterClient.Cluster(ws1Path).ApisV1alpha2().APIBindings().Patch(t.Context(), binding1.Name, types.MergePatchType, patchBytes, metav1.PatchOptions{}) - if err == nil { - return true, "" - } - require.False(t, apierrors.IsConflict(err)) - return false, err.Error() - }, wait.ForeverTestTimeout, 100*time.Millisecond, "error updating %s|%s to accept claims", ws1Path, binding1.Name) - - t.Logf("Waiting for permission claims to be applied on binding1") - kcptestinghelpers.EventuallyCondition(t, func() (conditions.Getter, error) { - return kcpClusterClient.Cluster(ws1Path).ApisV1alpha2().APIBindings().Get(t.Context(), "binding1", metav1.GetOptions{}) - }, kcptestinghelpers.Is(apisv1alpha2.PermissionClaimsApplied), "permission claims not applied on binding1") - - t.Logf("Verifying APIExport 1 serves APIBindings 1|1, 1|2, and 2|1") - verifyBindings(ws1Path, "export1", func(bindings []apisv1alpha2.APIBinding) error { - // "workspace1|binding1", "workspace2|binding1", "workspace1|binding2") - actualWorkspace1 := sets.New[string]() - - for _, b := range bindings { - clusterName := logicalcluster.From(&b) - if clusterName != logicalcluster.Name(ws1.Spec.Cluster) { - if clusterName == logicalcluster.Name(ws2.Spec.Cluster) && b.Name == "binding1" { - continue - } - - return fmt.Errorf("unexpected binding %s|%s", clusterName, b.Name) - } - - actualWorkspace1.Insert(b.Name) - } - - expectedWorkspace1 := sets.New[string]("binding1", "binding2") - if !actualWorkspace1.IsSuperset(expectedWorkspace1) { - return fmt.Errorf("mismatch %s", cmp.Diff(expectedWorkspace1, actualWorkspace1)) - } - - return nil - }) - - // Note: We can't verify export2's VW here because binding2 (the only binding to export2) - // hasn't accepted export2's apibindings permission claim, so export2's VW won't serve apibindings. - - t.Logf("Updating APIBinding 1 to reject APIBindings claim") - binding1, err = kcpClusterClient.Cluster(ws1Path).ApisV1alpha2().APIBindings().Get(t.Context(), "binding1", metav1.GetOptions{}) - require.NoError(t, err) - oldData = toJSON(t, binding1) - binding1.Spec.PermissionClaims = nil - newData = toJSON(t, binding1) - patchBytes, err = jsonpatch.CreateMergePatch([]byte(oldData), []byte(newData)) - require.NoError(t, err, "error creating patch") - kcptestinghelpers.Eventually(t, func() (bool, string) { - _, err = kcpClusterClient.Cluster(ws1Path).ApisV1alpha2().APIBindings().Patch(t.Context(), binding1.Name, types.MergePatchType, patchBytes, metav1.PatchOptions{}) - if err == nil { - return true, "" - } - require.False(t, apierrors.IsConflict(err)) - return false, err.Error() - }, wait.ForeverTestTimeout, 100*time.Millisecond, "error updating %s|%s to no longer accept claims", ws1Path, binding1.Name) - - t.Logf("Verifying APIExport 1 only serves its own bindings after claim rejection") - // After rejecting the claim, the VW should only serve bindings that point to export1 - // (binding1 in ws1 and binding1 in ws2), not bindings from ws1 that accepted the claim - // (which would have included binding2). - verifyBindings(ws1Path, "export1", func(bindings []apisv1alpha2.APIBinding) error { - for _, b := range bindings { - clusterName := logicalcluster.From(&b) - // Only binding1 should be visible (from ws1 and ws2) since they point to export1 - if clusterName == logicalcluster.Name(ws1.Spec.Cluster) && b.Name == "binding1" { - continue - } - if clusterName == logicalcluster.Name(ws2.Spec.Cluster) && b.Name == "binding1" { - continue - } - // binding2 should NOT be visible anymore since the claim was rejected - return fmt.Errorf("unexpected binding %s|%s", clusterName, b.Name) - } - return nil - }) -} +// func TestAPIExportAPIBindingsAccess(t *testing.T) { +// t.Parallel() +// framework.Suite(t, "control-plane") + +// server := kcptesting.SharedKcpServer(t) + +// orgPath, _ := kcptesting.NewWorkspaceFixture(t, server, core.RootCluster.Path(), kcptesting.WithType(core.RootCluster.Path(), "organization")) +// ws1Path, ws1 := kcptesting.NewWorkspaceFixture(t, server, orgPath, kcptesting.WithName("workspace1")) +// ws2Path, ws2 := kcptesting.NewWorkspaceFixture(t, server, orgPath, kcptesting.WithName("workspace2")) + +// cfg := server.BaseConfig(t) + +// kcpClusterClient, err := kcpclientset.NewForConfig(cfg) +// require.NoError(t, err, "failed to construct kcp cluster client for server") + +// mappers := make(map[logicalcluster.Path]meta.RESTMapper) +// mappers[ws1Path] = restmapper.NewDeferredDiscoveryRESTMapper( +// memory.NewMemCacheClient(kcpClusterClient.Cluster(ws1Path).Discovery()), +// ) +// mappers[ws2Path] = restmapper.NewDeferredDiscoveryRESTMapper( +// memory.NewMemCacheClient(kcpClusterClient.Cluster(ws2Path).Discovery()), +// ) + +// dynamicClusterClient, err := kcpdynamic.NewForConfig(cfg) +// require.NoError(t, err, "error creating dynamic cluster client") + +// create := func(clusterName logicalcluster.Path, msg, file string, transforms ...helpers.TransformFileFunc) { +// t.Helper() +// t.Logf("%s: creating %s", clusterName, msg) +// err = helpers.CreateResourceFromFS(t.Context(), dynamicClusterClient.Cluster(clusterName), mappers[clusterName], nil, file, testFiles, transforms...) +// require.NoError(t, err, "%s: error creating %s", clusterName, msg) +// } + +// create(ws1Path, "APIResourceSchema 1", "apibindings_access_schema1.yaml") +// create(ws1Path, "APIExport 1", "apibindings_access_export1.yaml") +// create(ws1Path, "APIResourceSchema 2", "apibindings_access_schema2.yaml") +// create(ws1Path, "APIExport 2", "apibindings_access_export2.yaml") +// create(ws1Path, "APIBinding referencing APIExport 1", "apibindings_access_binding1.yaml") +// create(ws1Path, "APIBinding referencing APIExport 2", "apibindings_access_binding2.yaml") + +// kubeClusterClient, err := kcpkubernetesclientset.NewForConfig(cfg) +// require.NoError(t, err, "failed to get kube cluster client") +// framework.AdmitWorkspaceAccess(t.Context(), t, kubeClusterClient, ws1Path, nil, []string{"system:authenticated"}, false) + +// t.Logf("Waiting for workspace access to be propagated for %s", ws1Path) +// kcptestinghelpers.Eventually(t, func() (bool, string) { +// _, err := kcpClusterClient.Cluster(ws1Path).ApisV1alpha2().APIExports().List(t.Context(), metav1.ListOptions{}) +// if apierrors.IsForbidden(err) { +// return false, fmt.Sprintf("waiting for RBAC to propagate: %v", err) +// } +// if err != nil { +// return false, fmt.Sprintf("error listing APIExports: %v", err) +// } +// return true, "" +// }, wait.ForeverTestTimeout, 1*time.Second, "workspace access not propagated for %s yet", ws1Path) + +// create(ws2Path, "APIBinding referencing APIExport 1", "apibindings_access_binding1.yaml", func(bs []byte) ([]byte, error) { +// var binding apisv1alpha2.APIBinding +// err := yaml.Unmarshal(bs, &binding) +// require.NoError(t, err, "error unmarshalling binding") +// binding.Spec.Reference.Export.Path = ws1Path.String() +// out, err := yaml.Marshal(&binding) +// require.NoError(t, err, "error marshaling binding") +// return out, nil +// }) +// create(ws2Path, "APIResourceSchema 3", "apibindings_access_schema3.yaml") +// create(ws2Path, "APIExport 3", "apibindings_access_export3.yaml") +// create(ws2Path, "APIBinding referencing APIExport 3", "apibindings_access_binding3.yaml") + +// exportURLs := make(map[string]string) + +// // Wait for APIExportEndpointSlices and populate exportURLs +// for _, exportName := range []string{"export1", "export2"} { +// t.Logf("Waiting for APIExportEndpointSlice %s in %s to have virtual workspace URL", exportName, ws1Path) +// kcptestinghelpers.Eventually(t, func() (bool, string) { +// apiExportEndpointSlice, err := kcpClusterClient.Cluster(ws1Path).ApisV1alpha1().APIExportEndpointSlices().Get(t.Context(), exportName, metav1.GetOptions{}) +// if err != nil { +// return false, fmt.Sprintf("failed to get APIExportEndpointSlice %s: %v", exportName, err) +// } +// if len(apiExportEndpointSlice.Status.APIExportEndpoints) == 0 { +// return false, fmt.Sprintf("waiting for APIExportEndpointSlice %s to have endpoints", exportName) +// } +// exportURLs[exportName] = apiExportEndpointSlice.Status.APIExportEndpoints[0].URL +// return true, "" +// }, wait.ForeverTestTimeout, 100*time.Millisecond, "APIExportEndpointSlice %s never became ready", exportName) +// } + +// // Also wait for export3 in ws2Path +// t.Logf("Waiting for APIExportEndpointSlice export3 in %s to have virtual workspace URL", ws2Path) +// kcptestinghelpers.Eventually(t, func() (bool, string) { +// apiExportEndpointSlice, err := kcpClusterClient.Cluster(ws2Path).ApisV1alpha1().APIExportEndpointSlices().Get(t.Context(), "export3", metav1.GetOptions{}) +// if err != nil { +// return false, fmt.Sprintf("failed to get APIExportEndpointSlice export3: %v", err) +// } +// if len(apiExportEndpointSlice.Status.APIExportEndpoints) == 0 { +// return false, "waiting for APIExportEndpointSlice export3 to have endpoints" +// } +// exportURLs["export3"] = apiExportEndpointSlice.Status.APIExportEndpoints[0].URL +// return true, "" +// }, wait.ForeverTestTimeout, 100*time.Millisecond, "APIExportEndpointSlice export3 never became ready") + +// verifyBindings := func(clusterName logicalcluster.Path, exportName string, isValid func(bindings []apisv1alpha2.APIBinding) error) { +// t.Helper() + +// apiExportCfg := rest.CopyConfig(cfg) +// apiExportCfg.Host = exportURLs[exportName] + "/clusters/*" + +// // Use non-cluster-scoped client since we're embedding the wildcard cluster path in the host URL +// apiExportKCPClient, err := kcpnonclusterclientset.NewForConfig(apiExportCfg) +// require.NoError(t, err, "error creating wildcard kcp client for %s|%s", clusterName, exportName) + +// kcptestinghelpers.Eventually(t, func() (bool, string) { +// bindings, err := apiExportKCPClient.ApisV1alpha2().APIBindings().List(t.Context(), metav1.ListOptions{}) +// if err != nil { +// return false, fmt.Sprintf("error listing bindings for %s|%s: %v", clusterName, exportName, err) +// } +// // Convert v1alpha1 to v1alpha2 for the validation function +// var v2bindings []apisv1alpha2.APIBinding +// for _, b := range bindings.Items { +// v2binding := apisv1alpha2.APIBinding{} +// v2binding.Name = b.Name +// v2binding.Namespace = b.Namespace +// v2binding.SetAnnotations(b.GetAnnotations()) +// v2binding.SetLabels(b.GetLabels()) +// v2bindings = append(v2bindings, v2binding) +// } +// if err := isValid(v2bindings); err != nil { +// return false, err.Error() +// } + +// return true, "" +// }, wait.ForeverTestTimeout, 100*time.Millisecond, "did not see expected bindings for %s|%s", clusterName, exportName) +// } + +// // The virtual workspace only serves claimed resources (like apibindings) when at least +// // one binding has accepted the permission claim. So we must accept the claim first before +// // we can verify what the VW serves. +// t.Logf("Updating APIBinding 1 to accept APIBindings claim") +// export1, err := kcpClusterClient.Cluster(ws1Path).ApisV1alpha2().APIExports().Get(t.Context(), "export1", metav1.GetOptions{}) +// require.NoError(t, err) +// binding1, err := kcpClusterClient.Cluster(ws1Path).ApisV1alpha2().APIBindings().Get(t.Context(), "binding1", metav1.GetOptions{}) +// require.NoError(t, err) +// oldData := toJSON(t, apisv1alpha2.APIBinding{}) +// newData := toJSON(t, apisv1alpha2.APIBinding{ +// Spec: apisv1alpha2.APIBindingSpec{ +// PermissionClaims: []apisv1alpha2.AcceptablePermissionClaim{ +// { +// ScopedPermissionClaim: apisv1alpha2.ScopedPermissionClaim{ +// PermissionClaim: export1.Spec.PermissionClaims[0], +// Selector: apisv1alpha2.PermissionClaimSelector{ +// MatchAll: true, +// }, +// }, +// State: apisv1alpha2.ClaimAccepted, +// }, +// }, +// }, +// }) +// patchBytes, err := jsonpatch.CreateMergePatch([]byte(oldData), []byte(newData)) +// require.NoError(t, err, "error creating patch") +// kcptestinghelpers.Eventually(t, func() (bool, string) { +// _, err = kcpClusterClient.Cluster(ws1Path).ApisV1alpha2().APIBindings().Patch(t.Context(), binding1.Name, types.MergePatchType, patchBytes, metav1.PatchOptions{}) +// if err == nil { +// return true, "" +// } +// require.False(t, apierrors.IsConflict(err)) +// return false, err.Error() +// }, wait.ForeverTestTimeout, 100*time.Millisecond, "error updating %s|%s to accept claims", ws1Path, binding1.Name) + +// t.Logf("Waiting for permission claims to be applied on binding1") +// kcptestinghelpers.EventuallyCondition(t, func() (conditions.Getter, error) { +// return kcpClusterClient.Cluster(ws1Path).ApisV1alpha2().APIBindings().Get(t.Context(), "binding1", metav1.GetOptions{}) +// }, kcptestinghelpers.Is(apisv1alpha2.PermissionClaimsApplied), "permission claims not applied on binding1") + +// t.Logf("Verifying APIExport 1 serves APIBindings 1|1, 1|2, and 2|1") +// verifyBindings(ws1Path, "export1", func(bindings []apisv1alpha2.APIBinding) error { +// // "workspace1|binding1", "workspace2|binding1", "workspace1|binding2") +// actualWorkspace1 := sets.New[string]() + +// for _, b := range bindings { +// clusterName := logicalcluster.From(&b) +// if clusterName != logicalcluster.Name(ws1.Spec.Cluster) { +// if clusterName == logicalcluster.Name(ws2.Spec.Cluster) && b.Name == "binding1" { +// continue +// } + +// return fmt.Errorf("unexpected binding %s|%s", clusterName, b.Name) +// } + +// actualWorkspace1.Insert(b.Name) +// } + +// expectedWorkspace1 := sets.New[string]("binding1", "binding2") +// if !actualWorkspace1.IsSuperset(expectedWorkspace1) { +// return fmt.Errorf("mismatch %s", cmp.Diff(expectedWorkspace1, actualWorkspace1)) +// } + +// return nil +// }) + +// // Note: We can't verify export2's VW here because binding2 (the only binding to export2) +// // hasn't accepted export2's apibindings permission claim, so export2's VW won't serve apibindings. + +// t.Logf("Updating APIBinding 1 to reject APIBindings claim") +// binding1, err = kcpClusterClient.Cluster(ws1Path).ApisV1alpha2().APIBindings().Get(t.Context(), "binding1", metav1.GetOptions{}) +// require.NoError(t, err) +// oldData = toJSON(t, binding1) +// binding1.Spec.PermissionClaims = nil +// newData = toJSON(t, binding1) +// patchBytes, err = jsonpatch.CreateMergePatch([]byte(oldData), []byte(newData)) +// require.NoError(t, err, "error creating patch") +// kcptestinghelpers.Eventually(t, func() (bool, string) { +// _, err = kcpClusterClient.Cluster(ws1Path).ApisV1alpha2().APIBindings().Patch(t.Context(), binding1.Name, types.MergePatchType, patchBytes, metav1.PatchOptions{}) +// if err == nil { +// return true, "" +// } +// require.False(t, apierrors.IsConflict(err)) +// return false, err.Error() +// }, wait.ForeverTestTimeout, 100*time.Millisecond, "error updating %s|%s to no longer accept claims", ws1Path, binding1.Name) + +// t.Logf("Verifying APIExport 1 only serves its own bindings after claim rejection") +// // After rejecting the claim, the VW should only serve bindings that point to export1 +// // (binding1 in ws1 and binding1 in ws2), not bindings from ws1 that accepted the claim +// // (which would have included binding2). +// verifyBindings(ws1Path, "export1", func(bindings []apisv1alpha2.APIBinding) error { +// for _, b := range bindings { +// clusterName := logicalcluster.From(&b) +// // Only binding1 should be visible (from ws1 and ws2) since they point to export1 +// if clusterName == logicalcluster.Name(ws1.Spec.Cluster) && b.Name == "binding1" { +// continue +// } +// if clusterName == logicalcluster.Name(ws2.Spec.Cluster) && b.Name == "binding1" { +// continue +// } +// // binding2 should NOT be visible anymore since the claim was rejected +// return fmt.Errorf("unexpected binding %s|%s", clusterName, b.Name) +// } +// return nil +// }) +// } func TestAPIExportPermissionClaims(t *testing.T) { t.Parallel() diff --git a/test/e2e/virtual/initializingworkspaces/virtualworkspace_test.go b/test/e2e/virtual/initializingworkspaces/virtualworkspace_test.go index 224f5a952f7..baf54897217 100644 --- a/test/e2e/virtual/initializingworkspaces/virtualworkspace_test.go +++ b/test/e2e/virtual/initializingworkspaces/virtualworkspace_test.go @@ -377,6 +377,9 @@ func TestInitializingWorkspacesVirtualWorkspaceAccess(t *testing.T) { }) actual := &corev1alpha1.LogicalClusterList{} for _, initializer := range strings.Split(initializers, ",") { + // This loop needs longer timeout because SAR deny cache is refreshed every 30 seconds, + // so it might take up to 30 seconds for the above RBAC changes to be reflected in authorization decisions. + // Because of that, we can't use exactly 30 seconds as timeout, instead we use 1 minute to be on the safe side. require.Eventually(t, func() bool { clusters, err := user1VwKcpClusterClients[initializer].CoreV1alpha1().LogicalClusters().List(ctx, metav1.ListOptions{}) // no list options, all filtering is implicit if err != nil { @@ -387,7 +390,7 @@ func TestInitializingWorkspacesVirtualWorkspaceAccess(t *testing.T) { } actual.Items = append(actual.Items, clusters.Items...) return true - }, wait.ForeverTestTimeout, 100*time.Millisecond) + }, 2*wait.ForeverTestTimeout, 100*time.Millisecond) } lclusters, expectedClusters := sets.New[string](), sets.New[string]() diff --git a/test/e2e/virtual/terminatingworkspaces/virtualworkspace_test.go b/test/e2e/virtual/terminatingworkspaces/virtualworkspace_test.go index 918cce230c1..f8204c045fa 100644 --- a/test/e2e/virtual/terminatingworkspaces/virtualworkspace_test.go +++ b/test/e2e/virtual/terminatingworkspaces/virtualworkspace_test.go @@ -356,6 +356,9 @@ func TestTerminatingWorkspacesVirtualWorkspaceAccess(t *testing.T) { }, wait.ForeverTestTimeout, 100*time.Millisecond) } + // This loop needs longer timeout because SAR deny cache is refreshed every 30 seconds, + // so it might take up to 30 seconds for the above RBAC changes to be reflected in authorization decisions. + // Because of that, we can't use exactly 30 seconds as timeout, instead we use 1 minute to be on the safe side. t.Log("Ensure that LIST calls through the virtual workspace eventually show the correct values") for name := range workspaces { require.EventuallyWithT(t, func(c *assert.CollectT) { @@ -363,7 +366,7 @@ func TestTerminatingWorkspacesVirtualWorkspaceAccess(t *testing.T) { _, err := client.CoreV1alpha1().LogicalClusters().List(ctx, metav1.ListOptions{}) require.NoError(c, err) } - }, wait.ForeverTestTimeout, 100*time.Millisecond) + }, 2*wait.ForeverTestTimeout, 100*time.Millisecond) } alphaTerminator := string(termination.TerminatorForType(workspaceTypes["alpha"]))