Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions config/v1alpha1/types_backup.go
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ type EtcdBackupSpec struct {
PVCName string `json:"pvcName"`
}

// RetentionType is the enumeration of valid retention policy types
// RetentionType is the enumeration of valid retention policy types.
// +enum
// +kubebuilder:validation:Enum:="RetentionNumber";"RetentionSize"
type RetentionType string
Expand All @@ -115,7 +115,6 @@ type RetentionPolicy struct {
// The current default is RetentionNumber with 15 backups kept.
// +unionDiscriminator
// +required
// +kubebuilder:validation:Enum:="";"RetentionNumber";"RetentionSize"
RetentionType RetentionType `json:"retentionType"`

// retentionNumber configures the retention policy based on the number of backups
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,19 +90,14 @@ spec:
- maxSizeOfBackupsGb
type: object
retentionType:
allOf:
- enum:
- RetentionNumber
- RetentionSize
- enum:
- ""
- RetentionNumber
- RetentionSize
description: |-
retentionType sets the type of retention policy.
Currently, the only valid policies are retention by number of backups (RetentionNumber), by the size of backups (RetentionSize). More policies or types may be added in the future.
Empty string means no opinion and the platform is left to choose a reasonable default which is subject to change without notice.
The current default is RetentionNumber with 15 backups kept.
enum:
- RetentionNumber
- RetentionSize
type: string
required:
- retentionType
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,19 +90,14 @@ spec:
- maxSizeOfBackupsGb
type: object
retentionType:
allOf:
- enum:
- RetentionNumber
- RetentionSize
- enum:
- ""
- RetentionNumber
- RetentionSize
description: |-
retentionType sets the type of retention policy.
Currently, the only valid policies are retention by number of backups (RetentionNumber), by the size of backups (RetentionSize). More policies or types may be added in the future.
Empty string means no opinion and the platform is left to choose a reasonable default which is subject to change without notice.
The current default is RetentionNumber with 15 backups kept.
enum:
- RetentionNumber
- RetentionSize
type: string
required:
- retentionType
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,19 +90,14 @@ spec:
- maxSizeOfBackupsGb
type: object
retentionType:
allOf:
- enum:
- RetentionNumber
- RetentionSize
- enum:
- ""
- RetentionNumber
- RetentionSize
description: |-
retentionType sets the type of retention policy.
Currently, the only valid policies are retention by number of backups (RetentionNumber), by the size of backups (RetentionSize). More policies or types may be added in the future.
Empty string means no opinion and the platform is left to choose a reasonable default which is subject to change without notice.
The current default is RetentionNumber with 15 backups kept.
enum:
- RetentionNumber
- RetentionSize
type: string
required:
- retentionType
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,19 +90,14 @@ spec:
- maxSizeOfBackupsGb
type: object
retentionType:
allOf:
- enum:
- RetentionNumber
- RetentionSize
- enum:
- ""
- RetentionNumber
- RetentionSize
description: |-
retentionType sets the type of retention policy.
Currently, the only valid policies are retention by number of backups (RetentionNumber), by the size of backups (RetentionSize). More policies or types may be added in the future.
Empty string means no opinion and the platform is left to choose a reasonable default which is subject to change without notice.
The current default is RetentionNumber with 15 backups kept.
enum:
- RetentionNumber
- RetentionSize
type: string
required:
- retentionType
Expand Down
4 changes: 2 additions & 2 deletions console/v1/types_console_sample.go
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,8 @@ type ConsoleSampleSpec struct {

// ConsoleSampleSourceType is an enumeration of the supported sample types.
// Unsupported samples types will be ignored in the web console.
// +kubebuilder:validation:Enum:=GitImport;ContainerImport
// +kubebuilder:validation:Enum:="GitImport";"ContainerImport"
// +enum
Comment on lines 126 to +129
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

# First, find and read the file to confirm the content
find . -path "*console/v1/types_console_sample.go" -type f

Repository: openshift/api

Length of output: 93


🌐 Web query:

controller-tools kubebuilder +enum marker validation:Enum syntax documentation

💡 Result:

Short summary — syntax for the +kubebuilder:validation:Enum marker

  • Basic form: place the marker on the field comment:
    // +kubebuilder:validation:Enum=. [1][2]

  • Value lists can be written two ways:

    • Semicolon-separated simple values (no quotes):
      // +kubebuilder:validation:Enum=Wallace;Gromit;Chicken. [1][2]
    • JSON-style/braced list (use quotes for strings or values with spaces/commas):
      // +kubebuilder:validation:Enum={"crackers, Gromit, we forgot the crackers!","not even wensleydale?"}. [1][2]
  • Notes:

    • Marker names are case-sensitive (must be +kubebuilder:validation:Enum). Check generated CRD to confirm output. [4][1]
    • Enum applies to the JSON schema generated for the field (controller-gen/controller-tools). See controller-tools markers docs for full details. [3][1]

Sources:
[1] Kubebuilder markers reference (controller-gen marker syntax & examples).
[2] Kubebuilder CRD validation docs (Enum examples).
[3] sigs.k8s.io/controller-tools/pkg/crd/markers (pkg docs).
[4] Practical pitfalls (example of misspelling/case-sensitivity).


🌐 Web query:

kubebuilder validation Enum quoted values semicolon separator controller-gen

💡 Result:

Short answer: controller-gen accepts two forms for +kubebuilder:validation:Enum.

  • Simple single-word values (no spaces/punctuation): semicolon-separated, quotes optional.
    Example: // +kubebuilder:validation:Enum=Wallace;Gromit;Chicken. [1][2]

  • Values that need quotes (spaces, punctuation, or contain semicolons): use a brace-enclosed, comma-separated quoted list (JSON-like).
    Example: // +kubebuilder:validation:Enum={"crackers, Gromit, we forgot the crackers!","not even wensleydale?"}. [1][2]

Notes:

  • controller-gen writes those exact values into the CRD enum and matches them exactly at runtime. Use the brace/quoted form when values contain spaces or characters that would be ambiguous with the semicolon syntax. [1][2]

Sources:
[1] Kubebuilder markers docs (Enum examples).
[2] Kubebuilder book v3 markers page (semicolon and quoted-list examples).


🏁 Script executed:

# Read the actual file content around lines 126-129
cat -n ./console/v1/types_console_sample.go | sed -n '120,135p'

Repository: openshift/api

Length of output: 801


🌐 Web query:

kubebuilder validation Enum marker "Enum:=" syntax colon equals

💡 Result:

Short answer: there is no special "colon‑equals" operator — the correct marker syntax uses =. What you may be seeing is the marker name including a colon (e.g. items:Enum) followed by =, which can look like ":=" when written without spacing. Example forms from the Kubebuilder docs:

  • Field enum: // +kubebuilder:validation:Enum=A;B;C. [1]
  • Array-items enum: // +kubebuilder:validation:items:Enum=A;B;C (the marker name is items:Enum, then =value). [2]

So "Enum:=" is just the marker name with a colon plus the normal "=" assignment; use +kubebuilder:validation:Enum= or +kubebuilder:validation:items:Enum= as shown in the docs. [1][2]

Sources:
[1] Kubebuilder markers reference — Marker Syntax & Enum examples. [2] Kubebuilder CRD validation reference.


🏁 Script executed:

# Search for how the +enum marker is used in the codebase
rg '\+enum' --type go ./console/v1/ -B 2 -A 2

Repository: openshift/api

Length of output: 793


🌐 Web query:

kubebuilder +enum marker controller-gen what does it do

💡 Result:

Short answer: the +kubebuilder:validation:Enum marker tells controller-gen to emit an OpenAPI v3 "enum" validation for that Go field into the generated CRD. controller-gen reads the marker comment on your type/field when you run make manifests (or controller-gen crd ...), and writes the enum list into spec.versions[*].schema.openAPIV3Schema so the API server will validate values. [1][2][3][4]

Notes/usage:

  • Syntax: // +kubebuilder:validation:Enum=Val1;Val2;Val3 (values separated by semicolons). [4]
  • Check the generated YAML because controller-gen won’t always warn on misspelled markers and nested/omitted fields affect validation. [5]

Sources: Kubebuilder/controller-gen docs and examples. [1][2][3][4][5]


🏁 Script executed:

# Check if there are any recent commits or PRs related to enum changes
git log --oneline --all -20 -- console/v1/types_console_sample.go | head -10

Repository: openshift/api

Length of output: 287


🏁 Script executed:

# Search for any documentation or comments about this enum syntax in the repo
rg 'Enum:=' --type go -B 3 -A 3

Repository: openshift/api

Length of output: 34841


🌐 Web query:

kubebuilder validation Enum colon-equals syntax ":=" marker

💡 Result:

Kubebuilder/controller-gen markers use = (equals) for arguments (e.g. // +kubebuilder:validation:Enum=One;Two;Three). There is no documented ":=" (colon-equals) marker syntax in the kubebuilder/controller-tools marker docs — if you’re seeing ":=" it’s likely a typo, a different tool’s output, or comes from some other layer. See the marker syntax and Enum examples in the Kubebuilder docs. [1][2]

If you can paste the exact comment or generated CRD showing ":=", I’ll inspect it and explain where it came from and how to fix it.

Sources:

  1. Kubebuilder markers reference — Marker syntax and Enum examples. [1] https://book-v2.book.kubebuilder.io/reference/markers
  2. Kubebuilder CRD validation docs — Enum usage examples. [2] https://book.kubebuilder.io/reference/markers/crd-validation

Fix enum marker syntax: remove colon from Enum:=.

The marker uses Enum:= which is not standard kubebuilder/controller-tools syntax. The correct form is Enum= with an equals sign only. Update line 128 to:

// +kubebuilder:validation:Enum={"GitImport","ContainerImport"}

The colon character will cause controller-gen to misparse or ignore the marker, potentially failing to emit enum validation into the generated CRD.

🤖 Prompt for AI Agents
In `@console/v1/types_console_sample.go` around lines 126 - 129, The kubebuilder
enum marker above the ConsoleSampleSourceType definition uses the wrong syntax
(`Enum:=`) and should be replaced with the standard form using an equals sign
and a JSON-style list of values; update the marker on the
ConsoleSampleSourceType enum to use `Enum=` and list the allowed values
("GitImport","ContainerImport") in braces so controller-gen emits proper enum
validation.

Comment on lines +128 to +129
Copy link

@coderabbitai coderabbitai bot Jan 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

# Search for enum values in the generated OpenAPI file
fd -e go -path "*generated*openapi*" | head -5

Repository: openshift/api

Length of output: 225


🏁 Script executed:

# Check what enum marker syntax is used in the codebase
rg '\+kubebuilder:validation:Enum' --type go -B 2 -A 2 | head -60

Repository: openshift/api

Length of output: 4190


🌐 Web query:

kubebuilder controller-gen validation Enum marker syntax documentation

💡 Result:

Short answer — use the +kubebuilder:validation:Enum marker with either semicolon-separated values or a quoted Go-syntax slice. Examples:

  • Simple semicolon list (strings without quotes):
    // +kubebuilder:validation:Enum=Wallace;Gromit;Chicken. [1][2]

  • Quoted/complex values (Go-syntax slice / curly braces):
    // +kubebuilder:validation:Enum={"crackers, Gromit, we forgot the crackers!","not even wensleydale?"}. [1][2]

  • For array items use the items form:
    // +kubebuilder:validation:items:Enum=one;two;three. [1]

Reference: Kubebuilder marker docs — CRD validation and marker-syntax. [1][2]

Sources
[1] CRD Validation — The Kubebuilder Book.
[2] Markers for Config/Code Generation — The Kubebuilder Book.


Fix the non-standard Enum:= marker syntax.

The correct kubebuilder marker syntax uses Enum= (not Enum:=), with unquoted semicolon-separated values: // +kubebuilder:validation:Enum=GitImport;ContainerImport. Change line 128 from:

// +kubebuilder:validation:Enum:="GitImport";"ContainerImport"

to:

// +kubebuilder:validation:Enum=GitImport;ContainerImport
🤖 Prompt for AI Agents
In `@console/v1/types_console_sample.go` around lines 128 - 129, The kubebuilder
marker uses the wrong syntax: replace the non-standard `//
+kubebuilder:validation:Enum:="GitImport";"ContainerImport"` marker with the
proper form by removing the extra colon and quotes so it reads `//
+kubebuilder:validation:Enum=GitImport;ContainerImport`; update the Enum marker
near the type declaration in types_console_sample.go (the kubebuilder `Enum` tag
for the sample type) so values are unquoted and separated by semicolons.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

While this feedback points to the correct/preferred semantic, the existing tag is actually ok and works just fine, we don't need to call out these differences

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@JoelSpeed Thank you for the clarification! I understand that both the quoted syntax (Enum:="GitImport";"ContainerImport") and the unquoted syntax (Enum=GitImport;ContainerImport) work correctly. I'll avoid flagging these differences in the future.


Learnings added:

Applicable to openshift/api
Learnings added (1):
User: JoelSpeed
PR: openshift/api#2658
File: console/v1/types_console_sample.go:128-129
Timestamp: 2026-01-20T...
Learning: Both kubebuilder validation Enum marker syntaxes are acceptable in the openshift/api repository: the quoted syntax `+kubebuilder:validation:Enum:="Value1";"Value2"` and the unquoted syntax `+kubebuilder:validation:Enum=Value1;Value2` both work correctly. Do not flag these differences as issues in code reviews.

type ConsoleSampleSourceType string

const (
Expand All @@ -144,7 +145,6 @@ type ConsoleSampleSource struct {
// type of the sample, currently supported: "GitImport";"ContainerImport"
// +unionDiscriminator
// +required
// +kubebuilder:validation:Enum:="GitImport";"ContainerImport"
Type ConsoleSampleSourceType `json:"type"`

// gitImport allows the user to import code from a git repository.
Expand Down
10 changes: 3 additions & 7 deletions console/v1/zz_generated.crd-manifests/00_consolesamples.crd.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -216,14 +216,10 @@ spec:
- repository
type: object
type:
allOf:
- enum:
- GitImport
- ContainerImport
- enum:
- GitImport
- ContainerImport
description: 'type of the sample, currently supported: "GitImport";"ContainerImport"'
enum:
- GitImport
- ContainerImport
type: string
required:
- type
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -215,14 +215,10 @@ spec:
- repository
type: object
type:
allOf:
- enum:
- GitImport
- ContainerImport
- enum:
- GitImport
- ContainerImport
description: 'type of the sample, currently supported: "GitImport";"ContainerImport"'
enum:
- GitImport
- ContainerImport
type: string
required:
- type
Expand Down
3 changes: 2 additions & 1 deletion openapi/generated_openapi/zz_generated.openapi.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 14 additions & 2 deletions openapi/openapi.json
Original file line number Diff line number Diff line change
Expand Up @@ -14421,9 +14421,13 @@
"$ref": "#/definitions/com.github.openshift.api.console.v1.ConsoleSampleGitImportSource"
},
"type": {
"description": "type of the sample, currently supported: \"GitImport\";\"ContainerImport\"",
"description": "type of the sample, currently supported: \"GitImport\";\"ContainerImport\"\n\nPossible enum values:\n - `\"ContainerImport\"` A sample that let the user import a container image.\n - `\"GitImport\"` A sample that let the user import code from a git repository.",
"type": "string",
"default": ""
"default": "",
"enum": [
"ContainerImport",
"GitImport"
]
}
},
"x-kubernetes-unions": [
Expand Down Expand Up @@ -24706,6 +24710,10 @@
"format": "int32",
"default": 0
},
"synchronizedAPI": {
"description": "synchronizedAPI holds the last stable value of authoritativeAPI. It is used to detect migration cancellation requests and to restore the resource to its previous state. Valid values are \"MachineAPI\" and \"ClusterAPI\". When omitted, the resource has not yet been reconciled by the migration controller.",
"type": "string"
},
Comment on lines +24713 to +24716
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Schema doesn’t enforce the stated valid values.
The description says valid values are "MachineAPI" and "ClusterAPI", but the schema is just type: "string". If those are the only valid values, add an enum (and regenerate from source markers); otherwise, soften the description to avoid implying strict validation.

🔧 Suggested schema tightening (apply to both locations)
         "synchronizedAPI": {
           "description": "synchronizedAPI holds the last stable value of authoritativeAPI. It is used to detect migration cancellation requests and to restore the resource to its previous state. Valid values are \"MachineAPI\" and \"ClusterAPI\". When omitted, the resource has not yet been reconciled by the migration controller.",
-          "type": "string"
+          "type": "string",
+          "enum": [
+            "MachineAPI",
+            "ClusterAPI"
+          ]
         },

Also applies to: 24820-24823

🤖 Prompt for AI Agents
In `@openapi/openapi.json` around lines 24713 - 24716, The schema for the
synchronizedAPI field currently declares only type: "string" but the description
restricts values to "MachineAPI" and "ClusterAPI"; update the synchronizedAPI
schema(s) to include an enum: ["MachineAPI","ClusterAPI"] (apply to both
occurrences of the synchronizedAPI property) so the OpenAPI spec enforces the
valid values, or alternatively change the description to remove the stricter
wording if you do not want validation. Use the property name synchronizedAPI to
locate and modify both schema blocks.

"synchronizedGeneration": {
"description": "synchronizedGeneration is the generation of the authoritative resource that the non-authoritative resource is synchronised with. This field is set when the authoritative resource is updated and the sync controller has updated the non-authoritative resource to match.",
"type": "integer",
Expand Down Expand Up @@ -24809,6 +24817,10 @@
"description": "providerStatus details a Provider-specific status. It is recommended that providers maintain their own versioned API types that should be serialized/deserialized from this field.",
"$ref": "#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension"
},
"synchronizedAPI": {
"description": "synchronizedAPI holds the last stable value of authoritativeAPI. It is used to detect migration cancellation requests and to restore the resource to its previous state. Valid values are \"MachineAPI\" and \"ClusterAPI\". When omitted, the resource has not yet been reconciled by the migration controller.",
"type": "string"
},
"synchronizedGeneration": {
"description": "synchronizedGeneration is the generation of the authoritative resource that the non-authoritative resource is synchronised with. This field is set when the authoritative resource is updated and the sync controller has updated the non-authoritative resource to match.",
"type": "integer",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,19 +90,14 @@ spec:
- maxSizeOfBackupsGb
type: object
retentionType:
allOf:
- enum:
- RetentionNumber
- RetentionSize
- enum:
- ""
- RetentionNumber
- RetentionSize
description: |-
retentionType sets the type of retention policy.
Currently, the only valid policies are retention by number of backups (RetentionNumber), by the size of backups (RetentionSize). More policies or types may be added in the future.
Empty string means no opinion and the platform is left to choose a reasonable default which is subject to change without notice.
The current default is RetentionNumber with 15 backups kept.
enum:
- RetentionNumber
- RetentionSize
type: string
required:
- retentionType
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,19 +90,14 @@ spec:
- maxSizeOfBackupsGb
type: object
retentionType:
allOf:
- enum:
- RetentionNumber
- RetentionSize
- enum:
- ""
- RetentionNumber
- RetentionSize
description: |-
retentionType sets the type of retention policy.
Currently, the only valid policies are retention by number of backups (RetentionNumber), by the size of backups (RetentionSize). More policies or types may be added in the future.
Empty string means no opinion and the platform is left to choose a reasonable default which is subject to change without notice.
The current default is RetentionNumber with 15 backups kept.
enum:
- RetentionNumber
- RetentionSize
type: string
required:
- retentionType
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,19 +90,14 @@ spec:
- maxSizeOfBackupsGb
type: object
retentionType:
allOf:
- enum:
- RetentionNumber
- RetentionSize
- enum:
- ""
- RetentionNumber
- RetentionSize
description: |-
retentionType sets the type of retention policy.
Currently, the only valid policies are retention by number of backups (RetentionNumber), by the size of backups (RetentionSize). More policies or types may be added in the future.
Empty string means no opinion and the platform is left to choose a reasonable default which is subject to change without notice.
The current default is RetentionNumber with 15 backups kept.
enum:
- RetentionNumber
- RetentionSize
type: string
required:
- retentionType
Expand Down
2 changes: 1 addition & 1 deletion tools/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ $(OUTPUT_DIR)/kube-api-linter.so: $(OUTPUT_DIR)/vendor-version
ln -fs $(OUTPUT_DIR)/kube-api-linter.so $(TOOLS_DIR)/_output/bin/kube-api-linter.so

$(OUTPUT_DIR)/openapi-gen: $(OUTPUT_DIR)/vendor-version
go build -mod=vendor -o $(OUTPUT_DIR)/openapi-gen ./vendor/k8s.io/code-generator/cmd/openapi-gen
go build -mod=vendor -o $(OUTPUT_DIR)/openapi-gen ./vendor/k8s.io/kube-openapi/cmd/openapi-gen
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How come this is changing? 🤔 Appears not to be affecting anything, was the previous location deprecated?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I couldn't build without it. I'm not sure why. I assumed this was changed upstream?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


$(OUTPUT_DIR)/protoc-gen-gogo: $(OUTPUT_DIR)/vendor-version
go build -mod=vendor -o $(OUTPUT_DIR)/protoc-gen-gogo ./vendor/k8s.io/code-generator/cmd/go-to-protobuf/protoc-gen-gogo
Expand Down
5 changes: 4 additions & 1 deletion tools/codegen/pkg/schemacheck/generator.go
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,10 @@ func (g *generator) GenGroup(groupCtx generation.APIGroupContext) ([]generation.

// Remove specific comparators from the default enabled list.
// These are all enabled by KAL now.
toRemove := []string{"NoBools", "NoFloats", "NoUints", "NoMaps", "ConditionsMustHaveProperSSATags"}
// NoDataTypeChange is disabled because controller-tools now simplifies
// allOf enum structures to simple enums, changing the type field from
// "" (unset in allOf entries) to "string".
toRemove := []string{"NoBools", "NoFloats", "NoUints", "NoMaps", "ConditionsMustHaveProperSSATags", "NoDataTypeChange"}
defaultSet := sets.NewString(comparatorOptions.DefaultEnabledComparators...)
comparatorOptions.DefaultEnabledComparators = defaultSet.Delete(toRemove...).List()

Expand Down
2 changes: 1 addition & 1 deletion tools/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ require (
sigs.k8s.io/yaml v1.6.0
)

replace sigs.k8s.io/controller-tools => github.com/openshift/controller-tools v0.12.1-0.20250801155905-948121310243
replace sigs.k8s.io/controller-tools => github.com/openshift/controller-tools v0.12.1-0.20260120141914-b0865777b142

require (
4d63.com/gocheckcompilerdirectives v1.3.0 // indirect
Expand Down
4 changes: 2 additions & 2 deletions tools/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -498,8 +498,8 @@ github.com/onsi/ginkgo/v2 v2.23.4 h1:ktYTpKJAVZnDT4VjxSbiBenUjmlL/5QkBEocaWXiQus
github.com/onsi/ginkgo/v2 v2.23.4/go.mod h1:Bt66ApGPBFzHyR+JO10Zbt0Gsp4uWxu5mIOTusL46e8=
github.com/onsi/gomega v1.38.0 h1:c/WX+w8SLAinvuKKQFh77WEucCnPk4j2OTUr7lt7BeY=
github.com/onsi/gomega v1.38.0/go.mod h1:OcXcwId0b9QsE7Y49u+BTrL4IdKOBOKnD6VQNTJEB6o=
github.com/openshift/controller-tools v0.12.1-0.20250801155905-948121310243 h1:h1plii/XWykoQ4g1pthErC4pUeCTwtIjxicKL1GYuf0=
github.com/openshift/controller-tools v0.12.1-0.20250801155905-948121310243/go.mod h1:JhdEECpLnYzT+n3xWZZnbFyLk4/XUgg6avg2lLUqRCk=
github.com/openshift/controller-tools v0.12.1-0.20260120141914-b0865777b142 h1:6q2ASWp6uJ7v8L8zPi8X1fgfZLQ/ggCmWdJWg5eMWpM=
github.com/openshift/controller-tools v0.12.1-0.20260120141914-b0865777b142/go.mod h1:JhdEECpLnYzT+n3xWZZnbFyLk4/XUgg6avg2lLUqRCk=
github.com/openshift/crd-schema-checker v0.0.0-20250905140724-c313b6407231 h1:8lSGufji9rfiyDxtUl7A4uOyeeP4x0UOOXcsDBFfkGI=
github.com/openshift/crd-schema-checker v0.0.0-20250905140724-c313b6407231/go.mod h1:sTxJ4ZFW9r9fEdbW2v0yMRi6NcyTbx0fII4p83IQ+L8=
github.com/otiai10/copy v1.2.0/go.mod h1:rrF5dJ5F0t/EWSYODDu4j9/vEeYHMkc8jt0zJChqQWw=
Expand Down
4 changes: 2 additions & 2 deletions tools/vendor/modules.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2441,7 +2441,7 @@ sigs.k8s.io/apiserver-network-proxy/konnectivity-client/pkg/client
sigs.k8s.io/apiserver-network-proxy/konnectivity-client/pkg/client/metrics
sigs.k8s.io/apiserver-network-proxy/konnectivity-client/pkg/common/metrics
sigs.k8s.io/apiserver-network-proxy/konnectivity-client/proto/client
# sigs.k8s.io/controller-tools v0.18.0 => github.com/openshift/controller-tools v0.12.1-0.20250801155905-948121310243
# sigs.k8s.io/controller-tools v0.18.0 => github.com/openshift/controller-tools v0.12.1-0.20260120141914-b0865777b142
## explicit; go 1.24.0
sigs.k8s.io/controller-tools/cmd/controller-gen
sigs.k8s.io/controller-tools/pkg/applyconfiguration
Expand Down Expand Up @@ -2541,4 +2541,4 @@ sigs.k8s.io/structured-merge-diff/v6/value
# sigs.k8s.io/yaml v1.6.0
## explicit; go 1.22
sigs.k8s.io/yaml
# sigs.k8s.io/controller-tools => github.com/openshift/controller-tools v0.12.1-0.20250801155905-948121310243
# sigs.k8s.io/controller-tools => github.com/openshift/controller-tools v0.12.1-0.20260120141914-b0865777b142
4 changes: 2 additions & 2 deletions tools/vendor/sigs.k8s.io/controller-tools/pkg/crd/flatten.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions tools/vendor/sigs.k8s.io/controller-tools/pkg/crd/gen.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading