🌱 Enable optionalorrequired linter #5750
Closed
+1,748
−437
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What type of PR is this?
/kind cleanup
What this PR does / why we need it:
This PR enables the KAL (Kube-API-Linter)
optionalorrequiredlinter, which ensures that every field in API types is explicitly marked as either+optionalor+required.Changes made:
optionalorrequiredlinter in.golangci-kal.yml+optionalmarkers to fields withomitemptyjson tags+requiredmarkers to fields withoutomitemptyjson tagsThis improves API documentation clarity by making it explicit whether each field is required or optional, following Kubernetes API conventions. This helps API consumers better understand the contract of each field.
Which issue(s) this PR fixes:
Fixes #5491
Special notes for your reviewer:
The changes were made using a combination of automatic fixes (
make lint-api-fix) and a custom Python script to handle the remaining cases. The script adds markers based on the presence ofomitemptyin json tags:json:"...,omitempty"→// +optionaljson:"..."(no omitempty) →// +requiredAll changes are purely additive comments and do not affect runtime behavior. Tests pass successfully.
Checklist:
Release note: