Skip to content

[Debug]Rebase the v1 PR to build the cluster#2692

Open
BaiyangZhou wants to merge 4 commits intoopenshift:masterfrom
BaiyangZhou:test-v1-cluster
Open

[Debug]Rebase the v1 PR to build the cluster#2692
BaiyangZhou wants to merge 4 commits intoopenshift:masterfrom
BaiyangZhou:test-v1-cluster

Conversation

@BaiyangZhou
Copy link

No description provided.

Signed-off-by: Ondrej Pokorny <opokorny@redhat.com>
Signed-off-by: Ondrej Pokorny <opokorny@redhat.com>
@openshift-ci-robot
Copy link

Pipeline controller notification
This repo is configured to use the pipeline controller. Second-stage tests will be triggered either automatically or after lgtm label is added, depending on the repository configuration. The pipeline controller will automatically detect which contexts are required and will utilize /test Prow commands to trigger the second stage.

For optional jobs, comment /test ? to see a list of all defined jobs. To trigger manually all jobs from second stage use /pipeline required command.

This repository is configured in: LGTM mode

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Feb 5, 2026

Hello @BaiyangZhou! Some important instructions when contributing to openshift/api:
API design plays an important part in the user experience of OpenShift and as such API PRs are subject to a high level of scrutiny to ensure they follow our best practices. If you haven't already done so, please review the OpenShift API Conventions and ensure that your proposed changes are compliant. Following these conventions will help expedite the api review process for your PR.

@coderabbitai
Copy link

coderabbitai bot commented Feb 5, 2026

📝 Walkthrough

Walkthrough

CRD field annotations were changed: DisabledGatherers gained listType=atomic; DataGatherSpec.Gatherers gained +listType=map,+listMapKey=name; DataGatherStatus.RelatedObjects gained +listType=map,+listMapKey=name,+listMapKey=namespace; ObjectReference.Namespace marker changed to required. Two new public feature gates were added (PreconfiguredUDNAddresses, AdminNetworkPolicy). InsightsConfig and InsightsOnDemandDataGather were enabled for Default and OKD (in addition to existing preview gates). Several static Insights/InsightsDataGather CRD YAML manifests were removed and two CRD files had release.openshift.io/feature-set metadata removed; features.md entries reordered.

