diff --git a/.ci/check b/.ci/check
index 4b0c67239d..4b13f75257 100755
--- a/.ci/check
+++ b/.ci/check
@@ -27,9 +27,9 @@ cd "${SOURCE_PATH}"
# Install golangci-lint (linting tool).
if [[ -z "${GOLANGCI_LINT_VERSION}" ]]; then
- export GOLANGCI_LINT_VERSION=v1.64.8
+ export GOLANGCI_LINT_VERSION=v2.11.4
fi
-go install github.com/golangci/golangci-lint/cmd/golangci-lint@"${GOLANGCI_LINT_VERSION}"
+go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@"${GOLANGCI_LINT_VERSION}"
###############################################################################
diff --git a/.ci/test b/.ci/test
index a496c4fec9..960dff0514 100755
--- a/.ci/test
+++ b/.ci/test
@@ -28,7 +28,7 @@ cd "${SOURCE_PATH}"
# Install Ginkgo (test framework) to be able to execute the tests.
echo "Building Ginkgo framework"
go install github.com/onsi/ginkgo/v2/ginkgo
-echo "Successfully built Ginkgo frawework"
+echo "Successfully built Ginkgo framework"
##############################################################################
diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml
index f893b5bf75..5aa200ea48 100644
--- a/.github/workflows/build.yaml
+++ b/.github/workflows/build.yaml
@@ -60,6 +60,7 @@ jobs:
with:
linter: gosec
run: .ci/check
+ go-version: '1.26'
test:
runs-on: ubuntu-latest
@@ -69,7 +70,7 @@ jobs:
- uses: gardener/cc-utils/.github/actions/trusted-checkout@v1
- uses: actions/setup-go@v5
with:
- go-version: '1.23'
+ go-version: '1.26'
- name: run-test
shell: bash
run: |
diff --git a/.golangci.yaml b/.golangci.yaml
index 6f6cd875c4..382805ce2e 100644
--- a/.golangci.yaml
+++ b/.golangci.yaml
@@ -1,52 +1,61 @@
+version: "2"
run:
concurrency: 4
- timeout: 10m
-
linters:
- disable:
- - unused
enable:
- - revive
- loggercheck
-
-issues:
- exclude-use-default: false
- exclude:
- # errcheck: Almost all programs ignore errors on these functions and in most cases it's ok
- - Error return value of .((os\.)?std(out|err)\..*|.*Close|.*Flush|os\.Remove(All)?|.*printf?|os\.(Un)?Setenv). is not checked
- # revive:
- - var-naming # ((var|const|struct field|func) .* should be .*
- - dot-imports # should not use dot imports
- - package-comments # package comment should be of the form
- - unexported-return # exported func .* returns unexported type .*, which can be annoying to use
- - indent-error-flow # if block ends with a return statement, so drop this else and outdent its block
- - "exported: (type|func) name will be used as .* by other packages, and that stutters;"
- # typecheck:
- - "undeclared name: `.*`"
- - "\".*\" imported but not used"
- # allow non-capitalized messages if they start with technical terms
- - "structured logging message should be capitalized: \"garden(er-apiserver|er-controller-manager|er-admission-controller|er-operator|er-resource-manager|let)"
- exclude-rules:
- - linters:
- - staticcheck
- text: "SA1019:" # Excludes messages where deprecated variables are used
-
- exclude-dirs:
- - pkg/client
-
- exclude-files:
- - "zz_generated\\..*\\.go$"
-
-linters-settings:
- revive:
+ - revive
+ disable:
+ - unused
+ settings:
+ loggercheck:
+ logr: true
+ zap: true
+ no-printf-like: true
+ revive:
+ rules:
+ - name: duplicated-imports
+ - name: unused-parameter
+ - name: unreachable-code
+ - name: context-as-argument
+ - name: early-return
+ - name: exported
+ exclusions:
+ generated: lax
rules:
- - name: duplicated-imports
- - name: unused-parameter
- - name: unreachable-code
- - name: context-as-argument
- - name: early-return
- - name: exported
- loggercheck:
- no-printf-like: true
- logr: true
- zap: true
\ No newline at end of file
+ - linters:
+ - staticcheck
+ text: '(SA1019|QF1008|QF1003|ST1005):'
+ - path: (.+)\.go$
+ text: Error return value of .((os\.)?std(out|err)\..*|.*Close|.*Flush|os\.Remove(All)?|.*printf?|os\.(Un)?Setenv). is not checked
+ - path: (.+)\.go$
+ text: var-naming
+ - path: (.+)\.go$
+ text: dot-imports
+ - path: (.+)\.go$
+ text: package-comments
+ - path: (.+)\.go$
+ text: unexported-return
+ - path: (.+)\.go$
+ text: indent-error-flow
+ - path: (.+)\.go$
+ text: 'exported: (type|func) name will be used as .* by other packages, and that stutters;'
+ - path: (.+)\.go$
+ text: 'undeclared name: `.*`'
+ - path: (.+)\.go$
+ text: '".*" imported but not used'
+ - path: (.+)\.go$
+ text: 'structured logging message should be capitalized: "garden(er-apiserver|er-controller-manager|er-admission-controller|er-operator|er-resource-manager|let)'
+ paths:
+ - zz_generated\..*\.go$
+ - pkg/client
+ - third_party$
+ - builtin$
+ - examples$
+formatters:
+ exclusions:
+ generated: lax
+ paths:
+ - third_party$
+ - builtin$
+ - examples$
diff --git a/Dockerfile b/Dockerfile
index bd8e238c17..3201fdd458 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,5 +1,5 @@
############# builder #############
-FROM golang:1.23.3 AS builder
+FROM golang:1.26.2 AS builder
WORKDIR /go/src/github.com/gardener/machine-controller-manager
COPY . .
diff --git a/docs/documents/apis.md b/docs/documents/apis.md
index 8aa70fc4bf..cb5c4ea05a 100644
--- a/docs/documents/apis.md
+++ b/docs/documents/apis.md
@@ -1617,8 +1617,8 @@ newest MachineSet.
-
-[]*../../pkg/apis/machine/v1alpha1.MachineSummary
+
+[]*github.com/gardener/machine-controller-manager/pkg/apis/machine/v1alpha1.MachineSummary
|
@@ -2075,8 +2075,8 @@ LastOperation
-
-[]../../pkg/apis/machine/v1alpha1.MachineSummary
+
+[]github.com/gardener/machine-controller-manager/pkg/apis/machine/v1alpha1.MachineSummary
|
diff --git a/go.mod b/go.mod
index 514eee984d..c19c526240 100644
--- a/go.mod
+++ b/go.mod
@@ -1,78 +1,78 @@
module github.com/gardener/machine-controller-manager
-go 1.23.0
+go 1.26.2
require (
- github.com/Masterminds/semver/v3 v3.2.1
+ github.com/Masterminds/semver/v3 v3.4.0
github.com/cenkalti/backoff/v4 v4.3.0
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc
github.com/google/uuid v1.6.0
- github.com/onsi/ginkgo/v2 v2.23.0
- github.com/onsi/gomega v1.36.2
- github.com/prometheus/client_golang v1.19.1
- github.com/spf13/pflag v1.0.5
- golang.org/x/lint v0.0.0-20210508222113-6edffad5e616
- k8s.io/api v0.31.0
- k8s.io/apiextensions-apiserver v0.31.0
- k8s.io/apimachinery v0.31.0
- k8s.io/apiserver v0.31.0
- k8s.io/client-go v0.31.0
- k8s.io/cluster-bootstrap v0.31.0
- k8s.io/code-generator v0.31.0
- k8s.io/component-base v0.31.0
+ github.com/onsi/ginkgo/v2 v2.27.2
+ github.com/onsi/gomega v1.38.2
+ github.com/prometheus/client_golang v1.23.2
+ github.com/spf13/pflag v1.0.9
+ k8s.io/api v0.34.0
+ k8s.io/apiextensions-apiserver v0.34.0
+ k8s.io/apimachinery v0.34.0
+ k8s.io/apiserver v0.34.0
+ k8s.io/client-go v0.34.0
+ k8s.io/cluster-bootstrap v0.34.0
+ k8s.io/code-generator v0.34.0
+ k8s.io/component-base v0.34.0
k8s.io/klog/v2 v2.130.1
- k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 // keep this value in sync with k8s.io/apiserver
- k8s.io/utils v0.0.0-20240711033017-18e509b52bc8
- sigs.k8s.io/yaml v1.4.0
+ k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b // keep this value in sync with k8s.io/apiserver
+ k8s.io/utils v0.0.0-20250604170112-4c0f3b243397
+ sigs.k8s.io/yaml v1.6.0
)
require (
github.com/beorn7/perks v1.0.1 // indirect
github.com/blang/semver/v4 v4.0.0 // indirect
github.com/cespare/xxhash/v2 v2.3.0 // indirect
- github.com/emicklei/go-restful/v3 v3.11.0 // indirect
- github.com/fxamacker/cbor/v2 v2.7.0 // indirect
- github.com/go-logr/logr v1.4.2 // indirect
- github.com/go-openapi/jsonpointer v0.19.6 // 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.3 // indirect
+ github.com/go-openapi/jsonpointer v0.21.0 // indirect
github.com/go-openapi/jsonreference v0.20.2 // indirect
- github.com/go-openapi/swag v0.22.4 // indirect
+ github.com/go-openapi/swag v0.23.0 // indirect
github.com/go-task/slim-sprig/v3 v3.0.0 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
- github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
- github.com/golang/protobuf v1.5.4 // indirect
- github.com/google/gnostic-models v0.6.8 // indirect
- github.com/google/go-cmp v0.6.0 // indirect
- github.com/google/gofuzz v1.2.0 // indirect
- github.com/google/pprof v0.0.0-20241210010833-40e02aabc2ad // indirect
- github.com/imdario/mergo v0.3.12 // indirect
+ github.com/google/gnostic-models v0.7.0 // indirect
+ github.com/google/go-cmp v0.7.0 // indirect
+ github.com/google/pprof v0.0.0-20250403155104-27863c87afa6 // indirect
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/mailru/easyjson v0.7.7 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
- github.com/modern-go/reflect2 v1.0.2 // 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/prometheus/client_model v0.6.1 // indirect
- github.com/prometheus/common v0.55.0 // indirect
- github.com/prometheus/procfs v0.15.1 // indirect
- github.com/spf13/cobra v1.8.1 // indirect
+ github.com/pmezard/go-difflib v1.0.0 // 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/x448/float16 v0.8.4 // indirect
- golang.org/x/mod v0.23.0 // indirect
- golang.org/x/net v0.38.0 // indirect
- golang.org/x/oauth2 v0.27.0 // indirect
- golang.org/x/sync v0.12.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
- golang.org/x/time v0.3.0 // indirect
- golang.org/x/tools v0.30.0 // indirect
- google.golang.org/protobuf v1.36.1 // indirect
- gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
+ go.opentelemetry.io/otel v1.35.0 // indirect
+ go.opentelemetry.io/otel/trace v1.35.0 // indirect
+ go.yaml.in/yaml/v2 v2.4.3 // indirect
+ go.yaml.in/yaml/v3 v3.0.4 // 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.9.0 // indirect
+ golang.org/x/tools v0.38.0 // indirect
+ golang.org/x/tools/go/packages/packagestest v0.1.1-deprecated // 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.v2 v2.4.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
- k8s.io/gengo/v2 v2.0.0-20240228010128-51d4e06bde70 // indirect
- sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
- sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect
+ k8s.io/gengo/v2 v2.0.0-20250922181213-ec3ebc5fd46b // 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
)
diff --git a/go.sum b/go.sum
index cb19999878..06ef17e92a 100644
--- a/go.sum
+++ b/go.sum
@@ -1,5 +1,5 @@
-github.com/Masterminds/semver/v3 v3.2.1 h1:RN9w6+7QoMeJVGyfmbcgs28Br8cvmnucEXnY0rYXWg0=
-github.com/Masterminds/semver/v3 v3.2.1/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ=
+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/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=
@@ -8,57 +8,61 @@ github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK3
github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE=
github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
-github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
+github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g=
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
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=
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxERmMY4rD+g=
-github.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
-github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E=
-github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ=
-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/emicklei/go-restful/v3 v3.12.2 h1:DhwDP0vY3k8ZzE0RunuJy8GhNpPL6zqLkDf9B/a0/xU=
+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/gkampitakis/ciinfo v0.3.2 h1:JcuOPk8ZU7nZQjdUhctuhQofk7BGHuIy0c9Ez8BNhXs=
+github.com/gkampitakis/ciinfo v0.3.2/go.mod h1:1NIwaOcFChN4fa/B0hEBdAb6npDlFL8Bwx4dfRLRqAo=
+github.com/gkampitakis/go-diff v1.3.2 h1:Qyn0J9XJSDTgnsgHRdz9Zp24RaJeKMUHg2+PDZZdC4M=
+github.com/gkampitakis/go-diff v1.3.2/go.mod h1:LLgOrpqleQe26cte8s36HTWcTmMEur6OPYerdAAS9tk=
+github.com/gkampitakis/go-snaps v0.5.15 h1:amyJrvM1D33cPHwVrjo9jQxX8g/7E2wYdZ+01KS3zGE=
+github.com/gkampitakis/go-snaps v0.5.15/go.mod h1:HNpx/9GoKisdhw9AFOBT1N7DBs9DiHo/hGheFGBZ+mc=
+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/zapr v1.3.0 h1:XGdV8XW8zdwFiwOA2Dryh1gj2KRQyOOoNmBy4EplIcQ=
github.com/go-logr/zapr v1.3.0/go.mod h1:YKepepNBd1u/oyhd/yQmtjVXmm9uML4IXUgMOwR8/Gg=
-github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE=
github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
+github.com/go-openapi/jsonpointer v0.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.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14=
-github.com/go-openapi/swag v0.22.4 h1:QLMzNJnMGPRNDCbySlcj1x01tzU8/9LTTL9hZZZogBU=
-github.com/go-openapi/swag v0.22.4/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14=
+github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE=
+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/goccy/go-yaml v1.18.0 h1:8W7wMFS12Pcas7KU+VVkaiCng+kG8QiFeFwzFb+rwuw=
+github.com/goccy/go-yaml v1.18.0/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA=
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
-github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE=
-github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
-github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
-github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
-github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I=
-github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U=
-github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
-github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
-github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
+github.com/google/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/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0=
-github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
-github.com/google/pprof v0.0.0-20241210010833-40e02aabc2ad h1:a6HEuzUHeKH6hwfN/ZoQgRgVIWFJljSWa/zetS2WTvg=
-github.com/google/pprof v0.0.0-20241210010833-40e02aabc2ad/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/imdario/mergo v0.3.12 h1:b6R2BslTbIEToALKP7LxUvijTsNI9TAe80pLWN2g/HU=
-github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA=
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
+github.com/joshdk/go-junit v1.0.0 h1:S86cUKIdwBHWwA6xCmFlf3RTLfVXYQfvanM5Uh+K6GE=
+github.com/joshdk/go-junit v1.0.0/go.mod h1:TiiV0PqkaNfFXjEiyjWM3XXrhVyCa1K4Zfga6W52ung=
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
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.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
@@ -66,148 +70,169 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
+github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
+github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
+github.com/maruel/natural v1.1.1 h1:Hja7XhhmvEFhcByqDoHz9QZbkWey+COd9xWfCfn1ioo=
+github.com/maruel/natural v1.1.1/go.mod h1:v+Rfd79xlw1AgVBjbO0BEQmptqb5HvL/k9GRHB7ZKEg=
+github.com/mfridman/tparse v0.18.0 h1:wh6dzOKaIwkUGyKgOntDW4liXSo37qg5AXbIhkMV3vE=
+github.com/mfridman/tparse v0.18.0/go.mod h1:gEvqZTuCgEhPbYk/2lS3Kcxg1GmTxxU7kTC8DvP0i/A=
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
-github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
+github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee h1:W5t00kpgFdJifH4BDsTlE89Zl93FEloxaWZfGcifgq8=
+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.23.0 h1:FA1xjp8ieYDzlgS5ABTpdUDB7wtngggONc8a7ku2NqQ=
-github.com/onsi/ginkgo/v2 v2.23.0/go.mod h1:zXTP6xIp3U8aVuXN8ENK9IXRaTjFnpVB9mGmaSRvxnM=
-github.com/onsi/gomega v1.36.2 h1:koNYke6TVk6ZmnyHrCXba/T/MoLBXFjeC1PtvYgw0A8=
-github.com/onsi/gomega v1.36.2/go.mod h1:DdwyADRjrc825LhMEkD76cHR5+pUnjhUN8GlHlRPHzY=
-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 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
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.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQeLaYJFJBOE=
-github.com/prometheus/client_golang v1.19.1/go.mod h1:mP78NwGzrVks5S2H6ab8+ZZGJLZUq1hoULYBAYBw1Ho=
-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.55.0 h1:KEi6DK7lXW/m7Ig5i47x0vRzuBsHuvJdi5ee6Y3G1dc=
-github.com/prometheus/common v0.55.0/go.mod h1:2SECS4xJG1kd8XF9IcM1gMX6510RAEL65zxzNImwdc8=
-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.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8=
-github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4=
+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.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII=
+github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o=
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
-github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM=
-github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y=
-github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
-github.com/spf13/pflag v1.0.5/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/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
+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.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.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
-github.com/stretchr/testify v1.9.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/tidwall/gjson v1.18.0 h1:FIDeeyB800efLX89e5a8Y0BNH+LOngJyGrIWxG2FKQY=
+github.com/tidwall/gjson v1.18.0/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk=
+github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA=
+github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM=
+github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4=
+github.com/tidwall/pretty v1.2.1/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU=
+github.com/tidwall/sjson v1.2.5 h1:kLy8mja+1c9jlljvWTlSazM7cKDRfJuR/bOJhcY5NcY=
+github.com/tidwall/sjson v1.2.5/go.mod h1:Fvgq9kS/6ociJEDnK0Fk1cpYF4FIW6ZF7LAe+6jwd28=
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.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.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
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.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo=
-go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so=
+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.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/lint v0.0.0-20210508222113-6edffad5e616 h1:VLliZ0d+/avPrXXH+OakdXhpJuEoBZuwh1m2j7U6Iug=
-golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
-golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
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.23.0 h1:Zb7khfcRGKk+kqfxFaP5tZqCnDZMjC5VtUBs87Hr6QM=
-golang.org/x/mod v0.23.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY=
+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.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/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.12.0 h1:MHc5BpPuC30uJk597Ri8TV3CNZcTLu6B6z4lJy+g6Jw=
-golang.org/x/sync v0.12.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.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/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.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY=
-golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4=
-golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4=
-golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
+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-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
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.30.0 h1:BgcpHewrV5AUp2G9MebG4XPFI1E2W41zU1SaqVA9vJY=
-golang.org/x/tools v0.30.0/go.mod h1:c347cR/OJfw5TI+GfX7RUPNMdDRRbjvYTS0jPyvsVtY=
+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/tools/go/expect v0.1.0-deprecated h1:jY2C5HGYR5lqex3gEniOQL0r7Dq5+VGVgY1nudX5lXY=
+golang.org/x/tools/go/expect v0.1.0-deprecated/go.mod h1:eihoPOH+FgIqa3FpoTwguz/bVUSGBlGQU67vpBeOrBY=
+golang.org/x/tools/go/packages/packagestest v0.1.1-deprecated h1:1h2MnaIAIXISqTFKdENegdpAgUXz6NrPEsbIeWaBRvM=
+golang.org/x/tools/go/packages/packagestest v0.1.1-deprecated/go.mod h1:RVAQXBGNv1ib0J382/DPCRS/BPnsGebyM1Gj5VSDpG8=
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.1 h1:yBPeRvTftaleIgM3PZ/WBIZ7XM/eEYAaEyCwvyjq/gk=
-google.golang.org/protobuf v1.36.1/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.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
-gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
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.31.0 h1:b9LiSjR2ym/SzTOlfMHm1tr7/21aD7fSkqgD/CVJBCo=
-k8s.io/api v0.31.0/go.mod h1:0YiFF+JfFxMM6+1hQei8FY8M7s1Mth+z/q7eF1aJkTE=
-k8s.io/apiextensions-apiserver v0.31.0 h1:fZgCVhGwsclj3qCw1buVXCV6khjRzKC5eCFt24kyLSk=
-k8s.io/apiextensions-apiserver v0.31.0/go.mod h1:b9aMDEYaEe5sdK+1T0KU78ApR/5ZVp4i56VacZYEHxk=
-k8s.io/apimachinery v0.31.0 h1:m9jOiSr3FoSSL5WO9bjm1n6B9KROYYgNZOb4tyZ1lBc=
-k8s.io/apimachinery v0.31.0/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo=
-k8s.io/apiserver v0.31.0 h1:p+2dgJjy+bk+B1Csz+mc2wl5gHwvNkC9QJV+w55LVrY=
-k8s.io/apiserver v0.31.0/go.mod h1:KI9ox5Yu902iBnnyMmy7ajonhKnkeZYJhTZ/YI+WEMk=
-k8s.io/client-go v0.31.0 h1:QqEJzNjbN2Yv1H79SsS+SWnXkBgVu4Pj3CJQgbx0gI8=
-k8s.io/client-go v0.31.0/go.mod h1:Y9wvC76g4fLjmU0BA+rV+h2cncoadjvjjkkIGoTLcGU=
-k8s.io/cluster-bootstrap v0.31.0 h1:jj5t1PArBPddvDypdNpzqnZQ/+qnGxpJuTF7SX05h1Y=
-k8s.io/cluster-bootstrap v0.31.0/go.mod h1:6ujqWFrBV4amKe1ii/6BXgrd57bF/Q3gXebLJdmfSK4=
-k8s.io/code-generator v0.31.0 h1:w607nrMi1KeDKB3/F/J4lIoOgAwc+gV9ZKew4XRfMp8=
-k8s.io/code-generator v0.31.0/go.mod h1:84y4w3es8rOJOUUP1rLsIiGlO1JuEaPFXQPA9e/K6U0=
-k8s.io/component-base v0.31.0 h1:/KIzGM5EvPNQcYgwq5NwoQBaOlVFrghoVGr8lG6vNRs=
-k8s.io/component-base v0.31.0/go.mod h1:TYVuzI1QmN4L5ItVdMSXKvH7/DtvIuas5/mm8YT3rTo=
-k8s.io/gengo/v2 v2.0.0-20240228010128-51d4e06bde70 h1:NGrVE502P0s0/1hudf8zjgwki1X/TByhmAoILTarmzo=
-k8s.io/gengo/v2 v2.0.0-20240228010128-51d4e06bde70/go.mod h1:VH3AT8AaQOqiGjMF9p0/IM1Dj+82ZwjfxUP1IxaHE+8=
+k8s.io/api v0.34.0 h1:L+JtP2wDbEYPUeNGbeSa/5GwFtIA662EmT2YSLOkAVE=
+k8s.io/api v0.34.0/go.mod h1:YzgkIzOOlhl9uwWCZNqpw6RJy9L2FK4dlJeayUoydug=
+k8s.io/apiextensions-apiserver v0.34.0 h1:B3hiB32jV7BcyKcMU5fDaDxk882YrJ1KU+ZSkA9Qxoc=
+k8s.io/apiextensions-apiserver v0.34.0/go.mod h1:hLI4GxE1BDBy9adJKxUxCEHBGZtGfIg98Q+JmTD7+g0=
+k8s.io/apimachinery v0.34.0 h1:eR1WO5fo0HyoQZt1wdISpFDffnWOvFLOOeJ7MgIv4z0=
+k8s.io/apimachinery v0.34.0/go.mod h1:/GwIlEcWuTX9zKIg2mbw0LRFIsXwrfoVxn+ef0X13lw=
+k8s.io/apiserver v0.34.0 h1:Z51fw1iGMqN7uJ1kEaynf2Aec1Y774PqU+FVWCFV3Jg=
+k8s.io/apiserver v0.34.0/go.mod h1:52ti5YhxAvewmmpVRqlASvaqxt0gKJxvCeW7ZrwgazQ=
+k8s.io/client-go v0.34.0 h1:YoWv5r7bsBfb0Hs2jh8SOvFbKzzxyNo0nSb0zC19KZo=
+k8s.io/client-go v0.34.0/go.mod h1:ozgMnEKXkRjeMvBZdV1AijMHLTh3pbACPvK7zFR+QQY=
+k8s.io/cluster-bootstrap v0.34.0 h1:fWH6cUXbocLYMtWuONVwQ8ayqdEWlyvu25gedMTYTDk=
+k8s.io/cluster-bootstrap v0.34.0/go.mod h1:ZpbQwB+CDTYZIjDKM6Hnt081s0xswcFrlhW7mHVNc7k=
+k8s.io/code-generator v0.34.0 h1:Ze2i1QsvUprIlX3oHiGv09BFQRLCz+StA8qKwwFzees=
+k8s.io/code-generator v0.34.0/go.mod h1:Py2+4w2HXItL8CGhks8uI/wS3Y93wPKO/9mBQUYNua0=
+k8s.io/component-base v0.34.0 h1:bS8Ua3zlJzapklsB1dZgjEJuJEeHjj8yTu1gxE2zQX8=
+k8s.io/component-base v0.34.0/go.mod h1:RSCqUdvIjjrEm81epPcjQ/DS+49fADvGSCkIP3IC6vg=
+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-20240228011516-70dd3763d340 h1:BZqlfIlq5YbRMFko6/PM7FjZpUb45WallggurYhKGag=
-k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340/go.mod h1:yD4MZYeKMBwQKVht279WycxKyM84kkAx2DPrTXaeb98=
-k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 h1:pUdcCO1Lk/tbT5ztQWOBi5HBgbBP1J8+AsQnQCKsi8A=
-k8s.io/utils v0.0.0-20240711033017-18e509b52bc8/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
-sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo=
-sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0=
-sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4=
-sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08=
-sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E=
-sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY=
+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-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=
+sigs.k8s.io/structured-merge-diff/v6 v6.3.0/go.mod h1:M3W8sfWvn2HhQDIbGWj3S099YozAsymCo/wrT5ohRUE=
+sigs.k8s.io/yaml v1.6.0 h1:G8fkbMSAFqgEFgh4b1wmtzDnioxFCUgTZhlbj5P9QYs=
+sigs.k8s.io/yaml v1.6.0/go.mod h1:796bPqUfzR/0jLAl6XjHl3Ck7MiyVv8dbTdyT3/pMf4=
diff --git a/hack/tools.go b/hack/tools.go
index 90e2c7c638..f968bf9659 100644
--- a/hack/tools.go
+++ b/hack/tools.go
@@ -10,6 +10,5 @@ package tools
import (
_ "github.com/onsi/ginkgo/v2/ginkgo"
- _ "golang.org/x/lint/golint"
_ "k8s.io/code-generator"
)
diff --git a/hack/tools.mk b/hack/tools.mk
index 96a1681487..7aafe0f302 100644
--- a/hack/tools.mk
+++ b/hack/tools.mk
@@ -26,15 +26,14 @@ GOLANGCI_LINT ?= $(TOOLS_BIN_DIR)/golangci-lint
GOSEC ?= $(TOOLS_BIN_DIR)/gosec
## Tool Versions
-CODE_GENERATOR_VERSION ?= v0.31.0
-VGOPATH_VERSION ?= v0.1.6
-CONTROLLER_TOOLS_VERSION ?= v0.16.1
+CODE_GENERATOR_VERSION ?= $(call version_gomod,k8s.io/code-generator)
+VGOPATH_VERSION ?= v0.1.10
+CONTROLLER_TOOLS_VERSION ?= v0.20.1
GEN_CRD_API_REFERENCE_DOCS_VERSION ?= v0.3.0
ADDLICENSE_VERSION ?= v1.1.1
-GOIMPORTS_VERSION ?= v0.13.0
-GOLANGCI_LINT_VERSION ?= v1.64.8
-GOSEC_VERSION ?= v2.21.4
-
+GOIMPORTS_VERSION ?= $(call version_gomod,golang.org/x/tools)
+GOLANGCI_LINT_VERSION ?= v2.11.4
+GOSEC_VERSION ?= v2.25.0
# default tool versions
GO_ADD_LICENSE_VERSION ?= latest
@@ -42,6 +41,9 @@ GO_ADD_LICENSE_VERSION ?= latest
export TOOLS_BIN_DIR := $(TOOLS_BIN_DIR)
export PATH := $(abspath $(TOOLS_BIN_DIR)):$(PATH)
+# Use this function to get the version of a go module from go.mod
+version_gomod = $(shell go list -f '{{ .Version }}' -m $(1))
+
#########################################
# Tools #
#########################################
@@ -78,7 +80,7 @@ $(GOIMPORTS):
GOBIN=$(abspath $(TOOLS_BIN_DIR)) go install golang.org/x/tools/cmd/goimports@$(GOIMPORTS_VERSION)
$(GOLANGCI_LINT): $(TOOLS_BIN_DIR)
- GOBIN=$(abspath $(TOOLS_BIN_DIR)) go install github.com/golangci/golangci-lint/cmd/golangci-lint@$(GOLANGCI_LINT_VERSION)
+ GOBIN=$(abspath $(TOOLS_BIN_DIR)) go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@$(GOLANGCI_LINT_VERSION)
$(GOSEC):
GOSEC_VERSION=$(GOSEC_VERSION) bash $(TOOLS_PKG_PATH)/install-gosec.sh
diff --git a/kubernetes/crds/machine.sapcloud.io_machineclasses.yaml b/kubernetes/crds/machine.sapcloud.io_machineclasses.yaml
index f0cd9d515d..48f45acee4 100644
--- a/kubernetes/crds/machine.sapcloud.io_machineclasses.yaml
+++ b/kubernetes/crds/machine.sapcloud.io_machineclasses.yaml
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.16.1
+ controller-gen.kubebuilder.io/version: v0.20.1
name: machineclasses.machine.sapcloud.io
spec:
group: machine.sapcloud.io
diff --git a/kubernetes/crds/machine.sapcloud.io_machinedeployments.yaml b/kubernetes/crds/machine.sapcloud.io_machinedeployments.yaml
index f55235fc05..0387ae2713 100644
--- a/kubernetes/crds/machine.sapcloud.io_machinedeployments.yaml
+++ b/kubernetes/crds/machine.sapcloud.io_machinedeployments.yaml
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.16.1
+ controller-gen.kubebuilder.io/version: v0.20.1
name: machinedeployments.machine.sapcloud.io
spec:
group: machine.sapcloud.io
@@ -407,9 +407,8 @@ spec:
to a node.
type: string
timeAdded:
- description: |-
- TimeAdded represents the time at which the taint was added.
- It is only written for NoExecute taints.
+ description: TimeAdded represents the time at
+ which the taint was added.
format: date-time
type: string
value:
diff --git a/kubernetes/crds/machine.sapcloud.io_machines.yaml b/kubernetes/crds/machine.sapcloud.io_machines.yaml
index fcea16750d..2835562dd8 100644
--- a/kubernetes/crds/machine.sapcloud.io_machines.yaml
+++ b/kubernetes/crds/machine.sapcloud.io_machines.yaml
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.16.1
+ controller-gen.kubebuilder.io/version: v0.20.1
name: machines.machine.sapcloud.io
spec:
group: machine.sapcloud.io
@@ -198,9 +198,8 @@ spec:
a node.
type: string
timeAdded:
- description: |-
- TimeAdded represents the time at which the taint was added.
- It is only written for NoExecute taints.
+ description: TimeAdded represents the time at which
+ the taint was added.
format: date-time
type: string
value:
diff --git a/kubernetes/crds/machine.sapcloud.io_machinesets.yaml b/kubernetes/crds/machine.sapcloud.io_machinesets.yaml
index ba176b8df0..8c7b4509be 100644
--- a/kubernetes/crds/machine.sapcloud.io_machinesets.yaml
+++ b/kubernetes/crds/machine.sapcloud.io_machinesets.yaml
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.16.1
+ controller-gen.kubebuilder.io/version: v0.20.1
name: machinesets.machine.sapcloud.io
spec:
group: machine.sapcloud.io
@@ -286,9 +286,8 @@ spec:
to a node.
type: string
timeAdded:
- description: |-
- TimeAdded represents the time at which the taint was added.
- It is only written for NoExecute taints.
+ description: TimeAdded represents the time at
+ which the taint was added.
format: date-time
type: string
value:
diff --git a/pkg/apis/machine/validation/machinedeployment_test.go b/pkg/apis/machine/validation/machinedeployment_test.go
index 1387eb2ad1..e86b9e9207 100644
--- a/pkg/apis/machine/validation/machinedeployment_test.go
+++ b/pkg/apis/machine/validation/machinedeployment_test.go
@@ -110,7 +110,7 @@ var _ = Describe("MachineDeployment API Validation", func() {
})
It("should return error if MaxUnavailable is unspecified", func() {
- machineDeployment.Spec.Strategy.RollingUpdate.UpdateConfiguration.MaxUnavailable = nil
+ machineDeployment.Spec.Strategy.RollingUpdate.MaxUnavailable = nil
Expect(ValidateMachineDeployment(machineDeployment)).To(ContainElement(PointTo(MatchFields(IgnoreExtras, Fields{
"Type": Equal(field.ErrorTypeRequired),
@@ -120,7 +120,7 @@ var _ = Describe("MachineDeployment API Validation", func() {
})
It("should return error if MaxSurge is unspecified", func() {
- machineDeployment.Spec.Strategy.RollingUpdate.UpdateConfiguration.MaxSurge = nil
+ machineDeployment.Spec.Strategy.RollingUpdate.MaxSurge = nil
Expect(ValidateMachineDeployment(machineDeployment)).To(ContainElement(PointTo(MatchFields(IgnoreExtras, Fields{
"Type": Equal(field.ErrorTypeRequired),
@@ -149,7 +149,7 @@ var _ = Describe("MachineDeployment API Validation", func() {
})
It("should return error if MaxUnavailable is unspecified", func() {
- machineDeployment.Spec.Strategy.InPlaceUpdate.UpdateConfiguration.MaxUnavailable = nil
+ machineDeployment.Spec.Strategy.InPlaceUpdate.MaxUnavailable = nil
Expect(ValidateMachineDeployment(machineDeployment)).To(ContainElement(PointTo(MatchFields(IgnoreExtras, Fields{
"Type": Equal(field.ErrorTypeRequired),
@@ -159,7 +159,7 @@ var _ = Describe("MachineDeployment API Validation", func() {
})
It("should return error if MaxSurge is unspecified", func() {
- machineDeployment.Spec.Strategy.InPlaceUpdate.UpdateConfiguration.MaxSurge = nil
+ machineDeployment.Spec.Strategy.InPlaceUpdate.MaxSurge = nil
Expect(ValidateMachineDeployment(machineDeployment)).To(ContainElement(PointTo(MatchFields(IgnoreExtras, Fields{
"Type": Equal(field.ErrorTypeRequired),
diff --git a/pkg/client/clientset/versioned/clientset.go b/pkg/client/clientset/versioned/clientset.go
index 30ba2b1f44..395b974bae 100644
--- a/pkg/client/clientset/versioned/clientset.go
+++ b/pkg/client/clientset/versioned/clientset.go
@@ -7,8 +7,8 @@
package versioned
import (
- "fmt"
- "net/http"
+ fmt "fmt"
+ http "net/http"
machinev1alpha1 "github.com/gardener/machine-controller-manager/pkg/client/clientset/versioned/typed/machine/v1alpha1"
discovery "k8s.io/client-go/discovery"
diff --git a/pkg/client/clientset/versioned/fake/clientset_generated.go b/pkg/client/clientset/versioned/fake/clientset_generated.go
index e40a056d84..5506694b57 100644
--- a/pkg/client/clientset/versioned/fake/clientset_generated.go
+++ b/pkg/client/clientset/versioned/fake/clientset_generated.go
@@ -10,6 +10,7 @@ import (
clientset "github.com/gardener/machine-controller-manager/pkg/client/clientset/versioned"
machinev1alpha1 "github.com/gardener/machine-controller-manager/pkg/client/clientset/versioned/typed/machine/v1alpha1"
fakemachinev1alpha1 "github.com/gardener/machine-controller-manager/pkg/client/clientset/versioned/typed/machine/v1alpha1/fake"
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/watch"
"k8s.io/client-go/discovery"
@@ -37,9 +38,13 @@ func NewSimpleClientset(objects ...runtime.Object) *Clientset {
cs.discovery = &fakediscovery.FakeDiscovery{Fake: &cs.Fake}
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
+ }
gvr := action.GetResource()
ns := action.GetNamespace()
- watch, err := o.Watch(gvr, ns)
+ watch, err := o.Watch(gvr, ns, opts)
if err != nil {
return false, nil, err
}
diff --git a/pkg/client/clientset/versioned/typed/machine/v1alpha1/fake/fake_machine.go b/pkg/client/clientset/versioned/typed/machine/v1alpha1/fake/fake_machine.go
index 9fe8a755ad..92085453f2 100644
--- a/pkg/client/clientset/versioned/typed/machine/v1alpha1/fake/fake_machine.go
+++ b/pkg/client/clientset/versioned/typed/machine/v1alpha1/fake/fake_machine.go
@@ -7,129 +7,32 @@
package fake
import (
- "context"
-
v1alpha1 "github.com/gardener/machine-controller-manager/pkg/apis/machine/v1alpha1"
- v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
- labels "k8s.io/apimachinery/pkg/labels"
- types "k8s.io/apimachinery/pkg/types"
- watch "k8s.io/apimachinery/pkg/watch"
- testing "k8s.io/client-go/testing"
+ machinev1alpha1 "github.com/gardener/machine-controller-manager/pkg/client/clientset/versioned/typed/machine/v1alpha1"
+ gentype "k8s.io/client-go/gentype"
)
-// FakeMachines implements MachineInterface
-type FakeMachines struct {
+// fakeMachines implements MachineInterface
+type fakeMachines struct {
+ *gentype.FakeClientWithList[*v1alpha1.Machine, *v1alpha1.MachineList]
Fake *FakeMachineV1alpha1
- ns string
-}
-
-var machinesResource = v1alpha1.SchemeGroupVersion.WithResource("machines")
-
-var machinesKind = v1alpha1.SchemeGroupVersion.WithKind("Machine")
-
-// Get takes name of the machine, and returns the corresponding machine object, and an error if there is any.
-func (c *FakeMachines) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.Machine, err error) {
- emptyResult := &v1alpha1.Machine{}
- obj, err := c.Fake.
- Invokes(testing.NewGetActionWithOptions(machinesResource, c.ns, name, options), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v1alpha1.Machine), err
-}
-
-// List takes label and field selectors, and returns the list of Machines that match those selectors.
-func (c *FakeMachines) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.MachineList, err error) {
- emptyResult := &v1alpha1.MachineList{}
- obj, err := c.Fake.
- Invokes(testing.NewListActionWithOptions(machinesResource, machinesKind, c.ns, opts), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
-
- label, _, _ := testing.ExtractFromListOptions(opts)
- if label == nil {
- label = labels.Everything()
- }
- list := &v1alpha1.MachineList{ListMeta: obj.(*v1alpha1.MachineList).ListMeta}
- for _, item := range obj.(*v1alpha1.MachineList).Items {
- if label.Matches(labels.Set(item.Labels)) {
- list.Items = append(list.Items, item)
- }
- }
- return list, err
-}
-
-// Watch returns a watch.Interface that watches the requested machines.
-func (c *FakeMachines) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {
- return c.Fake.
- InvokesWatch(testing.NewWatchActionWithOptions(machinesResource, c.ns, opts))
-
-}
-
-// Create takes the representation of a machine and creates it. Returns the server's representation of the machine, and an error, if there is any.
-func (c *FakeMachines) Create(ctx context.Context, machine *v1alpha1.Machine, opts v1.CreateOptions) (result *v1alpha1.Machine, err error) {
- emptyResult := &v1alpha1.Machine{}
- obj, err := c.Fake.
- Invokes(testing.NewCreateActionWithOptions(machinesResource, c.ns, machine, opts), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v1alpha1.Machine), err
-}
-
-// Update takes the representation of a machine and updates it. Returns the server's representation of the machine, and an error, if there is any.
-func (c *FakeMachines) Update(ctx context.Context, machine *v1alpha1.Machine, opts v1.UpdateOptions) (result *v1alpha1.Machine, err error) {
- emptyResult := &v1alpha1.Machine{}
- obj, err := c.Fake.
- Invokes(testing.NewUpdateActionWithOptions(machinesResource, c.ns, machine, opts), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v1alpha1.Machine), err
-}
-
-// UpdateStatus was generated because the type contains a Status member.
-// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
-func (c *FakeMachines) UpdateStatus(ctx context.Context, machine *v1alpha1.Machine, opts v1.UpdateOptions) (result *v1alpha1.Machine, err error) {
- emptyResult := &v1alpha1.Machine{}
- obj, err := c.Fake.
- Invokes(testing.NewUpdateSubresourceActionWithOptions(machinesResource, "status", c.ns, machine, opts), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v1alpha1.Machine), err
-}
-
-// Delete takes name of the machine and deletes it. Returns an error if one occurs.
-func (c *FakeMachines) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {
- _, err := c.Fake.
- Invokes(testing.NewDeleteActionWithOptions(machinesResource, c.ns, name, opts), &v1alpha1.Machine{})
-
- return err
}
-// DeleteCollection deletes a collection of objects.
-func (c *FakeMachines) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {
- action := testing.NewDeleteCollectionActionWithOptions(machinesResource, c.ns, opts, listOpts)
-
- _, err := c.Fake.Invokes(action, &v1alpha1.MachineList{})
- return err
-}
-
-// Patch applies the patch and returns the patched machine.
-func (c *FakeMachines) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.Machine, err error) {
- emptyResult := &v1alpha1.Machine{}
- obj, err := c.Fake.
- Invokes(testing.NewPatchSubresourceActionWithOptions(machinesResource, c.ns, name, pt, data, opts, subresources...), emptyResult)
-
- if obj == nil {
- return emptyResult, err
+func newFakeMachines(fake *FakeMachineV1alpha1, namespace string) machinev1alpha1.MachineInterface {
+ return &fakeMachines{
+ gentype.NewFakeClientWithList[*v1alpha1.Machine, *v1alpha1.MachineList](
+ fake.Fake,
+ namespace,
+ v1alpha1.SchemeGroupVersion.WithResource("machines"),
+ v1alpha1.SchemeGroupVersion.WithKind("Machine"),
+ func() *v1alpha1.Machine { return &v1alpha1.Machine{} },
+ func() *v1alpha1.MachineList { return &v1alpha1.MachineList{} },
+ func(dst, src *v1alpha1.MachineList) { dst.ListMeta = src.ListMeta },
+ func(list *v1alpha1.MachineList) []*v1alpha1.Machine { return gentype.ToPointerSlice(list.Items) },
+ func(list *v1alpha1.MachineList, items []*v1alpha1.Machine) {
+ list.Items = gentype.FromPointerSlice(items)
+ },
+ ),
+ fake,
}
- return obj.(*v1alpha1.Machine), err
}
diff --git a/pkg/client/clientset/versioned/typed/machine/v1alpha1/fake/fake_machine_client.go b/pkg/client/clientset/versioned/typed/machine/v1alpha1/fake/fake_machine_client.go
index 8537bed492..5ff6dd561d 100644
--- a/pkg/client/clientset/versioned/typed/machine/v1alpha1/fake/fake_machine_client.go
+++ b/pkg/client/clientset/versioned/typed/machine/v1alpha1/fake/fake_machine_client.go
@@ -17,19 +17,19 @@ type FakeMachineV1alpha1 struct {
}
func (c *FakeMachineV1alpha1) Machines(namespace string) v1alpha1.MachineInterface {
- return &FakeMachines{c, namespace}
+ return newFakeMachines(c, namespace)
}
func (c *FakeMachineV1alpha1) MachineClasses(namespace string) v1alpha1.MachineClassInterface {
- return &FakeMachineClasses{c, namespace}
+ return newFakeMachineClasses(c, namespace)
}
func (c *FakeMachineV1alpha1) MachineDeployments(namespace string) v1alpha1.MachineDeploymentInterface {
- return &FakeMachineDeployments{c, namespace}
+ return newFakeMachineDeployments(c, namespace)
}
func (c *FakeMachineV1alpha1) MachineSets(namespace string) v1alpha1.MachineSetInterface {
- return &FakeMachineSets{c, namespace}
+ return newFakeMachineSets(c, namespace)
}
// RESTClient returns a RESTClient that is used to communicate
diff --git a/pkg/client/clientset/versioned/typed/machine/v1alpha1/fake/fake_machineclass.go b/pkg/client/clientset/versioned/typed/machine/v1alpha1/fake/fake_machineclass.go
index b5976fb2f0..48081891aa 100644
--- a/pkg/client/clientset/versioned/typed/machine/v1alpha1/fake/fake_machineclass.go
+++ b/pkg/client/clientset/versioned/typed/machine/v1alpha1/fake/fake_machineclass.go
@@ -7,116 +7,34 @@
package fake
import (
- "context"
-
v1alpha1 "github.com/gardener/machine-controller-manager/pkg/apis/machine/v1alpha1"
- v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
- labels "k8s.io/apimachinery/pkg/labels"
- types "k8s.io/apimachinery/pkg/types"
- watch "k8s.io/apimachinery/pkg/watch"
- testing "k8s.io/client-go/testing"
+ machinev1alpha1 "github.com/gardener/machine-controller-manager/pkg/client/clientset/versioned/typed/machine/v1alpha1"
+ gentype "k8s.io/client-go/gentype"
)
-// FakeMachineClasses implements MachineClassInterface
-type FakeMachineClasses struct {
+// fakeMachineClasses implements MachineClassInterface
+type fakeMachineClasses struct {
+ *gentype.FakeClientWithList[*v1alpha1.MachineClass, *v1alpha1.MachineClassList]
Fake *FakeMachineV1alpha1
- ns string
-}
-
-var machineclassesResource = v1alpha1.SchemeGroupVersion.WithResource("machineclasses")
-
-var machineclassesKind = v1alpha1.SchemeGroupVersion.WithKind("MachineClass")
-
-// Get takes name of the machineClass, and returns the corresponding machineClass object, and an error if there is any.
-func (c *FakeMachineClasses) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.MachineClass, err error) {
- emptyResult := &v1alpha1.MachineClass{}
- obj, err := c.Fake.
- Invokes(testing.NewGetActionWithOptions(machineclassesResource, c.ns, name, options), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v1alpha1.MachineClass), err
-}
-
-// List takes label and field selectors, and returns the list of MachineClasses that match those selectors.
-func (c *FakeMachineClasses) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.MachineClassList, err error) {
- emptyResult := &v1alpha1.MachineClassList{}
- obj, err := c.Fake.
- Invokes(testing.NewListActionWithOptions(machineclassesResource, machineclassesKind, c.ns, opts), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
-
- label, _, _ := testing.ExtractFromListOptions(opts)
- if label == nil {
- label = labels.Everything()
- }
- list := &v1alpha1.MachineClassList{ListMeta: obj.(*v1alpha1.MachineClassList).ListMeta}
- for _, item := range obj.(*v1alpha1.MachineClassList).Items {
- if label.Matches(labels.Set(item.Labels)) {
- list.Items = append(list.Items, item)
- }
- }
- return list, err
-}
-
-// Watch returns a watch.Interface that watches the requested machineClasses.
-func (c *FakeMachineClasses) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {
- return c.Fake.
- InvokesWatch(testing.NewWatchActionWithOptions(machineclassesResource, c.ns, opts))
-
-}
-
-// Create takes the representation of a machineClass and creates it. Returns the server's representation of the machineClass, and an error, if there is any.
-func (c *FakeMachineClasses) Create(ctx context.Context, machineClass *v1alpha1.MachineClass, opts v1.CreateOptions) (result *v1alpha1.MachineClass, err error) {
- emptyResult := &v1alpha1.MachineClass{}
- obj, err := c.Fake.
- Invokes(testing.NewCreateActionWithOptions(machineclassesResource, c.ns, machineClass, opts), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v1alpha1.MachineClass), err
-}
-
-// Update takes the representation of a machineClass and updates it. Returns the server's representation of the machineClass, and an error, if there is any.
-func (c *FakeMachineClasses) Update(ctx context.Context, machineClass *v1alpha1.MachineClass, opts v1.UpdateOptions) (result *v1alpha1.MachineClass, err error) {
- emptyResult := &v1alpha1.MachineClass{}
- obj, err := c.Fake.
- Invokes(testing.NewUpdateActionWithOptions(machineclassesResource, c.ns, machineClass, opts), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v1alpha1.MachineClass), err
-}
-
-// Delete takes name of the machineClass and deletes it. Returns an error if one occurs.
-func (c *FakeMachineClasses) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {
- _, err := c.Fake.
- Invokes(testing.NewDeleteActionWithOptions(machineclassesResource, c.ns, name, opts), &v1alpha1.MachineClass{})
-
- return err
}
-// DeleteCollection deletes a collection of objects.
-func (c *FakeMachineClasses) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {
- action := testing.NewDeleteCollectionActionWithOptions(machineclassesResource, c.ns, opts, listOpts)
-
- _, err := c.Fake.Invokes(action, &v1alpha1.MachineClassList{})
- return err
-}
-
-// Patch applies the patch and returns the patched machineClass.
-func (c *FakeMachineClasses) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.MachineClass, err error) {
- emptyResult := &v1alpha1.MachineClass{}
- obj, err := c.Fake.
- Invokes(testing.NewPatchSubresourceActionWithOptions(machineclassesResource, c.ns, name, pt, data, opts, subresources...), emptyResult)
-
- if obj == nil {
- return emptyResult, err
+func newFakeMachineClasses(fake *FakeMachineV1alpha1, namespace string) machinev1alpha1.MachineClassInterface {
+ return &fakeMachineClasses{
+ gentype.NewFakeClientWithList[*v1alpha1.MachineClass, *v1alpha1.MachineClassList](
+ fake.Fake,
+ namespace,
+ v1alpha1.SchemeGroupVersion.WithResource("machineclasses"),
+ v1alpha1.SchemeGroupVersion.WithKind("MachineClass"),
+ func() *v1alpha1.MachineClass { return &v1alpha1.MachineClass{} },
+ func() *v1alpha1.MachineClassList { return &v1alpha1.MachineClassList{} },
+ func(dst, src *v1alpha1.MachineClassList) { dst.ListMeta = src.ListMeta },
+ func(list *v1alpha1.MachineClassList) []*v1alpha1.MachineClass {
+ return gentype.ToPointerSlice(list.Items)
+ },
+ func(list *v1alpha1.MachineClassList, items []*v1alpha1.MachineClass) {
+ list.Items = gentype.FromPointerSlice(items)
+ },
+ ),
+ fake,
}
- return obj.(*v1alpha1.MachineClass), err
}
diff --git a/pkg/client/clientset/versioned/typed/machine/v1alpha1/fake/fake_machinedeployment.go b/pkg/client/clientset/versioned/typed/machine/v1alpha1/fake/fake_machinedeployment.go
index fc719dfd50..c5a3a74aef 100644
--- a/pkg/client/clientset/versioned/typed/machine/v1alpha1/fake/fake_machinedeployment.go
+++ b/pkg/client/clientset/versioned/typed/machine/v1alpha1/fake/fake_machinedeployment.go
@@ -7,142 +7,51 @@
package fake
import (
- "context"
+ context "context"
v1alpha1 "github.com/gardener/machine-controller-manager/pkg/apis/machine/v1alpha1"
- autoscalingv1 "k8s.io/api/autoscaling/v1"
- v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
- labels "k8s.io/apimachinery/pkg/labels"
- types "k8s.io/apimachinery/pkg/types"
- watch "k8s.io/apimachinery/pkg/watch"
+ machinev1alpha1 "github.com/gardener/machine-controller-manager/pkg/client/clientset/versioned/typed/machine/v1alpha1"
+ v1 "k8s.io/api/autoscaling/v1"
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+ gentype "k8s.io/client-go/gentype"
testing "k8s.io/client-go/testing"
)
-// FakeMachineDeployments implements MachineDeploymentInterface
-type FakeMachineDeployments struct {
+// fakeMachineDeployments implements MachineDeploymentInterface
+type fakeMachineDeployments struct {
+ *gentype.FakeClientWithList[*v1alpha1.MachineDeployment, *v1alpha1.MachineDeploymentList]
Fake *FakeMachineV1alpha1
- ns string
}
-var machinedeploymentsResource = v1alpha1.SchemeGroupVersion.WithResource("machinedeployments")
-
-var machinedeploymentsKind = v1alpha1.SchemeGroupVersion.WithKind("MachineDeployment")
-
-// Get takes name of the machineDeployment, and returns the corresponding machineDeployment object, and an error if there is any.
-func (c *FakeMachineDeployments) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.MachineDeployment, err error) {
- emptyResult := &v1alpha1.MachineDeployment{}
- obj, err := c.Fake.
- Invokes(testing.NewGetActionWithOptions(machinedeploymentsResource, c.ns, name, options), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v1alpha1.MachineDeployment), err
-}
-
-// List takes label and field selectors, and returns the list of MachineDeployments that match those selectors.
-func (c *FakeMachineDeployments) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.MachineDeploymentList, err error) {
- emptyResult := &v1alpha1.MachineDeploymentList{}
- obj, err := c.Fake.
- Invokes(testing.NewListActionWithOptions(machinedeploymentsResource, machinedeploymentsKind, c.ns, opts), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
-
- label, _, _ := testing.ExtractFromListOptions(opts)
- if label == nil {
- label = labels.Everything()
- }
- list := &v1alpha1.MachineDeploymentList{ListMeta: obj.(*v1alpha1.MachineDeploymentList).ListMeta}
- for _, item := range obj.(*v1alpha1.MachineDeploymentList).Items {
- if label.Matches(labels.Set(item.Labels)) {
- list.Items = append(list.Items, item)
- }
- }
- return list, err
-}
-
-// Watch returns a watch.Interface that watches the requested machineDeployments.
-func (c *FakeMachineDeployments) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {
- return c.Fake.
- InvokesWatch(testing.NewWatchActionWithOptions(machinedeploymentsResource, c.ns, opts))
-
-}
-
-// Create takes the representation of a machineDeployment and creates it. Returns the server's representation of the machineDeployment, and an error, if there is any.
-func (c *FakeMachineDeployments) Create(ctx context.Context, machineDeployment *v1alpha1.MachineDeployment, opts v1.CreateOptions) (result *v1alpha1.MachineDeployment, err error) {
- emptyResult := &v1alpha1.MachineDeployment{}
- obj, err := c.Fake.
- Invokes(testing.NewCreateActionWithOptions(machinedeploymentsResource, c.ns, machineDeployment, opts), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v1alpha1.MachineDeployment), err
-}
-
-// Update takes the representation of a machineDeployment and updates it. Returns the server's representation of the machineDeployment, and an error, if there is any.
-func (c *FakeMachineDeployments) Update(ctx context.Context, machineDeployment *v1alpha1.MachineDeployment, opts v1.UpdateOptions) (result *v1alpha1.MachineDeployment, err error) {
- emptyResult := &v1alpha1.MachineDeployment{}
- obj, err := c.Fake.
- Invokes(testing.NewUpdateActionWithOptions(machinedeploymentsResource, c.ns, machineDeployment, opts), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v1alpha1.MachineDeployment), err
-}
-
-// UpdateStatus was generated because the type contains a Status member.
-// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
-func (c *FakeMachineDeployments) UpdateStatus(ctx context.Context, machineDeployment *v1alpha1.MachineDeployment, opts v1.UpdateOptions) (result *v1alpha1.MachineDeployment, err error) {
- emptyResult := &v1alpha1.MachineDeployment{}
- obj, err := c.Fake.
- Invokes(testing.NewUpdateSubresourceActionWithOptions(machinedeploymentsResource, "status", c.ns, machineDeployment, opts), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v1alpha1.MachineDeployment), err
-}
-
-// Delete takes name of the machineDeployment and deletes it. Returns an error if one occurs.
-func (c *FakeMachineDeployments) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {
- _, err := c.Fake.
- Invokes(testing.NewDeleteActionWithOptions(machinedeploymentsResource, c.ns, name, opts), &v1alpha1.MachineDeployment{})
-
- return err
-}
-
-// DeleteCollection deletes a collection of objects.
-func (c *FakeMachineDeployments) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {
- action := testing.NewDeleteCollectionActionWithOptions(machinedeploymentsResource, c.ns, opts, listOpts)
-
- _, err := c.Fake.Invokes(action, &v1alpha1.MachineDeploymentList{})
- return err
-}
-
-// Patch applies the patch and returns the patched machineDeployment.
-func (c *FakeMachineDeployments) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.MachineDeployment, err error) {
- emptyResult := &v1alpha1.MachineDeployment{}
- obj, err := c.Fake.
- Invokes(testing.NewPatchSubresourceActionWithOptions(machinedeploymentsResource, c.ns, name, pt, data, opts, subresources...), emptyResult)
-
- if obj == nil {
- return emptyResult, err
+func newFakeMachineDeployments(fake *FakeMachineV1alpha1, namespace string) machinev1alpha1.MachineDeploymentInterface {
+ return &fakeMachineDeployments{
+ gentype.NewFakeClientWithList[*v1alpha1.MachineDeployment, *v1alpha1.MachineDeploymentList](
+ fake.Fake,
+ namespace,
+ v1alpha1.SchemeGroupVersion.WithResource("machinedeployments"),
+ v1alpha1.SchemeGroupVersion.WithKind("MachineDeployment"),
+ func() *v1alpha1.MachineDeployment { return &v1alpha1.MachineDeployment{} },
+ func() *v1alpha1.MachineDeploymentList { return &v1alpha1.MachineDeploymentList{} },
+ func(dst, src *v1alpha1.MachineDeploymentList) { dst.ListMeta = src.ListMeta },
+ func(list *v1alpha1.MachineDeploymentList) []*v1alpha1.MachineDeployment {
+ return gentype.ToPointerSlice(list.Items)
+ },
+ func(list *v1alpha1.MachineDeploymentList, items []*v1alpha1.MachineDeployment) {
+ list.Items = gentype.FromPointerSlice(items)
+ },
+ ),
+ fake,
}
- return obj.(*v1alpha1.MachineDeployment), err
}
// UpdateScale takes the representation of a scale and updates it. Returns the server's representation of the scale, and an error, if there is any.
-func (c *FakeMachineDeployments) UpdateScale(ctx context.Context, machineDeploymentName string, scale *autoscalingv1.Scale, opts v1.UpdateOptions) (result *autoscalingv1.Scale, err error) {
- emptyResult := &autoscalingv1.Scale{}
+func (c *fakeMachineDeployments) UpdateScale(ctx context.Context, machineDeploymentName string, scale *v1.Scale, opts metav1.UpdateOptions) (result *v1.Scale, err error) {
+ emptyResult := &v1.Scale{}
obj, err := c.Fake.
- Invokes(testing.NewUpdateSubresourceActionWithOptions(machinedeploymentsResource, "scale", c.ns, scale, opts), &autoscalingv1.Scale{})
+ Invokes(testing.NewUpdateSubresourceActionWithOptions(c.Resource(), "scale", c.Namespace(), scale, opts), &v1.Scale{})
if obj == nil {
return emptyResult, err
}
- return obj.(*autoscalingv1.Scale), err
+ return obj.(*v1.Scale), err
}
diff --git a/pkg/client/clientset/versioned/typed/machine/v1alpha1/fake/fake_machineset.go b/pkg/client/clientset/versioned/typed/machine/v1alpha1/fake/fake_machineset.go
index 2d767bf848..aa739ec602 100644
--- a/pkg/client/clientset/versioned/typed/machine/v1alpha1/fake/fake_machineset.go
+++ b/pkg/client/clientset/versioned/typed/machine/v1alpha1/fake/fake_machineset.go
@@ -7,142 +7,49 @@
package fake
import (
- "context"
+ context "context"
v1alpha1 "github.com/gardener/machine-controller-manager/pkg/apis/machine/v1alpha1"
- autoscalingv1 "k8s.io/api/autoscaling/v1"
- v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
- labels "k8s.io/apimachinery/pkg/labels"
- types "k8s.io/apimachinery/pkg/types"
- watch "k8s.io/apimachinery/pkg/watch"
+ machinev1alpha1 "github.com/gardener/machine-controller-manager/pkg/client/clientset/versioned/typed/machine/v1alpha1"
+ v1 "k8s.io/api/autoscaling/v1"
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+ gentype "k8s.io/client-go/gentype"
testing "k8s.io/client-go/testing"
)
-// FakeMachineSets implements MachineSetInterface
-type FakeMachineSets struct {
+// fakeMachineSets implements MachineSetInterface
+type fakeMachineSets struct {
+ *gentype.FakeClientWithList[*v1alpha1.MachineSet, *v1alpha1.MachineSetList]
Fake *FakeMachineV1alpha1
- ns string
}
-var machinesetsResource = v1alpha1.SchemeGroupVersion.WithResource("machinesets")
-
-var machinesetsKind = v1alpha1.SchemeGroupVersion.WithKind("MachineSet")
-
-// Get takes name of the machineSet, and returns the corresponding machineSet object, and an error if there is any.
-func (c *FakeMachineSets) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.MachineSet, err error) {
- emptyResult := &v1alpha1.MachineSet{}
- obj, err := c.Fake.
- Invokes(testing.NewGetActionWithOptions(machinesetsResource, c.ns, name, options), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v1alpha1.MachineSet), err
-}
-
-// List takes label and field selectors, and returns the list of MachineSets that match those selectors.
-func (c *FakeMachineSets) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.MachineSetList, err error) {
- emptyResult := &v1alpha1.MachineSetList{}
- obj, err := c.Fake.
- Invokes(testing.NewListActionWithOptions(machinesetsResource, machinesetsKind, c.ns, opts), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
-
- label, _, _ := testing.ExtractFromListOptions(opts)
- if label == nil {
- label = labels.Everything()
- }
- list := &v1alpha1.MachineSetList{ListMeta: obj.(*v1alpha1.MachineSetList).ListMeta}
- for _, item := range obj.(*v1alpha1.MachineSetList).Items {
- if label.Matches(labels.Set(item.Labels)) {
- list.Items = append(list.Items, item)
- }
- }
- return list, err
-}
-
-// Watch returns a watch.Interface that watches the requested machineSets.
-func (c *FakeMachineSets) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {
- return c.Fake.
- InvokesWatch(testing.NewWatchActionWithOptions(machinesetsResource, c.ns, opts))
-
-}
-
-// Create takes the representation of a machineSet and creates it. Returns the server's representation of the machineSet, and an error, if there is any.
-func (c *FakeMachineSets) Create(ctx context.Context, machineSet *v1alpha1.MachineSet, opts v1.CreateOptions) (result *v1alpha1.MachineSet, err error) {
- emptyResult := &v1alpha1.MachineSet{}
- obj, err := c.Fake.
- Invokes(testing.NewCreateActionWithOptions(machinesetsResource, c.ns, machineSet, opts), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v1alpha1.MachineSet), err
-}
-
-// Update takes the representation of a machineSet and updates it. Returns the server's representation of the machineSet, and an error, if there is any.
-func (c *FakeMachineSets) Update(ctx context.Context, machineSet *v1alpha1.MachineSet, opts v1.UpdateOptions) (result *v1alpha1.MachineSet, err error) {
- emptyResult := &v1alpha1.MachineSet{}
- obj, err := c.Fake.
- Invokes(testing.NewUpdateActionWithOptions(machinesetsResource, c.ns, machineSet, opts), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v1alpha1.MachineSet), err
-}
-
-// UpdateStatus was generated because the type contains a Status member.
-// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
-func (c *FakeMachineSets) UpdateStatus(ctx context.Context, machineSet *v1alpha1.MachineSet, opts v1.UpdateOptions) (result *v1alpha1.MachineSet, err error) {
- emptyResult := &v1alpha1.MachineSet{}
- obj, err := c.Fake.
- Invokes(testing.NewUpdateSubresourceActionWithOptions(machinesetsResource, "status", c.ns, machineSet, opts), emptyResult)
-
- if obj == nil {
- return emptyResult, err
- }
- return obj.(*v1alpha1.MachineSet), err
-}
-
-// Delete takes name of the machineSet and deletes it. Returns an error if one occurs.
-func (c *FakeMachineSets) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {
- _, err := c.Fake.
- Invokes(testing.NewDeleteActionWithOptions(machinesetsResource, c.ns, name, opts), &v1alpha1.MachineSet{})
-
- return err
-}
-
-// DeleteCollection deletes a collection of objects.
-func (c *FakeMachineSets) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {
- action := testing.NewDeleteCollectionActionWithOptions(machinesetsResource, c.ns, opts, listOpts)
-
- _, err := c.Fake.Invokes(action, &v1alpha1.MachineSetList{})
- return err
-}
-
-// Patch applies the patch and returns the patched machineSet.
-func (c *FakeMachineSets) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.MachineSet, err error) {
- emptyResult := &v1alpha1.MachineSet{}
- obj, err := c.Fake.
- Invokes(testing.NewPatchSubresourceActionWithOptions(machinesetsResource, c.ns, name, pt, data, opts, subresources...), emptyResult)
-
- if obj == nil {
- return emptyResult, err
+func newFakeMachineSets(fake *FakeMachineV1alpha1, namespace string) machinev1alpha1.MachineSetInterface {
+ return &fakeMachineSets{
+ gentype.NewFakeClientWithList[*v1alpha1.MachineSet, *v1alpha1.MachineSetList](
+ fake.Fake,
+ namespace,
+ v1alpha1.SchemeGroupVersion.WithResource("machinesets"),
+ v1alpha1.SchemeGroupVersion.WithKind("MachineSet"),
+ func() *v1alpha1.MachineSet { return &v1alpha1.MachineSet{} },
+ func() *v1alpha1.MachineSetList { return &v1alpha1.MachineSetList{} },
+ func(dst, src *v1alpha1.MachineSetList) { dst.ListMeta = src.ListMeta },
+ func(list *v1alpha1.MachineSetList) []*v1alpha1.MachineSet { return gentype.ToPointerSlice(list.Items) },
+ func(list *v1alpha1.MachineSetList, items []*v1alpha1.MachineSet) {
+ list.Items = gentype.FromPointerSlice(items)
+ },
+ ),
+ fake,
}
- return obj.(*v1alpha1.MachineSet), err
}
// UpdateScale takes the representation of a scale and updates it. Returns the server's representation of the scale, and an error, if there is any.
-func (c *FakeMachineSets) UpdateScale(ctx context.Context, machineSetName string, scale *autoscalingv1.Scale, opts v1.UpdateOptions) (result *autoscalingv1.Scale, err error) {
- emptyResult := &autoscalingv1.Scale{}
+func (c *fakeMachineSets) UpdateScale(ctx context.Context, machineSetName string, scale *v1.Scale, opts metav1.UpdateOptions) (result *v1.Scale, err error) {
+ emptyResult := &v1.Scale{}
obj, err := c.Fake.
- Invokes(testing.NewUpdateSubresourceActionWithOptions(machinesetsResource, "scale", c.ns, scale, opts), &autoscalingv1.Scale{})
+ Invokes(testing.NewUpdateSubresourceActionWithOptions(c.Resource(), "scale", c.Namespace(), scale, opts), &v1.Scale{})
if obj == nil {
return emptyResult, err
}
- return obj.(*autoscalingv1.Scale), err
+ return obj.(*v1.Scale), err
}
diff --git a/pkg/client/clientset/versioned/typed/machine/v1alpha1/machine.go b/pkg/client/clientset/versioned/typed/machine/v1alpha1/machine.go
index 4908d02367..983828e049 100644
--- a/pkg/client/clientset/versioned/typed/machine/v1alpha1/machine.go
+++ b/pkg/client/clientset/versioned/typed/machine/v1alpha1/machine.go
@@ -7,9 +7,9 @@
package v1alpha1
import (
- "context"
+ context "context"
- v1alpha1 "github.com/gardener/machine-controller-manager/pkg/apis/machine/v1alpha1"
+ machinev1alpha1 "github.com/gardener/machine-controller-manager/pkg/apis/machine/v1alpha1"
scheme "github.com/gardener/machine-controller-manager/pkg/client/clientset/versioned/scheme"
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
types "k8s.io/apimachinery/pkg/types"
@@ -25,33 +25,34 @@ type MachinesGetter interface {
// MachineInterface has methods to work with Machine resources.
type MachineInterface interface {
- Create(ctx context.Context, machine *v1alpha1.Machine, opts v1.CreateOptions) (*v1alpha1.Machine, error)
- Update(ctx context.Context, machine *v1alpha1.Machine, opts v1.UpdateOptions) (*v1alpha1.Machine, error)
+ Create(ctx context.Context, machine *machinev1alpha1.Machine, opts v1.CreateOptions) (*machinev1alpha1.Machine, error)
+ Update(ctx context.Context, machine *machinev1alpha1.Machine, opts v1.UpdateOptions) (*machinev1alpha1.Machine, error)
// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
- UpdateStatus(ctx context.Context, machine *v1alpha1.Machine, opts v1.UpdateOptions) (*v1alpha1.Machine, error)
+ UpdateStatus(ctx context.Context, machine *machinev1alpha1.Machine, opts v1.UpdateOptions) (*machinev1alpha1.Machine, error)
Delete(ctx context.Context, name string, opts v1.DeleteOptions) error
DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error
- Get(ctx context.Context, name string, opts v1.GetOptions) (*v1alpha1.Machine, error)
- List(ctx context.Context, opts v1.ListOptions) (*v1alpha1.MachineList, error)
+ Get(ctx context.Context, name string, opts v1.GetOptions) (*machinev1alpha1.Machine, error)
+ List(ctx context.Context, opts v1.ListOptions) (*machinev1alpha1.MachineList, error)
Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)
- Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.Machine, err error)
+ Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *machinev1alpha1.Machine, err error)
MachineExpansion
}
// machines implements MachineInterface
type machines struct {
- *gentype.ClientWithList[*v1alpha1.Machine, *v1alpha1.MachineList]
+ *gentype.ClientWithList[*machinev1alpha1.Machine, *machinev1alpha1.MachineList]
}
// newMachines returns a Machines
func newMachines(c *MachineV1alpha1Client, namespace string) *machines {
return &machines{
- gentype.NewClientWithList[*v1alpha1.Machine, *v1alpha1.MachineList](
+ gentype.NewClientWithList[*machinev1alpha1.Machine, *machinev1alpha1.MachineList](
"machines",
c.RESTClient(),
scheme.ParameterCodec,
namespace,
- func() *v1alpha1.Machine { return &v1alpha1.Machine{} },
- func() *v1alpha1.MachineList { return &v1alpha1.MachineList{} }),
+ func() *machinev1alpha1.Machine { return &machinev1alpha1.Machine{} },
+ func() *machinev1alpha1.MachineList { return &machinev1alpha1.MachineList{} },
+ ),
}
}
diff --git a/pkg/client/clientset/versioned/typed/machine/v1alpha1/machine_client.go b/pkg/client/clientset/versioned/typed/machine/v1alpha1/machine_client.go
index b9325e4bee..4969c82f64 100644
--- a/pkg/client/clientset/versioned/typed/machine/v1alpha1/machine_client.go
+++ b/pkg/client/clientset/versioned/typed/machine/v1alpha1/machine_client.go
@@ -7,10 +7,10 @@
package v1alpha1
import (
- "net/http"
+ http "net/http"
- v1alpha1 "github.com/gardener/machine-controller-manager/pkg/apis/machine/v1alpha1"
- "github.com/gardener/machine-controller-manager/pkg/client/clientset/versioned/scheme"
+ machinev1alpha1 "github.com/gardener/machine-controller-manager/pkg/apis/machine/v1alpha1"
+ scheme "github.com/gardener/machine-controller-manager/pkg/client/clientset/versioned/scheme"
rest "k8s.io/client-go/rest"
)
@@ -48,9 +48,7 @@ func (c *MachineV1alpha1Client) MachineSets(namespace string) MachineSetInterfac
// where httpClient was generated with rest.HTTPClientFor(c).
func NewForConfig(c *rest.Config) (*MachineV1alpha1Client, error) {
config := *c
- if err := setConfigDefaults(&config); err != nil {
- return nil, err
- }
+ setConfigDefaults(&config)
httpClient, err := rest.HTTPClientFor(&config)
if err != nil {
return nil, err
@@ -62,9 +60,7 @@ func NewForConfig(c *rest.Config) (*MachineV1alpha1Client, error) {
// Note the http client provided takes precedence over the configured transport values.
func NewForConfigAndClient(c *rest.Config, h *http.Client) (*MachineV1alpha1Client, error) {
config := *c
- if err := setConfigDefaults(&config); err != nil {
- return nil, err
- }
+ setConfigDefaults(&config)
client, err := rest.RESTClientForConfigAndClient(&config, h)
if err != nil {
return nil, err
@@ -87,17 +83,15 @@ func New(c rest.Interface) *MachineV1alpha1Client {
return &MachineV1alpha1Client{c}
}
-func setConfigDefaults(config *rest.Config) error {
- gv := v1alpha1.SchemeGroupVersion
+func setConfigDefaults(config *rest.Config) {
+ gv := machinev1alpha1.SchemeGroupVersion
config.GroupVersion = &gv
config.APIPath = "/apis"
- config.NegotiatedSerializer = scheme.Codecs.WithoutConversion()
+ config.NegotiatedSerializer = rest.CodecFactoryForGeneratedClient(scheme.Scheme, scheme.Codecs).WithoutConversion()
if config.UserAgent == "" {
config.UserAgent = rest.DefaultKubernetesUserAgent()
}
-
- return nil
}
// RESTClient returns a RESTClient that is used to communicate
diff --git a/pkg/client/clientset/versioned/typed/machine/v1alpha1/machineclass.go b/pkg/client/clientset/versioned/typed/machine/v1alpha1/machineclass.go
index 106db0755c..a74d79f95f 100644
--- a/pkg/client/clientset/versioned/typed/machine/v1alpha1/machineclass.go
+++ b/pkg/client/clientset/versioned/typed/machine/v1alpha1/machineclass.go
@@ -7,9 +7,9 @@
package v1alpha1
import (
- "context"
+ context "context"
- v1alpha1 "github.com/gardener/machine-controller-manager/pkg/apis/machine/v1alpha1"
+ machinev1alpha1 "github.com/gardener/machine-controller-manager/pkg/apis/machine/v1alpha1"
scheme "github.com/gardener/machine-controller-manager/pkg/client/clientset/versioned/scheme"
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
types "k8s.io/apimachinery/pkg/types"
@@ -25,31 +25,32 @@ type MachineClassesGetter interface {
// MachineClassInterface has methods to work with MachineClass resources.
type MachineClassInterface interface {
- Create(ctx context.Context, machineClass *v1alpha1.MachineClass, opts v1.CreateOptions) (*v1alpha1.MachineClass, error)
- Update(ctx context.Context, machineClass *v1alpha1.MachineClass, opts v1.UpdateOptions) (*v1alpha1.MachineClass, error)
+ Create(ctx context.Context, machineClass *machinev1alpha1.MachineClass, opts v1.CreateOptions) (*machinev1alpha1.MachineClass, error)
+ Update(ctx context.Context, machineClass *machinev1alpha1.MachineClass, opts v1.UpdateOptions) (*machinev1alpha1.MachineClass, error)
Delete(ctx context.Context, name string, opts v1.DeleteOptions) error
DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error
- Get(ctx context.Context, name string, opts v1.GetOptions) (*v1alpha1.MachineClass, error)
- List(ctx context.Context, opts v1.ListOptions) (*v1alpha1.MachineClassList, error)
+ Get(ctx context.Context, name string, opts v1.GetOptions) (*machinev1alpha1.MachineClass, error)
+ List(ctx context.Context, opts v1.ListOptions) (*machinev1alpha1.MachineClassList, error)
Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)
- Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.MachineClass, err error)
+ Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *machinev1alpha1.MachineClass, err error)
MachineClassExpansion
}
// machineClasses implements MachineClassInterface
type machineClasses struct {
- *gentype.ClientWithList[*v1alpha1.MachineClass, *v1alpha1.MachineClassList]
+ *gentype.ClientWithList[*machinev1alpha1.MachineClass, *machinev1alpha1.MachineClassList]
}
// newMachineClasses returns a MachineClasses
func newMachineClasses(c *MachineV1alpha1Client, namespace string) *machineClasses {
return &machineClasses{
- gentype.NewClientWithList[*v1alpha1.MachineClass, *v1alpha1.MachineClassList](
+ gentype.NewClientWithList[*machinev1alpha1.MachineClass, *machinev1alpha1.MachineClassList](
"machineclasses",
c.RESTClient(),
scheme.ParameterCodec,
namespace,
- func() *v1alpha1.MachineClass { return &v1alpha1.MachineClass{} },
- func() *v1alpha1.MachineClassList { return &v1alpha1.MachineClassList{} }),
+ func() *machinev1alpha1.MachineClass { return &machinev1alpha1.MachineClass{} },
+ func() *machinev1alpha1.MachineClassList { return &machinev1alpha1.MachineClassList{} },
+ ),
}
}
diff --git a/pkg/client/clientset/versioned/typed/machine/v1alpha1/machinedeployment.go b/pkg/client/clientset/versioned/typed/machine/v1alpha1/machinedeployment.go
index acf122a61a..9e13380ffc 100644
--- a/pkg/client/clientset/versioned/typed/machine/v1alpha1/machinedeployment.go
+++ b/pkg/client/clientset/versioned/typed/machine/v1alpha1/machinedeployment.go
@@ -7,9 +7,9 @@
package v1alpha1
import (
- "context"
+ context "context"
- v1alpha1 "github.com/gardener/machine-controller-manager/pkg/apis/machine/v1alpha1"
+ machinev1alpha1 "github.com/gardener/machine-controller-manager/pkg/apis/machine/v1alpha1"
scheme "github.com/gardener/machine-controller-manager/pkg/client/clientset/versioned/scheme"
autoscalingv1 "k8s.io/api/autoscaling/v1"
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -26,16 +26,16 @@ type MachineDeploymentsGetter interface {
// MachineDeploymentInterface has methods to work with MachineDeployment resources.
type MachineDeploymentInterface interface {
- Create(ctx context.Context, machineDeployment *v1alpha1.MachineDeployment, opts v1.CreateOptions) (*v1alpha1.MachineDeployment, error)
- Update(ctx context.Context, machineDeployment *v1alpha1.MachineDeployment, opts v1.UpdateOptions) (*v1alpha1.MachineDeployment, error)
+ Create(ctx context.Context, machineDeployment *machinev1alpha1.MachineDeployment, opts v1.CreateOptions) (*machinev1alpha1.MachineDeployment, error)
+ Update(ctx context.Context, machineDeployment *machinev1alpha1.MachineDeployment, opts v1.UpdateOptions) (*machinev1alpha1.MachineDeployment, error)
// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
- UpdateStatus(ctx context.Context, machineDeployment *v1alpha1.MachineDeployment, opts v1.UpdateOptions) (*v1alpha1.MachineDeployment, error)
+ UpdateStatus(ctx context.Context, machineDeployment *machinev1alpha1.MachineDeployment, opts v1.UpdateOptions) (*machinev1alpha1.MachineDeployment, error)
Delete(ctx context.Context, name string, opts v1.DeleteOptions) error
DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error
- Get(ctx context.Context, name string, opts v1.GetOptions) (*v1alpha1.MachineDeployment, error)
- List(ctx context.Context, opts v1.ListOptions) (*v1alpha1.MachineDeploymentList, error)
+ Get(ctx context.Context, name string, opts v1.GetOptions) (*machinev1alpha1.MachineDeployment, error)
+ List(ctx context.Context, opts v1.ListOptions) (*machinev1alpha1.MachineDeploymentList, error)
Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)
- Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.MachineDeployment, err error)
+ Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *machinev1alpha1.MachineDeployment, err error)
UpdateScale(ctx context.Context, machineDeploymentName string, scale *autoscalingv1.Scale, opts v1.UpdateOptions) (*autoscalingv1.Scale, error)
MachineDeploymentExpansion
@@ -43,19 +43,20 @@ type MachineDeploymentInterface interface {
// machineDeployments implements MachineDeploymentInterface
type machineDeployments struct {
- *gentype.ClientWithList[*v1alpha1.MachineDeployment, *v1alpha1.MachineDeploymentList]
+ *gentype.ClientWithList[*machinev1alpha1.MachineDeployment, *machinev1alpha1.MachineDeploymentList]
}
// newMachineDeployments returns a MachineDeployments
func newMachineDeployments(c *MachineV1alpha1Client, namespace string) *machineDeployments {
return &machineDeployments{
- gentype.NewClientWithList[*v1alpha1.MachineDeployment, *v1alpha1.MachineDeploymentList](
+ gentype.NewClientWithList[*machinev1alpha1.MachineDeployment, *machinev1alpha1.MachineDeploymentList](
"machinedeployments",
c.RESTClient(),
scheme.ParameterCodec,
namespace,
- func() *v1alpha1.MachineDeployment { return &v1alpha1.MachineDeployment{} },
- func() *v1alpha1.MachineDeploymentList { return &v1alpha1.MachineDeploymentList{} }),
+ func() *machinev1alpha1.MachineDeployment { return &machinev1alpha1.MachineDeployment{} },
+ func() *machinev1alpha1.MachineDeploymentList { return &machinev1alpha1.MachineDeploymentList{} },
+ ),
}
}
diff --git a/pkg/client/clientset/versioned/typed/machine/v1alpha1/machineset.go b/pkg/client/clientset/versioned/typed/machine/v1alpha1/machineset.go
index d4faa0f756..9041ae5581 100644
--- a/pkg/client/clientset/versioned/typed/machine/v1alpha1/machineset.go
+++ b/pkg/client/clientset/versioned/typed/machine/v1alpha1/machineset.go
@@ -7,9 +7,9 @@
package v1alpha1
import (
- "context"
+ context "context"
- v1alpha1 "github.com/gardener/machine-controller-manager/pkg/apis/machine/v1alpha1"
+ machinev1alpha1 "github.com/gardener/machine-controller-manager/pkg/apis/machine/v1alpha1"
scheme "github.com/gardener/machine-controller-manager/pkg/client/clientset/versioned/scheme"
autoscalingv1 "k8s.io/api/autoscaling/v1"
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -26,16 +26,16 @@ type MachineSetsGetter interface {
// MachineSetInterface has methods to work with MachineSet resources.
type MachineSetInterface interface {
- Create(ctx context.Context, machineSet *v1alpha1.MachineSet, opts v1.CreateOptions) (*v1alpha1.MachineSet, error)
- Update(ctx context.Context, machineSet *v1alpha1.MachineSet, opts v1.UpdateOptions) (*v1alpha1.MachineSet, error)
+ Create(ctx context.Context, machineSet *machinev1alpha1.MachineSet, opts v1.CreateOptions) (*machinev1alpha1.MachineSet, error)
+ Update(ctx context.Context, machineSet *machinev1alpha1.MachineSet, opts v1.UpdateOptions) (*machinev1alpha1.MachineSet, error)
// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus().
- UpdateStatus(ctx context.Context, machineSet *v1alpha1.MachineSet, opts v1.UpdateOptions) (*v1alpha1.MachineSet, error)
+ UpdateStatus(ctx context.Context, machineSet *machinev1alpha1.MachineSet, opts v1.UpdateOptions) (*machinev1alpha1.MachineSet, error)
Delete(ctx context.Context, name string, opts v1.DeleteOptions) error
DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error
- Get(ctx context.Context, name string, opts v1.GetOptions) (*v1alpha1.MachineSet, error)
- List(ctx context.Context, opts v1.ListOptions) (*v1alpha1.MachineSetList, error)
+ Get(ctx context.Context, name string, opts v1.GetOptions) (*machinev1alpha1.MachineSet, error)
+ List(ctx context.Context, opts v1.ListOptions) (*machinev1alpha1.MachineSetList, error)
Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)
- Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.MachineSet, err error)
+ Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *machinev1alpha1.MachineSet, err error)
UpdateScale(ctx context.Context, machineSetName string, scale *autoscalingv1.Scale, opts v1.UpdateOptions) (*autoscalingv1.Scale, error)
MachineSetExpansion
@@ -43,19 +43,20 @@ type MachineSetInterface interface {
// machineSets implements MachineSetInterface
type machineSets struct {
- *gentype.ClientWithList[*v1alpha1.MachineSet, *v1alpha1.MachineSetList]
+ *gentype.ClientWithList[*machinev1alpha1.MachineSet, *machinev1alpha1.MachineSetList]
}
// newMachineSets returns a MachineSets
func newMachineSets(c *MachineV1alpha1Client, namespace string) *machineSets {
return &machineSets{
- gentype.NewClientWithList[*v1alpha1.MachineSet, *v1alpha1.MachineSetList](
+ gentype.NewClientWithList[*machinev1alpha1.MachineSet, *machinev1alpha1.MachineSetList](
"machinesets",
c.RESTClient(),
scheme.ParameterCodec,
namespace,
- func() *v1alpha1.MachineSet { return &v1alpha1.MachineSet{} },
- func() *v1alpha1.MachineSetList { return &v1alpha1.MachineSetList{} }),
+ func() *machinev1alpha1.MachineSet { return &machinev1alpha1.MachineSet{} },
+ func() *machinev1alpha1.MachineSetList { return &machinev1alpha1.MachineSetList{} },
+ ),
}
}
diff --git a/pkg/controller/controller.go b/pkg/controller/controller.go
index 424ede846f..256b9c4364 100644
--- a/pkg/controller/controller.go
+++ b/pkg/controller/controller.go
@@ -238,7 +238,7 @@ func (c *controller) Run(workers int, stopCh <-chan struct{}) {
syncedFuncs = slices.DeleteFunc(syncedFuncs, func(fn cache.InformerSynced) bool { return fn == nil })
if !cache.WaitForCacheSync(stopCh, syncedFuncs...) {
- runtimeutil.HandleError(fmt.Errorf("Timed out waiting for caches to sync"))
+ runtimeutil.HandleError(fmt.Errorf("timed out waiting for caches to sync"))
return
}
diff --git a/pkg/controller/controller_utils.go b/pkg/controller/controller_utils.go
index 0a5cf14876..4821706061 100644
--- a/pkg/controller/controller_utils.go
+++ b/pkg/controller/controller_utils.go
@@ -894,7 +894,7 @@ func WaitForCacheSync(controllerName string, stopCh <-chan struct{}, cacheSyncs
klog.Infof("Waiting for caches to sync for %s controller", controllerName)
if !cache.WaitForCacheSync(stopCh, cacheSyncs...) {
- utilruntime.HandleError(fmt.Errorf("Unable to sync caches for %s controller", controllerName))
+ utilruntime.HandleError(fmt.Errorf("unable to sync caches for %s controller", controllerName))
return false
}
diff --git a/pkg/controller/deployment_sync.go b/pkg/controller/deployment_sync.go
index 6a1436a4a2..75a181aaf1 100644
--- a/pkg/controller/deployment_sync.go
+++ b/pkg/controller/deployment_sync.go
@@ -204,7 +204,7 @@ func (dc *controller) addHashKeyToISAndMachines(ctx context.Context, is *v1alpha
// TODO: Revisit if we really need to wait here as opposed to returning and
// potentially unblocking this worker (can wait up to 1min before timing out).
if err := WaitForMachinesHashPopulated(ctx, dc.machineSetLister, updatedIS.Generation, updatedIS.Namespace, updatedIS.Name); err != nil {
- return nil, fmt.Errorf("Machine set %s: error waiting for machineset controller to observe machines being labeled with template hash: %v", updatedIS.Name, err)
+ return nil, fmt.Errorf("machine set %s: error waiting for machineset controller to observe machines being labeled with template hash: %v", updatedIS.Name, err)
}
// 3. Update rs label and selector to include the new hash label
@@ -578,7 +578,7 @@ func (dc *controller) cleanupMachineDeployment(ctx context.Context, oldISs []*v1
// Avoid deleting machine set with deletion timestamp set
aliveFilter := func(is *v1alpha1.MachineSet) bool {
- return is != nil && is.ObjectMeta.DeletionTimestamp == nil
+ return is != nil && is.DeletionTimestamp == nil
}
cleanableISes := FilterMachineSets(oldISs, aliveFilter)
diff --git a/pkg/controller/machineset_test.go b/pkg/controller/machineset_test.go
index f9d09734ac..a18d15e9ce 100644
--- a/pkg/controller/machineset_test.go
+++ b/pkg/controller/machineset_test.go
@@ -1818,7 +1818,7 @@ var _ = Describe("machineset", func() {
// Add a reactor that intercepts machine delete call and returns an error
// to simulate error when processing deletion request for a machine
machineDeletionError := "forced machine deletion error"
- c.controlMachineClient.(*faketyped.FakeMachineV1alpha1).Fake.PrependReactor("delete", "machines", func(_ testing.Action) (handled bool, ret runtime.Object, err error) {
+ c.controlMachineClient.(*faketyped.FakeMachineV1alpha1).PrependReactor("delete", "machines", func(_ testing.Action) (handled bool, ret runtime.Object, err error) {
return true, &machinev1.Machine{}, errors.New(machineDeletionError)
})
targetMachines := []*machinev1.Machine{testFailedMachine1, testRunningMachine}
diff --git a/pkg/fakeclient/client.go b/pkg/fakeclient/client.go
index d1adc1ba48..333ec4c6b8 100644
--- a/pkg/fakeclient/client.go
+++ b/pkg/fakeclient/client.go
@@ -52,8 +52,8 @@ func (t *FakeObjectTracker) Patch(gvr schema.GroupVersionResource, obj runtime.O
}
if gvr.Resource == "nodes" {
- if t.fakingOptions.failAt.Node.Update != "" {
- return errors.New(t.fakingOptions.failAt.Node.Update)
+ if t.failAt.Node.Update != "" {
+ return errors.New(t.failAt.Node.Update)
}
}
}
@@ -64,14 +64,14 @@ func (t *FakeObjectTracker) Patch(gvr schema.GroupVersionResource, obj runtime.O
}
if t.FakeWatcher == nil {
- return errors.New("Error sending event on a tracker with no watch support")
+ return errors.New("error sending event on a tracker with no watch support")
}
if t.IsStopped() {
- return errors.New("Error sending event on a stopped tracker")
+ return errors.New("error sending event on a stopped tracker")
}
- t.FakeWatcher.Modify(obj)
+ t.Modify(obj)
return nil
}
@@ -105,7 +105,7 @@ func (t *FakeObjectTracker) Get(gvr schema.GroupVersionResource, ns, name string
}
if gvr.Resource == "machines" {
- if t.fakingOptions.failAt.Machine.Get != nil {
+ if t.failAt.Machine.Get != nil {
return nil, t.fakingOptions.failAt.Machine.Get
}
}
@@ -178,7 +178,7 @@ func (t *FakeObjectTracker) Update(gvr schema.GroupVersionResource, obj runtime.
return errors.New("error sending event on a stopped tracker")
}
- t.FakeWatcher.Modify(obj)
+ t.Modify(obj)
return nil
}
@@ -499,8 +499,8 @@ func NewMachineClientSet(objects ...runtime.Object) (*fakeuntyped.Clientset, *Fa
}
cs := &fakeuntyped.Clientset{}
- cs.Fake.AddReactor("*", "*", k8stesting.ObjectReaction(o))
- cs.Fake.AddWatchReactor("*", o.watchReactionfunc)
+ cs.AddReactor("*", "*", k8stesting.ObjectReaction(o))
+ cs.AddWatchReactor("*", o.watchReactionfunc)
return cs, o
}
@@ -567,8 +567,8 @@ func NewCoreClientSet(objects ...runtime.Object) (*Clientset, *FakeObjectTracker
cs := &Clientset{Clientset: &k8sfake.Clientset{}}
cs.FakeDiscovery = &fakediscovery.FakeDiscovery{Fake: &cs.Fake}
- cs.Fake.AddReactor("*", "*", k8stesting.ObjectReaction(o))
- cs.Fake.AddWatchReactor("*", o.watchReactionfunc)
+ cs.AddReactor("*", "*", k8stesting.ObjectReaction(o))
+ cs.AddWatchReactor("*", o.watchReactionfunc)
return cs, o
}
diff --git a/pkg/openapi/openapi_generated.go b/pkg/openapi/openapi_generated.go
index 862a74f983..e66f29c7d5 100644
--- a/pkg/openapi/openapi_generated.go
+++ b/pkg/openapi/openapi_generated.go
@@ -77,9 +77,12 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA
"k8s.io/api/core/v1.ConfigMapProjection": schema_k8sio_api_core_v1_ConfigMapProjection(ref),
"k8s.io/api/core/v1.ConfigMapVolumeSource": schema_k8sio_api_core_v1_ConfigMapVolumeSource(ref),
"k8s.io/api/core/v1.Container": schema_k8sio_api_core_v1_Container(ref),
+ "k8s.io/api/core/v1.ContainerExtendedResourceRequest": schema_k8sio_api_core_v1_ContainerExtendedResourceRequest(ref),
"k8s.io/api/core/v1.ContainerImage": schema_k8sio_api_core_v1_ContainerImage(ref),
"k8s.io/api/core/v1.ContainerPort": schema_k8sio_api_core_v1_ContainerPort(ref),
"k8s.io/api/core/v1.ContainerResizePolicy": schema_k8sio_api_core_v1_ContainerResizePolicy(ref),
+ "k8s.io/api/core/v1.ContainerRestartRule": schema_k8sio_api_core_v1_ContainerRestartRule(ref),
+ "k8s.io/api/core/v1.ContainerRestartRuleOnExitCodes": schema_k8sio_api_core_v1_ContainerRestartRuleOnExitCodes(ref),
"k8s.io/api/core/v1.ContainerState": schema_k8sio_api_core_v1_ContainerState(ref),
"k8s.io/api/core/v1.ContainerStateRunning": schema_k8sio_api_core_v1_ContainerStateRunning(ref),
"k8s.io/api/core/v1.ContainerStateTerminated": schema_k8sio_api_core_v1_ContainerStateTerminated(ref),
@@ -108,6 +111,7 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA
"k8s.io/api/core/v1.EventSource": schema_k8sio_api_core_v1_EventSource(ref),
"k8s.io/api/core/v1.ExecAction": schema_k8sio_api_core_v1_ExecAction(ref),
"k8s.io/api/core/v1.FCVolumeSource": schema_k8sio_api_core_v1_FCVolumeSource(ref),
+ "k8s.io/api/core/v1.FileKeySelector": schema_k8sio_api_core_v1_FileKeySelector(ref),
"k8s.io/api/core/v1.FlexPersistentVolumeSource": schema_k8sio_api_core_v1_FlexPersistentVolumeSource(ref),
"k8s.io/api/core/v1.FlexVolumeSource": schema_k8sio_api_core_v1_FlexVolumeSource(ref),
"k8s.io/api/core/v1.FlockerVolumeSource": schema_k8sio_api_core_v1_FlockerVolumeSource(ref),
@@ -161,6 +165,7 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA
"k8s.io/api/core/v1.NodeSelectorTerm": schema_k8sio_api_core_v1_NodeSelectorTerm(ref),
"k8s.io/api/core/v1.NodeSpec": schema_k8sio_api_core_v1_NodeSpec(ref),
"k8s.io/api/core/v1.NodeStatus": schema_k8sio_api_core_v1_NodeStatus(ref),
+ "k8s.io/api/core/v1.NodeSwapStatus": schema_k8sio_api_core_v1_NodeSwapStatus(ref),
"k8s.io/api/core/v1.NodeSystemInfo": schema_k8sio_api_core_v1_NodeSystemInfo(ref),
"k8s.io/api/core/v1.ObjectFieldSelector": schema_k8sio_api_core_v1_ObjectFieldSelector(ref),
"k8s.io/api/core/v1.ObjectReference": schema_k8sio_api_core_v1_ObjectReference(ref),
@@ -182,10 +187,12 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA
"k8s.io/api/core/v1.PodAffinityTerm": schema_k8sio_api_core_v1_PodAffinityTerm(ref),
"k8s.io/api/core/v1.PodAntiAffinity": schema_k8sio_api_core_v1_PodAntiAffinity(ref),
"k8s.io/api/core/v1.PodAttachOptions": schema_k8sio_api_core_v1_PodAttachOptions(ref),
+ "k8s.io/api/core/v1.PodCertificateProjection": schema_k8sio_api_core_v1_PodCertificateProjection(ref),
"k8s.io/api/core/v1.PodCondition": schema_k8sio_api_core_v1_PodCondition(ref),
"k8s.io/api/core/v1.PodDNSConfig": schema_k8sio_api_core_v1_PodDNSConfig(ref),
"k8s.io/api/core/v1.PodDNSConfigOption": schema_k8sio_api_core_v1_PodDNSConfigOption(ref),
"k8s.io/api/core/v1.PodExecOptions": schema_k8sio_api_core_v1_PodExecOptions(ref),
+ "k8s.io/api/core/v1.PodExtendedResourceClaimStatus": schema_k8sio_api_core_v1_PodExtendedResourceClaimStatus(ref),
"k8s.io/api/core/v1.PodIP": schema_k8sio_api_core_v1_PodIP(ref),
"k8s.io/api/core/v1.PodList": schema_k8sio_api_core_v1_PodList(ref),
"k8s.io/api/core/v1.PodLogOptions": schema_k8sio_api_core_v1_PodLogOptions(ref),
@@ -2173,7 +2180,7 @@ func schema_k8sio_api_core_v1_Binding(ref common.ReferenceCallback) common.OpenA
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
- Description: "Binding ties one object to another; for example, a pod is bound to a node by a scheduler. Deprecated in 1.7, please use the bindings subresource of pods instead.",
+ Description: "Binding ties one object to another; for example, a pod is bound to a node by a scheduler.",
Type: []string{"object"},
Properties: map[string]spec.Schema{
"kind": {
@@ -2217,7 +2224,7 @@ func schema_k8sio_api_core_v1_CSIPersistentVolumeSource(ref common.ReferenceCall
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
- Description: "Represents storage that is managed by an external CSI volume driver (Beta feature)",
+ Description: "Represents storage that is managed by an external CSI volume driver",
Type: []string{"object"},
Properties: map[string]spec.Schema{
"driver": {
@@ -3325,7 +3332,7 @@ func schema_k8sio_api_core_v1_Container(ref common.ReferenceCallback) common.Ope
},
},
SchemaProps: spec.SchemaProps{
- Description: "List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.",
+ Description: "List of sources to populate environment variables in the container. The keys defined within a source may consist of any printable ASCII characters except '='. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.",
Type: []string{"array"},
Items: &spec.SchemaOrArray{
Schema: &spec.Schema{
@@ -3389,11 +3396,30 @@ func schema_k8sio_api_core_v1_Container(ref common.ReferenceCallback) common.Ope
},
"restartPolicy": {
SchemaProps: spec.SchemaProps{
- Description: "RestartPolicy defines the restart behavior of individual containers in a pod. This field may only be set for init containers, and the only allowed value is \"Always\". For non-init containers or when this field is not specified, the restart behavior is defined by the Pod's restart policy and the container type. Setting the RestartPolicy as \"Always\" for the init container will have the following effect: this init container will be continually restarted on exit until all regular containers have terminated. Once all regular containers have completed, all init containers with restartPolicy \"Always\" will be shut down. This lifecycle differs from normal init containers and is often referred to as a \"sidecar\" container. Although this init container still starts in the init container sequence, it does not wait for the container to complete before proceeding to the next init container. Instead, the next init container starts immediately after this init container is started, or after any startupProbe has successfully completed.",
+ Description: "RestartPolicy defines the restart behavior of individual containers in a pod. This overrides the pod-level restart policy. When this field is not specified, the restart behavior is defined by the Pod's restart policy and the container type. Additionally, setting the RestartPolicy as \"Always\" for the init container will have the following effect: this init container will be continually restarted on exit until all regular containers have terminated. Once all regular containers have completed, all init containers with restartPolicy \"Always\" will be shut down. This lifecycle differs from normal init containers and is often referred to as a \"sidecar\" container. Although this init container still starts in the init container sequence, it does not wait for the container to complete before proceeding to the next init container. Instead, the next init container starts immediately after this init container is started, or after any startupProbe has successfully completed.",
Type: []string{"string"},
Format: "",
},
},
+ "restartPolicyRules": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents a list of rules to be checked to determine if the container should be restarted on exit. The rules are evaluated in order. Once a rule matches a container exit condition, the remaining rules are ignored. If no rule matches the container exit condition, the Container-level restart policy determines the whether the container is restarted or not. Constraints on the rules: - At most 20 rules are allowed. - Rules can have the same action. - Identical rules are not forbidden in validations. When rules are specified, container MUST set RestartPolicy explicitly even it if matches the Pod's RestartPolicy.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ContainerRestartRule"),
+ },
+ },
+ },
+ },
+ },
"volumeMounts": {
VendorExtensible: spec.VendorExtensible{
Extensions: spec.Extensions{
@@ -3521,7 +3547,45 @@ func schema_k8sio_api_core_v1_Container(ref common.ReferenceCallback) common.Ope
},
},
Dependencies: []string{
- "k8s.io/api/core/v1.ContainerPort", "k8s.io/api/core/v1.ContainerResizePolicy", "k8s.io/api/core/v1.EnvFromSource", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.VolumeDevice", "k8s.io/api/core/v1.VolumeMount"},
+ "k8s.io/api/core/v1.ContainerPort", "k8s.io/api/core/v1.ContainerResizePolicy", "k8s.io/api/core/v1.ContainerRestartRule", "k8s.io/api/core/v1.EnvFromSource", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.VolumeDevice", "k8s.io/api/core/v1.VolumeMount"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ContainerExtendedResourceRequest(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ContainerExtendedResourceRequest has the mapping of container name, extended resource name to the device request name.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "containerName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The name of the container requesting resources.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "resourceName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The name of the extended resource in that container which gets backed by DRA.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "requestName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The name of the request in the special ResourceClaim which corresponds to the extended resource.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"containerName", "resourceName", "requestName"},
+ },
+ },
}
}
@@ -3647,6 +3711,76 @@ func schema_k8sio_api_core_v1_ContainerResizePolicy(ref common.ReferenceCallback
}
}
+func schema_k8sio_api_core_v1_ContainerRestartRule(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ContainerRestartRule describes how a container exit is handled.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "action": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Specifies the action taken on a container exit if the requirements are satisfied. The only possible value is \"Restart\" to restart the container.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "exitCodes": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents the exit codes to check on container exits.",
+ Ref: ref("k8s.io/api/core/v1.ContainerRestartRuleOnExitCodes"),
+ },
+ },
+ },
+ Required: []string{"action"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ContainerRestartRuleOnExitCodes"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ContainerRestartRuleOnExitCodes(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ContainerRestartRuleOnExitCodes describes the condition for handling an exited container based on its exit codes.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "operator": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents the relationship between the container exit code(s) and the specified values. Possible values are: - In: the requirement is satisfied if the container exit code is in the\n set of specified values.\n- NotIn: the requirement is satisfied if the container exit code is\n not in the set of specified values.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "values": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "set",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Specifies the set of values to check for container exit codes. At most 255 elements are allowed.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"operator"},
+ },
+ },
+ }
+}
+
func schema_k8sio_api_core_v1_ContainerState(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
@@ -3941,6 +4075,14 @@ func schema_k8sio_api_core_v1_ContainerStatus(ref common.ReferenceCallback) comm
},
},
},
+ "stopSignal": {
+ SchemaProps: spec.SchemaProps{
+ Description: "StopSignal reports the effective stop signal for this container\n\nPossible enum values:\n - `\"SIGABRT\"`\n - `\"SIGALRM\"`\n - `\"SIGBUS\"`\n - `\"SIGCHLD\"`\n - `\"SIGCLD\"`\n - `\"SIGCONT\"`\n - `\"SIGFPE\"`\n - `\"SIGHUP\"`\n - `\"SIGILL\"`\n - `\"SIGINT\"`\n - `\"SIGIO\"`\n - `\"SIGIOT\"`\n - `\"SIGKILL\"`\n - `\"SIGPIPE\"`\n - `\"SIGPOLL\"`\n - `\"SIGPROF\"`\n - `\"SIGPWR\"`\n - `\"SIGQUIT\"`\n - `\"SIGRTMAX\"`\n - `\"SIGRTMAX-1\"`\n - `\"SIGRTMAX-10\"`\n - `\"SIGRTMAX-11\"`\n - `\"SIGRTMAX-12\"`\n - `\"SIGRTMAX-13\"`\n - `\"SIGRTMAX-14\"`\n - `\"SIGRTMAX-2\"`\n - `\"SIGRTMAX-3\"`\n - `\"SIGRTMAX-4\"`\n - `\"SIGRTMAX-5\"`\n - `\"SIGRTMAX-6\"`\n - `\"SIGRTMAX-7\"`\n - `\"SIGRTMAX-8\"`\n - `\"SIGRTMAX-9\"`\n - `\"SIGRTMIN\"`\n - `\"SIGRTMIN+1\"`\n - `\"SIGRTMIN+10\"`\n - `\"SIGRTMIN+11\"`\n - `\"SIGRTMIN+12\"`\n - `\"SIGRTMIN+13\"`\n - `\"SIGRTMIN+14\"`\n - `\"SIGRTMIN+15\"`\n - `\"SIGRTMIN+2\"`\n - `\"SIGRTMIN+3\"`\n - `\"SIGRTMIN+4\"`\n - `\"SIGRTMIN+5\"`\n - `\"SIGRTMIN+6\"`\n - `\"SIGRTMIN+7\"`\n - `\"SIGRTMIN+8\"`\n - `\"SIGRTMIN+9\"`\n - `\"SIGSEGV\"`\n - `\"SIGSTKFLT\"`\n - `\"SIGSTOP\"`\n - `\"SIGSYS\"`\n - `\"SIGTERM\"`\n - `\"SIGTRAP\"`\n - `\"SIGTSTP\"`\n - `\"SIGTTIN\"`\n - `\"SIGTTOU\"`\n - `\"SIGURG\"`\n - `\"SIGUSR1\"`\n - `\"SIGUSR2\"`\n - `\"SIGVTALRM\"`\n - `\"SIGWINCH\"`\n - `\"SIGXCPU\"`\n - `\"SIGXFSZ\"`",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"SIGABRT", "SIGALRM", "SIGBUS", "SIGCHLD", "SIGCLD", "SIGCONT", "SIGFPE", "SIGHUP", "SIGILL", "SIGINT", "SIGIO", "SIGIOT", "SIGKILL", "SIGPIPE", "SIGPOLL", "SIGPROF", "SIGPWR", "SIGQUIT", "SIGRTMAX", "SIGRTMAX-1", "SIGRTMAX-10", "SIGRTMAX-11", "SIGRTMAX-12", "SIGRTMAX-13", "SIGRTMAX-14", "SIGRTMAX-2", "SIGRTMAX-3", "SIGRTMAX-4", "SIGRTMAX-5", "SIGRTMAX-6", "SIGRTMAX-7", "SIGRTMAX-8", "SIGRTMAX-9", "SIGRTMIN", "SIGRTMIN+1", "SIGRTMIN+10", "SIGRTMIN+11", "SIGRTMIN+12", "SIGRTMIN+13", "SIGRTMIN+14", "SIGRTMIN+15", "SIGRTMIN+2", "SIGRTMIN+3", "SIGRTMIN+4", "SIGRTMIN+5", "SIGRTMIN+6", "SIGRTMIN+7", "SIGRTMIN+8", "SIGRTMIN+9", "SIGSEGV", "SIGSTKFLT", "SIGSTOP", "SIGSYS", "SIGTERM", "SIGTRAP", "SIGTSTP", "SIGTTIN", "SIGTTOU", "SIGURG", "SIGUSR1", "SIGUSR2", "SIGVTALRM", "SIGWINCH", "SIGXCPU", "SIGXFSZ"},
+ },
+ },
},
Required: []string{"name", "ready", "restartCount", "image", "imageID"},
},
@@ -4143,7 +4285,7 @@ func schema_k8sio_api_core_v1_EndpointAddress(ref common.ReferenceCallback) comm
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
- Description: "EndpointAddress is a tuple that describes single IP address.",
+ Description: "EndpointAddress is a tuple that describes single IP address. Deprecated: This API is deprecated in v1.33+.",
Type: []string{"object"},
Properties: map[string]spec.Schema{
"ip": {
@@ -4192,7 +4334,7 @@ func schema_k8sio_api_core_v1_EndpointPort(ref common.ReferenceCallback) common.
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
- Description: "EndpointPort is a tuple that describes a single port.",
+ Description: "EndpointPort is a tuple that describes a single port. Deprecated: This API is deprecated in v1.33+.",
Type: []string{"object"},
Properties: map[string]spec.Schema{
"name": {
@@ -4241,7 +4383,7 @@ func schema_k8sio_api_core_v1_EndpointSubset(ref common.ReferenceCallback) commo
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
- Description: "EndpointSubset is a group of addresses with a common set of ports. The expanded set of endpoints is the Cartesian product of Addresses x Ports. For example, given:\n\n\t{\n\t Addresses: [{\"ip\": \"10.10.1.1\"}, {\"ip\": \"10.10.2.2\"}],\n\t Ports: [{\"name\": \"a\", \"port\": 8675}, {\"name\": \"b\", \"port\": 309}]\n\t}\n\nThe resulting set of endpoints can be viewed as:\n\n\ta: [ 10.10.1.1:8675, 10.10.2.2:8675 ],\n\tb: [ 10.10.1.1:309, 10.10.2.2:309 ]",
+ Description: "EndpointSubset is a group of addresses with a common set of ports. The expanded set of endpoints is the Cartesian product of Addresses x Ports. For example, given:\n\n\t{\n\t Addresses: [{\"ip\": \"10.10.1.1\"}, {\"ip\": \"10.10.2.2\"}],\n\t Ports: [{\"name\": \"a\", \"port\": 8675}, {\"name\": \"b\", \"port\": 309}]\n\t}\n\nThe resulting set of endpoints can be viewed as:\n\n\ta: [ 10.10.1.1:8675, 10.10.2.2:8675 ],\n\tb: [ 10.10.1.1:309, 10.10.2.2:309 ]\n\nDeprecated: This API is deprecated in v1.33+.",
Type: []string{"object"},
Properties: map[string]spec.Schema{
"addresses": {
@@ -4313,7 +4455,7 @@ func schema_k8sio_api_core_v1_Endpoints(ref common.ReferenceCallback) common.Ope
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
- Description: "Endpoints is a collection of endpoints that implement the actual service. Example:\n\n\t Name: \"mysvc\",\n\t Subsets: [\n\t {\n\t Addresses: [{\"ip\": \"10.10.1.1\"}, {\"ip\": \"10.10.2.2\"}],\n\t Ports: [{\"name\": \"a\", \"port\": 8675}, {\"name\": \"b\", \"port\": 309}]\n\t },\n\t {\n\t Addresses: [{\"ip\": \"10.10.3.3\"}],\n\t Ports: [{\"name\": \"a\", \"port\": 93}, {\"name\": \"b\", \"port\": 76}]\n\t },\n\t]",
+ Description: "Endpoints is a collection of endpoints that implement the actual service. Example:\n\n\t Name: \"mysvc\",\n\t Subsets: [\n\t {\n\t Addresses: [{\"ip\": \"10.10.1.1\"}, {\"ip\": \"10.10.2.2\"}],\n\t Ports: [{\"name\": \"a\", \"port\": 8675}, {\"name\": \"b\", \"port\": 309}]\n\t },\n\t {\n\t Addresses: [{\"ip\": \"10.10.3.3\"}],\n\t Ports: [{\"name\": \"a\", \"port\": 93}, {\"name\": \"b\", \"port\": 76}]\n\t },\n\t]\n\nEndpoints is a legacy API and does not contain information about all Service features. Use discoveryv1.EndpointSlice for complete information about Service endpoints.\n\nDeprecated: This API is deprecated in v1.33+. Use discoveryv1.EndpointSlice.",
Type: []string{"object"},
Properties: map[string]spec.Schema{
"kind": {
@@ -4368,7 +4510,7 @@ func schema_k8sio_api_core_v1_EndpointsList(ref common.ReferenceCallback) common
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
- Description: "EndpointsList is a list of endpoints.",
+ Description: "EndpointsList is a list of endpoints. Deprecated: This API is deprecated in v1.33+.",
Type: []string{"object"},
Properties: map[string]spec.Schema{
"kind": {
@@ -4419,12 +4561,12 @@ func schema_k8sio_api_core_v1_EnvFromSource(ref common.ReferenceCallback) common
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
- Description: "EnvFromSource represents the source of a set of ConfigMaps",
+ Description: "EnvFromSource represents the source of a set of ConfigMaps or Secrets",
Type: []string{"object"},
Properties: map[string]spec.Schema{
"prefix": {
SchemaProps: spec.SchemaProps{
- Description: "An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.",
+ Description: "Optional text to prepend to the name of each environment variable. May consist of any printable ASCII characters except '='.",
Type: []string{"string"},
Format: "",
},
@@ -4458,7 +4600,7 @@ func schema_k8sio_api_core_v1_EnvVar(ref common.ReferenceCallback) common.OpenAP
Properties: map[string]spec.Schema{
"name": {
SchemaProps: spec.SchemaProps{
- Description: "Name of the environment variable. Must be a C_IDENTIFIER.",
+ Description: "Name of the environment variable. May consist of any printable ASCII characters except '='.",
Default: "",
Type: []string{"string"},
Format: "",
@@ -4517,11 +4659,17 @@ func schema_k8sio_api_core_v1_EnvVarSource(ref common.ReferenceCallback) common.
Ref: ref("k8s.io/api/core/v1.SecretKeySelector"),
},
},
+ "fileKeyRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "FileKeyRef selects a key of the env file. Requires the EnvFiles feature gate to be enabled.",
+ Ref: ref("k8s.io/api/core/v1.FileKeySelector"),
+ },
+ },
},
},
},
Dependencies: []string{
- "k8s.io/api/core/v1.ConfigMapKeySelector", "k8s.io/api/core/v1.ObjectFieldSelector", "k8s.io/api/core/v1.ResourceFieldSelector", "k8s.io/api/core/v1.SecretKeySelector"},
+ "k8s.io/api/core/v1.ConfigMapKeySelector", "k8s.io/api/core/v1.FileKeySelector", "k8s.io/api/core/v1.ObjectFieldSelector", "k8s.io/api/core/v1.ResourceFieldSelector", "k8s.io/api/core/v1.SecretKeySelector"},
}
}
@@ -4626,7 +4774,7 @@ func schema_k8sio_api_core_v1_EphemeralContainer(ref common.ReferenceCallback) c
},
},
SchemaProps: spec.SchemaProps{
- Description: "List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.",
+ Description: "List of sources to populate environment variables in the container. The keys defined within a source may consist of any printable ASCII characters except '='. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.",
Type: []string{"array"},
Items: &spec.SchemaOrArray{
Schema: &spec.Schema{
@@ -4690,11 +4838,30 @@ func schema_k8sio_api_core_v1_EphemeralContainer(ref common.ReferenceCallback) c
},
"restartPolicy": {
SchemaProps: spec.SchemaProps{
- Description: "Restart policy for the container to manage the restart behavior of each container within a pod. This may only be set for init containers. You cannot set this field on ephemeral containers.",
+ Description: "Restart policy for the container to manage the restart behavior of each container within a pod. You cannot set this field on ephemeral containers.",
Type: []string{"string"},
Format: "",
},
},
+ "restartPolicyRules": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents a list of rules to be checked to determine if the container should be restarted on exit. You cannot set this field on ephemeral containers.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ContainerRestartRule"),
+ },
+ },
+ },
+ },
+ },
"volumeMounts": {
VendorExtensible: spec.VendorExtensible{
Extensions: spec.Extensions{
@@ -4829,7 +4996,7 @@ func schema_k8sio_api_core_v1_EphemeralContainer(ref common.ReferenceCallback) c
},
},
Dependencies: []string{
- "k8s.io/api/core/v1.ContainerPort", "k8s.io/api/core/v1.ContainerResizePolicy", "k8s.io/api/core/v1.EnvFromSource", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.VolumeDevice", "k8s.io/api/core/v1.VolumeMount"},
+ "k8s.io/api/core/v1.ContainerPort", "k8s.io/api/core/v1.ContainerResizePolicy", "k8s.io/api/core/v1.ContainerRestartRule", "k8s.io/api/core/v1.EnvFromSource", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.VolumeDevice", "k8s.io/api/core/v1.VolumeMount"},
}
}
@@ -4934,7 +5101,7 @@ func schema_k8sio_api_core_v1_EphemeralContainerCommon(ref common.ReferenceCallb
},
},
SchemaProps: spec.SchemaProps{
- Description: "List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.",
+ Description: "List of sources to populate environment variables in the container. The keys defined within a source may consist of any printable ASCII characters except '='. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.",
Type: []string{"array"},
Items: &spec.SchemaOrArray{
Schema: &spec.Schema{
@@ -4998,11 +5165,30 @@ func schema_k8sio_api_core_v1_EphemeralContainerCommon(ref common.ReferenceCallb
},
"restartPolicy": {
SchemaProps: spec.SchemaProps{
- Description: "Restart policy for the container to manage the restart behavior of each container within a pod. This may only be set for init containers. You cannot set this field on ephemeral containers.",
+ Description: "Restart policy for the container to manage the restart behavior of each container within a pod. You cannot set this field on ephemeral containers.",
Type: []string{"string"},
Format: "",
},
},
+ "restartPolicyRules": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents a list of rules to be checked to determine if the container should be restarted on exit. You cannot set this field on ephemeral containers.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ContainerRestartRule"),
+ },
+ },
+ },
+ },
+ },
"volumeMounts": {
VendorExtensible: spec.VendorExtensible{
Extensions: spec.Extensions{
@@ -5130,7 +5316,7 @@ func schema_k8sio_api_core_v1_EphemeralContainerCommon(ref common.ReferenceCallb
},
},
Dependencies: []string{
- "k8s.io/api/core/v1.ContainerPort", "k8s.io/api/core/v1.ContainerResizePolicy", "k8s.io/api/core/v1.EnvFromSource", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.VolumeDevice", "k8s.io/api/core/v1.VolumeMount"},
+ "k8s.io/api/core/v1.ContainerPort", "k8s.io/api/core/v1.ContainerResizePolicy", "k8s.io/api/core/v1.ContainerRestartRule", "k8s.io/api/core/v1.EnvFromSource", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.VolumeDevice", "k8s.io/api/core/v1.VolumeMount"},
}
}
@@ -5500,6 +5686,57 @@ func schema_k8sio_api_core_v1_FCVolumeSource(ref common.ReferenceCallback) commo
}
}
+func schema_k8sio_api_core_v1_FileKeySelector(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "FileKeySelector selects a key of the env file.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "volumeName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The name of the volume mount containing the env file.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "path": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The path within the volume from which to select the file. Must be relative and may not contain the '..' path or start with '..'.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "key": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The key within the env file. An invalid key will prevent the pod from starting. The keys defined within a source may consist of any printable ASCII characters except '='. During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "optional": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Specify whether the file or its key must be defined. If the file or key does not exist, then the env var is not published. If optional is set to true and the specified key does not exist, the environment variable will not be set in the Pod's containers.\n\nIf optional is set to false and the specified key does not exist, an error will be returned during Pod creation.",
+ Default: false,
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"volumeName", "path", "key"},
+ },
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-map-type": "atomic",
+ },
+ },
+ },
+ }
+}
+
func schema_k8sio_api_core_v1_FlexPersistentVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
@@ -5694,7 +5931,8 @@ func schema_k8sio_api_core_v1_GRPCAction(ref common.ReferenceCallback) common.Op
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
- Type: []string{"object"},
+ Description: "GRPCAction specifies an action involving a GRPC service.",
+ Type: []string{"object"},
Properties: map[string]spec.Schema{
"port": {
SchemaProps: spec.SchemaProps{
@@ -5808,7 +6046,7 @@ func schema_k8sio_api_core_v1_GlusterfsVolumeSource(ref common.ReferenceCallback
Properties: map[string]spec.Schema{
"endpoints": {
SchemaProps: spec.SchemaProps{
- Description: "endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod",
+ Description: "endpoints is the endpoint name that details Glusterfs topology.",
Default: "",
Type: []string{"string"},
Format: "",
@@ -6325,6 +6563,14 @@ func schema_k8sio_api_core_v1_Lifecycle(ref common.ReferenceCallback) common.Ope
Ref: ref("k8s.io/api/core/v1.LifecycleHandler"),
},
},
+ "stopSignal": {
+ SchemaProps: spec.SchemaProps{
+ Description: "StopSignal defines which signal will be sent to a container when it is being stopped. If not specified, the default is defined by the container runtime in use. StopSignal can only be set for Pods with a non-empty .spec.os.name\n\nPossible enum values:\n - `\"SIGABRT\"`\n - `\"SIGALRM\"`\n - `\"SIGBUS\"`\n - `\"SIGCHLD\"`\n - `\"SIGCLD\"`\n - `\"SIGCONT\"`\n - `\"SIGFPE\"`\n - `\"SIGHUP\"`\n - `\"SIGILL\"`\n - `\"SIGINT\"`\n - `\"SIGIO\"`\n - `\"SIGIOT\"`\n - `\"SIGKILL\"`\n - `\"SIGPIPE\"`\n - `\"SIGPOLL\"`\n - `\"SIGPROF\"`\n - `\"SIGPWR\"`\n - `\"SIGQUIT\"`\n - `\"SIGRTMAX\"`\n - `\"SIGRTMAX-1\"`\n - `\"SIGRTMAX-10\"`\n - `\"SIGRTMAX-11\"`\n - `\"SIGRTMAX-12\"`\n - `\"SIGRTMAX-13\"`\n - `\"SIGRTMAX-14\"`\n - `\"SIGRTMAX-2\"`\n - `\"SIGRTMAX-3\"`\n - `\"SIGRTMAX-4\"`\n - `\"SIGRTMAX-5\"`\n - `\"SIGRTMAX-6\"`\n - `\"SIGRTMAX-7\"`\n - `\"SIGRTMAX-8\"`\n - `\"SIGRTMAX-9\"`\n - `\"SIGRTMIN\"`\n - `\"SIGRTMIN+1\"`\n - `\"SIGRTMIN+10\"`\n - `\"SIGRTMIN+11\"`\n - `\"SIGRTMIN+12\"`\n - `\"SIGRTMIN+13\"`\n - `\"SIGRTMIN+14\"`\n - `\"SIGRTMIN+15\"`\n - `\"SIGRTMIN+2\"`\n - `\"SIGRTMIN+3\"`\n - `\"SIGRTMIN+4\"`\n - `\"SIGRTMIN+5\"`\n - `\"SIGRTMIN+6\"`\n - `\"SIGRTMIN+7\"`\n - `\"SIGRTMIN+8\"`\n - `\"SIGRTMIN+9\"`\n - `\"SIGSEGV\"`\n - `\"SIGSTKFLT\"`\n - `\"SIGSTOP\"`\n - `\"SIGSYS\"`\n - `\"SIGTERM\"`\n - `\"SIGTRAP\"`\n - `\"SIGTSTP\"`\n - `\"SIGTTIN\"`\n - `\"SIGTTOU\"`\n - `\"SIGURG\"`\n - `\"SIGUSR1\"`\n - `\"SIGUSR2\"`\n - `\"SIGVTALRM\"`\n - `\"SIGWINCH\"`\n - `\"SIGXCPU\"`\n - `\"SIGXFSZ\"`",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"SIGABRT", "SIGALRM", "SIGBUS", "SIGCHLD", "SIGCLD", "SIGCONT", "SIGFPE", "SIGHUP", "SIGILL", "SIGINT", "SIGIO", "SIGIOT", "SIGKILL", "SIGPIPE", "SIGPOLL", "SIGPROF", "SIGPWR", "SIGQUIT", "SIGRTMAX", "SIGRTMAX-1", "SIGRTMAX-10", "SIGRTMAX-11", "SIGRTMAX-12", "SIGRTMAX-13", "SIGRTMAX-14", "SIGRTMAX-2", "SIGRTMAX-3", "SIGRTMAX-4", "SIGRTMAX-5", "SIGRTMAX-6", "SIGRTMAX-7", "SIGRTMAX-8", "SIGRTMAX-9", "SIGRTMIN", "SIGRTMIN+1", "SIGRTMIN+10", "SIGRTMIN+11", "SIGRTMIN+12", "SIGRTMIN+13", "SIGRTMIN+14", "SIGRTMIN+15", "SIGRTMIN+2", "SIGRTMIN+3", "SIGRTMIN+4", "SIGRTMIN+5", "SIGRTMIN+6", "SIGRTMIN+7", "SIGRTMIN+8", "SIGRTMIN+9", "SIGSEGV", "SIGSTKFLT", "SIGSTOP", "SIGSYS", "SIGTERM", "SIGTRAP", "SIGTSTP", "SIGTTIN", "SIGTTOU", "SIGURG", "SIGUSR1", "SIGUSR2", "SIGVTALRM", "SIGWINCH", "SIGXCPU", "SIGXFSZ"},
+ },
+ },
},
},
},
@@ -6342,25 +6588,25 @@ func schema_k8sio_api_core_v1_LifecycleHandler(ref common.ReferenceCallback) com
Properties: map[string]spec.Schema{
"exec": {
SchemaProps: spec.SchemaProps{
- Description: "Exec specifies the action to take.",
+ Description: "Exec specifies a command to execute in the container.",
Ref: ref("k8s.io/api/core/v1.ExecAction"),
},
},
"httpGet": {
SchemaProps: spec.SchemaProps{
- Description: "HTTPGet specifies the http request to perform.",
+ Description: "HTTPGet specifies an HTTP GET request to perform.",
Ref: ref("k8s.io/api/core/v1.HTTPGetAction"),
},
},
"tcpSocket": {
SchemaProps: spec.SchemaProps{
- Description: "Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for the backward compatibility. There are no validation of this field and lifecycle hooks will fail in runtime when tcp handler is specified.",
+ Description: "Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for backward compatibility. There is no validation of this field and lifecycle hooks will fail at runtime when it is specified.",
Ref: ref("k8s.io/api/core/v1.TCPSocketAction"),
},
},
"sleep": {
SchemaProps: spec.SchemaProps{
- Description: "Sleep represents the duration that the container should sleep before being terminated.",
+ Description: "Sleep represents a duration that the container should sleep.",
Ref: ref("k8s.io/api/core/v1.SleepAction"),
},
},
@@ -6814,7 +7060,7 @@ func schema_k8sio_api_core_v1_LocalVolumeSource(ref common.ReferenceCallback) co
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
- Description: "Local represents directly-attached storage with node affinity (Beta feature)",
+ Description: "Local represents directly-attached storage with node affinity",
Type: []string{"object"},
Properties: map[string]spec.Schema{
"path": {
@@ -6981,19 +7227,22 @@ func schema_k8sio_api_core_v1_NamespaceCondition(ref common.ReferenceCallback) c
},
"lastTransitionTime": {
SchemaProps: spec.SchemaProps{
- Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
+ Description: "Last time the condition transitioned from one status to another.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
},
},
"reason": {
SchemaProps: spec.SchemaProps{
- Type: []string{"string"},
- Format: "",
+ Description: "Unique, one-word, CamelCase reason for the condition's last transition.",
+ Type: []string{"string"},
+ Format: "",
},
},
"message": {
SchemaProps: spec.SchemaProps{
- Type: []string{"string"},
- Format: "",
+ Description: "Human-readable message indicating details about last transition.",
+ Type: []string{"string"},
+ Format: "",
},
},
},
@@ -7851,7 +8100,7 @@ func schema_k8sio_api_core_v1_NodeStatus(ref common.ReferenceCallback) common.Op
},
},
SchemaProps: spec.SchemaProps{
- Description: "Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/concepts/nodes/node/#condition",
+ Description: "Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/reference/node/node-status/#condition",
Type: []string{"array"},
Items: &spec.SchemaOrArray{
Schema: &spec.Schema{
@@ -7875,7 +8124,7 @@ func schema_k8sio_api_core_v1_NodeStatus(ref common.ReferenceCallback) common.Op
},
},
SchemaProps: spec.SchemaProps{
- Description: "List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP).",
+ Description: "List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/reference/node/node-status/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP).",
Type: []string{"array"},
Items: &spec.SchemaOrArray{
Schema: &spec.Schema{
@@ -7896,7 +8145,7 @@ func schema_k8sio_api_core_v1_NodeStatus(ref common.ReferenceCallback) common.Op
},
"nodeInfo": {
SchemaProps: spec.SchemaProps{
- Description: "Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#info",
+ Description: "Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/reference/node/node-status/#info",
Default: map[string]interface{}{},
Ref: ref("k8s.io/api/core/v1.NodeSystemInfo"),
},
@@ -7998,6 +8247,26 @@ func schema_k8sio_api_core_v1_NodeStatus(ref common.ReferenceCallback) common.Op
}
}
+func schema_k8sio_api_core_v1_NodeSwapStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "NodeSwapStatus represents swap memory information.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "capacity": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Total amount of swap memory in bytes.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
func schema_k8sio_api_core_v1_NodeSystemInfo(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
@@ -8085,10 +8354,18 @@ func schema_k8sio_api_core_v1_NodeSystemInfo(ref common.ReferenceCallback) commo
Format: "",
},
},
+ "swap": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Swap Info reported by the node.",
+ Ref: ref("k8s.io/api/core/v1.NodeSwapStatus"),
+ },
+ },
},
Required: []string{"machineID", "systemUUID", "bootID", "kernelVersion", "osImage", "containerRuntimeVersion", "kubeletVersion", "kubeProxyVersion", "operatingSystem", "architecture"},
},
},
+ Dependencies: []string{
+ "k8s.io/api/core/v1.NodeSwapStatus"},
}
}
@@ -8302,16 +8579,18 @@ func schema_k8sio_api_core_v1_PersistentVolumeClaimCondition(ref common.Referenc
Properties: map[string]spec.Schema{
"type": {
SchemaProps: spec.SchemaProps{
- Default: "",
- Type: []string{"string"},
- Format: "",
+ Description: "Type is the type of the condition. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=set%20to%20%27ResizeStarted%27.-,PersistentVolumeClaimCondition,-contains%20details%20about",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
},
},
"status": {
SchemaProps: spec.SchemaProps{
- Default: "",
- Type: []string{"string"},
- Format: "",
+ Description: "Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
},
},
"lastProbeTime": {
@@ -8477,7 +8756,7 @@ func schema_k8sio_api_core_v1_PersistentVolumeClaimSpec(ref common.ReferenceCall
},
"volumeAttributesClassName": {
SchemaProps: spec.SchemaProps{
- Description: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default).",
+ Description: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string or nil value indicates that no VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state, this field can be reset to its previous value (including nil) to cancel the modification. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/",
Type: []string{"string"},
Format: "",
},
@@ -8602,14 +8881,14 @@ func schema_k8sio_api_core_v1_PersistentVolumeClaimStatus(ref common.ReferenceCa
},
"currentVolumeAttributesClassName": {
SchemaProps: spec.SchemaProps{
- Description: "currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using. When unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim This is a beta field and requires enabling VolumeAttributesClass feature (off by default).",
+ Description: "currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using. When unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim",
Type: []string{"string"},
Format: "",
},
},
"modifyVolumeStatus": {
SchemaProps: spec.SchemaProps{
- Description: "ModifyVolumeStatus represents the status object of ControllerModifyVolume operation. When this is unset, there is no ModifyVolume operation being attempted. This is a beta field and requires enabling VolumeAttributesClass feature (off by default).",
+ Description: "ModifyVolumeStatus represents the status object of ControllerModifyVolume operation. When this is unset, there is no ModifyVolume operation being attempted.",
Ref: ref("k8s.io/api/core/v1.ModifyVolumeStatus"),
},
},
@@ -8740,13 +9019,13 @@ func schema_k8sio_api_core_v1_PersistentVolumeSource(ref common.ReferenceCallbac
Properties: map[string]spec.Schema{
"gcePersistentDisk": {
SchemaProps: spec.SchemaProps{
- Description: "gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk",
+ Description: "gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk",
Ref: ref("k8s.io/api/core/v1.GCEPersistentDiskVolumeSource"),
},
},
"awsElasticBlockStore": {
SchemaProps: spec.SchemaProps{
- Description: "awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore",
+ Description: "awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore",
Ref: ref("k8s.io/api/core/v1.AWSElasticBlockStoreVolumeSource"),
},
},
@@ -8758,7 +9037,7 @@ func schema_k8sio_api_core_v1_PersistentVolumeSource(ref common.ReferenceCallbac
},
"glusterfs": {
SchemaProps: spec.SchemaProps{
- Description: "glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: https://examples.k8s.io/volumes/glusterfs/README.md",
+ Description: "glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md",
Ref: ref("k8s.io/api/core/v1.GlusterfsPersistentVolumeSource"),
},
},
@@ -8770,7 +9049,7 @@ func schema_k8sio_api_core_v1_PersistentVolumeSource(ref common.ReferenceCallbac
},
"rbd": {
SchemaProps: spec.SchemaProps{
- Description: "rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md",
+ Description: "rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md",
Ref: ref("k8s.io/api/core/v1.RBDPersistentVolumeSource"),
},
},
@@ -8782,13 +9061,13 @@ func schema_k8sio_api_core_v1_PersistentVolumeSource(ref common.ReferenceCallbac
},
"cinder": {
SchemaProps: spec.SchemaProps{
- Description: "cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md",
+ Description: "cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md",
Ref: ref("k8s.io/api/core/v1.CinderPersistentVolumeSource"),
},
},
"cephfs": {
SchemaProps: spec.SchemaProps{
- Description: "cephFS represents a Ceph FS mount on the host that shares a pod's lifetime",
+ Description: "cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.",
Ref: ref("k8s.io/api/core/v1.CephFSPersistentVolumeSource"),
},
},
@@ -8800,55 +9079,55 @@ func schema_k8sio_api_core_v1_PersistentVolumeSource(ref common.ReferenceCallbac
},
"flocker": {
SchemaProps: spec.SchemaProps{
- Description: "flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running",
+ Description: "flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.",
Ref: ref("k8s.io/api/core/v1.FlockerVolumeSource"),
},
},
"flexVolume": {
SchemaProps: spec.SchemaProps{
- Description: "flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.",
+ Description: "flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.",
Ref: ref("k8s.io/api/core/v1.FlexPersistentVolumeSource"),
},
},
"azureFile": {
SchemaProps: spec.SchemaProps{
- Description: "azureFile represents an Azure File Service mount on the host and bind mount to the pod.",
+ Description: "azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver.",
Ref: ref("k8s.io/api/core/v1.AzureFilePersistentVolumeSource"),
},
},
"vsphereVolume": {
SchemaProps: spec.SchemaProps{
- Description: "vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine",
+ Description: "vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver.",
Ref: ref("k8s.io/api/core/v1.VsphereVirtualDiskVolumeSource"),
},
},
"quobyte": {
SchemaProps: spec.SchemaProps{
- Description: "quobyte represents a Quobyte mount on the host that shares a pod's lifetime",
+ Description: "quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.",
Ref: ref("k8s.io/api/core/v1.QuobyteVolumeSource"),
},
},
"azureDisk": {
SchemaProps: spec.SchemaProps{
- Description: "azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.",
+ Description: "azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver.",
Ref: ref("k8s.io/api/core/v1.AzureDiskVolumeSource"),
},
},
"photonPersistentDisk": {
SchemaProps: spec.SchemaProps{
- Description: "photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine",
+ Description: "photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.",
Ref: ref("k8s.io/api/core/v1.PhotonPersistentDiskVolumeSource"),
},
},
"portworxVolume": {
SchemaProps: spec.SchemaProps{
- Description: "portworxVolume represents a portworx volume attached and mounted on kubelets host machine",
+ Description: "portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on.",
Ref: ref("k8s.io/api/core/v1.PortworxVolumeSource"),
},
},
"scaleIO": {
SchemaProps: spec.SchemaProps{
- Description: "scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.",
+ Description: "scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.",
Ref: ref("k8s.io/api/core/v1.ScaleIOPersistentVolumeSource"),
},
},
@@ -8860,13 +9139,13 @@ func schema_k8sio_api_core_v1_PersistentVolumeSource(ref common.ReferenceCallbac
},
"storageos": {
SchemaProps: spec.SchemaProps{
- Description: "storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://examples.k8s.io/volumes/storageos/README.md",
+ Description: "storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. More info: https://examples.k8s.io/volumes/storageos/README.md",
Ref: ref("k8s.io/api/core/v1.StorageOSPersistentVolumeSource"),
},
},
"csi": {
SchemaProps: spec.SchemaProps{
- Description: "csi represents storage that is handled by an external CSI driver (Beta feature).",
+ Description: "csi represents storage that is handled by an external CSI driver.",
Ref: ref("k8s.io/api/core/v1.CSIPersistentVolumeSource"),
},
},
@@ -8901,13 +9180,13 @@ func schema_k8sio_api_core_v1_PersistentVolumeSpec(ref common.ReferenceCallback)
},
"gcePersistentDisk": {
SchemaProps: spec.SchemaProps{
- Description: "gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk",
+ Description: "gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk",
Ref: ref("k8s.io/api/core/v1.GCEPersistentDiskVolumeSource"),
},
},
"awsElasticBlockStore": {
SchemaProps: spec.SchemaProps{
- Description: "awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore",
+ Description: "awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore",
Ref: ref("k8s.io/api/core/v1.AWSElasticBlockStoreVolumeSource"),
},
},
@@ -8919,7 +9198,7 @@ func schema_k8sio_api_core_v1_PersistentVolumeSpec(ref common.ReferenceCallback)
},
"glusterfs": {
SchemaProps: spec.SchemaProps{
- Description: "glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. More info: https://examples.k8s.io/volumes/glusterfs/README.md",
+ Description: "glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md",
Ref: ref("k8s.io/api/core/v1.GlusterfsPersistentVolumeSource"),
},
},
@@ -8931,7 +9210,7 @@ func schema_k8sio_api_core_v1_PersistentVolumeSpec(ref common.ReferenceCallback)
},
"rbd": {
SchemaProps: spec.SchemaProps{
- Description: "rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md",
+ Description: "rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md",
Ref: ref("k8s.io/api/core/v1.RBDPersistentVolumeSource"),
},
},
@@ -8943,13 +9222,13 @@ func schema_k8sio_api_core_v1_PersistentVolumeSpec(ref common.ReferenceCallback)
},
"cinder": {
SchemaProps: spec.SchemaProps{
- Description: "cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md",
+ Description: "cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md",
Ref: ref("k8s.io/api/core/v1.CinderPersistentVolumeSource"),
},
},
"cephfs": {
SchemaProps: spec.SchemaProps{
- Description: "cephFS represents a Ceph FS mount on the host that shares a pod's lifetime",
+ Description: "cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.",
Ref: ref("k8s.io/api/core/v1.CephFSPersistentVolumeSource"),
},
},
@@ -8961,55 +9240,55 @@ func schema_k8sio_api_core_v1_PersistentVolumeSpec(ref common.ReferenceCallback)
},
"flocker": {
SchemaProps: spec.SchemaProps{
- Description: "flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running",
+ Description: "flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.",
Ref: ref("k8s.io/api/core/v1.FlockerVolumeSource"),
},
},
"flexVolume": {
SchemaProps: spec.SchemaProps{
- Description: "flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.",
+ Description: "flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.",
Ref: ref("k8s.io/api/core/v1.FlexPersistentVolumeSource"),
},
},
"azureFile": {
SchemaProps: spec.SchemaProps{
- Description: "azureFile represents an Azure File Service mount on the host and bind mount to the pod.",
+ Description: "azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver.",
Ref: ref("k8s.io/api/core/v1.AzureFilePersistentVolumeSource"),
},
},
"vsphereVolume": {
SchemaProps: spec.SchemaProps{
- Description: "vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine",
+ Description: "vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver.",
Ref: ref("k8s.io/api/core/v1.VsphereVirtualDiskVolumeSource"),
},
},
"quobyte": {
SchemaProps: spec.SchemaProps{
- Description: "quobyte represents a Quobyte mount on the host that shares a pod's lifetime",
+ Description: "quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.",
Ref: ref("k8s.io/api/core/v1.QuobyteVolumeSource"),
},
},
"azureDisk": {
SchemaProps: spec.SchemaProps{
- Description: "azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.",
+ Description: "azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver.",
Ref: ref("k8s.io/api/core/v1.AzureDiskVolumeSource"),
},
},
"photonPersistentDisk": {
SchemaProps: spec.SchemaProps{
- Description: "photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine",
+ Description: "photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.",
Ref: ref("k8s.io/api/core/v1.PhotonPersistentDiskVolumeSource"),
},
},
"portworxVolume": {
SchemaProps: spec.SchemaProps{
- Description: "portworxVolume represents a portworx volume attached and mounted on kubelets host machine",
+ Description: "portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on.",
Ref: ref("k8s.io/api/core/v1.PortworxVolumeSource"),
},
},
"scaleIO": {
SchemaProps: spec.SchemaProps{
- Description: "scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.",
+ Description: "scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.",
Ref: ref("k8s.io/api/core/v1.ScaleIOPersistentVolumeSource"),
},
},
@@ -9021,13 +9300,13 @@ func schema_k8sio_api_core_v1_PersistentVolumeSpec(ref common.ReferenceCallback)
},
"storageos": {
SchemaProps: spec.SchemaProps{
- Description: "storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod More info: https://examples.k8s.io/volumes/storageos/README.md",
+ Description: "storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. More info: https://examples.k8s.io/volumes/storageos/README.md",
Ref: ref("k8s.io/api/core/v1.StorageOSPersistentVolumeSource"),
},
},
"csi": {
SchemaProps: spec.SchemaProps{
- Description: "csi represents storage that is handled by an external CSI driver (Beta feature).",
+ Description: "csi represents storage that is handled by an external CSI driver.",
Ref: ref("k8s.io/api/core/v1.CSIPersistentVolumeSource"),
},
},
@@ -9114,7 +9393,7 @@ func schema_k8sio_api_core_v1_PersistentVolumeSpec(ref common.ReferenceCallback)
},
"volumeAttributesClassName": {
SchemaProps: spec.SchemaProps{
- Description: "Name of VolumeAttributesClass to which this persistent volume belongs. Empty value is not allowed. When this field is not set, it indicates that this volume does not belong to any VolumeAttributesClass. This field is mutable and can be changed by the CSI driver after a volume has been updated successfully to a new class. For an unbound PersistentVolume, the volumeAttributesClassName will be matched with unbound PersistentVolumeClaims during the binding process. This is a beta field and requires enabling VolumeAttributesClass feature (off by default).",
+ Description: "Name of VolumeAttributesClass to which this persistent volume belongs. Empty value is not allowed. When this field is not set, it indicates that this volume does not belong to any VolumeAttributesClass. This field is mutable and can be changed by the CSI driver after a volume has been updated successfully to a new class. For an unbound PersistentVolume, the volumeAttributesClassName will be matched with unbound PersistentVolumeClaims during the binding process.",
Type: []string{"string"},
Format: "",
},
@@ -9356,7 +9635,7 @@ func schema_k8sio_api_core_v1_PodAffinityTerm(ref common.ReferenceCallback) comm
},
},
SchemaProps: spec.SchemaProps{
- Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).",
+ Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set.",
Type: []string{"array"},
Items: &spec.SchemaOrArray{
Schema: &spec.Schema{
@@ -9376,7 +9655,7 @@ func schema_k8sio_api_core_v1_PodAffinityTerm(ref common.ReferenceCallback) comm
},
},
SchemaProps: spec.SchemaProps{
- Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is a beta field and requires enabling MatchLabelKeysInPodAffinity feature gate (enabled by default).",
+ Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.",
Type: []string{"array"},
Items: &spec.SchemaOrArray{
Schema: &spec.Schema{
@@ -9431,7 +9710,7 @@ func schema_k8sio_api_core_v1_PodAntiAffinity(ref common.ReferenceCallback) comm
},
},
SchemaProps: spec.SchemaProps{
- Description: "The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.",
+ Description: "The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and subtracting \"weight\" from the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.",
Type: []string{"array"},
Items: &spec.SchemaOrArray{
Schema: &spec.Schema{
@@ -9513,6 +9792,62 @@ func schema_k8sio_api_core_v1_PodAttachOptions(ref common.ReferenceCallback) com
}
}
+func schema_k8sio_api_core_v1_PodCertificateProjection(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PodCertificateProjection provides a private key and X.509 certificate in the pod filesystem.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "signerName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kubelet's generated CSRs will be addressed to this signer.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "keyType": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The type of keypair Kubelet will generate for the pod.\n\nValid values are \"RSA3072\", \"RSA4096\", \"ECDSAP256\", \"ECDSAP384\", \"ECDSAP521\", and \"ED25519\".",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "maxExpirationSeconds": {
+ SchemaProps: spec.SchemaProps{
+ Description: "maxExpirationSeconds is the maximum lifetime permitted for the certificate.\n\nKubelet copies this value verbatim into the PodCertificateRequests it generates for this projection.\n\nIf omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver will reject values shorter than 3600 (1 hour). The maximum allowable value is 7862400 (91 days).\n\nThe signer implementation is then free to issue a certificate with any lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600 seconds (1 hour). This constraint is enforced by kube-apiserver. `kubernetes.io` signers will never issue certificates with a lifetime longer than 24 hours.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "credentialBundlePath": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Write the credential bundle at this path in the projected volume.\n\nThe credential bundle is a single file that contains multiple PEM blocks. The first PEM block is a PRIVATE KEY block, containing a PKCS#8 private key.\n\nThe remaining blocks are CERTIFICATE blocks, containing the issued certificate chain from the signer (leaf and any intermediates).\n\nUsing credentialBundlePath lets your Pod's application code make a single atomic read that retrieves a consistent key and certificate chain. If you project them to separate files, your application code will need to additionally check that the leaf certificate was issued to the key.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "keyPath": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Write the key at this path in the projected volume.\n\nMost applications should use credentialBundlePath. When using keyPath and certificateChainPath, your application needs to check that the key and leaf certificate are consistent, because it is possible to read the files mid-rotation.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "certificateChainPath": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Write the certificate chain at this path in the projected volume.\n\nMost applications should use credentialBundlePath. When using keyPath and certificateChainPath, your application needs to check that the key and leaf certificate are consistent, because it is possible to read the files mid-rotation.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"signerName", "keyType"},
+ },
+ },
+ }
+}
+
func schema_k8sio_api_core_v1_PodCondition(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
@@ -9528,6 +9863,13 @@ func schema_k8sio_api_core_v1_PodCondition(ref common.ReferenceCallback) common.
Format: "",
},
},
+ "observedGeneration": {
+ SchemaProps: spec.SchemaProps{
+ Description: "If set, this represents the .metadata.generation that the pod condition was set based upon. This is an alpha field. Enable PodObservedGenerationTracking to be able to use this field.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
"status": {
SchemaProps: spec.SchemaProps{
Description: "Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions",
@@ -9654,15 +9996,16 @@ func schema_k8sio_api_core_v1_PodDNSConfigOption(ref common.ReferenceCallback) c
Properties: map[string]spec.Schema{
"name": {
SchemaProps: spec.SchemaProps{
- Description: "Required.",
+ Description: "Name is this DNS resolver option's name. Required.",
Type: []string{"string"},
Format: "",
},
},
"value": {
SchemaProps: spec.SchemaProps{
- Type: []string{"string"},
- Format: "",
+ Description: "Value is this DNS resolver option's value.",
+ Type: []string{"string"},
+ Format: "",
},
},
},
@@ -9754,6 +10097,49 @@ func schema_k8sio_api_core_v1_PodExecOptions(ref common.ReferenceCallback) commo
}
}
+func schema_k8sio_api_core_v1_PodExtendedResourceClaimStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PodExtendedResourceClaimStatus is stored in the PodStatus for the extended resource requests backed by DRA. It stores the generated name for the corresponding special ResourceClaim created by the scheduler.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "requestMappings": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "RequestMappings identifies the mapping of to device request in the generated ResourceClaim.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ContainerExtendedResourceRequest"),
+ },
+ },
+ },
+ },
+ },
+ "resourceClaimName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ResourceClaimName is the name of the ResourceClaim that was generated for the Pod in the namespace of the Pod.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"requestMappings", "resourceClaimName"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ContainerExtendedResourceRequest"},
+ }
+}
+
func schema_k8sio_api_core_v1_PodIP(ref common.ReferenceCallback) common.OpenAPIDefinition {
return common.OpenAPIDefinition{
Schema: spec.Schema{
@@ -9891,7 +10277,7 @@ func schema_k8sio_api_core_v1_PodLogOptions(ref common.ReferenceCallback) common
},
"tailLines": {
SchemaProps: spec.SchemaProps{
- Description: "If set, the number of lines from the end of the logs to show. If not specified, logs are shown from the creation of the container or sinceSeconds or sinceTime",
+ Description: "If set, the number of lines from the end of the logs to show. If not specified, logs are shown from the creation of the container or sinceSeconds or sinceTime. Note that when \"TailLines\" is specified, \"Stream\" can only be set to nil or \"All\".",
Type: []string{"integer"},
Format: "int64",
},
@@ -9910,6 +10296,13 @@ func schema_k8sio_api_core_v1_PodLogOptions(ref common.ReferenceCallback) common
Format: "",
},
},
+ "stream": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Specify which container log stream to return to the client. Acceptable values are \"All\", \"Stdout\" and \"Stderr\". If not specified, \"All\" is used, and both stdout and stderr are returned interleaved. Note that when \"TailLines\" is specified, \"Stream\" can only be set to nil or \"All\".",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
},
},
},
@@ -10244,6 +10637,13 @@ func schema_k8sio_api_core_v1_PodSecurityContext(ref common.ReferenceCallback) c
Ref: ref("k8s.io/api/core/v1.AppArmorProfile"),
},
},
+ "seLinuxChangePolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod. It has no effect on nodes that do not support SELinux or to volumes does not support SELinux. Valid values are \"MountOption\" and \"Recursive\".\n\n\"Recursive\" means relabeling of all files on all Pod volumes by the container runtime. This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node.\n\n\"MountOption\" mounts all eligible Pod volumes with `-o context` mount option. This requires all Pods that share the same volume to use the same SELinux label. It is not possible to share the same volume among privileged and unprivileged Pods. Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their CSIDriver instance. Other volumes are always re-labelled recursively. \"MountOption\" value is allowed only when SELinuxMount feature gate is enabled.\n\nIf not specified and SELinuxMount feature gate is enabled, \"MountOption\" is used. If not specified and SELinuxMount feature gate is disabled, \"MountOption\" is used for ReadWriteOncePod volumes and \"Recursive\" for all other volumes.\n\nThis field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers.\n\nAll Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state. Note that this field cannot be set when spec.os.name is windows.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
},
},
},
@@ -10316,7 +10716,7 @@ func schema_k8sio_api_core_v1_PodSpec(ref common.ReferenceCallback) common.OpenA
},
},
SchemaProps: spec.SchemaProps{
- Description: "List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion. Init containers cannot currently be added or removed. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/",
+ Description: "List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion. Init containers cannot currently be added or removed. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/",
Type: []string{"array"},
Items: &spec.SchemaOrArray{
Schema: &spec.Schema{
@@ -10457,7 +10857,7 @@ func schema_k8sio_api_core_v1_PodSpec(ref common.ReferenceCallback) common.OpenA
},
"hostNetwork": {
SchemaProps: spec.SchemaProps{
- Description: "Host networking requested for this pod. Use the host's network namespace. If this option is set, the ports that will be used must be specified. Default to false.",
+ Description: "Host networking requested for this pod. Use the host's network namespace. When using HostNetwork you should specify ports so the scheduler is aware. When `hostNetwork` is true, specified `hostPort` fields in port definitions must match `containerPort`, and unspecified `hostPort` fields in port definitions are defaulted to match `containerPort`. Default to false.",
Type: []string{"boolean"},
Format: "",
},
@@ -10685,14 +11085,14 @@ func schema_k8sio_api_core_v1_PodSpec(ref common.ReferenceCallback) common.OpenA
},
"setHostnameAsFQDN": {
SchemaProps: spec.SchemaProps{
- Description: "If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false.",
+ Description: "If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\CurrentControlSet\\\\Services\\\\Tcpip\\\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false.",
Type: []string{"boolean"},
Format: "",
},
},
"os": {
SchemaProps: spec.SchemaProps{
- Description: "Specifies the OS of the containers in the pod. Some pod and container fields are restricted if this is set.\n\nIf the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions\n\nIf the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC - spec.hostUsers - spec.securityContext.appArmorProfile - spec.securityContext.seLinuxOptions - spec.securityContext.seccompProfile - spec.securityContext.fsGroup - spec.securityContext.fsGroupChangePolicy - spec.securityContext.sysctls - spec.shareProcessNamespace - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups - spec.securityContext.supplementalGroupsPolicy - spec.containers[*].securityContext.appArmorProfile - spec.containers[*].securityContext.seLinuxOptions - spec.containers[*].securityContext.seccompProfile - spec.containers[*].securityContext.capabilities - spec.containers[*].securityContext.readOnlyRootFilesystem - spec.containers[*].securityContext.privileged - spec.containers[*].securityContext.allowPrivilegeEscalation - spec.containers[*].securityContext.procMount - spec.containers[*].securityContext.runAsUser - spec.containers[*].securityContext.runAsGroup",
+ Description: "Specifies the OS of the containers in the pod. Some pod and container fields are restricted if this is set.\n\nIf the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions\n\nIf the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC - spec.hostUsers - spec.resources - spec.securityContext.appArmorProfile - spec.securityContext.seLinuxOptions - spec.securityContext.seccompProfile - spec.securityContext.fsGroup - spec.securityContext.fsGroupChangePolicy - spec.securityContext.sysctls - spec.shareProcessNamespace - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups - spec.securityContext.supplementalGroupsPolicy - spec.containers[*].securityContext.appArmorProfile - spec.containers[*].securityContext.seLinuxOptions - spec.containers[*].securityContext.seccompProfile - spec.containers[*].securityContext.capabilities - spec.containers[*].securityContext.readOnlyRootFilesystem - spec.containers[*].securityContext.privileged - spec.containers[*].securityContext.allowPrivilegeEscalation - spec.containers[*].securityContext.procMount - spec.containers[*].securityContext.runAsUser - spec.containers[*].securityContext.runAsGroup",
Ref: ref("k8s.io/api/core/v1.PodOS"),
},
},
@@ -10751,12 +11151,25 @@ func schema_k8sio_api_core_v1_PodSpec(ref common.ReferenceCallback) common.OpenA
},
},
},
+ "resources": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for \"cpu\", \"memory\" and \"hugepages-\" resource names only. ResourceClaims are not supported.\n\nThis field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod.\n\nThis is an alpha field and requires enabling the PodLevelResources feature gate.",
+ Ref: ref("k8s.io/api/core/v1.ResourceRequirements"),
+ },
+ },
+ "hostnameOverride": {
+ SchemaProps: spec.SchemaProps{
+ Description: "HostnameOverride specifies an explicit override for the pod's hostname as perceived by the pod. This field only specifies the pod's hostname and does not affect its DNS records. When this field is set to a non-empty string: - It takes precedence over the values set in `hostname` and `subdomain`. - The Pod's hostname will be set to this value. - `setHostnameAsFQDN` must be nil or set to false. - `hostNetwork` must be set to false.\n\nThis field must be a valid DNS subdomain as defined in RFC 1123 and contain at most 64 characters. Requires the HostnameOverride feature gate to be enabled.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
},
Required: []string{"containers"},
},
},
Dependencies: []string{
- "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.EphemeralContainer", "k8s.io/api/core/v1.HostAlias", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodOS", "k8s.io/api/core/v1.PodReadinessGate", "k8s.io/api/core/v1.PodResourceClaim", "k8s.io/api/core/v1.PodSchedulingGate", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.TopologySpreadConstraint", "k8s.io/api/core/v1.Volume", "k8s.io/apimachinery/pkg/api/resource.Quantity"},
+ "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.EphemeralContainer", "k8s.io/api/core/v1.HostAlias", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodOS", "k8s.io/api/core/v1.PodReadinessGate", "k8s.io/api/core/v1.PodResourceClaim", "k8s.io/api/core/v1.PodSchedulingGate", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.TopologySpreadConstraint", "k8s.io/api/core/v1.Volume", "k8s.io/apimachinery/pkg/api/resource.Quantity"},
}
}
@@ -10767,6 +11180,13 @@ func schema_k8sio_api_core_v1_PodStatus(ref common.ReferenceCallback) common.Ope
Description: "PodStatus represents information about the status of a pod. Status may trail the actual state of a system, especially if the node that hosts the pod cannot contact the control plane.",
Type: []string{"object"},
Properties: map[string]spec.Schema{
+ "observedGeneration": {
+ SchemaProps: spec.SchemaProps{
+ Description: "If set, this represents the .metadata.generation that the pod status was set based upon. This is an alpha field. Enable PodObservedGenerationTracking to be able to use this field.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
"phase": {
SchemaProps: spec.SchemaProps{
Description: "The phase of a Pod is a simple, high-level summary of where the Pod is in its lifecycle. The conditions array, the reason and message fields, and the individual container status arrays contain more detail about the pod's status. There are five possible phase values:\n\nPending: The pod has been accepted by the Kubernetes system, but one or more of the container images has not been created. This includes time before being scheduled as well as time spent downloading images over the network, which could take a while. Running: The pod has been bound to a node, and all of the containers have been created. At least one container is still running, or is in the process of starting or restarting. Succeeded: All containers in the pod have terminated in success, and will not be restarted. Failed: All containers in the pod have terminated, and at least one container has terminated in failure. The container either exited with non-zero status or was terminated by the system. Unknown: For some reason the state of the pod could not be obtained, typically due to an error in communicating with the host of the pod.\n\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase\n\nPossible enum values:\n - `\"Failed\"` means that all containers in the pod have terminated, and at least one container has terminated in a failure (exited with a non-zero exit code or was stopped by the system).\n - `\"Pending\"` means the pod has been accepted by the system, but one or more of the containers has not been started. This includes time before being bound to a node, as well as time spent pulling images onto the host.\n - `\"Running\"` means the pod has been bound to a node and all of the containers have been started. At least one container is still running or is in the process of being restarted.\n - `\"Succeeded\"` means that all containers in the pod have voluntarily terminated with a container exit code of 0, and the system is not going to restart any of these containers.\n - `\"Unknown\"` means that for some reason the state of the pod could not be obtained, typically due to an error in communicating with the host of the pod. Deprecated: It isn't being set since 2015 (74da3b14b0c0f658b3bb8d2def5094686d0e9095)",
@@ -10892,7 +11312,7 @@ func schema_k8sio_api_core_v1_PodStatus(ref common.ReferenceCallback) common.Ope
},
},
SchemaProps: spec.SchemaProps{
- Description: "The list has one entry per init container in the manifest. The most recent successful init container will have ready = true, the most recently started container will have startTime set. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status",
+ Description: "Statuses of init containers in this pod. The most recent successful non-restartable init container will have ready = true, the most recently started container will have startTime set. Each init container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-and-container-status",
Type: []string{"array"},
Items: &spec.SchemaOrArray{
Schema: &spec.Schema{
@@ -10911,7 +11331,7 @@ func schema_k8sio_api_core_v1_PodStatus(ref common.ReferenceCallback) common.Ope
},
},
SchemaProps: spec.SchemaProps{
- Description: "The list has one entry per container in the manifest. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status",
+ Description: "Statuses of containers in this pod. Each container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status",
Type: []string{"array"},
Items: &spec.SchemaOrArray{
Schema: &spec.Schema{
@@ -10938,7 +11358,7 @@ func schema_k8sio_api_core_v1_PodStatus(ref common.ReferenceCallback) common.Ope
},
},
SchemaProps: spec.SchemaProps{
- Description: "Status for any ephemeral containers that have run in this pod.",
+ Description: "Statuses for any ephemeral containers that have run in this pod. Each ephemeral container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status",
Type: []string{"array"},
Items: &spec.SchemaOrArray{
Schema: &spec.Schema{
@@ -10952,7 +11372,7 @@ func schema_k8sio_api_core_v1_PodStatus(ref common.ReferenceCallback) common.Ope
},
"resize": {
SchemaProps: spec.SchemaProps{
- Description: "Status of resources resize desired for pod's containers. It is empty if no resources resize is pending. Any changes to container resources will automatically set this to \"Proposed\"",
+ Description: "Status of resources resize desired for pod's containers. It is empty if no resources resize is pending. Any changes to container resources will automatically set this to \"Proposed\" Deprecated: Resize status is moved to two pod conditions PodResizePending and PodResizeInProgress. PodResizePending will track states where the spec has been resized, but the Kubelet has not yet allocated the resources. PodResizeInProgress will track in-progress resizes, and should be present whenever allocated resources != acknowledged resources.",
Type: []string{"string"},
Format: "",
},
@@ -10981,11 +11401,17 @@ func schema_k8sio_api_core_v1_PodStatus(ref common.ReferenceCallback) common.Ope
},
},
},
+ "extendedResourceClaimStatus": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Status of extended resource claim backed by DRA.",
+ Ref: ref("k8s.io/api/core/v1.PodExtendedResourceClaimStatus"),
+ },
+ },
},
},
},
Dependencies: []string{
- "k8s.io/api/core/v1.ContainerStatus", "k8s.io/api/core/v1.HostIP", "k8s.io/api/core/v1.PodCondition", "k8s.io/api/core/v1.PodIP", "k8s.io/api/core/v1.PodResourceClaimStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"},
+ "k8s.io/api/core/v1.ContainerStatus", "k8s.io/api/core/v1.HostIP", "k8s.io/api/core/v1.PodCondition", "k8s.io/api/core/v1.PodExtendedResourceClaimStatus", "k8s.io/api/core/v1.PodIP", "k8s.io/api/core/v1.PodResourceClaimStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"},
}
}
@@ -11159,7 +11585,8 @@ func schema_k8sio_api_core_v1_PortStatus(ref common.ReferenceCallback) common.Op
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
- Type: []string{"object"},
+ Description: "PortStatus represents the error condition of a service port",
+ Type: []string{"object"},
Properties: map[string]spec.Schema{
"port": {
SchemaProps: spec.SchemaProps{
@@ -11311,25 +11738,25 @@ func schema_k8sio_api_core_v1_Probe(ref common.ReferenceCallback) common.OpenAPI
Properties: map[string]spec.Schema{
"exec": {
SchemaProps: spec.SchemaProps{
- Description: "Exec specifies the action to take.",
+ Description: "Exec specifies a command to execute in the container.",
Ref: ref("k8s.io/api/core/v1.ExecAction"),
},
},
"httpGet": {
SchemaProps: spec.SchemaProps{
- Description: "HTTPGet specifies the http request to perform.",
+ Description: "HTTPGet specifies an HTTP GET request to perform.",
Ref: ref("k8s.io/api/core/v1.HTTPGetAction"),
},
},
"tcpSocket": {
SchemaProps: spec.SchemaProps{
- Description: "TCPSocket specifies an action involving a TCP port.",
+ Description: "TCPSocket specifies a connection to a TCP port.",
Ref: ref("k8s.io/api/core/v1.TCPSocketAction"),
},
},
"grpc": {
SchemaProps: spec.SchemaProps{
- Description: "GRPC specifies an action involving a GRPC port.",
+ Description: "GRPC specifies a GRPC HealthCheckRequest.",
Ref: ref("k8s.io/api/core/v1.GRPCAction"),
},
},
@@ -11392,25 +11819,25 @@ func schema_k8sio_api_core_v1_ProbeHandler(ref common.ReferenceCallback) common.
Properties: map[string]spec.Schema{
"exec": {
SchemaProps: spec.SchemaProps{
- Description: "Exec specifies the action to take.",
+ Description: "Exec specifies a command to execute in the container.",
Ref: ref("k8s.io/api/core/v1.ExecAction"),
},
},
"httpGet": {
SchemaProps: spec.SchemaProps{
- Description: "HTTPGet specifies the http request to perform.",
+ Description: "HTTPGet specifies an HTTP GET request to perform.",
Ref: ref("k8s.io/api/core/v1.HTTPGetAction"),
},
},
"tcpSocket": {
SchemaProps: spec.SchemaProps{
- Description: "TCPSocket specifies an action involving a TCP port.",
+ Description: "TCPSocket specifies a connection to a TCP port.",
Ref: ref("k8s.io/api/core/v1.TCPSocketAction"),
},
},
"grpc": {
SchemaProps: spec.SchemaProps{
- Description: "GRPC specifies an action involving a GRPC port.",
+ Description: "GRPC specifies a GRPC HealthCheckRequest.",
Ref: ref("k8s.io/api/core/v1.GRPCAction"),
},
},
@@ -11912,6 +12339,7 @@ func schema_k8sio_api_core_v1_ReplicationControllerSpec(ref common.ReferenceCall
"replicas": {
SchemaProps: spec.SchemaProps{
Description: "Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller",
+ Default: 1,
Type: []string{"integer"},
Format: "int32",
},
@@ -11919,6 +12347,7 @@ func schema_k8sio_api_core_v1_ReplicationControllerSpec(ref common.ReferenceCall
"minReadySeconds": {
SchemaProps: spec.SchemaProps{
Description: "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)",
+ Default: 0,
Type: []string{"integer"},
Format: "int32",
},
@@ -12109,7 +12538,7 @@ func schema_k8sio_api_core_v1_ResourceHealth(ref common.ReferenceCallback) commo
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
- Description: "ResourceHealth represents the health of a resource. It has the latest device health information. This is a part of KEP https://kep.k8s.io/4680 and historical health changes are planned to be added in future iterations of a KEP.",
+ Description: "ResourceHealth represents the health of a resource. It has the latest device health information. This is a part of KEP https://kep.k8s.io/4680.",
Type: []string{"object"},
Properties: map[string]spec.Schema{
"resourceID": {
@@ -12271,7 +12700,7 @@ func schema_k8sio_api_core_v1_ResourceQuotaSpec(ref common.ReferenceCallback) co
Default: "",
Type: []string{"string"},
Format: "",
- Enum: []interface{}{"BestEffort", "CrossNamespacePodAffinity", "NotBestEffort", "NotTerminating", "PriorityClass", "Terminating"},
+ Enum: []interface{}{"BestEffort", "CrossNamespacePodAffinity", "NotBestEffort", "NotTerminating", "PriorityClass", "Terminating", "VolumeAttributesClass"},
},
},
},
@@ -12379,7 +12808,7 @@ func schema_k8sio_api_core_v1_ResourceRequirements(ref common.ReferenceCallback)
},
},
SchemaProps: spec.SchemaProps{
- Description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container.\n\nThis is an alpha field and requires enabling the DynamicResourceAllocation feature gate.\n\nThis field is immutable. It can only be set for containers.",
+ Description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container.\n\nThis field depends on the DynamicResourceAllocation feature gate.\n\nThis field is immutable. It can only be set for containers.",
Type: []string{"array"},
Items: &spec.SchemaOrArray{
Schema: &spec.Schema{
@@ -12403,11 +12832,12 @@ func schema_k8sio_api_core_v1_ResourceStatus(ref common.ReferenceCallback) commo
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
- Type: []string{"object"},
+ Description: "ResourceStatus represents the status of a single resource allocated to a Pod.",
+ Type: []string{"object"},
Properties: map[string]spec.Schema{
"name": {
SchemaProps: spec.SchemaProps{
- Description: "Name of the resource. Must be unique within the pod and match one of the resources from the pod spec.",
+ Description: "Name of the resource. Must be unique within the pod and in case of non-DRA resource, match one of the resources from the pod spec. For DRA resources, the value must be \"claim:/\". When this status is reported about a container, the \"claim_name\" and \"request\" must match one of the claims of this container.",
Default: "",
Type: []string{"string"},
Format: "",
@@ -12423,7 +12853,7 @@ func schema_k8sio_api_core_v1_ResourceStatus(ref common.ReferenceCallback) commo
},
},
SchemaProps: spec.SchemaProps{
- Description: "List of unique Resources health. Each element in the list contains an unique resource ID and resource health. At a minimum, ResourceID must uniquely identify the Resource allocated to the Pod on the Node for the lifetime of a Pod. See ResourceID type for it's definition.",
+ Description: "List of unique resources health. Each element in the list contains an unique resource ID and its health. At a minimum, for the lifetime of a Pod, resource ID must uniquely identify the resource allocated to the Pod on the Node. If other Pod on the same Node reports the status with the same resource ID, it must be the same resource they share. See ResourceID type definition for a specific format it has in various use cases.",
Type: []string{"array"},
Items: &spec.SchemaOrArray{
Schema: &spec.Schema{
@@ -12711,11 +13141,11 @@ func schema_k8sio_api_core_v1_ScopedResourceSelectorRequirement(ref common.Refer
Properties: map[string]spec.Schema{
"scopeName": {
SchemaProps: spec.SchemaProps{
- Description: "The name of the scope that the selector applies to.\n\nPossible enum values:\n - `\"BestEffort\"` Match all pod objects that have best effort quality of service\n - `\"CrossNamespacePodAffinity\"` Match all pod objects that have cross-namespace pod (anti)affinity mentioned.\n - `\"NotBestEffort\"` Match all pod objects that do not have best effort quality of service\n - `\"NotTerminating\"` Match all pod objects where spec.activeDeadlineSeconds is nil\n - `\"PriorityClass\"` Match all pod objects that have priority class mentioned\n - `\"Terminating\"` Match all pod objects where spec.activeDeadlineSeconds >=0",
+ Description: "The name of the scope that the selector applies to.\n\nPossible enum values:\n - `\"BestEffort\"` Match all pod objects that have best effort quality of service\n - `\"CrossNamespacePodAffinity\"` Match all pod objects that have cross-namespace pod (anti)affinity mentioned.\n - `\"NotBestEffort\"` Match all pod objects that do not have best effort quality of service\n - `\"NotTerminating\"` Match all pod objects where spec.activeDeadlineSeconds is nil\n - `\"PriorityClass\"` Match all pod objects that have priority class mentioned\n - `\"Terminating\"` Match all pod objects where spec.activeDeadlineSeconds >=0\n - `\"VolumeAttributesClass\"` Match all pvc objects that have volume attributes class mentioned.",
Default: "",
Type: []string{"string"},
Format: "",
- Enum: []interface{}{"BestEffort", "CrossNamespacePodAffinity", "NotBestEffort", "NotTerminating", "PriorityClass", "Terminating"},
+ Enum: []interface{}{"BestEffort", "CrossNamespacePodAffinity", "NotBestEffort", "NotTerminating", "PriorityClass", "Terminating", "VolumeAttributesClass"},
},
},
"operator": {
@@ -13355,7 +13785,7 @@ func schema_k8sio_api_core_v1_ServiceAccount(ref common.ReferenceCallback) commo
},
},
SchemaProps: spec.SchemaProps{
- Description: "Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a \"kubernetes.io/enforce-mountable-secrets\" annotation set to \"true\". This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret",
+ Description: "Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a \"kubernetes.io/enforce-mountable-secrets\" annotation set to \"true\". The \"kubernetes.io/enforce-mountable-secrets\" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret",
Type: []string{"array"},
Items: &spec.SchemaOrArray{
Schema: &spec.Schema{
@@ -13864,7 +14294,7 @@ func schema_k8sio_api_core_v1_ServiceSpec(ref common.ReferenceCallback) common.O
},
"trafficDistribution": {
SchemaProps: spec.SchemaProps{
- Description: "TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to \"PreferClose\", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is an alpha field and requires enabling ServiceTrafficDistribution feature.",
+ Description: "TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to \"PreferClose\", implementations should prioritize endpoints that are in the same zone.",
Type: []string{"string"},
Format: "",
},
@@ -14156,7 +14586,7 @@ func schema_k8sio_api_core_v1_Taint(ref common.ReferenceCallback) common.OpenAPI
},
"timeAdded": {
SchemaProps: spec.SchemaProps{
- Description: "TimeAdded represents the time at which the taint was added. It is only written for NoExecute taints.",
+ Description: "TimeAdded represents the time at which the taint was added.",
Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
},
},
@@ -14347,7 +14777,7 @@ func schema_k8sio_api_core_v1_TopologySpreadConstraint(ref common.ReferenceCallb
},
"nodeAffinityPolicy": {
SchemaProps: spec.SchemaProps{
- Description: "NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.\n\nIf this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.\n\nPossible enum values:\n - `\"Honor\"` means use this scheduling directive when calculating pod topology spread skew.\n - `\"Ignore\"` means ignore this scheduling directive when calculating pod topology spread skew.",
+ Description: "NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.\n\nIf this value is nil, the behavior is equivalent to the Honor policy.\n\nPossible enum values:\n - `\"Honor\"` means use this scheduling directive when calculating pod topology spread skew.\n - `\"Ignore\"` means ignore this scheduling directive when calculating pod topology spread skew.",
Type: []string{"string"},
Format: "",
Enum: []interface{}{"Honor", "Ignore"},
@@ -14355,7 +14785,7 @@ func schema_k8sio_api_core_v1_TopologySpreadConstraint(ref common.ReferenceCallb
},
"nodeTaintsPolicy": {
SchemaProps: spec.SchemaProps{
- Description: "NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included.\n\nIf this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag.\n\nPossible enum values:\n - `\"Honor\"` means use this scheduling directive when calculating pod topology spread skew.\n - `\"Ignore\"` means ignore this scheduling directive when calculating pod topology spread skew.",
+ Description: "NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included.\n\nIf this value is nil, the behavior is equivalent to the Ignore policy.\n\nPossible enum values:\n - `\"Honor\"` means use this scheduling directive when calculating pod topology spread skew.\n - `\"Ignore\"` means ignore this scheduling directive when calculating pod topology spread skew.",
Type: []string{"string"},
Format: "",
Enum: []interface{}{"Honor", "Ignore"},
@@ -14436,7 +14866,8 @@ func schema_k8sio_api_core_v1_TypedObjectReference(ref common.ReferenceCallback)
return common.OpenAPIDefinition{
Schema: spec.Schema{
SchemaProps: spec.SchemaProps{
- Type: []string{"object"},
+ Description: "TypedObjectReference contains enough information to let you locate the typed referenced object",
+ Type: []string{"object"},
Properties: map[string]spec.Schema{
"apiGroup": {
SchemaProps: spec.SchemaProps{
@@ -14504,19 +14935,19 @@ func schema_k8sio_api_core_v1_Volume(ref common.ReferenceCallback) common.OpenAP
},
"gcePersistentDisk": {
SchemaProps: spec.SchemaProps{
- Description: "gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk",
+ Description: "gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk",
Ref: ref("k8s.io/api/core/v1.GCEPersistentDiskVolumeSource"),
},
},
"awsElasticBlockStore": {
SchemaProps: spec.SchemaProps{
- Description: "awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore",
+ Description: "awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore",
Ref: ref("k8s.io/api/core/v1.AWSElasticBlockStoreVolumeSource"),
},
},
"gitRepo": {
SchemaProps: spec.SchemaProps{
- Description: "gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.",
+ Description: "gitRepo represents a git repository at a particular revision. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.",
Ref: ref("k8s.io/api/core/v1.GitRepoVolumeSource"),
},
},
@@ -14534,13 +14965,13 @@ func schema_k8sio_api_core_v1_Volume(ref common.ReferenceCallback) common.OpenAP
},
"iscsi": {
SchemaProps: spec.SchemaProps{
- Description: "iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md",
+ Description: "iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes/#iscsi",
Ref: ref("k8s.io/api/core/v1.ISCSIVolumeSource"),
},
},
"glusterfs": {
SchemaProps: spec.SchemaProps{
- Description: "glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md",
+ Description: "glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported.",
Ref: ref("k8s.io/api/core/v1.GlusterfsVolumeSource"),
},
},
@@ -14552,31 +14983,31 @@ func schema_k8sio_api_core_v1_Volume(ref common.ReferenceCallback) common.OpenAP
},
"rbd": {
SchemaProps: spec.SchemaProps{
- Description: "rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md",
+ Description: "rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported.",
Ref: ref("k8s.io/api/core/v1.RBDVolumeSource"),
},
},
"flexVolume": {
SchemaProps: spec.SchemaProps{
- Description: "flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.",
+ Description: "flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.",
Ref: ref("k8s.io/api/core/v1.FlexVolumeSource"),
},
},
"cinder": {
SchemaProps: spec.SchemaProps{
- Description: "cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md",
+ Description: "cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md",
Ref: ref("k8s.io/api/core/v1.CinderVolumeSource"),
},
},
"cephfs": {
SchemaProps: spec.SchemaProps{
- Description: "cephFS represents a Ceph FS mount on the host that shares a pod's lifetime",
+ Description: "cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.",
Ref: ref("k8s.io/api/core/v1.CephFSVolumeSource"),
},
},
"flocker": {
SchemaProps: spec.SchemaProps{
- Description: "flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running",
+ Description: "flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.",
Ref: ref("k8s.io/api/core/v1.FlockerVolumeSource"),
},
},
@@ -14594,7 +15025,7 @@ func schema_k8sio_api_core_v1_Volume(ref common.ReferenceCallback) common.OpenAP
},
"azureFile": {
SchemaProps: spec.SchemaProps{
- Description: "azureFile represents an Azure File Service mount on the host and bind mount to the pod.",
+ Description: "azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver.",
Ref: ref("k8s.io/api/core/v1.AzureFileVolumeSource"),
},
},
@@ -14606,25 +15037,25 @@ func schema_k8sio_api_core_v1_Volume(ref common.ReferenceCallback) common.OpenAP
},
"vsphereVolume": {
SchemaProps: spec.SchemaProps{
- Description: "vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine",
+ Description: "vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver.",
Ref: ref("k8s.io/api/core/v1.VsphereVirtualDiskVolumeSource"),
},
},
"quobyte": {
SchemaProps: spec.SchemaProps{
- Description: "quobyte represents a Quobyte mount on the host that shares a pod's lifetime",
+ Description: "quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.",
Ref: ref("k8s.io/api/core/v1.QuobyteVolumeSource"),
},
},
"azureDisk": {
SchemaProps: spec.SchemaProps{
- Description: "azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.",
+ Description: "azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver.",
Ref: ref("k8s.io/api/core/v1.AzureDiskVolumeSource"),
},
},
"photonPersistentDisk": {
SchemaProps: spec.SchemaProps{
- Description: "photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine",
+ Description: "photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.",
Ref: ref("k8s.io/api/core/v1.PhotonPersistentDiskVolumeSource"),
},
},
@@ -14636,25 +15067,25 @@ func schema_k8sio_api_core_v1_Volume(ref common.ReferenceCallback) common.OpenAP
},
"portworxVolume": {
SchemaProps: spec.SchemaProps{
- Description: "portworxVolume represents a portworx volume attached and mounted on kubelets host machine",
+ Description: "portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on.",
Ref: ref("k8s.io/api/core/v1.PortworxVolumeSource"),
},
},
"scaleIO": {
SchemaProps: spec.SchemaProps{
- Description: "scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.",
+ Description: "scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.",
Ref: ref("k8s.io/api/core/v1.ScaleIOVolumeSource"),
},
},
"storageos": {
SchemaProps: spec.SchemaProps{
- Description: "storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.",
+ Description: "storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported.",
Ref: ref("k8s.io/api/core/v1.StorageOSVolumeSource"),
},
},
"csi": {
SchemaProps: spec.SchemaProps{
- Description: "csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).",
+ Description: "csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers.",
Ref: ref("k8s.io/api/core/v1.CSIVolumeSource"),
},
},
@@ -14666,7 +15097,7 @@ func schema_k8sio_api_core_v1_Volume(ref common.ReferenceCallback) common.OpenAP
},
"image": {
SchemaProps: spec.SchemaProps{
- Description: "image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine. The volume is resolved at pod startup depending on which PullPolicy value is provided:\n\n- Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. - IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails.\n\nThe volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation. A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message. The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field. The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images. The volume will be mounted read-only (ro) and non-executable files (noexec). Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath). The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.",
+ Description: "image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine. The volume is resolved at pod startup depending on which PullPolicy value is provided:\n\n- Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. - IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails.\n\nThe volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation. A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message. The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field. The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images. The volume will be mounted read-only (ro) and non-executable files (noexec). Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath) before 1.33. The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.",
Ref: ref("k8s.io/api/core/v1.ImageVolumeSource"),
},
},
@@ -14877,11 +15308,17 @@ func schema_k8sio_api_core_v1_VolumeProjection(ref common.ReferenceCallback) com
Ref: ref("k8s.io/api/core/v1.ClusterTrustBundleProjection"),
},
},
+ "podCertificate": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Projects an auto-rotating credential bundle (private key and certificate chain) that the pod can use either as a TLS client or server.\n\nKubelet generates a private key and uses it to send a PodCertificateRequest to the named signer. Once the signer approves the request and issues a certificate chain, Kubelet writes the key and certificate chain to the pod filesystem. The pod does not start until certificates have been issued for each podCertificate projected volume source in its spec.\n\nKubelet will begin trying to rotate the certificate at the time indicated by the signer using the PodCertificateRequest.Status.BeginRefreshAt timestamp.\n\nKubelet can write a single file, indicated by the credentialBundlePath field, or separate files, indicated by the keyPath and certificateChainPath fields.\n\nThe credential bundle is a single file in PEM format. The first PEM entry is the private key (in PKCS#8 format), and the remaining PEM entries are the certificate chain issued by the signer (typically, signers will return their certificate chain in leaf-to-root order).\n\nPrefer using the credential bundle format, since your application code can read it atomically. If you use keyPath and certificateChainPath, your application must make two separate file reads. If these coincide with a certificate rotation, it is possible that the private key and leaf certificate you read may not correspond to each other. Your application will need to check for this condition, and re-read until they are consistent.\n\nThe named signer controls chooses the format of the certificate it issues; consult the signer implementation's documentation to learn how to use the certificates it issues.",
+ Ref: ref("k8s.io/api/core/v1.PodCertificateProjection"),
+ },
+ },
},
},
},
Dependencies: []string{
- "k8s.io/api/core/v1.ClusterTrustBundleProjection", "k8s.io/api/core/v1.ConfigMapProjection", "k8s.io/api/core/v1.DownwardAPIProjection", "k8s.io/api/core/v1.SecretProjection", "k8s.io/api/core/v1.ServiceAccountTokenProjection"},
+ "k8s.io/api/core/v1.ClusterTrustBundleProjection", "k8s.io/api/core/v1.ConfigMapProjection", "k8s.io/api/core/v1.DownwardAPIProjection", "k8s.io/api/core/v1.PodCertificateProjection", "k8s.io/api/core/v1.SecretProjection", "k8s.io/api/core/v1.ServiceAccountTokenProjection"},
}
}
@@ -14949,19 +15386,19 @@ func schema_k8sio_api_core_v1_VolumeSource(ref common.ReferenceCallback) common.
},
"gcePersistentDisk": {
SchemaProps: spec.SchemaProps{
- Description: "gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk",
+ Description: "gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk",
Ref: ref("k8s.io/api/core/v1.GCEPersistentDiskVolumeSource"),
},
},
"awsElasticBlockStore": {
SchemaProps: spec.SchemaProps{
- Description: "awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore",
+ Description: "awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore",
Ref: ref("k8s.io/api/core/v1.AWSElasticBlockStoreVolumeSource"),
},
},
"gitRepo": {
SchemaProps: spec.SchemaProps{
- Description: "gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.",
+ Description: "gitRepo represents a git repository at a particular revision. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.",
Ref: ref("k8s.io/api/core/v1.GitRepoVolumeSource"),
},
},
@@ -14979,13 +15416,13 @@ func schema_k8sio_api_core_v1_VolumeSource(ref common.ReferenceCallback) common.
},
"iscsi": {
SchemaProps: spec.SchemaProps{
- Description: "iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md",
+ Description: "iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes/#iscsi",
Ref: ref("k8s.io/api/core/v1.ISCSIVolumeSource"),
},
},
"glusterfs": {
SchemaProps: spec.SchemaProps{
- Description: "glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md",
+ Description: "glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported.",
Ref: ref("k8s.io/api/core/v1.GlusterfsVolumeSource"),
},
},
@@ -14997,31 +15434,31 @@ func schema_k8sio_api_core_v1_VolumeSource(ref common.ReferenceCallback) common.
},
"rbd": {
SchemaProps: spec.SchemaProps{
- Description: "rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md",
+ Description: "rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported.",
Ref: ref("k8s.io/api/core/v1.RBDVolumeSource"),
},
},
"flexVolume": {
SchemaProps: spec.SchemaProps{
- Description: "flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.",
+ Description: "flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.",
Ref: ref("k8s.io/api/core/v1.FlexVolumeSource"),
},
},
"cinder": {
SchemaProps: spec.SchemaProps{
- Description: "cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md",
+ Description: "cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md",
Ref: ref("k8s.io/api/core/v1.CinderVolumeSource"),
},
},
"cephfs": {
SchemaProps: spec.SchemaProps{
- Description: "cephFS represents a Ceph FS mount on the host that shares a pod's lifetime",
+ Description: "cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.",
Ref: ref("k8s.io/api/core/v1.CephFSVolumeSource"),
},
},
"flocker": {
SchemaProps: spec.SchemaProps{
- Description: "flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running",
+ Description: "flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.",
Ref: ref("k8s.io/api/core/v1.FlockerVolumeSource"),
},
},
@@ -15039,7 +15476,7 @@ func schema_k8sio_api_core_v1_VolumeSource(ref common.ReferenceCallback) common.
},
"azureFile": {
SchemaProps: spec.SchemaProps{
- Description: "azureFile represents an Azure File Service mount on the host and bind mount to the pod.",
+ Description: "azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver.",
Ref: ref("k8s.io/api/core/v1.AzureFileVolumeSource"),
},
},
@@ -15051,25 +15488,25 @@ func schema_k8sio_api_core_v1_VolumeSource(ref common.ReferenceCallback) common.
},
"vsphereVolume": {
SchemaProps: spec.SchemaProps{
- Description: "vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine",
+ Description: "vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver.",
Ref: ref("k8s.io/api/core/v1.VsphereVirtualDiskVolumeSource"),
},
},
"quobyte": {
SchemaProps: spec.SchemaProps{
- Description: "quobyte represents a Quobyte mount on the host that shares a pod's lifetime",
+ Description: "quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.",
Ref: ref("k8s.io/api/core/v1.QuobyteVolumeSource"),
},
},
"azureDisk": {
SchemaProps: spec.SchemaProps{
- Description: "azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.",
+ Description: "azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver.",
Ref: ref("k8s.io/api/core/v1.AzureDiskVolumeSource"),
},
},
"photonPersistentDisk": {
SchemaProps: spec.SchemaProps{
- Description: "photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine",
+ Description: "photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.",
Ref: ref("k8s.io/api/core/v1.PhotonPersistentDiskVolumeSource"),
},
},
@@ -15081,25 +15518,25 @@ func schema_k8sio_api_core_v1_VolumeSource(ref common.ReferenceCallback) common.
},
"portworxVolume": {
SchemaProps: spec.SchemaProps{
- Description: "portworxVolume represents a portworx volume attached and mounted on kubelets host machine",
+ Description: "portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on.",
Ref: ref("k8s.io/api/core/v1.PortworxVolumeSource"),
},
},
"scaleIO": {
SchemaProps: spec.SchemaProps{
- Description: "scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.",
+ Description: "scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.",
Ref: ref("k8s.io/api/core/v1.ScaleIOVolumeSource"),
},
},
"storageos": {
SchemaProps: spec.SchemaProps{
- Description: "storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.",
+ Description: "storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported.",
Ref: ref("k8s.io/api/core/v1.StorageOSVolumeSource"),
},
},
"csi": {
SchemaProps: spec.SchemaProps{
- Description: "csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).",
+ Description: "csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers.",
Ref: ref("k8s.io/api/core/v1.CSIVolumeSource"),
},
},
@@ -15111,7 +15548,7 @@ func schema_k8sio_api_core_v1_VolumeSource(ref common.ReferenceCallback) common.
},
"image": {
SchemaProps: spec.SchemaProps{
- Description: "image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine. The volume is resolved at pod startup depending on which PullPolicy value is provided:\n\n- Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. - IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails.\n\nThe volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation. A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message. The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field. The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images. The volume will be mounted read-only (ro) and non-executable files (noexec). Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath). The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.",
+ Description: "image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine. The volume is resolved at pod startup depending on which PullPolicy value is provided:\n\n- Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. - IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails.\n\nThe volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation. A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message. The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field. The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images. The volume will be mounted read-only (ro) and non-executable files (noexec). Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath) before 1.33. The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.",
Ref: ref("k8s.io/api/core/v1.ImageVolumeSource"),
},
},
@@ -15920,6 +16357,13 @@ func schema_pkg_apis_meta_v1_DeleteOptions(ref common.ReferenceCallback) common.
},
},
},
+ "ignoreStoreReadErrorWithClusterBreakingPotential": {
+ SchemaProps: spec.SchemaProps{
+ Description: "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",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
},
},
},
@@ -17807,16 +18251,46 @@ func schema_k8sio_apimachinery_pkg_version_Info(ref common.ReferenceCallback) co
Properties: map[string]spec.Schema{
"major": {
SchemaProps: spec.SchemaProps{
- Default: "",
- Type: []string{"string"},
- Format: "",
+ Description: "Major is the major version of the binary version",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
},
},
"minor": {
SchemaProps: spec.SchemaProps{
- Default: "",
- Type: []string{"string"},
- Format: "",
+ Description: "Minor is the minor version of the binary version",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "emulationMajor": {
+ SchemaProps: spec.SchemaProps{
+ Description: "EmulationMajor is the major version of the emulation version",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "emulationMinor": {
+ SchemaProps: spec.SchemaProps{
+ Description: "EmulationMinor is the minor version of the emulation version",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "minCompatibilityMajor": {
+ SchemaProps: spec.SchemaProps{
+ Description: "MinCompatibilityMajor is the major version of the minimum compatibility version",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "minCompatibilityMinor": {
+ SchemaProps: spec.SchemaProps{
+ Description: "MinCompatibilityMinor is the minor version of the minimum compatibility version",
+ Type: []string{"string"},
+ Format: "",
},
},
"gitVersion": {
diff --git a/pkg/test/integration/common/framework.go b/pkg/test/integration/common/framework.go
index ae6bcb6d3f..25eb3c6ee3 100644
--- a/pkg/test/integration/common/framework.go
+++ b/pkg/test/integration/common/framework.go
@@ -192,8 +192,8 @@ func (c *IntegrationTestFramework) initalizeClusters() error {
}
targetKubeConfigPath, _ = filepath.Abs(targetKubeConfigPath)
- log.Printf("Control cluster kube-config - %s\n", controlKubeConfigPath)
- log.Printf("Target cluster kube-config - %s\n", targetKubeConfigPath)
+ log.Printf("Control cluster kube-config - %s\n", controlKubeConfigPath) // #nosec G706 (CWE-117) -- Only used for checking the config path in testing.
+ log.Printf("Target cluster kube-config - %s\n", targetKubeConfigPath) // #nosec G706 (CWE-117) -- Only used for checking the config path in testing.
// intialize clusters
var err error
@@ -256,9 +256,9 @@ func (c *IntegrationTestFramework) scaleMcmDeployment(replicas int32) error {
}
if replicas == 0 {
- result.ObjectMeta.Annotations[dwdIgnoreScalingAnnotation] = "true"
+ result.Annotations[dwdIgnoreScalingAnnotation] = "true"
} else if replicas == 1 {
- delete(result.ObjectMeta.Annotations, dwdIgnoreScalingAnnotation)
+ delete(result.Annotations, dwdIgnoreScalingAnnotation)
}
// if number of replicas is not equal to the required replicas then update
if *result.Spec.Replicas != replicas {
@@ -387,8 +387,8 @@ func (c *IntegrationTestFramework) setupMachineClass() error {
&v1alpha1.MachineClass{
ObjectMeta: metav1.ObjectMeta{
Name: resourceName,
- Labels: machineClasses.Items[0].ObjectMeta.Labels,
- Annotations: machineClasses.Items[0].ObjectMeta.Annotations,
+ Labels: machineClasses.Items[0].Labels,
+ Annotations: machineClasses.Items[0].Annotations,
},
NodeTemplate: machineClasses.Items[0].NodeTemplate, // virtual
ProviderSpec: machineClasses.Items[0].ProviderSpec,
diff --git a/pkg/test/integration/common/helpers/cluster.go b/pkg/test/integration/common/helpers/cluster.go
index 2d4210e5ae..526b32f4f4 100644
--- a/pkg/test/integration/common/helpers/cluster.go
+++ b/pkg/test/integration/common/helpers/cluster.go
@@ -118,7 +118,7 @@ func (c *Cluster) getSecret(ref *v1.SecretReference, _ string) (*v1.Secret, erro
func (c *Cluster) VerifyControlClusterNamespace(isControlSeed string, controlClusterNamespace string) error {
if isControlSeed == "true" {
if controlClusterNamespace == "default" {
- return fmt.Errorf("Cannot use default namespace when control cluster is a seed")
+ return fmt.Errorf("cannot use default namespace when control cluster is a seed")
}
}
@@ -129,5 +129,5 @@ func (c *Cluster) VerifyControlClusterNamespace(isControlSeed string, controlClu
return nil
}
}
- return fmt.Errorf("Control Namespace not found inside control cluster")
+ return fmt.Errorf("control Namespace not found inside control cluster")
}
diff --git a/pkg/util/provider/machinecontroller/machine.go b/pkg/util/provider/machinecontroller/machine.go
index 1a4b23494a..666ac65f23 100644
--- a/pkg/util/provider/machinecontroller/machine.go
+++ b/pkg/util/provider/machinecontroller/machine.go
@@ -128,7 +128,7 @@ func (c *controller) enqueueMachineAfter(obj any, after time.Duration, reason st
func (c *controller) enqueueMachineTermination(machine *v1alpha1.Machine, reason string) {
if key, err := cache.DeletionHandlingMetaNamespaceKeyFunc(machine); err != nil {
- utilruntime.HandleError(fmt.Errorf("Couldn't get key for object %#v: %v", machine, err))
+ utilruntime.HandleError(fmt.Errorf("couldn't get key for object %#v: %v", machine, err))
return
} else {
klog.V(3).Infof("Adding machine object to termination queue %q, reason: %s", key, reason)
@@ -138,7 +138,7 @@ func (c *controller) enqueueMachineTermination(machine *v1alpha1.Machine, reason
func (c *controller) enqueueMachineTerminationAfter(machine *v1alpha1.Machine, after time.Duration, reason string) {
if key, err := cache.DeletionHandlingMetaNamespaceKeyFunc(machine); err != nil {
- utilruntime.HandleError(fmt.Errorf("Couldn't get key for object %#v: %v", machine, err))
+ utilruntime.HandleError(fmt.Errorf("couldn't get key for object %#v: %v", machine, err))
return
} else {
klog.V(3).Infof("Adding machine object to termination queue %q after %s, reason: %s", key, after, reason)
diff --git a/pkg/util/provider/machinecontroller/machine_util.go b/pkg/util/provider/machinecontroller/machine_util.go
index 969e857974..bb3b360b26 100644
--- a/pkg/util/provider/machinecontroller/machine_util.go
+++ b/pkg/util/provider/machinecontroller/machine_util.go
@@ -1901,14 +1901,14 @@ func (c *controller) deleteNodeFinalizers(ctx context.Context, machine *v1alpha1
state = v1alpha1.MachineStateProcessing
default:
description = fmt.Sprintf("Retrieval of Node Object %q failed due to error: %s, Retrying node finalizer removal. %s", nodeName, err, machineutils.RemoveNodeFinalizers)
- klog.Errorf(description)
+ klog.Errorf("%s", description)
state = v1alpha1.MachineStateFailed
}
} else {
err = c.removeNodeFinalizers(ctx, node)
if err != nil {
description = fmt.Sprintf("Removal of finalizers from Node Object %q failed due to error: %s, Retrying node finalizer removal. %s", nodeName, err, machineutils.RemoveNodeFinalizers)
- klog.Errorf(description)
+ klog.Errorf("%s", description)
state = v1alpha1.MachineStateFailed
} else {
description = fmt.Sprintf("Removal of finalizers from Node Object %q is successful. %s", nodeName, machineutils.InitiateNodeDeletion)
@@ -2005,8 +2005,8 @@ func (c *controller) deleteNodeObject(ctx context.Context, machine *v1alpha1.Mac
// getEffectiveDrainTimeout returns the drainTimeout set on the machine-object, otherwise returns the timeout set using the global-flag.
func (c *controller) getEffectiveDrainTimeout(machine *v1alpha1.Machine) *metav1.Duration {
var effectiveDrainTimeout *metav1.Duration
- if machine.Spec.MachineConfiguration != nil && machine.Spec.MachineConfiguration.MachineDrainTimeout != nil {
- effectiveDrainTimeout = machine.Spec.MachineConfiguration.MachineDrainTimeout
+ if machine.Spec.MachineConfiguration != nil && machine.Spec.MachineDrainTimeout != nil {
+ effectiveDrainTimeout = machine.Spec.MachineDrainTimeout
} else {
effectiveDrainTimeout = &c.safetyOptions.MachineDrainTimeout
}
@@ -2016,8 +2016,8 @@ func (c *controller) getEffectiveDrainTimeout(machine *v1alpha1.Machine) *metav1
// getEffectiveMaxEvictRetries returns the maxEvictRetries set on the machine-object, otherwise returns the evict retries set using the global-flag.
func (c *controller) getEffectiveMaxEvictRetries(machine *v1alpha1.Machine) *int32 {
var maxEvictRetries *int32
- if machine.Spec.MachineConfiguration != nil && machine.Spec.MachineConfiguration.MaxEvictRetries != nil {
- maxEvictRetries = machine.Spec.MachineConfiguration.MaxEvictRetries
+ if machine.Spec.MachineConfiguration != nil && machine.Spec.MaxEvictRetries != nil {
+ maxEvictRetries = machine.Spec.MaxEvictRetries
} else {
maxEvictRetries = &c.safetyOptions.MaxEvictRetries
}
@@ -2027,8 +2027,8 @@ func (c *controller) getEffectiveMaxEvictRetries(machine *v1alpha1.Machine) *int
// getEffectiveHealthTimeout returns the healthTimeout set on the machine-object, otherwise returns the timeout set using the global-flag.
func (c *controller) getEffectiveHealthTimeout(machine *v1alpha1.Machine) *metav1.Duration {
var effectiveHealthTimeout *metav1.Duration
- if machine.Spec.MachineConfiguration != nil && machine.Spec.MachineConfiguration.MachineHealthTimeout != nil {
- effectiveHealthTimeout = machine.Spec.MachineConfiguration.MachineHealthTimeout
+ if machine.Spec.MachineConfiguration != nil && machine.Spec.MachineHealthTimeout != nil {
+ effectiveHealthTimeout = machine.Spec.MachineHealthTimeout
} else {
effectiveHealthTimeout = &c.safetyOptions.MachineHealthTimeout
}
@@ -2038,8 +2038,8 @@ func (c *controller) getEffectiveHealthTimeout(machine *v1alpha1.Machine) *metav
// getEffectiveCreationTimeout returns the creationTimeout set on the machine-object, otherwise returns the timeout set using the global-flag.
func (c *controller) getEffectiveCreationTimeout(machine *v1alpha1.Machine) *metav1.Duration {
var effectiveCreationTimeout *metav1.Duration
- if machine.Spec.MachineConfiguration != nil && machine.Spec.MachineConfiguration.MachineCreationTimeout != nil {
- effectiveCreationTimeout = machine.Spec.MachineConfiguration.MachineCreationTimeout
+ if machine.Spec.MachineConfiguration != nil && machine.Spec.MachineCreationTimeout != nil {
+ effectiveCreationTimeout = machine.Spec.MachineCreationTimeout
} else {
effectiveCreationTimeout = &c.safetyOptions.MachineCreationTimeout
}
diff --git a/pkg/util/provider/machinecontroller/node.go b/pkg/util/provider/machinecontroller/node.go
index e701bc146d..55110847fa 100644
--- a/pkg/util/provider/machinecontroller/node.go
+++ b/pkg/util/provider/machinecontroller/node.go
@@ -98,7 +98,7 @@ func (c *controller) updateNode(oldObj, newObj any) {
_, _, nodeConditionsHaveChanged := nodeConditionsHaveChanged(machine.Status.Conditions, node.Status.Conditions)
// Enqueue machine if node conditions have changed and machine is not in crashloop or terminating state
- if nodeConditionsHaveChanged && !(isMachineCrashLooping || isMachineTerminating) {
+ if nodeConditionsHaveChanged && !isMachineCrashLooping && !isMachineTerminating {
c.enqueueMachine(machine, fmt.Sprintf("handling node UPDATE event. Conditions of node %q differ from machine status", node.Name))
}
// to reconcile on change in annotations related to preservation