diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 31b6732dbb8d6..249cc520c3516 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -3,9 +3,14 @@ # # Skaphos gitops-engine CI workflow. Modeled on the Keleustes CI job set, # trimmed for a library (no envtest, no controller-gen drift, no -# `tools/` Taskfile delegation). Required jobs must pass; advisory jobs -# (lint, vuln) carry continue-on-error and exist to surface signal as we -# baseline the fork. +# `tools/` Taskfile delegation). +# +# Required jobs: DCO, REUSE, go vet, golangci-lint, staticcheck, test, build. +# Advisory job: govulncheck. Two server-side kube-apiserver CVEs +# (GO-2025-3547, GO-2025-3521) are reached transitively via +# admissionregistration scheme registration but never exercised by a +# client library like this one. We accept those as known false positives +# until upstream releases fixes; see commit history under SKA-421. # # Security stance: # - Workflow-level `permissions: {}` (zero by default). @@ -86,16 +91,9 @@ jobs: run: go vet ./... lint: - name: golangci-lint (advisory) + name: golangci-lint runs-on: ubuntu-24.04 timeout-minutes: 15 - # Advisory until the fork establishes its own .golangci.yaml. The - # upstream argo-cd config under which this code lints clean lives at - # argoproj/argo-cd/.golangci.yaml (root, outside this subtree) and we - # deliberately do not vendor it: every config we add here is a divergence - # we'd have to maintain against upstream forever. A dedicated ticket will - # baseline a minimal config when needed. - continue-on-error: true permissions: contents: read steps: @@ -109,16 +107,9 @@ jobs: run: go run github.com/golangci/golangci-lint/v2/cmd/golangci-lint@v2.11.4 run ./... staticcheck: - name: Staticcheck (advisory) + name: Staticcheck runs-on: ubuntu-24.04 timeout-minutes: 10 - # Advisory: inherited upstream code carries pre-existing staticcheck - # findings (SA1019 deprecations on v1.EndpointSubset / corev1.Endpoints, - # U1000 unused helpers in vendor-borrowed files, SA4004 in pkg/cache). - # Fixing these here would diverge from upstream and complicate - # upstreaming. The findings will clear once upstream addresses them or - # we upstream the fixes ourselves. - continue-on-error: true permissions: contents: read steps: @@ -151,9 +142,14 @@ jobs: name: govulncheck (advisory) runs-on: ubuntu-24.04 timeout-minutes: 10 - # Pre-existing baseline issue: k8s.io/api v0.34 ceiling per ADR 0006. - # Advisory only until the gitops-engine ceiling can be raised under - # SKA-421 (now scoped against the Skaphos fork). + # Two kube-apiserver server-side CVEs (GO-2025-3547, GO-2025-3521) are + # reached transitively from this client library's scheme registration + # of admissionregistration (which we keep because users ship + # ValidatingWebhookConfiguration / MutatingWebhookConfiguration + # manifests). The traces touch generated DeepCopyObject methods on + # those types, never the actual vulnerable kube-apiserver code paths. + # Both report Fixed in: N/A upstream. Kept advisory until upstream + # releases fixes (after which this job should be promoted to required). continue-on-error: true permissions: contents: read @@ -208,8 +204,8 @@ jobs: echo "| --- | --- |" echo "| reuse | ${REUSE_RESULT} |" echo "| go vet | ${VET_RESULT} |" - echo "| golangci-lint (advisory) | ${LINT_RESULT} |" - echo "| staticcheck (advisory) | ${STATICCHECK_RESULT} |" + echo "| golangci-lint | ${LINT_RESULT} |" + echo "| staticcheck | ${STATICCHECK_RESULT} |" echo "| test | ${TEST_RESULT} |" echo "| vuln (advisory) | ${VULN_RESULT} |" echo "| build | ${BUILD_RESULT} |" diff --git a/.golangci.yaml b/.golangci.yaml new file mode 100644 index 0000000000000..e1be980cc73de --- /dev/null +++ b/.golangci.yaml @@ -0,0 +1,51 @@ +# SPDX-FileCopyrightText: 2026 Skaphos +# SPDX-License-Identifier: Apache-2.0 +# +# golangci-lint config for skaphos/gitops-engine. +# +# Deliberately minimal: this fork's stance is upstream-first, so we lint +# only what genuinely catches bugs and skip the QF* "quick fix" style +# nags that would create a huge upstreamable-but-noisy diff against +# argoproj/argo-cd. Tightening the config is a separate decision once +# upstreaming has run a cycle and we know what argoproj is willing to +# absorb. + +version: "2" + +run: + timeout: 5m + modules-download-mode: readonly + +linters: + default: none + enable: + - errcheck + - govet + - ineffassign + - staticcheck + - unused + + settings: + staticcheck: + # Enable only the SA* (Static Analysis / bug) family. We deliberately + # skip ST* (stylistic naming), S* (simplifications), QF* (quick fixes) + # so the lint signal stays focused on real defects rather than + # style nags that would create a noisy diff against upstream argo-cd. + checks: + - "SA*" + + exclusions: + # We intentionally use the deprecated corev1.Endpoints / + # v1.EndpointSubset types in two places — diff normalization for + # user-provided legacy Endpoints, and a vendored sort helper for the + # same types. Suppress SA1019 only in those files; everywhere else + # SA1019 should still fire. + rules: + - path: internal/kubernetes_vendor/pkg/api/v1/endpoints/util\.go + linters: + - staticcheck + text: "SA1019: v1.EndpointSubset is deprecated" + - path: pkg/diff/diff\.go + linters: + - staticcheck + text: "SA1019: corev1.Endpoints is deprecated" diff --git a/UPSTREAMING.md b/UPSTREAMING.md index 8213a3b9f04eb..ba160f58845ff 100644 --- a/UPSTREAMING.md +++ b/UPSTREAMING.md @@ -24,9 +24,25 @@ upstream can absorb the work. Skaphos commits that are ready to PR upstream but haven't been submitted yet. -| Our commit | Subject | Upstream target | Status | -| --- | --- | --- | --- | -| `eb643e2` | `chore(gitops-engine): drop dead autoscaling/v2beta1 and v2beta2 references` | `argoproj/argo-cd` | not yet submitted | +Listed roughly in dependency order — the bumps depend on the dead-code +removal, and the lint/staticcheck clean-ups depend on the bumps. When +upstreaming, prefer bundling 1+5+8 as a single "lift the k8s.io +ceiling" PR (they jointly unblock v0.35+) and the rest as their own +small PRs. + +| # | Our commit | Subject | Upstream target | Status | +| --- | --- | --- | --- | --- | +| 1 | `eb643e2` | `chore(gitops-engine): drop dead autoscaling/v2beta1 and v2beta2 references` | `argoproj/argo-cd` | not yet submitted | +| 2 | `775d146` | `chore(deps): bump k8s.io to v0.35.5 (kubernetes v1.35.5)` | `argoproj/argo-cd` | not yet submitted | +| 3 | `626c831` | `chore(deps): bump k8s.io to v0.36.1 (kubernetes v1.36.1)` | `argoproj/argo-cd` | not yet submitted | +| 4 | `2c78077` | `chore: make hack/update_static_schema.sh portable` (BSD `sed -i ''` silently no-ops on GNU sed; the script never worked on Linux) | `argoproj/argo-cd` | not yet submitted | +| 5 | `4f1d275` | `chore(scheme): regenerate static parser from k8s.io/client-go@v0.36.1` (consequence of bumps; not standalone, lands with 2/3) | `argoproj/argo-cd` | not yet submitted | +| 6 | `30f94e0` | `chore: drop two unused helpers flagged by staticcheck (U1000)` (`max` predates Go 1.21 builtin; `newCRDVersionConverter` never wired in) | `argoproj/argo-cd` | not yet submitted | +| 7 | `2a52857` | `fix(cache): iterate all namespaces in checkPermission (SA4004)` (**real bug** — multi-namespace RBAC mode only ever inspected the first namespace; author had left `//FIXME`) | `argoproj/argo-cd` | not yet submitted | +| 8 | `04528bb` | `chore: clear SA1019 deprecations on Endpoints + FieldsV1` (migrates `FieldsV1.Raw` → `GetRawReader`/`SetRawBytes`; targeted ignores for intentional `corev1.Endpoints` usage) | `argoproj/argo-cd` | not yet submitted | +| 9 | `83bc966` | `fix(scheme,deps): prune runtime-only API groups + bump golang.org/x/net` (drops admission/authentication/authorization/imagepolicy install — never appear in manifests; bumps `x/net` to clear GO-2026-4918) | `argoproj/argo-cd` | not yet submitted | +| 10 | `42749e8` | `chore(lint): baseline minimal .golangci.yaml; fix errcheck + QF1008` (Skaphos-local `.golangci.yaml` plus two real fixes — `Fprintf` errcheck and `.Fake.` redundancy) | `argoproj/argo-cd` (config split: file is Skaphos-only, the two code fixes are upstreamable) | not yet submitted | +| 11 | `ee9f0ce` | `ci: promote lint + staticcheck from advisory to required` | **Skaphos-only** — relates to this fork's `.github/workflows/ci.yml`, no upstream analogue | n/a | ## Submitted upstream @@ -55,5 +71,8 @@ Changes we intend to keep Skaphos-local indefinitely. Each entry needs a | Our commit | Subject | Reason | | --- | --- | --- | - -_(empty)_ +| `3669644` | `chore(module): rename to github.com/skaphos/gitops-engine` | The module rename is the fork mechanism itself; not applicable upstream. | +| `c76831d` | `chore: add NOTICE, UPSTREAM_SYNC, UPSTREAMING, REUSE, sync-upstream.sh` | Fork-specific dressing (this file, the sync script, the NOTICE attribution, the REUSE blanket-license config). | +| `7fbfc72` | `ci: add GitHub Actions CI + dependabot` | Fork-specific CI. Upstream argo-cd has its own pipeline. | +| `9c6cc5d` | `ci: mark staticcheck advisory pending upstream fixes` | Superseded by `ee9f0ce`'s promotion-to-required after upstream-side fixes were applied in this fork; no upstream relevance. | +| `ee9f0ce` | `ci: promote lint + staticcheck from advisory to required` | Fork-specific CI tuning. | diff --git a/go.mod b/go.mod index c9241bc33b463..6ebda64552a83 100644 --- a/go.mod +++ b/go.mod @@ -8,21 +8,21 @@ require ( github.com/go-logr/logr v1.4.3 github.com/google/gnostic-models v0.7.0 github.com/google/uuid v1.6.1-0.20241114170450-2d3c2a9cc518 - github.com/spf13/cobra v1.10.1 + github.com/spf13/cobra v1.10.2 github.com/stretchr/testify v1.11.1 - golang.org/x/sync v0.17.0 - google.golang.org/protobuf v1.36.9 - k8s.io/api v0.34.0 - k8s.io/apiextensions-apiserver v0.34.0 - k8s.io/apimachinery v0.34.0 - k8s.io/cli-runtime v0.34.0 - k8s.io/client-go v0.34.0 - k8s.io/klog/v2 v2.130.1 - k8s.io/kube-aggregator v0.34.0 - k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b - k8s.io/kubectl v0.34.0 - k8s.io/kubernetes v1.34.2 - sigs.k8s.io/structured-merge-diff/v6 v6.3.1-0.20251003215857-446d8398e19c + golang.org/x/sync v0.20.0 + google.golang.org/protobuf v1.36.12-0.20260120151049-f2248ac996af + k8s.io/api v0.36.1 + k8s.io/apiextensions-apiserver v0.36.1 + k8s.io/apimachinery v0.36.1 + k8s.io/cli-runtime v0.36.1 + k8s.io/client-go v0.36.1 + k8s.io/klog/v2 v2.140.0 + k8s.io/kube-aggregator v0.36.1 + k8s.io/kube-openapi v0.0.0-20260317180543-43fb72c5454a + k8s.io/kubectl v0.36.1 + k8s.io/kubernetes v1.36.1 + sigs.k8s.io/structured-merge-diff/v6 v6.3.2 sigs.k8s.io/yaml v1.6.0 ) @@ -34,7 +34,7 @@ require ( github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/chai2010/gettext-go v1.0.3 // indirect github.com/distribution/reference v0.6.0 // indirect - github.com/emicklei/go-restful/v3 v3.12.2 // indirect + github.com/emicklei/go-restful/v3 v3.13.0 // indirect github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f // indirect github.com/fatih/camelcase v1.0.0 // indirect github.com/fxamacker/cbor/v2 v2.9.0 // indirect @@ -42,11 +42,7 @@ require ( github.com/go-openapi/jsonpointer v0.21.1 // indirect github.com/go-openapi/jsonreference v0.21.0 // indirect github.com/go-openapi/swag v0.23.1 // indirect - github.com/gogo/protobuf v1.3.2 // indirect github.com/google/btree v1.1.3 // indirect - github.com/google/go-cmp v0.7.0 // indirect - github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674 // indirect - github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jonboulle/clockwork v0.5.0 // indirect github.com/josharian/intern v1.0.0 // indirect @@ -54,86 +50,80 @@ require ( github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de // indirect github.com/mailru/easyjson v0.9.0 // indirect github.com/mitchellh/go-wordwrap v1.0.1 // indirect - github.com/moby/spdystream v0.5.0 // indirect github.com/moby/term v0.5.2 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // indirect github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect - github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f // indirect - github.com/onsi/ginkgo/v2 v2.22.0 // indirect - github.com/onsi/gomega v1.36.1 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect github.com/peterbourgon/diskv v2.0.1+incompatible // indirect - github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/prometheus/client_golang v1.23.2 // indirect github.com/prometheus/client_model v0.6.2 // indirect - github.com/prometheus/common v0.66.1 // indirect - github.com/prometheus/procfs v0.16.1 // indirect - github.com/rogpeppe/go-internal v1.14.1 // indirect + github.com/prometheus/common v0.67.5 // indirect + github.com/prometheus/procfs v0.19.2 // indirect + github.com/robfig/cron/v3 v3.0.1 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect - github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect github.com/spf13/pflag v1.0.10 // indirect github.com/stretchr/objx v0.5.2 // indirect github.com/x448/float16 v0.8.4 // indirect github.com/xlab/treeprint v1.2.0 // indirect - go.opentelemetry.io/otel v1.38.0 // indirect - go.opentelemetry.io/otel/trace v1.38.0 // indirect - go.yaml.in/yaml/v2 v2.4.2 // indirect + go.opentelemetry.io/otel v1.41.0 // indirect + go.opentelemetry.io/otel/trace v1.41.0 // indirect + go.yaml.in/yaml/v2 v2.4.3 // indirect go.yaml.in/yaml/v3 v3.0.4 // indirect - golang.org/x/net v0.44.0 // indirect - golang.org/x/oauth2 v0.31.0 // indirect - golang.org/x/sys v0.36.0 // indirect - golang.org/x/term v0.35.0 // indirect - golang.org/x/text v0.29.0 // indirect - golang.org/x/time v0.13.0 // indirect - gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect + golang.org/x/net v0.53.0 // indirect + golang.org/x/oauth2 v0.34.0 // indirect + golang.org/x/sys v0.43.0 // indirect + golang.org/x/term v0.42.0 // indirect + golang.org/x/text v0.36.0 // indirect + golang.org/x/time v0.14.0 // indirect + gopkg.in/evanphx/json-patch.v4 v4.13.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/apiserver v0.34.0 // indirect - k8s.io/component-base v0.34.0 // indirect - k8s.io/component-helpers v0.34.0 // indirect - k8s.io/controller-manager v0.34.0 // indirect - k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 // indirect - sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect - sigs.k8s.io/kustomize/api v0.20.1 // indirect - sigs.k8s.io/kustomize/kyaml v0.20.1 // indirect + k8s.io/apiserver v0.36.1 // indirect + k8s.io/component-base v0.36.1 // indirect + k8s.io/component-helpers v0.36.1 // indirect + k8s.io/controller-manager v0.36.1 // indirect + k8s.io/utils v0.0.0-20260210185600-b8788abfbbc2 // indirect + sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 // indirect + sigs.k8s.io/kustomize/api v0.21.1 // indirect + sigs.k8s.io/kustomize/kyaml v0.21.1 // indirect sigs.k8s.io/randfill v1.0.0 // indirect ) replace ( // After bumping these versions, run hack/update_static_schema.sh in case the schema has changed. - k8s.io/api => k8s.io/api v0.34.0 - k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.34.0 - k8s.io/apimachinery => k8s.io/apimachinery v0.34.0 - k8s.io/apiserver => k8s.io/apiserver v0.34.0 - k8s.io/cli-runtime => k8s.io/cli-runtime v0.34.0 - k8s.io/client-go => k8s.io/client-go v0.34.0 - k8s.io/cloud-provider => k8s.io/cloud-provider v0.34.0 - k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.34.0 - k8s.io/code-generator => k8s.io/code-generator v0.34.0 - k8s.io/component-base => k8s.io/component-base v0.34.0 - k8s.io/component-helpers => k8s.io/component-helpers v0.34.0 - k8s.io/controller-manager => k8s.io/controller-manager v0.34.0 - k8s.io/cri-api => k8s.io/cri-api v0.34.0 - k8s.io/cri-client => k8s.io/cri-client v0.34.0 - k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.34.0 - k8s.io/dynamic-resource-allocation => k8s.io/dynamic-resource-allocation v0.34.0 - k8s.io/endpointslice => k8s.io/endpointslice v0.34.0 - k8s.io/externaljwt => k8s.io/externaljwt v0.34.0 - k8s.io/kms => k8s.io/kms v0.34.0 - k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.34.0 - k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.34.0 - k8s.io/kube-proxy => k8s.io/kube-proxy v0.34.0 - k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.34.0 - k8s.io/kubectl => k8s.io/kubectl v0.34.0 - k8s.io/kubelet => k8s.io/kubelet v0.34.0 - k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.34.0 - k8s.io/metrics => k8s.io/metrics v0.34.0 - k8s.io/mount-utils => k8s.io/mount-utils v0.34.0 - k8s.io/pod-security-admission => k8s.io/pod-security-admission v0.34.0 - k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.34.0 - k8s.io/sample-cli-plugin => k8s.io/sample-cli-plugin v0.34.0 - k8s.io/sample-controller => k8s.io/sample-controller v0.34.0 + k8s.io/api => k8s.io/api v0.36.1 + k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.36.1 + k8s.io/apimachinery => k8s.io/apimachinery v0.36.1 + k8s.io/apiserver => k8s.io/apiserver v0.36.1 + k8s.io/cli-runtime => k8s.io/cli-runtime v0.36.1 + k8s.io/client-go => k8s.io/client-go v0.36.1 + k8s.io/cloud-provider => k8s.io/cloud-provider v0.36.1 + k8s.io/cluster-bootstrap => k8s.io/cluster-bootstrap v0.36.1 + k8s.io/code-generator => k8s.io/code-generator v0.36.1 + k8s.io/component-base => k8s.io/component-base v0.36.1 + k8s.io/component-helpers => k8s.io/component-helpers v0.36.1 + k8s.io/controller-manager => k8s.io/controller-manager v0.36.1 + k8s.io/cri-api => k8s.io/cri-api v0.36.1 + k8s.io/cri-client => k8s.io/cri-client v0.36.1 + k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.36.1 + k8s.io/dynamic-resource-allocation => k8s.io/dynamic-resource-allocation v0.36.1 + k8s.io/endpointslice => k8s.io/endpointslice v0.36.1 + k8s.io/externaljwt => k8s.io/externaljwt v0.36.1 + k8s.io/kms => k8s.io/kms v0.36.1 + k8s.io/kube-aggregator => k8s.io/kube-aggregator v0.36.1 + k8s.io/kube-controller-manager => k8s.io/kube-controller-manager v0.36.1 + k8s.io/kube-proxy => k8s.io/kube-proxy v0.36.1 + k8s.io/kube-scheduler => k8s.io/kube-scheduler v0.36.1 + k8s.io/kubectl => k8s.io/kubectl v0.36.1 + k8s.io/kubelet => k8s.io/kubelet v0.36.1 + k8s.io/legacy-cloud-providers => k8s.io/legacy-cloud-providers v0.36.1 + k8s.io/metrics => k8s.io/metrics v0.36.1 + k8s.io/mount-utils => k8s.io/mount-utils v0.36.1 + k8s.io/pod-security-admission => k8s.io/pod-security-admission v0.36.1 + k8s.io/sample-apiserver => k8s.io/sample-apiserver v0.36.1 + k8s.io/sample-cli-plugin => k8s.io/sample-cli-plugin v0.36.1 + k8s.io/sample-controller => k8s.io/sample-controller v0.36.1 ) diff --git a/go.sum b/go.sum index f09d7c983a54e..e893f906e33af 100644 --- a/go.sum +++ b/go.sum @@ -2,8 +2,8 @@ github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c h1:udKWzYgxTojEK github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/MakeNowJust/heredoc v1.0.0 h1:cXCdzVdstXyiTqTvfqk9SDHpKNjxuom+DOlyEeQ4pzQ= github.com/MakeNowJust/heredoc v1.0.0/go.mod h1:mG5amYoWBHf8vpLOuehzbGGw0EHxpZZ6lCpQ4fNJ8LE= -github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= -github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= +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= @@ -21,8 +21,8 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk= github.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -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/emicklei/go-restful/v3 v3.13.0 h1:C4Bl2xDndpU6nJ4bc1jXd+uTmYPVUwkD6bFY/oTyCes= +github.com/emicklei/go-restful/v3 v3.13.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/evanphx/json-patch/v5 v5.9.11 h1:/8HVnzMq13/3x9TPvjG08wUGqBTmZBsCWzjTM0wiaDU= github.com/evanphx/json-patch/v5 v5.9.11/go.mod h1:3j+LviiESTElxA4p3EMKAB9HXj3/XEtnUf6OZxqIQTM= github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f h1:Wl78ApPPB2Wvf/TIe2xdyJxTlb6obmF18d8QdkxNDu4= @@ -43,8 +43,6 @@ github.com/go-openapi/swag v0.23.1 h1:lpsStH0n2ittzTnbaSloVZLuB5+fvSY/+hnagBjSNZ github.com/go-openapi/swag v0.23.1/go.mod h1:STZs8TbRvEQQKUA+JZNAm3EWlgaOBGpyFDqQnDHMef0= github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= -github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= -github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/google/btree v1.1.3 h1:CVpQJjYgC4VbzxeGVHfvZrv1ctoYCAI8vbl07Fcxlyg= github.com/google/btree v1.1.3/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= github.com/google/gnostic-models v0.7.0 h1:qwTtogB15McXDaNqTZdzPJRHvaVJlAl+HVQnLmJEJxo= @@ -52,14 +50,10 @@ github.com/google/gnostic-models v0.7.0/go.mod h1:whL5G0m6dmc5cPxKc5bdKdEN3UjI7O github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db h1:097atOisP2aRj7vFgYQBbFN4U4JNXUNYpxael3UzMyo= -github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= +github.com/google/pprof v0.0.0-20260115054156-294ebfa9ad83 h1:z2ogiKUYzX5Is6zr/vP9vJGqPwcdqsWjOt+V8J7+bTc= +github.com/google/pprof v0.0.0-20260115054156-294ebfa9ad83/go.mod h1:MxpfABSjhmINe3F1It9d+8exIHFvUqtLIRCdOGNXqiI= github.com/google/uuid v1.6.1-0.20241114170450-2d3c2a9cc518 h1:UBg1xk+oAsIVbFuGg6hdfAm7EvCv3EL80vFxJNsslqw= github.com/google/uuid v1.6.1-0.20241114170450-2d3c2a9cc518/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674 h1:JeSE6pjso5THxAzdVpqr6/geYxZytqFMBCOtn/ujyeo= -github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674/go.mod h1:r4w70xmWCQKmi1ONH4KIaBptdivuRPyosB9RmPlGEwA= -github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 h1:+ngKgrYPPJrOjhax5N+uePQ0Fh1Z7PheYoUI/0nzkPA= -github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/jonboulle/clockwork v0.5.0 h1:Hyh9A8u51kptdkR+cqRpT1EebBwTn1oK9YfGYbdFz6I= @@ -68,15 +62,10 @@ github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8Hm github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= 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.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= -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= @@ -89,8 +78,6 @@ github.com/mailru/easyjson v0.9.0 h1:PrnmzHw7262yW8sTBwxi1PdJA3Iw/EKBa8psRf7d9a4 github.com/mailru/easyjson v0.9.0/go.mod h1:1+xMtQp2MRNVL/V1bOzuP3aP8VNwRW55fQUto+XFtTU= github.com/mitchellh/go-wordwrap v1.0.1 h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQflz0v0= github.com/mitchellh/go-wordwrap v1.0.1/go.mod h1:R62XHJLzvMFRBbcrT7m7WgmE1eOyTSsCt+hzestvNj0= -github.com/moby/spdystream v0.5.0 h1:7r0J1Si3QO/kjRitvSLVVFUjxMEb/YLj6S9FF62JBCU= -github.com/moby/spdystream v0.5.0/go.mod h1:xBAYlnt/ay+11ShkdFKNAG7LsyK/tmNBVvVOwrfMgdI= github.com/moby/term v0.5.2 h1:6qk3FJAFDs6i/q3W/pQ97SX192qKfZgGjCQqfCJkgzQ= github.com/moby/term v0.5.2/go.mod h1:d3djjFCrjnB+fl8NJux+EJzu0msscUP+f8it8hPkFLc= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -103,18 +90,14 @@ github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 h1:n6/ github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00/go.mod h1:Pm3mSP3c5uWn86xMLZ5Sa7JB9GsEZySvHYXCTK4E9q4= 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/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f h1:y5//uYreIhSUg3J1GEMiLbxo1LJaP8RfCpH6pymGZus= -github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= -github.com/onsi/ginkgo/v2 v2.22.0 h1:Yed107/8DjTr0lKCNt7Dn8yQ6ybuDRQoMGrNFKzMfHg= -github.com/onsi/ginkgo/v2 v2.22.0/go.mod h1:7Du3c42kxCUegi0IImZ1wUQzMBVecgIHjR1C+NkhLQo= -github.com/onsi/gomega v1.36.1 h1:bJDPBO7ibjxcbHMgSCoo4Yj18UWbKDlLwX1x9sybDcw= -github.com/onsi/gomega v1.36.1/go.mod h1:PvZbdDc8J6XJEpDK4HCuRBm8a6Fzp9/DmhC9C7yFlog= +github.com/onsi/ginkgo/v2 v2.28.1 h1:S4hj+HbZp40fNKuLUQOYLDgZLwNUVn19N3Atb98NCyI= +github.com/onsi/ginkgo/v2 v2.28.1/go.mod h1:CLtbVInNckU3/+gC8LzkGUb9oF+e8W8TdUsxPwvdOgE= +github.com/onsi/gomega v1.39.1 h1:1IJLAad4zjPn2PsnhH70V4DKRFlrCzGBNrNaru+Vf28= +github.com/onsi/gomega v1.39.1/go.mod h1:hL6yVALoTOxeWudERyfppUcZXjMwIMLnuSfruD2lcfg= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI= github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= -github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= -github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= @@ -122,18 +105,20 @@ github.com/prometheus/client_golang v1.23.2 h1:Je96obch5RDVy3FDMndoUsjAhG5Edi49h 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/prometheus/common v0.67.5 h1:pIgK94WWlQt1WLwAC5j2ynLaBRDiinoAb86HZHTUGI4= +github.com/prometheus/common v0.67.5/go.mod h1:SjE/0MzDEEAyrdr5Gqc6G+sXI67maCxzaT3A2+HqjUw= +github.com/prometheus/procfs v0.19.2 h1:zUMhqEW66Ex7OXIiDkll3tl9a1ZdilUOd/F6ZXw4Vws= +github.com/prometheus/procfs v0.19.2/go.mod h1:M0aotyiemPhBCM0z5w87kL22CxfcH05ZpYlu+b4J7mw= +github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs= +github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro= github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 h1:n661drycOFuPLCN3Uc8sB6B/s6Z4t2xvBgU1htSHuq8= -github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4= -github.com/spf13/cobra v1.10.1 h1:lJeBwCfmrnXthfAupyUTzJ/J4Nc1RsHC/mSRU2dll/s= -github.com/spf13/cobra v1.10.1/go.mod h1:7SmJGaTHFVBY0jW4NXGluQoLvhqFQM+6XSKD+P4XaB0= +github.com/sergi/go-diff v1.4.0 h1:n/SP9D5ad1fORl+llWyN+D6qoUETXNZARKjyY2/KVCw= +github.com/sergi/go-diff v1.4.0/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4= +github.com/spf13/cobra v1.10.2 h1:DMTTonx5m65Ic0GOoRY2c16WCbHxOOw6xxezuLaBpcU= +github.com/spf13/cobra v1.10.2/go.mod h1:7C1pvHqHw5A4vrJfjNwvOdzYu0Gml16OCs2GRiTUUS4= github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk= github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= @@ -141,7 +126,6 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+ 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.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= @@ -150,114 +134,88 @@ github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= github.com/xlab/treeprint v1.2.0 h1:HzHnuAF1plUN2zGlAFHbSQP2qJ0ZAD3XF5XD7OesXRQ= github.com/xlab/treeprint v1.2.0/go.mod h1:gj5Gd3gPdKtR1ikdDK6fnFLdmIS0X30kTTuNd/WEJu0= -github.com/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.38.0 h1:RkfdswUDRimDg0m2Az18RKOsnI8UDzppJAtj01/Ymk8= -go.opentelemetry.io/otel v1.38.0/go.mod h1:zcmtmQ1+YmQM9wrNsTGV/q/uyusom3P8RxwExxkZhjM= -go.opentelemetry.io/otel/trace v1.38.0 h1:Fxk5bKrDZJUH+AMyyIXGcFAPah0oRcT+LuNtJrmcNLE= -go.opentelemetry.io/otel/trace v1.38.0/go.mod h1:j1P9ivuFsTceSWe1oY+EeW3sc+Pp42sO++GHkg4wwhs= +go.opentelemetry.io/otel v1.41.0 h1:YlEwVsGAlCvczDILpUXpIpPSL/VPugt7zHThEMLce1c= +go.opentelemetry.io/otel v1.41.0/go.mod h1:Yt4UwgEKeT05QbLwbyHXEwhnjxNO6D8L5PQP51/46dE= +go.opentelemetry.io/otel/trace v1.41.0 h1:Vbk2co6bhj8L59ZJ6/xFTskY+tGAbOnCtQGVVa9TIN0= +go.opentelemetry.io/otel/trace v1.41.0/go.mod h1:U1NU4ULCoxeDKc09yCWdWe+3QoyweJcISEVa1RBzOis= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= -go.yaml.in/yaml/v2 v2.4.2 h1:DzmwEr2rDGHl7lsFgAHxmNz/1NlQ7xLIrlN2h5d1eGI= -go.yaml.in/yaml/v2 v2.4.2/go.mod h1:081UH+NErpNdqlCXm3TtEran0rJZGxAYx9hb/ELlsPU= +go.yaml.in/yaml/v2 v2.4.3 h1:6gvOSjQoTB3vt1l+CU+tSyi/HOjfOjRLJ4YwYZGwRO0= +go.yaml.in/yaml/v2 v2.4.3/go.mod h1:zSxWcmIDjOzPXpjlTTbAsKokqkDNAVtZO0WOMiT90s8= go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.44.0 h1:evd8IRDyfNBMBTTY5XRF1vaZlD+EmWx6x8PkhR04H/I= -golang.org/x/net v0.44.0/go.mod h1:ECOoLqd5U3Lhyeyo/QDCEVQ4sNgYsqvCZ722XogGieY= -golang.org/x/oauth2 v0.31.0 h1:8Fq0yVZLh4j4YA47vHKFTa9Ew5XIrCP8LC6UeNZnLxo= -golang.org/x/oauth2 v0.31.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug= -golang.org/x/sync v0.17.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/mod v0.34.0 h1:xIHgNUUnW6sYkcM5Jleh05DvLOtwc6RitGHbDk4akRI= +golang.org/x/mod v0.34.0/go.mod h1:ykgH52iCZe79kzLLMhyCUzhMci+nQj+0XkbXpNYtVjY= +golang.org/x/net v0.53.0 h1:d+qAbo5L0orcWAr0a9JweQpjXF19LMXJE8Ey7hwOdUA= +golang.org/x/net v0.53.0/go.mod h1:JvMuJH7rrdiCfbeHoo3fCQU24Lf5JJwT9W3sJFulfgs= +golang.org/x/oauth2 v0.34.0 h1:hqK/t4AKgbqWkdkcAeI8XLmbK+4m4G5YeQRrmiotGlw= +golang.org/x/oauth2 v0.34.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA= +golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4= +golang.org/x/sync v0.20.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.36.0 h1:KVRy2GtZBrk1cBYA7MKu5bEZFxQk4NIDV6RLVcC8o0k= -golang.org/x/sys v0.36.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= -golang.org/x/term v0.35.0 h1:bZBVKBudEyhRcajGcNc3jIfWPqV4y/Kt2XcoigOWtDQ= -golang.org/x/term v0.35.0/go.mod h1:TPGtkTLesOwf2DE8CgVYiZinHAOuy5AYUYT1lENIZnA= -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.29.0 h1:1neNs90w9YzJ9BocxfsQNHKuAT4pkghyXc4nhZ6sJvk= -golang.org/x/text v0.29.0/go.mod h1:7MhJOA9CD2qZyOKYazxdYMF85OwPdEr9jTtBpO7ydH4= -golang.org/x/time v0.13.0 h1:eUlYslOIt32DgYD6utsuUeHs4d7AsEYLuIAdg7FlYgI= -golang.org/x/time v0.13.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.36.0 h1:kWS0uv/zsvHEle1LbV5LE8QujrxB3wfQyxHfhOk0Qkg= -golang.org/x/tools v0.36.0/go.mod h1:WBDiHKJK8YgLHlcQPYQzNCkUxUypCaa5ZegCVutKm+s= -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.9 h1:w2gp2mA27hUeUzj9Ex9FBjsBm40zfaDtEWow293U7Iw= -google.golang.org/protobuf v1.36.9/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU= +golang.org/x/sys v0.43.0 h1:Rlag2XtaFTxp19wS8MXlJwTvoh8ArU6ezoyFsMyCTNI= +golang.org/x/sys v0.43.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= +golang.org/x/term v0.42.0 h1:UiKe+zDFmJobeJ5ggPwOshJIVt6/Ft0rcfrXZDLWAWY= +golang.org/x/term v0.42.0/go.mod h1:Dq/D+snpsbazcBG5+F9Q1n2rXV8Ma+71xEjTRufARgY= +golang.org/x/text v0.36.0 h1:JfKh3XmcRPqZPKevfXVpI1wXPTqbkE5f7JA92a55Yxg= +golang.org/x/text v0.36.0/go.mod h1:NIdBknypM8iqVmPiuco0Dh6P5Jcdk8lJL0CUebqK164= +golang.org/x/time v0.14.0 h1:MRx4UaLrDotUKUdCIqzPC48t1Y9hANFKIRpNx+Te8PI= +golang.org/x/time v0.14.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4= +golang.org/x/tools v0.43.0 h1:12BdW9CeB3Z+J/I/wj34VMl8X+fEXBxVR90JeMX5E7s= +golang.org/x/tools v0.43.0/go.mod h1:uHkMso649BX2cZK6+RpuIPXS3ho2hZo4FVwfoy1vIk0= +google.golang.org/protobuf v1.36.12-0.20260120151049-f2248ac996af h1:+5/Sw3GsDNlEmu7TfklWKPdQ0Ykja5VEmq2i817+jbI= +google.golang.org/protobuf v1.36.12-0.20260120151049-f2248ac996af/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/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.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -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.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/cli-runtime v0.34.0 h1:N2/rUlJg6TMEBgtQ3SDRJwa8XyKUizwjlOknT1mB2Cw= -k8s.io/cli-runtime v0.34.0/go.mod h1:t/skRecS73Piv+J+FmWIQA2N2/rDjdYSQzEE67LUUs8= -k8s.io/client-go v0.34.0 h1:YoWv5r7bsBfb0Hs2jh8SOvFbKzzxyNo0nSb0zC19KZo= -k8s.io/client-go v0.34.0/go.mod h1:ozgMnEKXkRjeMvBZdV1AijMHLTh3pbACPvK7zFR+QQY= -k8s.io/component-base v0.34.0 h1:bS8Ua3zlJzapklsB1dZgjEJuJEeHjj8yTu1gxE2zQX8= -k8s.io/component-base v0.34.0/go.mod h1:RSCqUdvIjjrEm81epPcjQ/DS+49fADvGSCkIP3IC6vg= -k8s.io/component-helpers v0.34.0 h1:5T7P9XGMoUy1JDNKzHf0p/upYbeUf8ZaSf9jbx0QlIo= -k8s.io/component-helpers v0.34.0/go.mod h1:kaOyl5tdtnymriYcVZg4uwDBe2d1wlIpXyDkt6sVnt4= -k8s.io/controller-manager v0.34.0 h1:oCHoqS8dcFp7zDSu7HUvTpakq3isSxil3GprGGlJMsE= -k8s.io/controller-manager v0.34.0/go.mod h1:XFto21U+Mm9BT8r/Jd5E4tHCGtwjKAUFOuDcqaj2VK0= -k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= -k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= -k8s.io/kube-aggregator v0.34.0 h1:XE4u+HOYkj0g44sblhTtPv+QyIIK7sJxrIlia0731kE= -k8s.io/kube-aggregator v0.34.0/go.mod h1:GIUqdChXVC448Vp2Wgxf0m6fir7Xt3A2TAZcs2JNG1Y= -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/kubectl v0.34.0 h1:NcXz4TPTaUwhiX4LU+6r6udrlm0NsVnSkP3R9t0dmxs= -k8s.io/kubectl v0.34.0/go.mod h1:bmd0W5i+HuG7/p5sqicr0Li0rR2iIhXL0oUyLF3OjR4= -k8s.io/kubernetes v1.34.2 h1:WQdDvYJazkmkwSncgNwGvVtaCt4TYXIU3wSMRgvp3MI= -k8s.io/kubernetes v1.34.2/go.mod h1:m6pZk6a179pRo2wsTiCPORJ86iOEQmfIzUvtyEF8BwA= -k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 h1:hwvWFiBzdWw1FhfY1FooPn3kzWuJ8tmbZBHi4zVsl1Y= -k8s.io/utils v0.0.0-20250604170112-4c0f3b243397/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= -sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 h1:gBQPwqORJ8d8/YNZWEjoZs7npUVDpVXUUOFfW6CgAqE= -sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg= -sigs.k8s.io/kustomize/api v0.20.1 h1:iWP1Ydh3/lmldBnH/S5RXgT98vWYMaTUL1ADcr+Sv7I= -sigs.k8s.io/kustomize/api v0.20.1/go.mod h1:t6hUFxO+Ph0VxIk1sKp1WS0dOjbPCtLJ4p8aADLwqjM= -sigs.k8s.io/kustomize/kyaml v0.20.1 h1:PCMnA2mrVbRP3NIB6v9kYCAc38uvFLVs8j/CD567A78= -sigs.k8s.io/kustomize/kyaml v0.20.1/go.mod h1:0EmkQHRUsJxY8Ug9Niig1pUMSCGHxQ5RklbpV/Ri6po= +k8s.io/api v0.36.1 h1:XbL/EMj8K2aJpJtePmqUyQMsM0D4QI2pvl7YKJ20FTY= +k8s.io/api v0.36.1/go.mod h1:KOWo4ey3TINlXjeHVuwB3i+tXXnu+UcwFBHlI/9dvEo= +k8s.io/apiextensions-apiserver v0.36.1 h1:6JfYmPUsuUIHuN+3QxutXYWj492RqF5fBSx67GYK5Ks= +k8s.io/apiextensions-apiserver v0.36.1/go.mod h1:pLzZin90riwisdzKwv/GoTwENooytoIx5zWJb4Hkby8= +k8s.io/apimachinery v0.36.1 h1:G63Gjx2W+q0YD+72Vo8oY0nDnePVwnuzTmmy5ENrVSA= +k8s.io/apimachinery v0.36.1/go.mod h1:ibYOR00vW/I1kzvi5SF0dRuJ52BvKtfvRdOn35GPQ+8= +k8s.io/apiserver v0.36.1 h1:iMS5V+rPUertv5P9RaqJgmHHTuh4quWpoxchvMUY+JY= +k8s.io/apiserver v0.36.1/go.mod h1:Cby1PbLWztu0GDOxoO6iFOyyqIsziHNEW+w9zVQ22Kw= +k8s.io/cli-runtime v0.36.1 h1:yuC/BGnnj1YYPh6D1P+pZnzinCs6DvMq86yAeNqoqzM= +k8s.io/cli-runtime v0.36.1/go.mod h1:ZQWHGt8xAF7KnviB79vX0lYNyUUqKIpU+LQg7exuFAw= +k8s.io/client-go v0.36.1 h1:FN/K8QIT2CEDt+2WB2HnWrUANZ50AP5GII43/SP2JR0= +k8s.io/client-go v0.36.1/go.mod h1:s6rAnCtTGYDQnpNjEhSaISV+2O8jwruZ6m3QOYBFbtU= +k8s.io/component-base v0.36.1 h1:iG6GsELftXqTNG9HG6kiVjatSgAw1sf5pJ6R5a6N0kA= +k8s.io/component-base v0.36.1/go.mod h1:nf9XPlntRdqO6WMeEWAA5F93Y4ICZQdeT9GeqLDB3JI= +k8s.io/component-helpers v0.36.1 h1:BTrr5fzNSm8TkQfXrKT3N9ioWwiC4n2FTIwGTUo/ccg= +k8s.io/component-helpers v0.36.1/go.mod h1:s38HnzKQRurbUnhI5IV8GwyL/a3lVuNCYZMTd+rITMM= +k8s.io/controller-manager v0.36.1 h1:d1ifPnAe3FFSnnvcDQiM93bGroFT1lF72GEBKsl+cbg= +k8s.io/controller-manager v0.36.1/go.mod h1:jeJUuFlgbgohGJWrm59Wdlgo3WqxssWXgD2sU6HG/Vo= +k8s.io/klog/v2 v2.140.0 h1:Tf+J3AH7xnUzZyVVXhTgGhEKnFqye14aadWv7bzXdzc= +k8s.io/klog/v2 v2.140.0/go.mod h1:o+/RWfJ6PwpnFn7OyAG3QnO47BFsymfEfrz6XyYSSp0= +k8s.io/kube-aggregator v0.36.1 h1:IzNeRsJcTtgsiCyTgCR1pSwWCrXC1QZQWMTcBw18cFQ= +k8s.io/kube-aggregator v0.36.1/go.mod h1:ROrIm5irUhVUJsKVCgBAAcXpK5IiqpdCn0Ka7LYMGs4= +k8s.io/kube-openapi v0.0.0-20260317180543-43fb72c5454a h1:xCeOEAOoGYl2jnJoHkC3hkbPJgdATINPMAxaynU2Ovg= +k8s.io/kube-openapi v0.0.0-20260317180543-43fb72c5454a/go.mod h1:uGBT7iTA6c6MvqUvSXIaYZo9ukscABYi2btjhvgKGZ0= +k8s.io/kubectl v0.36.1 h1:96HqS9twIdHM0MlJLTwbo14b9kUKPkOzZ4tlRDLv4qI= +k8s.io/kubectl v0.36.1/go.mod h1:/DGPAIewKsFWF9VFgGvkPhao2Ev4SNuE3BioZo8yPbk= +k8s.io/kubelet v0.36.1 h1:FcHiG9wv92xerRPNxztuhYWqwS4IilOQNPxTPQewYgo= +k8s.io/kubelet v0.36.1/go.mod h1:e6IeoCwqc2TbneCKu6P8HjmWLi7U6SOh3Pocs32iGFM= +k8s.io/kubernetes v1.36.1 h1:Mt7NKigaZ2KmOmCLhX81lGlH9JU5wjXnYhXnxAun9XA= +k8s.io/kubernetes v1.36.1/go.mod h1:MLdeJ3qw2CWH9BFml5GvptxQVQckz54fJOZ/WuixpFE= +k8s.io/utils v0.0.0-20260210185600-b8788abfbbc2 h1:AZYQSJemyQB5eRxqcPky+/7EdBj0xi3g0ZcxxJ7vbWU= +k8s.io/utils v0.0.0-20260210185600-b8788abfbbc2/go.mod h1:xDxuJ0whA3d0I4mf/C4ppKHxXynQ+fxnkmQH0vTHnuk= +sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 h1:IpInykpT6ceI+QxKBbEflcR5EXP7sU1kvOlxwZh5txg= +sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg= +sigs.k8s.io/kustomize/api v0.21.1 h1:lzqbzvz2CSvsjIUZUBNFKtIMsEw7hVLJp0JeSIVmuJs= +sigs.k8s.io/kustomize/api v0.21.1/go.mod h1:f3wkKByTrgpgltLgySCntrYoq5d3q7aaxveSagwTlwI= +sigs.k8s.io/kustomize/kyaml v0.21.1 h1:IVlbmhC076nf6foyL6Taw4BkrLuEsXUXNpsE+ScX7fI= +sigs.k8s.io/kustomize/kyaml v0.21.1/go.mod h1:hmxADesM3yUN2vbA5z1/YTBnzLJ1dajdqpQonwBL1FQ= 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.1-0.20251003215857-446d8398e19c h1:RCkxmWwPjOw2O1RiDgBgI6tfISvB07jAh+GEztp7TWk= -sigs.k8s.io/structured-merge-diff/v6 v6.3.1-0.20251003215857-446d8398e19c/go.mod h1:M3W8sfWvn2HhQDIbGWj3S099YozAsymCo/wrT5ohRUE= +sigs.k8s.io/structured-merge-diff/v6 v6.3.2 h1:kwVWMx5yS1CrnFWA/2QHyRVJ8jM6dBA80uLmm0wJkk8= +sigs.k8s.io/structured-merge-diff/v6 v6.3.2/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/update_static_schema.sh b/hack/update_static_schema.sh index 4b4d403f4e1f8..e31bb25b1a09c 100755 --- a/hack/update_static_schema.sh +++ b/hack/update_static_schema.sh @@ -1,18 +1,51 @@ #!/usr/bin/env bash +# Regenerates pkg/utils/kube/scheme/parser.go from the upstream client-go +# applyconfigurations/internal/internal.go at the version pinned in go.mod. +# +# Why this script exists +# The static schema is embedded as a Go string constant inside parser.go. +# It powers gitops-engine's "live diff" / structured-merge-diff path +# without requiring a live API server. The schema must match the client-go +# release we depend on, otherwise our diffs lag the wire types. +# +# Run after any bump of k8s.io/client-go in go.mod. -set -euox pipefail +set -Eeuo pipefail -# Get the k8s library version from go.mod, stripping the trailing newline -k8s_lib_version=$(grep "k8s.io/client-go" go.mod | awk '{print $2}' | head -n 1 | tr -d '\n') +PARSER="pkg/utils/kube/scheme/parser.go" -# Download the parser file from the k8s library -curl -sL "https://raw.githubusercontent.com/kubernetes/client-go/$k8s_lib_version/applyconfigurations/internal/internal.go" -o pkg/utils/kube/scheme/parser.go +# Pull the client-go version (e.g. v0.36.1) from go.mod's `require` block. +k8s_lib_version="$(awk '/^[[:space:]]*k8s.io\/client-go[[:space:]]/ {print $2; exit}' go.mod)" +if [[ -z "${k8s_lib_version}" ]]; then + echo "error: could not find k8s.io/client-go version in go.mod" >&2 + exit 1 +fi -# Add a line to the beginning of the file saying that this is the script that generated it. -sed -i '' '1s/^/\/\/ Code generated by hack\/update_static_schema.sh; DO NOT EDIT.\n\/\/ Everything below is downloaded from applyconfigurations\/internal\/internal.go in kubernetes\/client-go.\n\n/' pkg/utils/kube/scheme/parser.go +tmp="$(mktemp)" +trap 'rm -f "${tmp}"' EXIT -# Replace "package internal" with "package scheme" in the parser file -sed -i '' 's/package internal/package scheme/' pkg/utils/kube/scheme/parser.go +curl -sSLf \ + "https://raw.githubusercontent.com/kubernetes/client-go/${k8s_lib_version}/applyconfigurations/internal/internal.go" \ + -o "${tmp}" -# Replace "func Parser" with "func StaticParser" -sed -i '' 's/func Parser/func StaticParser/' pkg/utils/kube/scheme/parser.go +# Transformations: +# 1. Prepend a "DO NOT EDIT" provenance header so contributors don't hand-edit it. +# 2. Rename the package from `internal` to `scheme` so it lives under our scheme/ dir. +# 3. Rename the `Parser` function to `StaticParser` so it doesn't collide with +# runtime parser helpers in this package. +# +# All edits use portable sed (no `sed -i ''` BSD-ism); we write through a tmp +# file so this works on Linux CI runners and on macOS contributor workstations. + +{ + cat <<'EOF' +// Code generated by hack/update_static_schema.sh; DO NOT EDIT. +// Everything below is downloaded from applyconfigurations/internal/internal.go in kubernetes/client-go. + +EOF + sed -e 's/^package internal$/package scheme/' \ + -e 's/^func Parser(/func StaticParser(/' \ + "${tmp}" +} > "${PARSER}" + +echo "Regenerated ${PARSER} from k8s.io/client-go@${k8s_lib_version}" diff --git a/internal/kubernetes_vendor/pkg/api/v1/endpoints/util.go b/internal/kubernetes_vendor/pkg/api/v1/endpoints/util.go index a7ca1aa0d0820..c2126cae03723 100644 --- a/internal/kubernetes_vendor/pkg/api/v1/endpoints/util.go +++ b/internal/kubernetes_vendor/pkg/api/v1/endpoints/util.go @@ -16,6 +16,15 @@ limitations under the License. package endpoints +// Endpoints (corev1.Endpoints / v1.EndpointSubset) is deprecated in +// Kubernetes v1.33+ in favor of discovery.k8s.io/v1 EndpointSlice. This +// package keeps a vendored copy of the upstream sort helpers so the diff +// normalizer can still order the legacy Endpoints subsets users may have +// in their manifests. The deprecation warning is intentional here. +// +//lint:file-ignore SA1019 Vendor copy that intentionally targets the +//deprecated v1.Endpoints / v1.EndpointSubset types. + import ( "bytes" "crypto/md5" diff --git a/internal/kubernetes_vendor/pkg/util/hash/hash.go b/internal/kubernetes_vendor/pkg/util/hash/hash.go index 803f066a440b3..cc47f1933b58d 100644 --- a/internal/kubernetes_vendor/pkg/util/hash/hash.go +++ b/internal/kubernetes_vendor/pkg/util/hash/hash.go @@ -33,5 +33,7 @@ func DeepHashObject(hasher hash.Hash, objectToWrite interface{}) { DisableMethods: true, SpewKeys: true, } - printer.Fprintf(hasher, "%#v", objectToWrite) + // hash.Hash never returns an error from Write; the (n, err) result + // from Fprintf is intentionally discarded. + _, _ = printer.Fprintf(hasher, "%#v", objectToWrite) } diff --git a/pkg/cache/cluster.go b/pkg/cache/cluster.go index 6928dee860ff0..09c2e263c8279 100644 --- a/pkg/cache/cluster.go +++ b/pkg/cache/cluster.go @@ -984,10 +984,9 @@ func (c *clusterCache) checkPermission(ctx context.Context, reviewInterface auth if resp != nil && resp.Status.Allowed { return true, nil } - // unsupported, remove from watch list - //nolint:staticcheck //FIXME - return false, nil } + // No configured namespace grants list permission; drop from watch list. + return false, nil } // checkPermission follows the same logic of determining namespace/cluster resource as the processApi function // so if neither of the cases match it means the controller will not watch for it so it is safe to return true. diff --git a/pkg/cache/cluster_test.go b/pkg/cache/cluster_test.go index 5af17db499b21..56217f1072fdb 100644 --- a/pkg/cache/cluster_test.go +++ b/pkg/cache/cluster_test.go @@ -2025,13 +2025,6 @@ metadata: return resources } -func max(a, b int) int { - if a > b { - return a - } - return b -} - // BenchmarkIterateHierarchyV2_ClusterParentTraversal benchmarks full hierarchy traversal // starting from cluster-scoped parents with varying percentages of namespaces containing // cross-namespace children. This tests the actual performance impact of the cross-namespace diff --git a/pkg/diff/diff.go b/pkg/diff/diff.go index d71fdb5ad398d..3dded52a2872c 100644 --- a/pkg/diff/diff.go +++ b/pkg/diff/diff.go @@ -250,7 +250,7 @@ func removeWebhookMutation(predictedLive, live *unstructured.Unstructured, gvkPa // Iterate over all ManagedFields entries in predictedLive for _, mfEntry := range plManagedFields { managedFieldsSet := &fieldpath.Set{} - err := managedFieldsSet.FromJSON(bytes.NewReader(mfEntry.FieldsV1.Raw)) + err := managedFieldsSet.FromJSON(mfEntry.FieldsV1.GetRawReader()) if err != nil { return nil, fmt.Errorf("error building managedFields set: %w", err) } @@ -989,7 +989,10 @@ func normalizeEndpoint(un *unstructured.Unstructured, o options) { if gvk.Group != "" || gvk.Kind != "Endpoints" { return } - //nolint:staticcheck // SA1019: corev1.Endpoints is deprecated in v1.33+, but we need to keep it for backward compatibility + // Endpoints is deprecated in Kubernetes v1.33+ in favor of EndpointSlice, + // but gitops-engine still has to read user-provided Endpoints objects to + // normalize them for diff. Keep using corev1.Endpoints intentionally. + //lint:ignore SA1019 Intentional: normalizing user-provided legacy Endpoints. var ep corev1.Endpoints err := runtime.DefaultUnstructuredConverter.FromUnstructured(un.Object, &ep) if err != nil { diff --git a/pkg/diff/internal/fieldmanager/borrowed_fields.go b/pkg/diff/internal/fieldmanager/borrowed_fields.go index cc81456b9c4bd..d816cbdb770a7 100644 --- a/pkg/diff/internal/fieldmanager/borrowed_fields.go +++ b/pkg/diff/internal/fieldmanager/borrowed_fields.go @@ -17,8 +17,6 @@ limitations under the License. package fieldmanager import ( - "bytes" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "sigs.k8s.io/structured-merge-diff/v6/fieldpath" @@ -36,12 +34,16 @@ var EmptyFields = func() metav1.FieldsV1 { // FieldsToSet creates a set paths from an input trie of fields func FieldsToSet(f metav1.FieldsV1) (s fieldpath.Set, err error) { - err = s.FromJSON(bytes.NewReader(f.Raw)) + err = s.FromJSON(f.GetRawReader()) return s, err } // SetToFields creates a trie of fields from an input set of paths func SetToFields(s fieldpath.Set) (f metav1.FieldsV1, err error) { - f.Raw, err = s.ToJSON() - return f, err + raw, err := s.ToJSON() + if err != nil { + return f, err + } + f.SetRawBytes(raw) + return f, nil } diff --git a/pkg/diff/internal/fieldmanager/borrowed_versionconverter.go b/pkg/diff/internal/fieldmanager/borrowed_versionconverter.go index 0ac1e1e874952..ca85290d74722 100644 --- a/pkg/diff/internal/fieldmanager/borrowed_versionconverter.go +++ b/pkg/diff/internal/fieldmanager/borrowed_versionconverter.go @@ -48,17 +48,6 @@ func newVersionConverter(t TypeConverter, o runtime.ObjectConvertor, h schema.Gr } } -// NewCRDVersionConverter builds a VersionConverter for CRDs from a TypeConverter and an ObjectConvertor. -func newCRDVersionConverter(t TypeConverter, o runtime.ObjectConvertor, h schema.GroupVersion) merge.Converter { - return &versionConverter{ - typeConverter: t, - objectConvertor: o, - hubGetter: func(from schema.GroupVersion) schema.GroupVersion { - return h - }, - } -} - // Convert implements sigs.k8s.io/structured-merge-diff/merge.Converter func (v *versionConverter) Convert(object *typed.TypedValue, version fieldpath.APIVersion) (*typed.TypedValue, error) { // Convert the smd typed value to a kubernetes object. diff --git a/pkg/sync/sync_context_test.go b/pkg/sync/sync_context_test.go index 9c9d2b5bb8368..669acdf7c7094 100644 --- a/pkg/sync/sync_context_test.go +++ b/pkg/sync/sync_context_test.go @@ -936,7 +936,7 @@ func TestSync_getSyncTasks_FailureMessage(t *testing.T) { Resources: []*metav1.APIResourceList{}, }, } - fakeDisco.Fake.PrependReactor("get", "resource", func(action testcore.Action) (handled bool, ret runtime.Object, err error) { + fakeDisco.PrependReactor("get", "resource", func(action testcore.Action) (handled bool, ret runtime.Object, err error) { reactorCalls++ return true, nil, errors.New("discovery failed") }) @@ -974,7 +974,7 @@ func Test_getSyncTasks_ErrorCaching(t *testing.T) { Resources: []*metav1.APIResourceList{}, }, } - fakeDisco.Fake.PrependReactor("get", "resource", func(action testcore.Action) (handled bool, ret runtime.Object, err error) { + fakeDisco.PrependReactor("get", "resource", func(action testcore.Action) (handled bool, ret runtime.Object, err error) { discoveryCalls++ return true, nil, errors.New("persistent discovery error") }) diff --git a/pkg/utils/kube/scheme/parser.go b/pkg/utils/kube/scheme/parser.go index b65e5700fa503..a46e6f6c937cc 100644 --- a/pkg/utils/kube/scheme/parser.go +++ b/pkg/utils/kube/scheme/parser.go @@ -42,6 +42,12 @@ func StaticParser() *typed.Parser { var parserOnce sync.Once var parser *typed.Parser var schemaYAML = typed.YAMLObject(`types: +- name: io.k8s.api.admissionregistration.v1.ApplyConfiguration + map: + fields: + - name: expression + type: + scalar: string - name: io.k8s.api.admissionregistration.v1.AuditAnnotation map: fields: @@ -64,6 +70,12 @@ var schemaYAML = typed.YAMLObject(`types: type: scalar: string default: "" +- name: io.k8s.api.admissionregistration.v1.JSONPatch + map: + fields: + - name: expression + type: + scalar: string - name: io.k8s.api.admissionregistration.v1.MatchCondition map: fields: @@ -100,6 +112,87 @@ var schemaYAML = typed.YAMLObject(`types: namedType: io.k8s.api.admissionregistration.v1.NamedRuleWithOperations elementRelationship: atomic elementRelationship: atomic +- name: io.k8s.api.admissionregistration.v1.MutatingAdmissionPolicy + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.admissionregistration.v1.MutatingAdmissionPolicySpec + default: {} +- name: io.k8s.api.admissionregistration.v1.MutatingAdmissionPolicyBinding + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.admissionregistration.v1.MutatingAdmissionPolicyBindingSpec + default: {} +- name: io.k8s.api.admissionregistration.v1.MutatingAdmissionPolicyBindingSpec + map: + fields: + - name: matchResources + type: + namedType: io.k8s.api.admissionregistration.v1.MatchResources + - name: paramRef + type: + namedType: io.k8s.api.admissionregistration.v1.ParamRef + - name: policyName + type: + scalar: string +- name: io.k8s.api.admissionregistration.v1.MutatingAdmissionPolicySpec + map: + fields: + - name: failurePolicy + type: + scalar: string + - name: matchConditions + type: + list: + elementType: + namedType: io.k8s.api.admissionregistration.v1.MatchCondition + elementRelationship: associative + keys: + - name + - name: matchConstraints + type: + namedType: io.k8s.api.admissionregistration.v1.MatchResources + - name: mutations + type: + list: + elementType: + namedType: io.k8s.api.admissionregistration.v1.Mutation + elementRelationship: atomic + - name: paramKind + type: + namedType: io.k8s.api.admissionregistration.v1.ParamKind + - name: reinvocationPolicy + type: + scalar: string + - name: variables + type: + list: + elementType: + namedType: io.k8s.api.admissionregistration.v1.Variable + elementRelationship: atomic - name: io.k8s.api.admissionregistration.v1.MutatingWebhook map: fields: @@ -173,6 +266,19 @@ var schemaYAML = typed.YAMLObject(`types: elementRelationship: associative keys: - name +- name: io.k8s.api.admissionregistration.v1.Mutation + map: + fields: + - name: applyConfiguration + type: + namedType: io.k8s.api.admissionregistration.v1.ApplyConfiguration + - name: jsonPatch + type: + namedType: io.k8s.api.admissionregistration.v1.JSONPatch + - name: patchType + type: + scalar: string + default: "" - name: io.k8s.api.admissionregistration.v1.NamedRuleWithOperations map: fields: @@ -891,6 +997,12 @@ var schemaYAML = typed.YAMLObject(`types: type: scalar: string default: "" +- name: io.k8s.api.admissionregistration.v1beta1.ApplyConfiguration + map: + fields: + - name: expression + type: + scalar: string - name: io.k8s.api.admissionregistration.v1beta1.AuditAnnotation map: fields: @@ -913,6 +1025,12 @@ var schemaYAML = typed.YAMLObject(`types: type: scalar: string default: "" +- name: io.k8s.api.admissionregistration.v1beta1.JSONPatch + map: + fields: + - name: expression + type: + scalar: string - name: io.k8s.api.admissionregistration.v1beta1.MatchCondition map: fields: @@ -949,6 +1067,87 @@ var schemaYAML = typed.YAMLObject(`types: namedType: io.k8s.api.admissionregistration.v1beta1.NamedRuleWithOperations elementRelationship: atomic elementRelationship: atomic +- name: io.k8s.api.admissionregistration.v1beta1.MutatingAdmissionPolicy + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.admissionregistration.v1beta1.MutatingAdmissionPolicySpec + default: {} +- name: io.k8s.api.admissionregistration.v1beta1.MutatingAdmissionPolicyBinding + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.admissionregistration.v1beta1.MutatingAdmissionPolicyBindingSpec + default: {} +- name: io.k8s.api.admissionregistration.v1beta1.MutatingAdmissionPolicyBindingSpec + map: + fields: + - name: matchResources + type: + namedType: io.k8s.api.admissionregistration.v1beta1.MatchResources + - name: paramRef + type: + namedType: io.k8s.api.admissionregistration.v1beta1.ParamRef + - name: policyName + type: + scalar: string +- name: io.k8s.api.admissionregistration.v1beta1.MutatingAdmissionPolicySpec + map: + fields: + - name: failurePolicy + type: + scalar: string + - name: matchConditions + type: + list: + elementType: + namedType: io.k8s.api.admissionregistration.v1beta1.MatchCondition + elementRelationship: associative + keys: + - name + - name: matchConstraints + type: + namedType: io.k8s.api.admissionregistration.v1beta1.MatchResources + - name: mutations + type: + list: + elementType: + namedType: io.k8s.api.admissionregistration.v1beta1.Mutation + elementRelationship: atomic + - name: paramKind + type: + namedType: io.k8s.api.admissionregistration.v1beta1.ParamKind + - name: reinvocationPolicy + type: + scalar: string + - name: variables + type: + list: + elementType: + namedType: io.k8s.api.admissionregistration.v1beta1.Variable + elementRelationship: atomic - name: io.k8s.api.admissionregistration.v1beta1.MutatingWebhook map: fields: @@ -1022,6 +1221,19 @@ var schemaYAML = typed.YAMLObject(`types: elementRelationship: associative keys: - name +- name: io.k8s.api.admissionregistration.v1beta1.Mutation + map: + fields: + - name: applyConfiguration + type: + namedType: io.k8s.api.admissionregistration.v1beta1.ApplyConfiguration + - name: jsonPatch + type: + namedType: io.k8s.api.admissionregistration.v1beta1.JSONPatch + - name: patchType + type: + scalar: string + default: "" - name: io.k8s.api.admissionregistration.v1beta1.NamedRuleWithOperations map: fields: @@ -3199,738 +3411,78 @@ var schemaYAML = typed.YAMLObject(`types: type: scalar: string default: "" -- name: io.k8s.api.autoscaling.v2beta1.ContainerResourceMetricSource +- name: io.k8s.api.batch.v1.CronJob map: fields: - - name: container + - name: apiVersion type: scalar: string - default: "" - - name: name + - name: kind type: scalar: string - default: "" - - name: targetAverageUtilization + - name: metadata type: - scalar: numeric - - name: targetAverageValue + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec type: - namedType: io.k8s.apimachinery.pkg.api.resource.Quantity -- name: io.k8s.api.autoscaling.v2beta1.ContainerResourceMetricStatus + namedType: io.k8s.api.batch.v1.CronJobSpec + default: {} + - name: status + type: + namedType: io.k8s.api.batch.v1.CronJobStatus + default: {} +- name: io.k8s.api.batch.v1.CronJobSpec map: fields: - - name: container + - name: concurrencyPolicy type: scalar: string - default: "" - - name: currentAverageUtilization + - name: failedJobsHistoryLimit type: scalar: numeric - - name: currentAverageValue + - name: jobTemplate type: - namedType: io.k8s.apimachinery.pkg.api.resource.Quantity - - name: name + namedType: io.k8s.api.batch.v1.JobTemplateSpec + default: {} + - name: schedule type: scalar: string default: "" -- name: io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference - map: - fields: - - name: apiVersion + - name: startingDeadlineSeconds type: - scalar: string - - name: kind + scalar: numeric + - name: successfulJobsHistoryLimit type: - scalar: string - default: "" - - name: name + scalar: numeric + - name: suspend + type: + scalar: boolean + - name: timeZone type: scalar: string - default: "" -- name: io.k8s.api.autoscaling.v2beta1.ExternalMetricSource +- name: io.k8s.api.batch.v1.CronJobStatus map: fields: - - name: metricName - type: - scalar: string - default: "" - - name: metricSelector + - name: active type: - namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector - - name: targetAverageValue + list: + elementType: + namedType: io.k8s.api.core.v1.ObjectReference + elementRelationship: atomic + - name: lastScheduleTime type: - namedType: io.k8s.apimachinery.pkg.api.resource.Quantity - - name: targetValue + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + - name: lastSuccessfulTime type: - namedType: io.k8s.apimachinery.pkg.api.resource.Quantity -- name: io.k8s.api.autoscaling.v2beta1.ExternalMetricStatus + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time +- name: io.k8s.api.batch.v1.Job map: fields: - - name: currentAverageValue + - name: apiVersion type: - namedType: io.k8s.apimachinery.pkg.api.resource.Quantity - - name: currentValue - type: - namedType: io.k8s.apimachinery.pkg.api.resource.Quantity - - name: metricName - type: - scalar: string - default: "" - - name: metricSelector - type: - namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector -- name: io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscaler - map: - fields: - - name: apiVersion - type: - scalar: string - - name: kind - type: - scalar: string - - name: metadata - type: - namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta - default: {} - - name: spec - type: - namedType: io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerSpec - default: {} - - name: status - type: - namedType: io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerStatus - default: {} -- name: io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerCondition - map: - fields: - - name: lastTransitionTime - type: - namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time - - name: message - type: - scalar: string - - name: reason - type: - scalar: string - - name: status - type: - scalar: string - default: "" - - name: type - type: - scalar: string - default: "" -- name: io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerSpec - map: - fields: - - name: maxReplicas - type: - scalar: numeric - default: 0 - - name: metrics - type: - list: - elementType: - namedType: io.k8s.api.autoscaling.v2beta1.MetricSpec - elementRelationship: atomic - - name: minReplicas - type: - scalar: numeric - - name: scaleTargetRef - type: - namedType: io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference - default: {} -- name: io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerStatus - map: - fields: - - name: conditions - type: - list: - elementType: - namedType: io.k8s.api.autoscaling.v2beta1.HorizontalPodAutoscalerCondition - elementRelationship: atomic - - name: currentMetrics - type: - list: - elementType: - namedType: io.k8s.api.autoscaling.v2beta1.MetricStatus - elementRelationship: atomic - - name: currentReplicas - type: - scalar: numeric - default: 0 - - name: desiredReplicas - type: - scalar: numeric - default: 0 - - name: lastScaleTime - type: - namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time - - name: observedGeneration - type: - scalar: numeric -- name: io.k8s.api.autoscaling.v2beta1.MetricSpec - map: - fields: - - name: containerResource - type: - namedType: io.k8s.api.autoscaling.v2beta1.ContainerResourceMetricSource - - name: external - type: - namedType: io.k8s.api.autoscaling.v2beta1.ExternalMetricSource - - name: object - type: - namedType: io.k8s.api.autoscaling.v2beta1.ObjectMetricSource - - name: pods - type: - namedType: io.k8s.api.autoscaling.v2beta1.PodsMetricSource - - name: resource - type: - namedType: io.k8s.api.autoscaling.v2beta1.ResourceMetricSource - - name: type - type: - scalar: string - default: "" -- name: io.k8s.api.autoscaling.v2beta1.MetricStatus - map: - fields: - - name: containerResource - type: - namedType: io.k8s.api.autoscaling.v2beta1.ContainerResourceMetricStatus - - name: external - type: - namedType: io.k8s.api.autoscaling.v2beta1.ExternalMetricStatus - - name: object - type: - namedType: io.k8s.api.autoscaling.v2beta1.ObjectMetricStatus - - name: pods - type: - namedType: io.k8s.api.autoscaling.v2beta1.PodsMetricStatus - - name: resource - type: - namedType: io.k8s.api.autoscaling.v2beta1.ResourceMetricStatus - - name: type - type: - scalar: string - default: "" -- name: io.k8s.api.autoscaling.v2beta1.ObjectMetricSource - map: - fields: - - name: averageValue - type: - namedType: io.k8s.apimachinery.pkg.api.resource.Quantity - - name: metricName - type: - scalar: string - default: "" - - name: selector - type: - namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector - - name: target - type: - namedType: io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference - default: {} - - name: targetValue - type: - namedType: io.k8s.apimachinery.pkg.api.resource.Quantity -- name: io.k8s.api.autoscaling.v2beta1.ObjectMetricStatus - map: - fields: - - name: averageValue - type: - namedType: io.k8s.apimachinery.pkg.api.resource.Quantity - - name: currentValue - type: - namedType: io.k8s.apimachinery.pkg.api.resource.Quantity - - name: metricName - type: - scalar: string - default: "" - - name: selector - type: - namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector - - name: target - type: - namedType: io.k8s.api.autoscaling.v2beta1.CrossVersionObjectReference - default: {} -- name: io.k8s.api.autoscaling.v2beta1.PodsMetricSource - map: - fields: - - name: metricName - type: - scalar: string - default: "" - - name: selector - type: - namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector - - name: targetAverageValue - type: - namedType: io.k8s.apimachinery.pkg.api.resource.Quantity -- name: io.k8s.api.autoscaling.v2beta1.PodsMetricStatus - map: - fields: - - name: currentAverageValue - type: - namedType: io.k8s.apimachinery.pkg.api.resource.Quantity - - name: metricName - type: - scalar: string - default: "" - - name: selector - type: - namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector -- name: io.k8s.api.autoscaling.v2beta1.ResourceMetricSource - map: - fields: - - name: name - type: - scalar: string - default: "" - - name: targetAverageUtilization - type: - scalar: numeric - - name: targetAverageValue - type: - namedType: io.k8s.apimachinery.pkg.api.resource.Quantity -- name: io.k8s.api.autoscaling.v2beta1.ResourceMetricStatus - map: - fields: - - name: currentAverageUtilization - type: - scalar: numeric - - name: currentAverageValue - type: - namedType: io.k8s.apimachinery.pkg.api.resource.Quantity - - name: name - type: - scalar: string - default: "" -- name: io.k8s.api.autoscaling.v2beta2.ContainerResourceMetricSource - map: - fields: - - name: container - type: - scalar: string - default: "" - - name: name - type: - scalar: string - default: "" - - name: target - type: - namedType: io.k8s.api.autoscaling.v2beta2.MetricTarget - default: {} -- name: io.k8s.api.autoscaling.v2beta2.ContainerResourceMetricStatus - map: - fields: - - name: container - type: - scalar: string - default: "" - - name: current - type: - namedType: io.k8s.api.autoscaling.v2beta2.MetricValueStatus - default: {} - - name: name - type: - scalar: string - default: "" -- name: io.k8s.api.autoscaling.v2beta2.CrossVersionObjectReference - map: - fields: - - name: apiVersion - type: - scalar: string - - name: kind - type: - scalar: string - default: "" - - name: name - type: - scalar: string - default: "" -- name: io.k8s.api.autoscaling.v2beta2.ExternalMetricSource - map: - fields: - - name: metric - type: - namedType: io.k8s.api.autoscaling.v2beta2.MetricIdentifier - default: {} - - name: target - type: - namedType: io.k8s.api.autoscaling.v2beta2.MetricTarget - default: {} -- name: io.k8s.api.autoscaling.v2beta2.ExternalMetricStatus - map: - fields: - - name: current - type: - namedType: io.k8s.api.autoscaling.v2beta2.MetricValueStatus - default: {} - - name: metric - type: - namedType: io.k8s.api.autoscaling.v2beta2.MetricIdentifier - default: {} -- name: io.k8s.api.autoscaling.v2beta2.HPAScalingPolicy - map: - fields: - - name: periodSeconds - type: - scalar: numeric - default: 0 - - name: type - type: - scalar: string - default: "" - - name: value - type: - scalar: numeric - default: 0 -- name: io.k8s.api.autoscaling.v2beta2.HPAScalingRules - map: - fields: - - name: policies - type: - list: - elementType: - namedType: io.k8s.api.autoscaling.v2beta2.HPAScalingPolicy - elementRelationship: atomic - - name: selectPolicy - type: - scalar: string - - name: stabilizationWindowSeconds - type: - scalar: numeric -- name: io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscaler - map: - fields: - - name: apiVersion - type: - scalar: string - - name: kind - type: - scalar: string - - name: metadata - type: - namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta - default: {} - - name: spec - type: - namedType: io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerSpec - default: {} - - name: status - type: - namedType: io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerStatus - default: {} -- name: io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerBehavior - map: - fields: - - name: scaleDown - type: - namedType: io.k8s.api.autoscaling.v2beta2.HPAScalingRules - - name: scaleUp - type: - namedType: io.k8s.api.autoscaling.v2beta2.HPAScalingRules -- name: io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerCondition - map: - fields: - - name: lastTransitionTime - type: - namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time - - name: message - type: - scalar: string - - name: reason - type: - scalar: string - - name: status - type: - scalar: string - default: "" - - name: type - type: - scalar: string - default: "" -- name: io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerSpec - map: - fields: - - name: behavior - type: - namedType: io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerBehavior - - name: maxReplicas - type: - scalar: numeric - default: 0 - - name: metrics - type: - list: - elementType: - namedType: io.k8s.api.autoscaling.v2beta2.MetricSpec - elementRelationship: atomic - - name: minReplicas - type: - scalar: numeric - - name: scaleTargetRef - type: - namedType: io.k8s.api.autoscaling.v2beta2.CrossVersionObjectReference - default: {} -- name: io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerStatus - map: - fields: - - name: conditions - type: - list: - elementType: - namedType: io.k8s.api.autoscaling.v2beta2.HorizontalPodAutoscalerCondition - elementRelationship: atomic - - name: currentMetrics - type: - list: - elementType: - namedType: io.k8s.api.autoscaling.v2beta2.MetricStatus - elementRelationship: atomic - - name: currentReplicas - type: - scalar: numeric - default: 0 - - name: desiredReplicas - type: - scalar: numeric - default: 0 - - name: lastScaleTime - type: - namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time - - name: observedGeneration - type: - scalar: numeric -- name: io.k8s.api.autoscaling.v2beta2.MetricIdentifier - map: - fields: - - name: name - type: - scalar: string - default: "" - - name: selector - type: - namedType: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector -- name: io.k8s.api.autoscaling.v2beta2.MetricSpec - map: - fields: - - name: containerResource - type: - namedType: io.k8s.api.autoscaling.v2beta2.ContainerResourceMetricSource - - name: external - type: - namedType: io.k8s.api.autoscaling.v2beta2.ExternalMetricSource - - name: object - type: - namedType: io.k8s.api.autoscaling.v2beta2.ObjectMetricSource - - name: pods - type: - namedType: io.k8s.api.autoscaling.v2beta2.PodsMetricSource - - name: resource - type: - namedType: io.k8s.api.autoscaling.v2beta2.ResourceMetricSource - - name: type - type: - scalar: string - default: "" -- name: io.k8s.api.autoscaling.v2beta2.MetricStatus - map: - fields: - - name: containerResource - type: - namedType: io.k8s.api.autoscaling.v2beta2.ContainerResourceMetricStatus - - name: external - type: - namedType: io.k8s.api.autoscaling.v2beta2.ExternalMetricStatus - - name: object - type: - namedType: io.k8s.api.autoscaling.v2beta2.ObjectMetricStatus - - name: pods - type: - namedType: io.k8s.api.autoscaling.v2beta2.PodsMetricStatus - - name: resource - type: - namedType: io.k8s.api.autoscaling.v2beta2.ResourceMetricStatus - - name: type - type: - scalar: string - default: "" -- name: io.k8s.api.autoscaling.v2beta2.MetricTarget - map: - fields: - - name: averageUtilization - type: - scalar: numeric - - name: averageValue - type: - namedType: io.k8s.apimachinery.pkg.api.resource.Quantity - - name: type - type: - scalar: string - default: "" - - name: value - type: - namedType: io.k8s.apimachinery.pkg.api.resource.Quantity -- name: io.k8s.api.autoscaling.v2beta2.MetricValueStatus - map: - fields: - - name: averageUtilization - type: - scalar: numeric - - name: averageValue - type: - namedType: io.k8s.apimachinery.pkg.api.resource.Quantity - - name: value - type: - namedType: io.k8s.apimachinery.pkg.api.resource.Quantity -- name: io.k8s.api.autoscaling.v2beta2.ObjectMetricSource - map: - fields: - - name: describedObject - type: - namedType: io.k8s.api.autoscaling.v2beta2.CrossVersionObjectReference - default: {} - - name: metric - type: - namedType: io.k8s.api.autoscaling.v2beta2.MetricIdentifier - default: {} - - name: target - type: - namedType: io.k8s.api.autoscaling.v2beta2.MetricTarget - default: {} -- name: io.k8s.api.autoscaling.v2beta2.ObjectMetricStatus - map: - fields: - - name: current - type: - namedType: io.k8s.api.autoscaling.v2beta2.MetricValueStatus - default: {} - - name: describedObject - type: - namedType: io.k8s.api.autoscaling.v2beta2.CrossVersionObjectReference - default: {} - - name: metric - type: - namedType: io.k8s.api.autoscaling.v2beta2.MetricIdentifier - default: {} -- name: io.k8s.api.autoscaling.v2beta2.PodsMetricSource - map: - fields: - - name: metric - type: - namedType: io.k8s.api.autoscaling.v2beta2.MetricIdentifier - default: {} - - name: target - type: - namedType: io.k8s.api.autoscaling.v2beta2.MetricTarget - default: {} -- name: io.k8s.api.autoscaling.v2beta2.PodsMetricStatus - map: - fields: - - name: current - type: - namedType: io.k8s.api.autoscaling.v2beta2.MetricValueStatus - default: {} - - name: metric - type: - namedType: io.k8s.api.autoscaling.v2beta2.MetricIdentifier - default: {} -- name: io.k8s.api.autoscaling.v2beta2.ResourceMetricSource - map: - fields: - - name: name - type: - scalar: string - default: "" - - name: target - type: - namedType: io.k8s.api.autoscaling.v2beta2.MetricTarget - default: {} -- name: io.k8s.api.autoscaling.v2beta2.ResourceMetricStatus - map: - fields: - - name: current - type: - namedType: io.k8s.api.autoscaling.v2beta2.MetricValueStatus - default: {} - - name: name - type: - scalar: string - default: "" -- name: io.k8s.api.batch.v1.CronJob - map: - fields: - - name: apiVersion - type: - scalar: string - - name: kind - type: - scalar: string - - name: metadata - type: - namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta - default: {} - - name: spec - type: - namedType: io.k8s.api.batch.v1.CronJobSpec - default: {} - - name: status - type: - namedType: io.k8s.api.batch.v1.CronJobStatus - default: {} -- name: io.k8s.api.batch.v1.CronJobSpec - map: - fields: - - name: concurrencyPolicy - type: - scalar: string - - name: failedJobsHistoryLimit - type: - scalar: numeric - - name: jobTemplate - type: - namedType: io.k8s.api.batch.v1.JobTemplateSpec - default: {} - - name: schedule - type: - scalar: string - default: "" - - name: startingDeadlineSeconds - type: - scalar: numeric - - name: successfulJobsHistoryLimit - type: - scalar: numeric - - name: suspend - type: - scalar: boolean - - name: timeZone - type: - scalar: string -- name: io.k8s.api.batch.v1.CronJobStatus - map: - fields: - - name: active - type: - list: - elementType: - namedType: io.k8s.api.core.v1.ObjectReference - elementRelationship: atomic - - name: lastScheduleTime - type: - namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time - - name: lastSuccessfulTime - type: - namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time -- name: io.k8s.api.batch.v1.Job - map: - fields: - - name: apiVersion - type: - scalar: string - - name: kind + scalar: string + - name: kind type: scalar: string - name: metadata @@ -4478,6 +4030,99 @@ var schemaYAML = typed.YAMLObject(`types: type: scalar: string default: "" +- name: io.k8s.api.certificates.v1beta1.PodCertificateRequest + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.certificates.v1beta1.PodCertificateRequestSpec + default: {} + - name: status + type: + namedType: io.k8s.api.certificates.v1beta1.PodCertificateRequestStatus + default: {} +- name: io.k8s.api.certificates.v1beta1.PodCertificateRequestSpec + map: + fields: + - name: maxExpirationSeconds + type: + scalar: numeric + default: 86400 + - name: nodeName + type: + scalar: string + default: "" + - name: nodeUID + type: + scalar: string + default: "" + - name: pkixPublicKey + type: + scalar: string + - name: podName + type: + scalar: string + default: "" + - name: podUID + type: + scalar: string + default: "" + - name: proofOfPossession + type: + scalar: string + - name: serviceAccountName + type: + scalar: string + default: "" + - name: serviceAccountUID + type: + scalar: string + default: "" + - name: signerName + type: + scalar: string + default: "" + - name: stubPKCS10Request + type: + scalar: string + - name: unverifiedUserAnnotations + type: + map: + elementType: + scalar: string +- name: io.k8s.api.certificates.v1beta1.PodCertificateRequestStatus + map: + fields: + - name: beginRefreshAt + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + - name: certificateChain + type: + scalar: string + - name: conditions + type: + list: + elementType: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Condition + elementRelationship: associative + keys: + - type + - name: notAfter + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + - name: notBefore + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time - name: io.k8s.api.coordination.v1.Lease map: fields: @@ -5145,6 +4790,12 @@ var schemaYAML = typed.YAMLObject(`types: - name: restartPolicy type: scalar: string + - name: restartPolicyRules + type: + list: + elementType: + namedType: io.k8s.api.core.v1.ContainerRestartRule + elementRelationship: atomic - name: securityContext type: namedType: io.k8s.api.core.v1.SecurityContext @@ -5185,6 +4836,21 @@ var schemaYAML = typed.YAMLObject(`types: - name: workingDir type: scalar: string +- name: io.k8s.api.core.v1.ContainerExtendedResourceRequest + map: + fields: + - name: containerName + type: + scalar: string + default: "" + - name: requestName + type: + scalar: string + default: "" + - name: resourceName + type: + scalar: string + default: "" - name: io.k8s.api.core.v1.ContainerImage map: fields: @@ -5228,6 +4894,27 @@ var schemaYAML = typed.YAMLObject(`types: type: scalar: string default: "" +- name: io.k8s.api.core.v1.ContainerRestartRule + map: + fields: + - name: action + type: + scalar: string + - name: exitCodes + type: + namedType: io.k8s.api.core.v1.ContainerRestartRuleOnExitCodes +- name: io.k8s.api.core.v1.ContainerRestartRuleOnExitCodes + map: + fields: + - name: operator + type: + scalar: string + - name: values + type: + list: + elementType: + scalar: numeric + elementRelationship: associative - name: io.k8s.api.core.v1.ContainerState map: fields: @@ -5514,6 +5201,9 @@ var schemaYAML = typed.YAMLObject(`types: - name: fieldRef type: namedType: io.k8s.api.core.v1.ObjectFieldSelector + - name: fileKeyRef + type: + namedType: io.k8s.api.core.v1.FileKeySelector - name: resourceFieldRef type: namedType: io.k8s.api.core.v1.ResourceFieldSelector @@ -5590,6 +5280,12 @@ var schemaYAML = typed.YAMLObject(`types: - name: restartPolicy type: scalar: string + - name: restartPolicyRules + type: + list: + elementType: + namedType: io.k8s.api.core.v1.ContainerRestartRule + elementRelationship: atomic - name: securityContext type: namedType: io.k8s.api.core.v1.SecurityContext @@ -5749,6 +5445,26 @@ var schemaYAML = typed.YAMLObject(`types: elementType: scalar: string elementRelationship: atomic +- name: io.k8s.api.core.v1.FileKeySelector + map: + fields: + - name: key + type: + scalar: string + default: "" + - name: optional + type: + scalar: boolean + default: false + - name: path + type: + scalar: string + default: "" + - name: volumeName + type: + scalar: string + default: "" + elementRelationship: atomic - name: io.k8s.api.core.v1.FlexPersistentVolumeSource map: fields: @@ -6028,6 +5744,12 @@ var schemaYAML = typed.YAMLObject(`types: - name: reference type: scalar: string +- name: io.k8s.api.core.v1.ImageVolumeStatus + map: + fields: + - name: imageRef + type: + scalar: string - name: io.k8s.api.core.v1.KeyToPath map: fields: @@ -6321,6 +6043,24 @@ var schemaYAML = typed.YAMLObject(`types: - name: requiredDuringSchedulingIgnoredDuringExecution type: namedType: io.k8s.api.core.v1.NodeSelector +- name: io.k8s.api.core.v1.NodeAllocatableResourceClaimStatus + map: + fields: + - name: containers + type: + list: + elementType: + scalar: string + elementRelationship: associative + - name: resourceClaimName + type: + scalar: string + default: "" + - name: resources + type: + map: + elementType: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity - name: io.k8s.api.core.v1.NodeCondition map: fields: @@ -6506,6 +6246,12 @@ var schemaYAML = typed.YAMLObject(`types: type: namedType: io.k8s.api.core.v1.NodeDaemonEndpoints default: {} + - name: declaredFeatures + type: + list: + elementType: + scalar: string + elementRelationship: atomic - name: features type: namedType: io.k8s.api.core.v1.NodeFeatures @@ -7002,6 +6748,32 @@ var schemaYAML = typed.YAMLObject(`types: elementType: namedType: io.k8s.api.core.v1.PodAffinityTerm elementRelationship: atomic +- name: io.k8s.api.core.v1.PodCertificateProjection + map: + fields: + - name: certificateChainPath + type: + scalar: string + - name: credentialBundlePath + type: + scalar: string + - name: keyPath + type: + scalar: string + - name: keyType + type: + scalar: string + - name: maxExpirationSeconds + type: + scalar: numeric + - name: signerName + type: + scalar: string + - name: userAnnotations + type: + map: + elementType: + scalar: string - name: io.k8s.api.core.v1.PodCondition map: fields: @@ -7058,6 +6830,19 @@ var schemaYAML = typed.YAMLObject(`types: - name: value type: scalar: string +- name: io.k8s.api.core.v1.PodExtendedResourceClaimStatus + map: + fields: + - name: requestMappings + type: + list: + elementType: + namedType: io.k8s.api.core.v1.ContainerExtendedResourceRequest + elementRelationship: atomic + - name: resourceClaimName + type: + scalar: string + default: "" - name: io.k8s.api.core.v1.PodIP map: fields: @@ -7109,6 +6894,16 @@ var schemaYAML = typed.YAMLObject(`types: type: scalar: string default: "" +- name: io.k8s.api.core.v1.PodSchedulingGroup + map: + fields: + - name: podGroupName + type: + scalar: string + unions: + - fields: + - fieldName: podGroupName + discriminatorValue: PodGroupName - name: io.k8s.api.core.v1.PodSecurityContext map: fields: @@ -7217,6 +7012,9 @@ var schemaYAML = typed.YAMLObject(`types: - name: hostname type: scalar: string + - name: hostnameOverride + type: + scalar: string - name: imagePullSecrets type: list: @@ -7293,6 +7091,9 @@ var schemaYAML = typed.YAMLObject(`types: elementRelationship: associative keys: - name + - name: schedulingGroup + type: + namedType: io.k8s.api.core.v1.PodSchedulingGroup - name: securityContext type: namedType: io.k8s.api.core.v1.PodSecurityContext @@ -7340,6 +7141,11 @@ var schemaYAML = typed.YAMLObject(`types: - name: io.k8s.api.core.v1.PodStatus map: fields: + - name: allocatedResources + type: + map: + elementType: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity - name: conditions type: list: @@ -7360,6 +7166,9 @@ var schemaYAML = typed.YAMLObject(`types: elementType: namedType: io.k8s.api.core.v1.ContainerStatus elementRelationship: atomic + - name: extendedResourceClaimStatus + type: + namedType: io.k8s.api.core.v1.PodExtendedResourceClaimStatus - name: hostIP type: scalar: string @@ -7378,6 +7187,12 @@ var schemaYAML = typed.YAMLObject(`types: - name: message type: scalar: string + - name: nodeAllocatableResourceClaimStatuses + type: + list: + elementType: + namedType: io.k8s.api.core.v1.NodeAllocatableResourceClaimStatus + elementRelationship: atomic - name: nominatedNodeName type: scalar: string @@ -7415,6 +7230,9 @@ var schemaYAML = typed.YAMLObject(`types: elementRelationship: associative keys: - name + - name: resources + type: + namedType: io.k8s.api.core.v1.ResourceRequirements - name: startTime type: namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time @@ -7738,6 +7556,9 @@ var schemaYAML = typed.YAMLObject(`types: - name: health type: scalar: string + - name: message + type: + scalar: string - name: resourceID type: scalar: string @@ -8626,6 +8447,9 @@ var schemaYAML = typed.YAMLObject(`types: - name: recursiveReadOnly type: scalar: string + - name: volumeStatus + type: + namedType: io.k8s.api.core.v1.VolumeStatus - name: io.k8s.api.core.v1.VolumeNodeAffinity map: fields: @@ -8644,6 +8468,9 @@ var schemaYAML = typed.YAMLObject(`types: - name: downwardAPI type: namedType: io.k8s.api.core.v1.DownwardAPIProjection + - name: podCertificate + type: + namedType: io.k8s.api.core.v1.PodCertificateProjection - name: secret type: namedType: io.k8s.api.core.v1.SecretProjection @@ -8663,6 +8490,12 @@ var schemaYAML = typed.YAMLObject(`types: map: elementType: namedType: io.k8s.apimachinery.pkg.api.resource.Quantity +- name: io.k8s.api.core.v1.VolumeStatus + map: + fields: + - name: image + type: + namedType: io.k8s.api.core.v1.ImageVolumeStatus - name: io.k8s.api.core.v1.VsphereVirtualDiskVolumeSource map: fields: @@ -11426,85 +11259,6 @@ var schemaYAML = typed.YAMLObject(`types: elementRelationship: associative keys: - type -- name: io.k8s.api.networking.v1alpha1.IPAddress - map: - fields: - - name: apiVersion - type: - scalar: string - - name: kind - type: - scalar: string - - name: metadata - type: - namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta - default: {} - - name: spec - type: - namedType: io.k8s.api.networking.v1alpha1.IPAddressSpec - default: {} -- name: io.k8s.api.networking.v1alpha1.IPAddressSpec - map: - fields: - - name: parentRef - type: - namedType: io.k8s.api.networking.v1alpha1.ParentReference -- name: io.k8s.api.networking.v1alpha1.ParentReference - map: - fields: - - name: group - type: - scalar: string - - name: name - type: - scalar: string - - name: namespace - type: - scalar: string - - name: resource - type: - scalar: string -- name: io.k8s.api.networking.v1alpha1.ServiceCIDR - map: - fields: - - name: apiVersion - type: - scalar: string - - name: kind - type: - scalar: string - - name: metadata - type: - namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta - default: {} - - name: spec - type: - namedType: io.k8s.api.networking.v1alpha1.ServiceCIDRSpec - default: {} - - name: status - type: - namedType: io.k8s.api.networking.v1alpha1.ServiceCIDRStatus - default: {} -- name: io.k8s.api.networking.v1alpha1.ServiceCIDRSpec - map: - fields: - - name: cidrs - type: - list: - elementType: - scalar: string - elementRelationship: atomic -- name: io.k8s.api.networking.v1alpha1.ServiceCIDRStatus - map: - fields: - - name: conditions - type: - list: - elementType: - namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Condition - elementRelationship: associative - keys: - - type - name: io.k8s.api.networking.v1beta1.HTTPIngressPath map: fields: @@ -12576,7 +12330,7 @@ var schemaYAML = typed.YAMLObject(`types: - name: namespace type: scalar: string -- name: io.k8s.api.resource.v1alpha3.AllocatedDeviceStatus +- name: io.k8s.api.resource.v1.AllocatedDeviceStatus map: fields: - name: conditions @@ -12600,96 +12354,154 @@ var schemaYAML = typed.YAMLObject(`types: default: "" - name: networkData type: - namedType: io.k8s.api.resource.v1alpha3.NetworkDeviceData + namedType: io.k8s.api.resource.v1.NetworkDeviceData - name: pool type: scalar: string default: "" -- name: io.k8s.api.resource.v1alpha3.AllocationResult + - name: shareID + type: + scalar: string +- name: io.k8s.api.resource.v1.AllocationResult map: fields: + - name: allocationTimestamp + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time - name: devices type: - namedType: io.k8s.api.resource.v1alpha3.DeviceAllocationResult + namedType: io.k8s.api.resource.v1.DeviceAllocationResult default: {} - name: nodeSelector type: namedType: io.k8s.api.core.v1.NodeSelector -- name: io.k8s.api.resource.v1alpha3.BasicDevice +- name: io.k8s.api.resource.v1.CELDeviceSelector map: fields: - - name: allNodes + - name: expression type: - scalar: boolean - - name: attributes + scalar: string + default: "" +- name: io.k8s.api.resource.v1.CapacityRequestPolicy + map: + fields: + - name: default type: - map: - elementType: - namedType: io.k8s.api.resource.v1alpha3.DeviceAttribute - - name: capacity + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity + - name: validRange type: - map: - elementType: - namedType: io.k8s.apimachinery.pkg.api.resource.Quantity - - name: consumesCounters + namedType: io.k8s.api.resource.v1.CapacityRequestPolicyRange + - name: validValues type: list: elementType: - namedType: io.k8s.api.resource.v1alpha3.DeviceCounterConsumption + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity elementRelationship: atomic - - name: nodeName +- name: io.k8s.api.resource.v1.CapacityRequestPolicyRange + map: + fields: + - name: max type: - scalar: string - - name: nodeSelector + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity + - name: min type: - namedType: io.k8s.api.core.v1.NodeSelector - - name: taints + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity + - name: step type: - list: - elementType: - namedType: io.k8s.api.resource.v1alpha3.DeviceTaint - elementRelationship: atomic -- name: io.k8s.api.resource.v1alpha3.CELDeviceSelector + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity +- name: io.k8s.api.resource.v1.CapacityRequirements map: fields: - - name: expression + - name: requests type: - scalar: string - default: "" -- name: io.k8s.api.resource.v1alpha3.Counter + map: + elementType: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity +- name: io.k8s.api.resource.v1.Counter map: fields: - name: value type: namedType: io.k8s.apimachinery.pkg.api.resource.Quantity -- name: io.k8s.api.resource.v1alpha3.CounterSet +- name: io.k8s.api.resource.v1.CounterSet map: fields: - name: counters type: map: elementType: - namedType: io.k8s.api.resource.v1alpha3.Counter + namedType: io.k8s.api.resource.v1.Counter - name: name type: scalar: string default: "" -- name: io.k8s.api.resource.v1alpha3.Device +- name: io.k8s.api.resource.v1.Device map: fields: - - name: basic + - name: allNodes + type: + scalar: boolean + - name: allowMultipleAllocations + type: + scalar: boolean + - name: attributes + type: + map: + elementType: + namedType: io.k8s.api.resource.v1.DeviceAttribute + - name: bindingConditions + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: bindingFailureConditions + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: bindsToNode type: - namedType: io.k8s.api.resource.v1alpha3.BasicDevice + scalar: boolean + - name: capacity + type: + map: + elementType: + namedType: io.k8s.api.resource.v1.DeviceCapacity + - name: consumesCounters + type: + list: + elementType: + namedType: io.k8s.api.resource.v1.DeviceCounterConsumption + elementRelationship: atomic - name: name type: scalar: string default: "" -- name: io.k8s.api.resource.v1alpha3.DeviceAllocationConfiguration + - name: nodeAllocatableResourceMappings + type: + map: + elementType: + namedType: io.k8s.api.resource.v1.NodeAllocatableResourceMapping + - name: nodeName + type: + scalar: string + - name: nodeSelector + type: + namedType: io.k8s.api.core.v1.NodeSelector + - name: taints + type: + list: + elementType: + namedType: io.k8s.api.resource.v1.DeviceTaint + elementRelationship: atomic +- name: io.k8s.api.resource.v1.DeviceAllocationConfiguration map: fields: - name: opaque type: - namedType: io.k8s.api.resource.v1alpha3.OpaqueDeviceConfiguration + namedType: io.k8s.api.resource.v1.OpaqueDeviceConfiguration - name: requests type: list: @@ -12700,70 +12512,103 @@ var schemaYAML = typed.YAMLObject(`types: type: scalar: string default: "" -- name: io.k8s.api.resource.v1alpha3.DeviceAllocationResult +- name: io.k8s.api.resource.v1.DeviceAllocationResult map: fields: - name: config type: list: elementType: - namedType: io.k8s.api.resource.v1alpha3.DeviceAllocationConfiguration + namedType: io.k8s.api.resource.v1.DeviceAllocationConfiguration elementRelationship: atomic - name: results type: list: elementType: - namedType: io.k8s.api.resource.v1alpha3.DeviceRequestAllocationResult + namedType: io.k8s.api.resource.v1.DeviceRequestAllocationResult + elementRelationship: atomic +- name: io.k8s.api.resource.v1.DeviceAttribute + map: + fields: + - name: bool + type: + scalar: boolean + - name: bools + type: + list: + elementType: + scalar: boolean + elementRelationship: atomic + - name: int + type: + scalar: numeric + - name: ints + type: + list: + elementType: + scalar: numeric + elementRelationship: atomic + - name: string + type: + scalar: string + - name: strings + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: version + type: + scalar: string + - name: versions + type: + list: + elementType: + scalar: string elementRelationship: atomic -- name: io.k8s.api.resource.v1alpha3.DeviceAttribute +- name: io.k8s.api.resource.v1.DeviceCapacity map: fields: - - name: bool - type: - scalar: boolean - - name: int - type: - scalar: numeric - - name: string + - name: requestPolicy type: - scalar: string - - name: version + namedType: io.k8s.api.resource.v1.CapacityRequestPolicy + - name: value type: - scalar: string -- name: io.k8s.api.resource.v1alpha3.DeviceClaim + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity +- name: io.k8s.api.resource.v1.DeviceClaim map: fields: - name: config type: list: elementType: - namedType: io.k8s.api.resource.v1alpha3.DeviceClaimConfiguration + namedType: io.k8s.api.resource.v1.DeviceClaimConfiguration elementRelationship: atomic - name: constraints type: list: elementType: - namedType: io.k8s.api.resource.v1alpha3.DeviceConstraint + namedType: io.k8s.api.resource.v1.DeviceConstraint elementRelationship: atomic - name: requests type: list: elementType: - namedType: io.k8s.api.resource.v1alpha3.DeviceRequest + namedType: io.k8s.api.resource.v1.DeviceRequest elementRelationship: atomic -- name: io.k8s.api.resource.v1alpha3.DeviceClaimConfiguration +- name: io.k8s.api.resource.v1.DeviceClaimConfiguration map: fields: - name: opaque type: - namedType: io.k8s.api.resource.v1alpha3.OpaqueDeviceConfiguration + namedType: io.k8s.api.resource.v1.OpaqueDeviceConfiguration - name: requests type: list: elementType: scalar: string elementRelationship: atomic -- name: io.k8s.api.resource.v1alpha3.DeviceClass +- name: io.k8s.api.resource.v1.DeviceClass map: fields: - name: apiVersion @@ -12778,32 +12623,38 @@ var schemaYAML = typed.YAMLObject(`types: default: {} - name: spec type: - namedType: io.k8s.api.resource.v1alpha3.DeviceClassSpec + namedType: io.k8s.api.resource.v1.DeviceClassSpec default: {} -- name: io.k8s.api.resource.v1alpha3.DeviceClassConfiguration +- name: io.k8s.api.resource.v1.DeviceClassConfiguration map: fields: - name: opaque type: - namedType: io.k8s.api.resource.v1alpha3.OpaqueDeviceConfiguration -- name: io.k8s.api.resource.v1alpha3.DeviceClassSpec + namedType: io.k8s.api.resource.v1.OpaqueDeviceConfiguration +- name: io.k8s.api.resource.v1.DeviceClassSpec map: fields: - name: config type: list: elementType: - namedType: io.k8s.api.resource.v1alpha3.DeviceClassConfiguration + namedType: io.k8s.api.resource.v1.DeviceClassConfiguration elementRelationship: atomic + - name: extendedResourceName + type: + scalar: string - name: selectors type: list: elementType: - namedType: io.k8s.api.resource.v1alpha3.DeviceSelector + namedType: io.k8s.api.resource.v1.DeviceSelector elementRelationship: atomic -- name: io.k8s.api.resource.v1alpha3.DeviceConstraint +- name: io.k8s.api.resource.v1.DeviceConstraint map: fields: + - name: distinctAttribute + type: + scalar: string - name: matchAttribute type: scalar: string @@ -12813,7 +12664,7 @@ var schemaYAML = typed.YAMLObject(`types: elementType: scalar: string elementRelationship: atomic -- name: io.k8s.api.resource.v1alpha3.DeviceCounterConsumption +- name: io.k8s.api.resource.v1.DeviceCounterConsumption map: fields: - name: counterSet @@ -12824,51 +12675,46 @@ var schemaYAML = typed.YAMLObject(`types: type: map: elementType: - namedType: io.k8s.api.resource.v1alpha3.Counter -- name: io.k8s.api.resource.v1alpha3.DeviceRequest + namedType: io.k8s.api.resource.v1.Counter +- name: io.k8s.api.resource.v1.DeviceRequest map: fields: - - name: adminAccess - type: - scalar: boolean - - name: allocationMode - type: - scalar: string - - name: count - type: - scalar: numeric - - name: deviceClassName + - name: exactly type: - scalar: string - default: "" + namedType: io.k8s.api.resource.v1.ExactDeviceRequest - name: firstAvailable type: list: elementType: - namedType: io.k8s.api.resource.v1alpha3.DeviceSubRequest + namedType: io.k8s.api.resource.v1.DeviceSubRequest elementRelationship: atomic - name: name type: scalar: string default: "" - - name: selectors +- name: io.k8s.api.resource.v1.DeviceRequestAllocationResult + map: + fields: + - name: adminAccess + type: + scalar: boolean + - name: bindingConditions type: list: elementType: - namedType: io.k8s.api.resource.v1alpha3.DeviceSelector + scalar: string elementRelationship: atomic - - name: tolerations + - name: bindingFailureConditions type: list: elementType: - namedType: io.k8s.api.resource.v1alpha3.DeviceToleration + scalar: string elementRelationship: atomic -- name: io.k8s.api.resource.v1alpha3.DeviceRequestAllocationResult - map: - fields: - - name: adminAccess + - name: consumedCapacity type: - scalar: boolean + map: + elementType: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity - name: device type: scalar: string @@ -12885,24 +12731,30 @@ var schemaYAML = typed.YAMLObject(`types: type: scalar: string default: "" + - name: shareID + type: + scalar: string - name: tolerations type: list: elementType: - namedType: io.k8s.api.resource.v1alpha3.DeviceToleration + namedType: io.k8s.api.resource.v1.DeviceToleration elementRelationship: atomic -- name: io.k8s.api.resource.v1alpha3.DeviceSelector +- name: io.k8s.api.resource.v1.DeviceSelector map: fields: - name: cel type: - namedType: io.k8s.api.resource.v1alpha3.CELDeviceSelector -- name: io.k8s.api.resource.v1alpha3.DeviceSubRequest + namedType: io.k8s.api.resource.v1.CELDeviceSelector +- name: io.k8s.api.resource.v1.DeviceSubRequest map: fields: - name: allocationMode type: scalar: string + - name: capacity + type: + namedType: io.k8s.api.resource.v1.CapacityRequirements - name: count type: scalar: numeric @@ -12918,15 +12770,15 @@ var schemaYAML = typed.YAMLObject(`types: type: list: elementType: - namedType: io.k8s.api.resource.v1alpha3.DeviceSelector + namedType: io.k8s.api.resource.v1.DeviceSelector elementRelationship: atomic - name: tolerations type: list: elementType: - namedType: io.k8s.api.resource.v1alpha3.DeviceToleration + namedType: io.k8s.api.resource.v1.DeviceToleration elementRelationship: atomic -- name: io.k8s.api.resource.v1alpha3.DeviceTaint +- name: io.k8s.api.resource.v1.DeviceTaint map: fields: - name: effect @@ -12943,74 +12795,57 @@ var schemaYAML = typed.YAMLObject(`types: - name: value type: scalar: string -- name: io.k8s.api.resource.v1alpha3.DeviceTaintRule +- name: io.k8s.api.resource.v1.DeviceToleration map: fields: - - name: apiVersion + - name: effect type: scalar: string - - name: kind + - name: key type: scalar: string - - name: metadata - type: - namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta - default: {} - - name: spec + - name: operator type: - namedType: io.k8s.api.resource.v1alpha3.DeviceTaintRuleSpec - default: {} -- name: io.k8s.api.resource.v1alpha3.DeviceTaintRuleSpec - map: - fields: - - name: deviceSelector + scalar: string + default: Equal + - name: tolerationSeconds type: - namedType: io.k8s.api.resource.v1alpha3.DeviceTaintSelector - - name: taint + scalar: numeric + - name: value type: - namedType: io.k8s.api.resource.v1alpha3.DeviceTaint - default: {} -- name: io.k8s.api.resource.v1alpha3.DeviceTaintSelector + scalar: string +- name: io.k8s.api.resource.v1.ExactDeviceRequest map: fields: - - name: device + - name: adminAccess type: - scalar: string - - name: deviceClassName + scalar: boolean + - name: allocationMode type: scalar: string - - name: driver + - name: capacity type: - scalar: string - - name: pool + namedType: io.k8s.api.resource.v1.CapacityRequirements + - name: count + type: + scalar: numeric + - name: deviceClassName type: scalar: string + default: "" - name: selectors type: list: elementType: - namedType: io.k8s.api.resource.v1alpha3.DeviceSelector + namedType: io.k8s.api.resource.v1.DeviceSelector elementRelationship: atomic -- name: io.k8s.api.resource.v1alpha3.DeviceToleration - map: - fields: - - name: effect - type: - scalar: string - - name: key - type: - scalar: string - - name: operator - type: - scalar: string - default: Equal - - name: tolerationSeconds - type: - scalar: numeric - - name: value + - name: tolerations type: - scalar: string -- name: io.k8s.api.resource.v1alpha3.NetworkDeviceData + list: + elementType: + namedType: io.k8s.api.resource.v1.DeviceToleration + elementRelationship: atomic +- name: io.k8s.api.resource.v1.NetworkDeviceData map: fields: - name: hardwareAddress @@ -13025,7 +12860,16 @@ var schemaYAML = typed.YAMLObject(`types: elementType: scalar: string elementRelationship: atomic -- name: io.k8s.api.resource.v1alpha3.OpaqueDeviceConfiguration +- name: io.k8s.api.resource.v1.NodeAllocatableResourceMapping + map: + fields: + - name: allocationMultiplier + type: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity + - name: capacityKey + type: + scalar: string +- name: io.k8s.api.resource.v1.OpaqueDeviceConfiguration map: fields: - name: driver @@ -13035,7 +12879,7 @@ var schemaYAML = typed.YAMLObject(`types: - name: parameters type: namedType: __untyped_atomic_ -- name: io.k8s.api.resource.v1alpha3.ResourceClaim +- name: io.k8s.api.resource.v1.ResourceClaim map: fields: - name: apiVersion @@ -13050,13 +12894,13 @@ var schemaYAML = typed.YAMLObject(`types: default: {} - name: spec type: - namedType: io.k8s.api.resource.v1alpha3.ResourceClaimSpec + namedType: io.k8s.api.resource.v1.ResourceClaimSpec default: {} - name: status type: - namedType: io.k8s.api.resource.v1alpha3.ResourceClaimStatus + namedType: io.k8s.api.resource.v1.ResourceClaimStatus default: {} -- name: io.k8s.api.resource.v1alpha3.ResourceClaimConsumerReference +- name: io.k8s.api.resource.v1.ResourceClaimConsumerReference map: fields: - name: apiGroup @@ -13074,38 +12918,39 @@ var schemaYAML = typed.YAMLObject(`types: type: scalar: string default: "" -- name: io.k8s.api.resource.v1alpha3.ResourceClaimSpec +- name: io.k8s.api.resource.v1.ResourceClaimSpec map: fields: - name: devices type: - namedType: io.k8s.api.resource.v1alpha3.DeviceClaim + namedType: io.k8s.api.resource.v1.DeviceClaim default: {} -- name: io.k8s.api.resource.v1alpha3.ResourceClaimStatus +- name: io.k8s.api.resource.v1.ResourceClaimStatus map: fields: - name: allocation type: - namedType: io.k8s.api.resource.v1alpha3.AllocationResult + namedType: io.k8s.api.resource.v1.AllocationResult - name: devices type: list: elementType: - namedType: io.k8s.api.resource.v1alpha3.AllocatedDeviceStatus + namedType: io.k8s.api.resource.v1.AllocatedDeviceStatus elementRelationship: associative keys: - driver - device - pool + - shareID - name: reservedFor type: list: elementType: - namedType: io.k8s.api.resource.v1alpha3.ResourceClaimConsumerReference + namedType: io.k8s.api.resource.v1.ResourceClaimConsumerReference elementRelationship: associative keys: - uid -- name: io.k8s.api.resource.v1alpha3.ResourceClaimTemplate +- name: io.k8s.api.resource.v1.ResourceClaimTemplate map: fields: - name: apiVersion @@ -13120,9 +12965,9 @@ var schemaYAML = typed.YAMLObject(`types: default: {} - name: spec type: - namedType: io.k8s.api.resource.v1alpha3.ResourceClaimTemplateSpec + namedType: io.k8s.api.resource.v1.ResourceClaimTemplateSpec default: {} -- name: io.k8s.api.resource.v1alpha3.ResourceClaimTemplateSpec +- name: io.k8s.api.resource.v1.ResourceClaimTemplateSpec map: fields: - name: metadata @@ -13131,9 +12976,9 @@ var schemaYAML = typed.YAMLObject(`types: default: {} - name: spec type: - namedType: io.k8s.api.resource.v1alpha3.ResourceClaimSpec + namedType: io.k8s.api.resource.v1.ResourceClaimSpec default: {} -- name: io.k8s.api.resource.v1alpha3.ResourcePool +- name: io.k8s.api.resource.v1.ResourcePool map: fields: - name: generation @@ -13148,7 +12993,7 @@ var schemaYAML = typed.YAMLObject(`types: type: scalar: numeric default: 0 -- name: io.k8s.api.resource.v1alpha3.ResourceSlice +- name: io.k8s.api.resource.v1.ResourceSlice map: fields: - name: apiVersion @@ -13163,9 +13008,9 @@ var schemaYAML = typed.YAMLObject(`types: default: {} - name: spec type: - namedType: io.k8s.api.resource.v1alpha3.ResourceSliceSpec + namedType: io.k8s.api.resource.v1.ResourceSliceSpec default: {} -- name: io.k8s.api.resource.v1alpha3.ResourceSliceSpec +- name: io.k8s.api.resource.v1.ResourceSliceSpec map: fields: - name: allNodes @@ -13175,30 +13020,189 @@ var schemaYAML = typed.YAMLObject(`types: type: list: elementType: - namedType: io.k8s.api.resource.v1alpha3.Device + namedType: io.k8s.api.resource.v1.Device + elementRelationship: atomic + - name: driver + type: + scalar: string + default: "" + - name: nodeName + type: + scalar: string + - name: nodeSelector + type: + namedType: io.k8s.api.core.v1.NodeSelector + - name: perDeviceNodeSelection + type: + scalar: boolean + - name: pool + type: + namedType: io.k8s.api.resource.v1.ResourcePool + default: {} + - name: sharedCounters + type: + list: + elementType: + namedType: io.k8s.api.resource.v1.CounterSet elementRelationship: atomic +- name: io.k8s.api.resource.v1alpha3.DeviceTaint + map: + fields: + - name: effect + type: + scalar: string + default: "" + - name: key + type: + scalar: string + default: "" + - name: timeAdded + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time + - name: value + type: + scalar: string +- name: io.k8s.api.resource.v1alpha3.DeviceTaintRule + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.resource.v1alpha3.DeviceTaintRuleSpec + default: {} + - name: status + type: + namedType: io.k8s.api.resource.v1alpha3.DeviceTaintRuleStatus + default: {} +- name: io.k8s.api.resource.v1alpha3.DeviceTaintRuleSpec + map: + fields: + - name: deviceSelector + type: + namedType: io.k8s.api.resource.v1alpha3.DeviceTaintSelector + - name: taint + type: + namedType: io.k8s.api.resource.v1alpha3.DeviceTaint + default: {} +- name: io.k8s.api.resource.v1alpha3.DeviceTaintRuleStatus + map: + fields: + - name: conditions + type: + list: + elementType: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Condition + elementRelationship: associative + keys: + - type +- name: io.k8s.api.resource.v1alpha3.DeviceTaintSelector + map: + fields: + - name: device + type: + scalar: string + - name: driver + type: + scalar: string + - name: pool + type: + scalar: string +- name: io.k8s.api.resource.v1alpha3.PoolStatus + map: + fields: + - name: allocatedDevices + type: + scalar: numeric + - name: availableDevices + type: + scalar: numeric + - name: driver + type: + scalar: string + - name: generation + type: + scalar: numeric + default: 0 + - name: nodeName + type: + scalar: string + - name: poolName + type: + scalar: string + - name: resourceSliceCount + type: + scalar: numeric + - name: totalDevices + type: + scalar: numeric + - name: unavailableDevices + type: + scalar: numeric + - name: validationError + type: + scalar: string +- name: io.k8s.api.resource.v1alpha3.ResourcePoolStatusRequest + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.resource.v1alpha3.ResourcePoolStatusRequestSpec + default: {} + - name: status + type: + namedType: io.k8s.api.resource.v1alpha3.ResourcePoolStatusRequestStatus +- name: io.k8s.api.resource.v1alpha3.ResourcePoolStatusRequestSpec + map: + fields: - name: driver type: scalar: string default: "" - - name: nodeName + - name: limit type: - scalar: string - - name: nodeSelector + scalar: numeric + default: 100 + - name: poolName type: - namedType: io.k8s.api.core.v1.NodeSelector - - name: perDeviceNodeSelection + scalar: string +- name: io.k8s.api.resource.v1alpha3.ResourcePoolStatusRequestStatus + map: + fields: + - name: conditions type: - scalar: boolean - - name: pool + list: + elementType: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Condition + elementRelationship: associative + keys: + - type + - name: poolCount type: - namedType: io.k8s.api.resource.v1alpha3.ResourcePool - default: {} - - name: sharedCounters + scalar: numeric + - name: pools type: list: elementType: - namedType: io.k8s.api.resource.v1alpha3.CounterSet + namedType: io.k8s.api.resource.v1alpha3.PoolStatus elementRelationship: atomic - name: io.k8s.api.resource.v1beta1.AllocatedDeviceStatus map: @@ -13229,9 +13233,15 @@ var schemaYAML = typed.YAMLObject(`types: type: scalar: string default: "" + - name: shareID + type: + scalar: string - name: io.k8s.api.resource.v1beta1.AllocationResult map: fields: + - name: allocationTimestamp + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time - name: devices type: namedType: io.k8s.api.resource.v1beta1.DeviceAllocationResult @@ -13245,11 +13255,29 @@ var schemaYAML = typed.YAMLObject(`types: - name: allNodes type: scalar: boolean + - name: allowMultipleAllocations + type: + scalar: boolean - name: attributes type: map: elementType: namedType: io.k8s.api.resource.v1beta1.DeviceAttribute + - name: bindingConditions + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: bindingFailureConditions + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: bindsToNode + type: + scalar: boolean - name: capacity type: map: @@ -13261,6 +13289,11 @@ var schemaYAML = typed.YAMLObject(`types: elementType: namedType: io.k8s.api.resource.v1beta1.DeviceCounterConsumption elementRelationship: atomic + - name: nodeAllocatableResourceMappings + type: + map: + elementType: + namedType: io.k8s.api.resource.v1beta1.NodeAllocatableResourceMapping - name: nodeName type: scalar: string @@ -13280,6 +13313,41 @@ var schemaYAML = typed.YAMLObject(`types: type: scalar: string default: "" +- name: io.k8s.api.resource.v1beta1.CapacityRequestPolicy + map: + fields: + - name: default + type: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity + - name: validRange + type: + namedType: io.k8s.api.resource.v1beta1.CapacityRequestPolicyRange + - name: validValues + type: + list: + elementType: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity + elementRelationship: atomic +- name: io.k8s.api.resource.v1beta1.CapacityRequestPolicyRange + map: + fields: + - name: max + type: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity + - name: min + type: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity + - name: step + type: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity +- name: io.k8s.api.resource.v1beta1.CapacityRequirements + map: + fields: + - name: requests + type: + map: + elementType: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity - name: io.k8s.api.resource.v1beta1.Counter map: fields: @@ -13345,18 +13413,45 @@ var schemaYAML = typed.YAMLObject(`types: - name: bool type: scalar: boolean + - name: bools + type: + list: + elementType: + scalar: boolean + elementRelationship: atomic - name: int type: scalar: numeric + - name: ints + type: + list: + elementType: + scalar: numeric + elementRelationship: atomic - name: string type: scalar: string + - name: strings + type: + list: + elementType: + scalar: string + elementRelationship: atomic - name: version type: scalar: string + - name: versions + type: + list: + elementType: + scalar: string + elementRelationship: atomic - name: io.k8s.api.resource.v1beta1.DeviceCapacity map: fields: + - name: requestPolicy + type: + namedType: io.k8s.api.resource.v1beta1.CapacityRequestPolicy - name: value type: namedType: io.k8s.apimachinery.pkg.api.resource.Quantity @@ -13425,6 +13520,9 @@ var schemaYAML = typed.YAMLObject(`types: elementType: namedType: io.k8s.api.resource.v1beta1.DeviceClassConfiguration elementRelationship: atomic + - name: extendedResourceName + type: + scalar: string - name: selectors type: list: @@ -13434,6 +13532,9 @@ var schemaYAML = typed.YAMLObject(`types: - name: io.k8s.api.resource.v1beta1.DeviceConstraint map: fields: + - name: distinctAttribute + type: + scalar: string - name: matchAttribute type: scalar: string @@ -13464,6 +13565,9 @@ var schemaYAML = typed.YAMLObject(`types: - name: allocationMode type: scalar: string + - name: capacity + type: + namedType: io.k8s.api.resource.v1beta1.CapacityRequirements - name: count type: scalar: numeric @@ -13499,6 +13603,23 @@ var schemaYAML = typed.YAMLObject(`types: - name: adminAccess type: scalar: boolean + - name: bindingConditions + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: bindingFailureConditions + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: consumedCapacity + type: + map: + elementType: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity - name: device type: scalar: string @@ -13515,6 +13636,9 @@ var schemaYAML = typed.YAMLObject(`types: type: scalar: string default: "" + - name: shareID + type: + scalar: string - name: tolerations type: list: @@ -13533,6 +13657,9 @@ var schemaYAML = typed.YAMLObject(`types: - name: allocationMode type: scalar: string + - name: capacity + type: + namedType: io.k8s.api.resource.v1beta1.CapacityRequirements - name: count type: scalar: numeric @@ -13607,6 +13734,15 @@ var schemaYAML = typed.YAMLObject(`types: elementType: scalar: string elementRelationship: atomic +- name: io.k8s.api.resource.v1beta1.NodeAllocatableResourceMapping + map: + fields: + - name: allocationMultiplier + type: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity + - name: capacityKey + type: + scalar: string - name: io.k8s.api.resource.v1beta1.OpaqueDeviceConfiguration map: fields: @@ -13679,6 +13815,7 @@ var schemaYAML = typed.YAMLObject(`types: - driver - device - pool + - shareID - name: reservedFor type: list: @@ -13811,9 +13948,15 @@ var schemaYAML = typed.YAMLObject(`types: type: scalar: string default: "" + - name: shareID + type: + scalar: string - name: io.k8s.api.resource.v1beta2.AllocationResult map: fields: + - name: allocationTimestamp + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time - name: devices type: namedType: io.k8s.api.resource.v1beta2.DeviceAllocationResult @@ -13828,6 +13971,41 @@ var schemaYAML = typed.YAMLObject(`types: type: scalar: string default: "" +- name: io.k8s.api.resource.v1beta2.CapacityRequestPolicy + map: + fields: + - name: default + type: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity + - name: validRange + type: + namedType: io.k8s.api.resource.v1beta2.CapacityRequestPolicyRange + - name: validValues + type: + list: + elementType: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity + elementRelationship: atomic +- name: io.k8s.api.resource.v1beta2.CapacityRequestPolicyRange + map: + fields: + - name: max + type: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity + - name: min + type: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity + - name: step + type: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity +- name: io.k8s.api.resource.v1beta2.CapacityRequirements + map: + fields: + - name: requests + type: + map: + elementType: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity - name: io.k8s.api.resource.v1beta2.Counter map: fields: @@ -13852,11 +14030,29 @@ var schemaYAML = typed.YAMLObject(`types: - name: allNodes type: scalar: boolean + - name: allowMultipleAllocations + type: + scalar: boolean - name: attributes type: map: elementType: namedType: io.k8s.api.resource.v1beta2.DeviceAttribute + - name: bindingConditions + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: bindingFailureConditions + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: bindsToNode + type: + scalar: boolean - name: capacity type: map: @@ -13872,6 +14068,11 @@ var schemaYAML = typed.YAMLObject(`types: type: scalar: string default: "" + - name: nodeAllocatableResourceMappings + type: + map: + elementType: + namedType: io.k8s.api.resource.v1beta2.NodeAllocatableResourceMapping - name: nodeName type: scalar: string @@ -13921,18 +14122,45 @@ var schemaYAML = typed.YAMLObject(`types: - name: bool type: scalar: boolean + - name: bools + type: + list: + elementType: + scalar: boolean + elementRelationship: atomic - name: int type: scalar: numeric + - name: ints + type: + list: + elementType: + scalar: numeric + elementRelationship: atomic - name: string type: scalar: string + - name: strings + type: + list: + elementType: + scalar: string + elementRelationship: atomic - name: version type: scalar: string + - name: versions + type: + list: + elementType: + scalar: string + elementRelationship: atomic - name: io.k8s.api.resource.v1beta2.DeviceCapacity map: fields: + - name: requestPolicy + type: + namedType: io.k8s.api.resource.v1beta2.CapacityRequestPolicy - name: value type: namedType: io.k8s.apimachinery.pkg.api.resource.Quantity @@ -14001,6 +14229,9 @@ var schemaYAML = typed.YAMLObject(`types: elementType: namedType: io.k8s.api.resource.v1beta2.DeviceClassConfiguration elementRelationship: atomic + - name: extendedResourceName + type: + scalar: string - name: selectors type: list: @@ -14010,6 +14241,9 @@ var schemaYAML = typed.YAMLObject(`types: - name: io.k8s.api.resource.v1beta2.DeviceConstraint map: fields: + - name: distinctAttribute + type: + scalar: string - name: matchAttribute type: scalar: string @@ -14053,6 +14287,23 @@ var schemaYAML = typed.YAMLObject(`types: - name: adminAccess type: scalar: boolean + - name: bindingConditions + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: bindingFailureConditions + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: consumedCapacity + type: + map: + elementType: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity - name: device type: scalar: string @@ -14069,6 +14320,9 @@ var schemaYAML = typed.YAMLObject(`types: type: scalar: string default: "" + - name: shareID + type: + scalar: string - name: tolerations type: list: @@ -14087,6 +14341,9 @@ var schemaYAML = typed.YAMLObject(`types: - name: allocationMode type: scalar: string + - name: capacity + type: + namedType: io.k8s.api.resource.v1beta2.CapacityRequirements - name: count type: scalar: numeric @@ -14127,6 +14384,60 @@ var schemaYAML = typed.YAMLObject(`types: - name: value type: scalar: string +- name: io.k8s.api.resource.v1beta2.DeviceTaintRule + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.resource.v1beta2.DeviceTaintRuleSpec + default: {} + - name: status + type: + namedType: io.k8s.api.resource.v1beta2.DeviceTaintRuleStatus + default: {} +- name: io.k8s.api.resource.v1beta2.DeviceTaintRuleSpec + map: + fields: + - name: deviceSelector + type: + namedType: io.k8s.api.resource.v1beta2.DeviceTaintSelector + - name: taint + type: + namedType: io.k8s.api.resource.v1beta2.DeviceTaint + default: {} +- name: io.k8s.api.resource.v1beta2.DeviceTaintRuleStatus + map: + fields: + - name: conditions + type: + list: + elementType: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Condition + elementRelationship: associative + keys: + - type +- name: io.k8s.api.resource.v1beta2.DeviceTaintSelector + map: + fields: + - name: device + type: + scalar: string + - name: driver + type: + scalar: string + - name: pool + type: + scalar: string - name: io.k8s.api.resource.v1beta2.DeviceToleration map: fields: @@ -14155,6 +14466,9 @@ var schemaYAML = typed.YAMLObject(`types: - name: allocationMode type: scalar: string + - name: capacity + type: + namedType: io.k8s.api.resource.v1beta2.CapacityRequirements - name: count type: scalar: numeric @@ -14189,6 +14503,15 @@ var schemaYAML = typed.YAMLObject(`types: elementType: scalar: string elementRelationship: atomic +- name: io.k8s.api.resource.v1beta2.NodeAllocatableResourceMapping + map: + fields: + - name: allocationMultiplier + type: + namedType: io.k8s.apimachinery.pkg.api.resource.Quantity + - name: capacityKey + type: + scalar: string - name: io.k8s.api.resource.v1beta2.OpaqueDeviceConfiguration map: fields: @@ -14261,6 +14584,7 @@ var schemaYAML = typed.YAMLObject(`types: - driver - device - pool + - shareID - name: reservedFor type: list: @@ -14390,18 +14714,211 @@ var schemaYAML = typed.YAMLObject(`types: type: scalar: numeric default: 0 -- name: io.k8s.api.scheduling.v1alpha1.PriorityClass +- name: io.k8s.api.scheduling.v1alpha2.BasicSchedulingPolicy + map: + elementType: + scalar: untyped + list: + elementType: + namedType: __untyped_atomic_ + elementRelationship: atomic + map: + elementType: + namedType: __untyped_deduced_ + elementRelationship: separable +- name: io.k8s.api.scheduling.v1alpha2.GangSchedulingPolicy + map: + fields: + - name: minCount + type: + scalar: numeric + default: 0 +- name: io.k8s.api.scheduling.v1alpha2.PodGroup map: fields: - name: apiVersion type: scalar: string - - name: description + - name: kind type: scalar: string - - name: globalDefault + - name: metadata type: - scalar: boolean + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: io.k8s.api.scheduling.v1alpha2.PodGroupSpec + default: {} + - name: status + type: + namedType: io.k8s.api.scheduling.v1alpha2.PodGroupStatus + default: {} +- name: io.k8s.api.scheduling.v1alpha2.PodGroupResourceClaim + map: + fields: + - name: name + type: + scalar: string + default: "" + - name: resourceClaimName + type: + scalar: string + - name: resourceClaimTemplateName + type: + scalar: string +- name: io.k8s.api.scheduling.v1alpha2.PodGroupResourceClaimStatus + map: + fields: + - name: name + type: + scalar: string + default: "" + - name: resourceClaimName + type: + scalar: string +- name: io.k8s.api.scheduling.v1alpha2.PodGroupSchedulingConstraints + map: + fields: + - name: topology + type: + list: + elementType: + namedType: io.k8s.api.scheduling.v1alpha2.TopologyConstraint + elementRelationship: atomic +- name: io.k8s.api.scheduling.v1alpha2.PodGroupSchedulingPolicy + map: + fields: + - name: basic + type: + namedType: io.k8s.api.scheduling.v1alpha2.BasicSchedulingPolicy + - name: gang + type: + namedType: io.k8s.api.scheduling.v1alpha2.GangSchedulingPolicy + unions: + - fields: + - fieldName: basic + discriminatorValue: Basic + - fieldName: gang + discriminatorValue: Gang +- name: io.k8s.api.scheduling.v1alpha2.PodGroupSpec + map: + fields: + - name: disruptionMode + type: + scalar: string + default: Pod + - name: podGroupTemplateRef + type: + namedType: io.k8s.api.scheduling.v1alpha2.PodGroupTemplateReference + - name: priority + type: + scalar: numeric + - name: priorityClassName + type: + scalar: string + - name: resourceClaims + type: + list: + elementType: + namedType: io.k8s.api.scheduling.v1alpha2.PodGroupResourceClaim + elementRelationship: associative + keys: + - name + - name: schedulingConstraints + type: + namedType: io.k8s.api.scheduling.v1alpha2.PodGroupSchedulingConstraints + - name: schedulingPolicy + type: + namedType: io.k8s.api.scheduling.v1alpha2.PodGroupSchedulingPolicy + default: {} +- name: io.k8s.api.scheduling.v1alpha2.PodGroupStatus + map: + fields: + - name: conditions + type: + list: + elementType: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Condition + elementRelationship: associative + keys: + - type + - name: resourceClaimStatuses + type: + list: + elementType: + namedType: io.k8s.api.scheduling.v1alpha2.PodGroupResourceClaimStatus + elementRelationship: associative + keys: + - name +- name: io.k8s.api.scheduling.v1alpha2.PodGroupTemplate + map: + fields: + - name: disruptionMode + type: + scalar: string + - name: name + type: + scalar: string + default: "" + - name: priority + type: + scalar: numeric + - name: priorityClassName + type: + scalar: string + - name: resourceClaims + type: + list: + elementType: + namedType: io.k8s.api.scheduling.v1alpha2.PodGroupResourceClaim + elementRelationship: associative + keys: + - name + - name: schedulingConstraints + type: + namedType: io.k8s.api.scheduling.v1alpha2.PodGroupSchedulingConstraints + - name: schedulingPolicy + type: + namedType: io.k8s.api.scheduling.v1alpha2.PodGroupSchedulingPolicy + default: {} +- name: io.k8s.api.scheduling.v1alpha2.PodGroupTemplateReference + map: + fields: + - name: workload + type: + namedType: io.k8s.api.scheduling.v1alpha2.WorkloadPodGroupTemplateReference + unions: + - fields: + - fieldName: workload + discriminatorValue: Workload +- name: io.k8s.api.scheduling.v1alpha2.TopologyConstraint + map: + fields: + - name: key + type: + scalar: string + default: "" +- name: io.k8s.api.scheduling.v1alpha2.TypedLocalObjectReference + map: + fields: + - name: apiGroup + type: + scalar: string + - name: kind + type: + scalar: string + default: "" + - name: name + type: + scalar: string + default: "" +- name: io.k8s.api.scheduling.v1alpha2.Workload + map: + fields: + - name: apiVersion + type: + scalar: string - name: kind type: scalar: string @@ -14409,13 +14926,35 @@ var schemaYAML = typed.YAMLObject(`types: type: namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta default: {} - - name: preemptionPolicy + - name: spec + type: + namedType: io.k8s.api.scheduling.v1alpha2.WorkloadSpec + default: {} +- name: io.k8s.api.scheduling.v1alpha2.WorkloadPodGroupTemplateReference + map: + fields: + - name: podGroupTemplateName type: scalar: string - - name: value + default: "" + - name: workloadName type: - scalar: numeric - default: 0 + scalar: string + default: "" +- name: io.k8s.api.scheduling.v1alpha2.WorkloadSpec + map: + fields: + - name: controllerRef + type: + namedType: io.k8s.api.scheduling.v1alpha2.TypedLocalObjectReference + - name: podGroupTemplates + type: + list: + elementType: + namedType: io.k8s.api.scheduling.v1alpha2.PodGroupTemplate + elementRelationship: associative + keys: + - name - name: io.k8s.api.scheduling.v1beta1.PriorityClass map: fields: @@ -14474,12 +15013,18 @@ var schemaYAML = typed.YAMLObject(`types: - name: podInfoOnMount type: scalar: boolean + - name: preventPodSchedulingIfMissing + type: + scalar: boolean - name: requiresRepublish type: scalar: boolean - name: seLinuxMount type: scalar: boolean + - name: serviceAccountTokenInSecrets + type: + scalar: boolean - name: storageCapacity type: scalar: boolean @@ -14685,6 +15230,28 @@ var schemaYAML = typed.YAMLObject(`types: - name: detachError type: namedType: io.k8s.api.storage.v1.VolumeError +- name: io.k8s.api.storage.v1.VolumeAttributesClass + map: + fields: + - name: apiVersion + type: + scalar: string + - name: driverName + type: + scalar: string + default: "" + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: parameters + type: + map: + elementType: + scalar: string - name: io.k8s.api.storage.v1.VolumeError map: fields: @@ -14858,12 +15425,18 @@ var schemaYAML = typed.YAMLObject(`types: - name: podInfoOnMount type: scalar: boolean + - name: preventPodSchedulingIfMissing + type: + scalar: boolean - name: requiresRepublish type: scalar: boolean - name: seLinuxMount type: scalar: boolean + - name: serviceAccountTokenInSecrets + type: + scalar: boolean - name: storageCapacity type: scalar: boolean @@ -15109,39 +15682,7 @@ var schemaYAML = typed.YAMLObject(`types: - name: count type: scalar: numeric -- name: io.k8s.api.storagemigration.v1alpha1.GroupVersionResource - map: - fields: - - name: group - type: - scalar: string - - name: resource - type: - scalar: string - - name: version - type: - scalar: string -- name: io.k8s.api.storagemigration.v1alpha1.MigrationCondition - map: - fields: - - name: lastUpdateTime - type: - namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time - - name: message - type: - scalar: string - - name: reason - type: - scalar: string - - name: status - type: - scalar: string - default: "" - - name: type - type: - scalar: string - default: "" -- name: io.k8s.api.storagemigration.v1alpha1.StorageVersionMigration +- name: io.k8s.api.storagemigration.v1beta1.StorageVersionMigration map: fields: - name: apiVersion @@ -15156,30 +15697,27 @@ var schemaYAML = typed.YAMLObject(`types: default: {} - name: spec type: - namedType: io.k8s.api.storagemigration.v1alpha1.StorageVersionMigrationSpec + namedType: io.k8s.api.storagemigration.v1beta1.StorageVersionMigrationSpec default: {} - name: status type: - namedType: io.k8s.api.storagemigration.v1alpha1.StorageVersionMigrationStatus + namedType: io.k8s.api.storagemigration.v1beta1.StorageVersionMigrationStatus default: {} -- name: io.k8s.api.storagemigration.v1alpha1.StorageVersionMigrationSpec +- name: io.k8s.api.storagemigration.v1beta1.StorageVersionMigrationSpec map: fields: - - name: continueToken - type: - scalar: string - name: resource type: - namedType: io.k8s.api.storagemigration.v1alpha1.GroupVersionResource + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.GroupResource default: {} -- name: io.k8s.api.storagemigration.v1alpha1.StorageVersionMigrationStatus +- name: io.k8s.api.storagemigration.v1beta1.StorageVersionMigrationStatus map: fields: - name: conditions type: list: elementType: - namedType: io.k8s.api.storagemigration.v1alpha1.MigrationCondition + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Condition elementRelationship: associative keys: - type @@ -15255,6 +15793,17 @@ var schemaYAML = typed.YAMLObject(`types: elementType: namedType: __untyped_deduced_ elementRelationship: separable +- name: io.k8s.apimachinery.pkg.apis.meta.v1.GroupResource + map: + fields: + - name: group + type: + scalar: string + default: "" + - name: resource + type: + scalar: string + default: "" - name: io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector map: fields: diff --git a/pkg/utils/kube/scheme/scheme.go b/pkg/utils/kube/scheme/scheme.go index db105c814447f..e59ecd5577f8e 100644 --- a/pkg/utils/kube/scheme/scheme.go +++ b/pkg/utils/kube/scheme/scheme.go @@ -1,13 +1,30 @@ package scheme +// This package bulk-registers Kubernetes API groups into legacyscheme.Scheme +// so that gitops-engine's diff normalizer can run scheme.ConvertToVersion on +// any user-shipped manifest type. +// +// Registration is intentionally scoped to API groups whose types can appear +// in GitOps manifests (workloads, networking, RBAC, storage, etc.). Runtime- +// only API groups whose types never appear in manifests are deliberately NOT +// registered, both to keep the dependency surface tight and to avoid +// transitively pulling kube-apiserver code paths that govulncheck flags for +// server-side CVEs irrelevant to a client library: +// +// - admission/install (AdmissionReview — runtime webhook payloads) +// - authentication/install (TokenReview — runtime auth requests) +// - authorization/install (SubjectAccessReview — runtime auth requests) +// - imagepolicy/install (ImageReview — runtime image policy webhook) +// +// admissionregistration/install (ValidatingWebhookConfiguration, +// MutatingWebhookConfiguration) is kept because those resources DO appear in +// GitOps manifests as part of operator/webhook installations. + import ( "k8s.io/kubernetes/pkg/api/legacyscheme" - _ "k8s.io/kubernetes/pkg/apis/admission/install" _ "k8s.io/kubernetes/pkg/apis/admissionregistration/install" _ "k8s.io/kubernetes/pkg/apis/apps/install" - _ "k8s.io/kubernetes/pkg/apis/authentication/install" - _ "k8s.io/kubernetes/pkg/apis/authorization/install" _ "k8s.io/kubernetes/pkg/apis/autoscaling/install" _ "k8s.io/kubernetes/pkg/apis/batch/install" _ "k8s.io/kubernetes/pkg/apis/certificates/install" @@ -17,7 +34,6 @@ import ( _ "k8s.io/kubernetes/pkg/apis/events/install" _ "k8s.io/kubernetes/pkg/apis/extensions/install" _ "k8s.io/kubernetes/pkg/apis/flowcontrol/install" - _ "k8s.io/kubernetes/pkg/apis/imagepolicy/install" _ "k8s.io/kubernetes/pkg/apis/networking/install" _ "k8s.io/kubernetes/pkg/apis/node/install" _ "k8s.io/kubernetes/pkg/apis/policy/install"