🚥 Pre-merge checks | ✅ 1 | ❌ 2
❌ Failed checks (2 inconclusive)
Check name Status Explanation Resolution
Title check ❓ Inconclusive The PR title '[Debug]Rebase the v1 PR to build the cluster' is vague and generic, using '[Debug]' prefix and non-descriptive terms that don't convey meaningful information about the actual changes. Replace with a more descriptive title that reflects the main changes, such as 'Enable InsightsConfig and InsightsOnDemandDataGather by default' or 'Add AdminNetworkPolicy and PreconfiguredUDNAddresses feature gates'.
Description check ❓ Inconclusive No pull request description was provided by the author, making it impossible to evaluate whether the description relates to the changeset. Add a pull request description that explains the motivation, changes, and impact of the modifications, including references to the feature gates and CRD updates.
✅ Passed checks (1 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 golangci-lint (2.5.0)

Error: build linters: unable to load custom analyzer "kubeapilinter": tools/_output/bin/kube-api-linter.so, plugin: not implemented
The command is terminated due to an error: build linters: unable to load custom analyzer "kubeapilinter": tools/_output/bin/kube-api-linter.so, plugin: not implemented


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@BaiyangZhou
Copy link
Author

/hold

@openshift-ci openshift-ci bot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Feb 5, 2026
@qodo-code-review
Copy link

Review Summary by Qodo

Remove insights feature gates and fix v1alpha1 validation errors

✨ Enhancement 🐞 Bug fix

Grey Divider

Walkthroughs

Description
• Remove feature gates for InsightsConfig and InsightsOnDemandDataGather
• Add Kubernetes list type annotations to array fields
• Make namespace field required in ObjectReference
• Enable insights features in Default and OKD configurations
Diagram
flowchart LR
  FG["Feature Gates<br/>InsightsConfig<br/>InsightsOnDemandDataGather"]
  FG -- "Remove from<br/>TechPreview" --> Default["Enable in Default<br/>and OKD"]
  Types["Type Definitions<br/>insights/v1alpha1"]
  Types -- "Add list type<br/>annotations" --> CRD["CRD Manifests<br/>with x-kubernetes<br/>extensions"]
  ObjRef["ObjectReference<br/>namespace field"]
  ObjRef -- "Change to required" --> Validation["Fix v1alpha1<br/>validation errors"]
Loading

Grey Divider

File Changes

1. features/features.go ✨ Enhancement +2/-2

Enable insights features in Default and OKD

features/features.go


2. insights/v1alpha1/types_insights.go ✨ Enhancement +6/-1

Add list type annotations to array fields

insights/v1alpha1/types_insights.go


3. insights/v1alpha1/zz_generated.crd-manifests/0000_10_insights_01_datagathers.crd.yaml ✨ Enhancement +8/-1

Add x-kubernetes list type extensions to CRD

insights/v1alpha1/zz_generated.crd-manifests/0000_10_insights_01_datagathers.crd.yaml


View more (32)
4. config/v1alpha1/types_insights.go ✨ Enhancement +1/-0

Add listType atomic annotation to DisabledGatherers

config/v1alpha1/types_insights.go


5. config/v1alpha1/zz_generated.crd-manifests/0000_10_config-operator_01_insightsdatagathers.crd.yaml ✨ Enhancement +1/-1

Add x-kubernetes list type and remove feature set label

config/v1alpha1/zz_generated.crd-manifests/0000_10_config-operator_01_insightsdatagathers.crd.yaml


6. openapi/generated_openapi/zz_generated.openapi.go ✨ Enhancement +23/-1

Add VendorExtensible extensions to OpenAPI schema

openapi/generated_openapi/zz_generated.openapi.go


7. features.md 📝 Documentation +2/-2

Update feature gate table with new enablement status

features.md


8. insights/v1alpha1/zz_generated.featuregated-crd-manifests/datagathers.insights.openshift.io/InsightsOnDemandDataGather.yaml ✨ Enhancement +8/-0

Add x-kubernetes list type extensions to featuregated CRD

insights/v1alpha1/zz_generated.featuregated-crd-manifests/datagathers.insights.openshift.io/InsightsOnDemandDataGather.yaml


9. config/v1alpha1/zz_generated.featuregated-crd-manifests/insightsdatagathers.config.openshift.io/InsightsConfig.yaml ✨ Enhancement +1/-0

Add x-kubernetes list type atomic annotation

config/v1alpha1/zz_generated.featuregated-crd-manifests/insightsdatagathers.config.openshift.io/InsightsConfig.yaml


10. payload-manifests/featuregates/featureGate-Hypershift-OKD.yaml ⚙️ Configuration changes +6/-6

Move insights features to enabled section

payload-manifests/featuregates/featureGate-Hypershift-OKD.yaml


11. payload-manifests/featuregates/featureGate-Hypershift-Default.yaml ⚙️ Configuration changes +6/-6

Move insights features to enabled section

payload-manifests/featuregates/featureGate-Hypershift-Default.yaml


12. payload-manifests/featuregates/featureGate-SelfManagedHA-OKD.yaml ⚙️ Configuration changes +6/-6

Move insights features to enabled section

payload-manifests/featuregates/featureGate-SelfManagedHA-OKD.yaml


13. payload-manifests/featuregates/featureGate-SelfManagedHA-Default.yaml ⚙️ Configuration changes +6/-6

Move insights features to enabled section

payload-manifests/featuregates/featureGate-SelfManagedHA-Default.yaml


14. config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_insightsdatagathers-DevPreviewNoUpgrade.crd.yaml Additional files +0/-234

...

config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_insightsdatagathers-DevPreviewNoUpgrade.crd.yaml


15. config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_insightsdatagathers-TechPreviewNoUpgrade.crd.yaml Additional files +0/-234

...

config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_insightsdatagathers-TechPreviewNoUpgrade.crd.yaml


16. config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_insightsdatagathers.crd.yaml Additional files +0/-1

...

config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_insightsdatagathers.crd.yaml


17. config/v1alpha1/zz_generated.crd-manifests/0000_10_config-operator_01_insightsdatagathers-DevPreviewNoUpgrade.crd.yaml Additional files +0/-164

...

config/v1alpha1/zz_generated.crd-manifests/0000_10_config-operator_01_insightsdatagathers-DevPreviewNoUpgrade.crd.yaml


18. config/v1alpha1/zz_generated.crd-manifests/0000_10_config-operator_01_insightsdatagathers-TechPreviewNoUpgrade.crd.yaml Additional files +0/-164

...

config/v1alpha1/zz_generated.crd-manifests/0000_10_config-operator_01_insightsdatagathers-TechPreviewNoUpgrade.crd.yaml


19. config/v1alpha2/zz_generated.crd-manifests/0000_10_config-operator_01_insightsdatagathers-DevPreviewNoUpgrade.crd.yaml Additional files +0/-232

...

config/v1alpha2/zz_generated.crd-manifests/0000_10_config-operator_01_insightsdatagathers-DevPreviewNoUpgrade.crd.yaml


20. config/v1alpha2/zz_generated.crd-manifests/0000_10_config-operator_01_insightsdatagathers-TechPreviewNoUpgrade.crd.yaml Additional files +0/-232

...

config/v1alpha2/zz_generated.crd-manifests/0000_10_config-operator_01_insightsdatagathers-TechPreviewNoUpgrade.crd.yaml


21. config/v1alpha2/zz_generated.crd-manifests/0000_10_config-operator_01_insightsdatagathers.crd.yaml Additional files +0/-1

...

config/v1alpha2/zz_generated.crd-manifests/0000_10_config-operator_01_insightsdatagathers.crd.yaml


22. insights/v1/zz_generated.crd-manifests/0000_10_insights_01_datagathers-DevPreviewNoUpgrade.crd.yaml Additional files +0/-628

...

insights/v1/zz_generated.crd-manifests/0000_10_insights_01_datagathers-DevPreviewNoUpgrade.crd.yaml


23. insights/v1/zz_generated.crd-manifests/0000_10_insights_01_datagathers-TechPreviewNoUpgrade.crd.yaml Additional files +0/-628

...

insights/v1/zz_generated.crd-manifests/0000_10_insights_01_datagathers-TechPreviewNoUpgrade.crd.yaml


24. insights/v1/zz_generated.crd-manifests/0000_10_insights_01_datagathers.crd.yaml Additional files +0/-1

...

insights/v1/zz_generated.crd-manifests/0000_10_insights_01_datagathers.crd.yaml


25. insights/v1alpha1/zz_generated.crd-manifests/0000_10_insights_01_datagathers-CustomNoUpgrade.crd.yaml Additional files +0/-530

...

insights/v1alpha1/zz_generated.crd-manifests/0000_10_insights_01_datagathers-CustomNoUpgrade.crd.yaml


26. insights/v1alpha1/zz_generated.crd-manifests/0000_10_insights_01_datagathers-DevPreviewNoUpgrade.crd.yaml Additional files +0/-530

...

insights/v1alpha1/zz_generated.crd-manifests/0000_10_insights_01_datagathers-DevPreviewNoUpgrade.crd.yaml


27. insights/v1alpha2/zz_generated.crd-manifests/0000_10_insights_01_datagathers-DevPreviewNoUpgrade.crd.yaml Additional files +0/-603

...

insights/v1alpha2/zz_generated.crd-manifests/0000_10_insights_01_datagathers-DevPreviewNoUpgrade.crd.yaml


28. insights/v1alpha2/zz_generated.crd-manifests/0000_10_insights_01_datagathers-TechPreviewNoUpgrade.crd.yaml Additional files +0/-603

...

insights/v1alpha2/zz_generated.crd-manifests/0000_10_insights_01_datagathers-TechPreviewNoUpgrade.crd.yaml


29. insights/v1alpha2/zz_generated.crd-manifests/0000_10_insights_01_datagathers.crd.yaml Additional files +0/-1

...

insights/v1alpha2/zz_generated.crd-manifests/0000_10_insights_01_datagathers.crd.yaml


30. payload-manifests/crds/0000_10_config-operator_01_insightsdatagathers-DevPreviewNoUpgrade.crd.yaml Additional files +0/-234

...

payload-manifests/crds/0000_10_config-operator_01_insightsdatagathers-DevPreviewNoUpgrade.crd.yaml


31. payload-manifests/crds/0000_10_config-operator_01_insightsdatagathers-TechPreviewNoUpgrade.crd.yaml Additional files +0/-234

...

payload-manifests/crds/0000_10_config-operator_01_insightsdatagathers-TechPreviewNoUpgrade.crd.yaml


32. payload-manifests/crds/0000_10_config-operator_01_insightsdatagathers.crd.yaml Additional files +0/-1

...

payload-manifests/crds/0000_10_config-operator_01_insightsdatagathers.crd.yaml


33. payload-manifests/crds/0000_10_insights_01_datagathers-DevPreviewNoUpgrade.crd.yaml Additional files +0/-628

...

payload-manifests/crds/0000_10_insights_01_datagathers-DevPreviewNoUpgrade.crd.yaml


34. payload-manifests/crds/0000_10_insights_01_datagathers-TechPreviewNoUpgrade.crd.yaml Additional files +0/-628

...

payload-manifests/crds/0000_10_insights_01_datagathers-TechPreviewNoUpgrade.crd.yaml


35. payload-manifests/crds/0000_10_insights_01_datagathers.crd.yaml Additional files +0/-1

...

payload-manifests/crds/0000_10_insights_01_datagathers.crd.yaml


Grey Divider

Qodo Logo

@openshift-ci openshift-ci bot added the size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. label Feb 5, 2026
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Feb 5, 2026

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign deads2k for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
insights/v1alpha1/types_insights.go (1)

332-337: ⚠️ Potential issue | 🟠 Major

Remove omitempty from the required Namespace field to prevent silent omission.

The Namespace field is marked +required but still has omitempty in the JSON tag, creating a contradiction. When marshaled to JSON, empty values will be dropped despite the requirement marker. This is also inconsistent with the other required fields in the same struct (Group, Resource, Name), which are all tagged without omitempty.

🔧 Suggested fix
-	Namespace string `json:"namespace,omitempty"`
+	Namespace string `json:"namespace"`

@qodo-code-review
Copy link

qodo-code-review bot commented Feb 5, 2026

Code Review by Qodo

🐞 Bugs (2) 📘 Rule violations (3) 📎 Requirement gaps (0)

Grey Divider


Action required

1. Undocumented +listType markers 📘 Rule violation ✓ Correctness
Description
• New +listType/+listMapKey markers were added to API fields but the field comments do not
  explain the resulting list semantics (map keys/uniqueness/merge behavior) in human-readable terms.
• This makes the API behavior unclear to consumers and violates the requirement that validation
  markers and optionality be explicitly documented in field comments.
• It can also lead to client-side misunderstandings (e.g., expecting a normal ordered list when it
  is treated as a map or atomic list).
Code

insights/v1alpha1/types_insights.go[R55-58]

+	// +listType=map
+	// +listMapKey=name
  // +optional
  Gatherers []GathererConfig `json:"gatherers,omitempty"`
Evidence
PR Compliance ID 12 requires that every field with validation/optionality markers have comments
documenting the behavior. The changed fields add +listType/+listMapKey markers, but their
comments do not describe the enforced semantics (atomic replacement or map-key uniqueness) that
those markers imply.

AGENTS.md
config/v1alpha1/types_insights.go[52-64]
insights/v1alpha1/types_insights.go[49-58]
insights/v1alpha1/types_insights.go[204-211]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
API fields gained `+listType` / `+listMapKey` markers, but the field comments do not explain the resulting list semantics (atomic replacement or map-key uniqueness). Compliance requires that validation markers and optionality are explicitly documented in field comments.
## Issue Context
These markers affect how the API server treats list fields (merge/patch semantics and uniqueness constraints). Without documenting this, API consumers cannot reliably predict behavior.
## Fix Focus Areas
- config/v1alpha1/types_insights.go[52-64]
- insights/v1alpha1/types_insights.go[49-58]
- insights/v1alpha1/types_insights.go[204-211]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


2. Namespace required but omitempty 📘 Rule violation ✓ Correctness
Description
• The ObjectReference.Namespace field was changed to +required but still uses the JSON tag
  json:"namespace,omitempty", and the comment does not explicitly state required/omitted behavior.
• This is inconsistent and can confuse API consumers and code generators/clients (a required field
  that may be omitted during serialization when empty).
• This violates the requirement that field optionality/requiredness be explicitly documented in the
  field comment.
Code

insights/v1alpha1/types_insights.go[R336-337]

+	// +required
  Namespace string `json:"namespace,omitempty"`
Evidence
PR Compliance ID 12 requires explicit documentation for +required/+optional behavior in field
comments. The code marks Namespace as +required, but its JSON tag still includes omitempty,
and the comment does not clearly document requiredness/behavior when omitted.

AGENTS.md
insights/v1alpha1/types_insights.go[332-337]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
`ObjectReference.Namespace` is marked `+required` but still has a `json:&amp;quot;namespace,omitempty&amp;quot;` tag, and its comment does not explicitly document requiredness/omission behavior.
## Issue Context
Required fields should not typically be tagged with `omitempty`, and compliance requires that required/optional semantics are documented in the field comment.
## Fix Focus Areas
- insights/v1alpha1/types_insights.go[332-337]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools



Remediation recommended

3. Validation change lacks tests 📘 Rule violation ⛯ Reliability ⭐ New
Description
• API validation behavior was changed by making ObjectReference.Namespace required and by changing
  list semantics for Gatherers/RelatedObjects (map keys / list type).
• No corresponding per-API integration tests are added/updated in this PR to verify the new
  requiredness and list uniqueness behavior.
• This increases regression risk and violates the requirement to cover validation changes with the
  repository’s integration test framework.
Code

insights/v1alpha1/types_insights.go[R55-59]

+	// +listType=map
+	// +listMapKey=name
	// +optional
	Gatherers []GathererConfig `json:"gatherers,omitempty"`
	// storage is an optional field that allows user to define persistent storage for gathering jobs to store the Insights data archive.
Evidence
PR Compliance ID 14 requires that when API validation behavior is added or modified, integration
tests in the per-API tests framework are added or updated. The diff shows multiple
validation/structural changes (required field and list map semantics) but contains no accompanying
test changes.

AGENTS.md
insights/v1alpha1/types_insights.go[52-58]
insights/v1alpha1/types_insights.go[203-211]
insights/v1alpha1/types_insights.go[333-337]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
API validation/structural behavior changed (required field and list map semantics) without accompanying per-API integration test coverage.

## Issue Context
Per PR Compliance ID 14, validation changes should be covered by the repository’s per-API integration test framework to prevent regressions.

## Fix Focus Areas
- insights/v1alpha1/types_insights.go[52-58]
- insights/v1alpha1/types_insights.go[203-211]
- insights/v1alpha1/types_insights.go[333-337]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


4. RelatedObjects key too narrow 🐞 Bug ⛯ Reliability ⭐ New
Description
insights/v1alpha1.DataGatherStatus.RelatedObjects is now a map-type list keyed only by `(name,
  namespace)`.
• Each item also includes required group and resource, but those are not part of the key; this
  can prevent representing two distinct objects that share name+namespace but differ by group/resource
  (they will collide under the list-map key).
• If such collisions occur, status updates may be rejected as “duplicate” entries or one entry may
  overwrite the other under merge/apply semantics.
Code

insights/v1alpha1/types_insights.go[R206-208]

+	// +listType=map
+	// +listMapKey=name
+	// +listMapKey=namespace
Evidence
The PR introduces list-as-map semantics for relatedObjects with keys name and namespace, while
ObjectReference requires group and resource too. Elsewhere in this repo, when uniquely
identifying objects in list-as-map fields, it is common to include group+resource+namespace+name as
map keys.

insights/v1alpha1/types_insights.go[204-212]
insights/v1alpha1/types_insights.go[308-337]
operator/v1/types.go[135-142]
insights/v1alpha1/zz_generated.crd-manifests/0000_10_insights_01_datagathers.crd.yaml[508-513]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

### Issue description
`relatedObjects` is now a list-as-map keyed only by `name` and `namespace`, but each element also has required `group` and `resource`. This can cause collisions for distinct objects that share `name` and `namespace`.

### Issue Context
Other list-as-map usages in this repo often include `group` and `resource` in the key set when identifying objects.

### Fix Focus Areas
- insights/v1alpha1/types_insights.go[204-212]
- insights/v1alpha1/zz_generated.crd-manifests/0000_10_insights_01_datagathers.crd.yaml[508-513] (regenerate)
- openapi/generated_openapi/zz_generated.openapi.go[30913-30924] (regenerate)

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


5. Feature-set filtering broadened 🐞 Bug ⛯ Reliability
Description
• Several CRD manifests removed the release.openshift.io/feature-set annotation.
• The payload renderer treats a missing feature-set annotation as “include this manifest in all
  feature sets”, which broadens installation scope beyond the previously annotated feature sets.
• This may be intended given the concurrent change enabling Insights feature gates in Default/OKD,
  but it’s a high-impact distribution change and should be made explicit/verified.
Code

payload-manifests/crds/0000_10_insights_01_datagathers.crd.yaml[10]

-    release.openshift.io/feature-set: CustomNoUpgrade
Evidence
The renderer’s InstallerFeatureSet predicate includes all manifests with no
release.openshift.io/feature-set annotation. The updated CRD payload manifests now lack that
annotation, so they will be selected for any feature set rendering. The PR also expands the
corresponding feature gates into Default/OKD, consistent with a broader install surface.

payload-command/render/renderassets/assets.go[128-151]
payload-manifests/crds/0000_10_insights_01_datagathers.crd.yaml[1-10]
features/features.go[484-499]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
CRD manifests removed the `release.openshift.io/feature-set` annotation. The renderer’s selection logic includes manifests with no feature-set annotation in *all* feature sets, broadening where these CRDs ship.
### Issue Context
This PR also enables the relevant feature gates in Default/OKD, so the intent might be to broaden availability. However, omission makes the CRDs apply to every feature set (including future ones) rather than a deliberate allow-list.
### Fix Focus Areas
- payload-command/render/renderassets/assets.go[128-151]
- payload-manifests/crds/0000_10_insights_01_datagathers.crd.yaml[1-12]
- payload-manifests/crds/0000_10_config-operator_01_insightsdatagathers.crd.yaml[1-12]
- features/features.go[484-499]
### Suggested change
- Decide intended feature set scope.
- If scope is limited, add back `metadata.annotations[&amp;quot;release.openshift.io/feature-set&amp;quot;]` with a comma-separated list of intended values (e.g., `Default,OKD,DevPreviewNoUpgrade,TechPreviewNoUpgrade`, as appropriate).
- If scope truly is “all feature sets”, add a short comment or documentation note explaining the intentional removal to prevent regressions/reintroductions.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

ⓘ The new review experience is currently in Beta. Learn more

Grey Divider

Qodo Logo

@BaiyangZhou BaiyangZhou closed this Feb 5, 2026
@BaiyangZhou BaiyangZhou reopened this Feb 6, 2026
@qodo-code-review
Copy link

Review Summary by Qodo

Remove Insights feature gates and fix v1alpha1 schema validation

✨ Enhancement 🐞 Bug fix

Grey Divider

Walkthroughs

Description
• Remove feature gates for InsightsConfig and InsightsOnDemandDataGather
• Add Kubernetes list type annotations for proper schema validation
• Make namespace field required in ObjectReference type
• Enable Insights features in Default and OKD configurations
Diagram
flowchart LR
  A["Feature Gate Removal"] --> B["InsightsConfig & InsightsOnDemandDataGather"]
  C["Schema Validation"] --> D["List Type Annotations"]
  C --> E["Required Namespace Field"]
  F["Feature Enablement"] --> G["Default & OKD Profiles"]
  B --> H["Updated CRD Manifests"]
  D --> H
  E --> H
  G --> H
Loading

Grey Divider

File Changes

1. features/features.go ✨ Enhancement +2/-2

Enable Insights features in Default and OKD

features/features.go


2. insights/v1alpha1/types_insights.go ✨ Enhancement +6/-1

Add list type annotations and make namespace required

insights/v1alpha1/types_insights.go


3. config/v1alpha1/types_insights.go ✨ Enhancement +1/-0

Add atomic list type annotation for disabledGatherers

config/v1alpha1/types_insights.go


View more (32)
4. openapi/generated_openapi/zz_generated.openapi.go ✨ Enhancement +23/-1

Add vendor extensions for list type validation

openapi/generated_openapi/zz_generated.openapi.go


5. insights/v1alpha1/zz_generated.crd-manifests/0000_10_insights_01_datagathers.crd.yaml ✨ Enhancement +8/-1

Remove feature set label and add list type extensions

insights/v1alpha1/zz_generated.crd-manifests/0000_10_insights_01_datagathers.crd.yaml


6. config/v1alpha1/zz_generated.crd-manifests/0000_10_config-operator_01_insightsdatagathers.crd.yaml ✨ Enhancement +1/-1

Remove feature set label and add atomic list type

config/v1alpha1/zz_generated.crd-manifests/0000_10_config-operator_01_insightsdatagathers.crd.yaml


7. insights/v1alpha1/zz_generated.featuregated-crd-manifests/datagathers.insights.openshift.io/InsightsOnDemandDataGather.yaml ✨ Enhancement +8/-0

Add list type extensions and required namespace field

insights/v1alpha1/zz_generated.featuregated-crd-manifests/datagathers.insights.openshift.io/InsightsOnDemandDataGather.yaml


8. config/v1alpha1/zz_generated.featuregated-crd-manifests/insightsdatagathers.config.openshift.io/InsightsConfig.yaml ✨ Enhancement +1/-0

Add atomic list type annotation for disabledGatherers

config/v1alpha1/zz_generated.featuregated-crd-manifests/insightsdatagathers.config.openshift.io/InsightsConfig.yaml


9. payload-manifests/featuregates/featureGate-Hypershift-OKD.yaml ✨ Enhancement +6/-6

Move Insights features to enabled section

payload-manifests/featuregates/featureGate-Hypershift-OKD.yaml


10. payload-manifests/featuregates/featureGate-Hypershift-Default.yaml ✨ Enhancement +6/-6

Move Insights features to enabled section

payload-manifests/featuregates/featureGate-Hypershift-Default.yaml


11. payload-manifests/featuregates/featureGate-SelfManagedHA-OKD.yaml ✨ Enhancement +6/-6

Move Insights features to enabled section

payload-manifests/featuregates/featureGate-SelfManagedHA-OKD.yaml


12. payload-manifests/featuregates/featureGate-SelfManagedHA-Default.yaml ✨ Enhancement +6/-6

Move Insights features to enabled section

payload-manifests/featuregates/featureGate-SelfManagedHA-Default.yaml


13. features.md 📝 Documentation +2/-2

Update feature gate documentation with new enablement

features.md


14. config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_insightsdatagathers-DevPreviewNoUpgrade.crd.yaml Additional files +0/-234

...

config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_insightsdatagathers-DevPreviewNoUpgrade.crd.yaml


15. config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_insightsdatagathers-TechPreviewNoUpgrade.crd.yaml Additional files +0/-234

...

config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_insightsdatagathers-TechPreviewNoUpgrade.crd.yaml


16. config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_insightsdatagathers.crd.yaml Additional files +0/-1

...

config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_insightsdatagathers.crd.yaml


17. config/v1alpha1/zz_generated.crd-manifests/0000_10_config-operator_01_insightsdatagathers-DevPreviewNoUpgrade.crd.yaml Additional files +0/-164

...

config/v1alpha1/zz_generated.crd-manifests/0000_10_config-operator_01_insightsdatagathers-DevPreviewNoUpgrade.crd.yaml


18. config/v1alpha1/zz_generated.crd-manifests/0000_10_config-operator_01_insightsdatagathers-TechPreviewNoUpgrade.crd.yaml Additional files +0/-164

...

config/v1alpha1/zz_generated.crd-manifests/0000_10_config-operator_01_insightsdatagathers-TechPreviewNoUpgrade.crd.yaml


19. config/v1alpha2/zz_generated.crd-manifests/0000_10_config-operator_01_insightsdatagathers-DevPreviewNoUpgrade.crd.yaml Additional files +0/-232

...

config/v1alpha2/zz_generated.crd-manifests/0000_10_config-operator_01_insightsdatagathers-DevPreviewNoUpgrade.crd.yaml


20. config/v1alpha2/zz_generated.crd-manifests/0000_10_config-operator_01_insightsdatagathers-TechPreviewNoUpgrade.crd.yaml Additional files +0/-232

...

config/v1alpha2/zz_generated.crd-manifests/0000_10_config-operator_01_insightsdatagathers-TechPreviewNoUpgrade.crd.yaml


21. config/v1alpha2/zz_generated.crd-manifests/0000_10_config-operator_01_insightsdatagathers.crd.yaml Additional files +0/-1

...

config/v1alpha2/zz_generated.crd-manifests/0000_10_config-operator_01_insightsdatagathers.crd.yaml


22. insights/v1/zz_generated.crd-manifests/0000_10_insights_01_datagathers-DevPreviewNoUpgrade.crd.yaml Additional files +0/-628

...

insights/v1/zz_generated.crd-manifests/0000_10_insights_01_datagathers-DevPreviewNoUpgrade.crd.yaml


23. insights/v1/zz_generated.crd-manifests/0000_10_insights_01_datagathers-TechPreviewNoUpgrade.crd.yaml Additional files +0/-628

...

insights/v1/zz_generated.crd-manifests/0000_10_insights_01_datagathers-TechPreviewNoUpgrade.crd.yaml


24. insights/v1/zz_generated.crd-manifests/0000_10_insights_01_datagathers.crd.yaml Additional files +0/-1

...

insights/v1/zz_generated.crd-manifests/0000_10_insights_01_datagathers.crd.yaml


25. insights/v1alpha1/zz_generated.crd-manifests/0000_10_insights_01_datagathers-CustomNoUpgrade.crd.yaml Additional files +0/-530

...

insights/v1alpha1/zz_generated.crd-manifests/0000_10_insights_01_datagathers-CustomNoUpgrade.crd.yaml


26. insights/v1alpha1/zz_generated.crd-manifests/0000_10_insights_01_datagathers-DevPreviewNoUpgrade.crd.yaml Additional files +0/-530

...

insights/v1alpha1/zz_generated.crd-manifests/0000_10_insights_01_datagathers-DevPreviewNoUpgrade.crd.yaml


27. insights/v1alpha2/zz_generated.crd-manifests/0000_10_insights_01_datagathers-DevPreviewNoUpgrade.crd.yaml Additional files +0/-603

...

insights/v1alpha2/zz_generated.crd-manifests/0000_10_insights_01_datagathers-DevPreviewNoUpgrade.crd.yaml


28. insights/v1alpha2/zz_generated.crd-manifests/0000_10_insights_01_datagathers-TechPreviewNoUpgrade.crd.yaml Additional files +0/-603

...

insights/v1alpha2/zz_generated.crd-manifests/0000_10_insights_01_datagathers-TechPreviewNoUpgrade.crd.yaml


29. insights/v1alpha2/zz_generated.crd-manifests/0000_10_insights_01_datagathers.crd.yaml Additional files +0/-1

...

insights/v1alpha2/zz_generated.crd-manifests/0000_10_insights_01_datagathers.crd.yaml


30. payload-manifests/crds/0000_10_config-operator_01_insightsdatagathers-DevPreviewNoUpgrade.crd.yaml Additional files +0/-234

...

payload-manifests/crds/0000_10_config-operator_01_insightsdatagathers-DevPreviewNoUpgrade.crd.yaml


31. payload-manifests/crds/0000_10_config-operator_01_insightsdatagathers-TechPreviewNoUpgrade.crd.yaml Additional files +0/-234

...

payload-manifests/crds/0000_10_config-operator_01_insightsdatagathers-TechPreviewNoUpgrade.crd.yaml


32. payload-manifests/crds/0000_10_config-operator_01_insightsdatagathers.crd.yaml Additional files +0/-1

...

payload-manifests/crds/0000_10_config-operator_01_insightsdatagathers.crd.yaml


33. payload-manifests/crds/0000_10_insights_01_datagathers-DevPreviewNoUpgrade.crd.yaml Additional files +0/-628

...

payload-manifests/crds/0000_10_insights_01_datagathers-DevPreviewNoUpgrade.crd.yaml


34. payload-manifests/crds/0000_10_insights_01_datagathers-TechPreviewNoUpgrade.crd.yaml Additional files +0/-628

...

payload-manifests/crds/0000_10_insights_01_datagathers-TechPreviewNoUpgrade.crd.yaml


35. payload-manifests/crds/0000_10_insights_01_datagathers.crd.yaml Additional files +0/-1

...

payload-manifests/crds/0000_10_insights_01_datagathers.crd.yaml


Grey Divider

Qodo Logo

@qodo-code-review
Copy link

Persistent review updated to latest commit 8150933

@BaiyangZhou
Copy link
Author

/retest

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
features/features.go (1)

500-514: ⚠️ Potential issue | 🟡 Minor

Promoting InsightsOnDemandDataGather and InsightsConfig to Default/OKD is a significant graduation — confirm the operators are ready.

Both feature gates are now enabled in Default and OKD (previously only in DevPreviewNoUpgrade/TechPreviewNoUpgrade). This makes the features active on production clusters by default.

Concerns:

  1. These are marked as legacy feature gates in legacyfeaturegates.go (with a "never add to this list" comment), yet they're being promoted. Clarify whether this exception is justified.
  2. Confirm the insights-operator and config-operator are ready for GA-level enablement and that all related controllers can handle these gates being universally enabled.

Note: CRD manifests for these gates remain in the repository (not removed), so the infrastructure is in place.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants