Skip to content

Conversation

@opokornyy
Copy link
Contributor

No description provided.

@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 openshift-ci bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Dec 19, 2025
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Dec 19, 2025

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Dec 19, 2025

Hello @opokornyy! 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 Dec 19, 2025

📝 Walkthrough

Walkthrough

The pull request upgrades custom resource definitions from the v1alpha2 API version to v1. Changes include removing status subresources, designating gatherConfig and gatherers as required fields, and applying minimum length and item constraints across string and array fields. Compatibility levels are updated, and new display columns (Age) are introduced. The update script is simplified by removing shell globbing syntax and expanded to include additional CRD manifest paths across multiple API groups, reflecting the API version progression and stricter validation requirements.

🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Description check ⚠️ Warning No description was provided by the author, making it impossible to assess whether it relates to the changeset. Add a meaningful PR description that explains the motivation, scope, and impact of migrating insights CRDs from v1alpha2 to v1.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Add insights v1 to payload' clearly and directly summarizes the main change: migrating insights CRDs from v1alpha2 to v1 and adding them to the payload.
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

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

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

openshift-ci bot commented Dec 19, 2025

[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

@opokornyy
Copy link
Contributor Author

/test all

@opokornyy
Copy link
Contributor Author

/hold needs to be merged after - #2631

@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 Dec 19, 2025
@opokornyy opokornyy marked this pull request as ready for review January 5, 2026 11:48
@opokornyy opokornyy changed the title WIP: Add insights to payload Add insights to payload Jan 5, 2026
@openshift-ci openshift-ci bot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Jan 5, 2026
@JoelSpeed JoelSpeed changed the title Add insights to payload Add insights v1 to payload Jan 5, 2026
Signed-off-by: Ondrej Pokorny <opokorny@redhat.com>
@opokornyy opokornyy force-pushed the add-insights-to-payload branch from 9e70d76 to 2a9f7e0 Compare January 7, 2026 10:43
@openshift-ci openshift-ci bot added size/L Denotes a PR that changes 100-499 lines, ignoring generated files. and removed size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. labels Jan 7, 2026
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: 1

Caution

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

⚠️ Outside diff range comments (1)
payload-manifests/crds/0000_10_config-operator_01_insightsdatagathers-CustomNoUpgrade.crd.yaml (1)

110-116: Update minLength to 3 to match the regex minimum character requirement.

The regex ^[a-z]+[_a-z]*[a-z]([/a-z][_a-z]*)?[a-z]$ requires a minimum of 3 characters (e.g., "foo" matches, but "ab" does not), yet minLength: 1 allows single and two-character names that the regex will reject. Update minLength to 3 for consistency.

The regex pattern is correct: [/a-z] is a character class that includes "/" as a valid option for the separator, and the trailing [a-z]$ ensures the name ends with a lowercase letter.

🤖 Fix all issues with AI agents
In @hack/update-payload-crds.sh:
- Around line 9-10: The two glob patterns in hack/update-payload-crds.sh contain
a stray double slash; update the patterns
`operator/v1/zz_generated.crd-manifests//*_config-operator_*.crd*yaml` and
`operator/v1alpha1/zz_generated.crd-manifests//*_config-operator_*.crd*yaml` to
use a single slash (i.e., `...crd-manifests/*_config-operator_*.crd*yaml`) so
they match consistently with the other patterns.
🧹 Nitpick comments (1)
payload-manifests/crds/0000_10_config-operator_01_insightsdatagathers-CustomNoUpgrade.crd.yaml (1)

53-73: Clarify minItems: 1 constraint for optional dataPolicy field.

The description states dataPolicy is "optional" and "When omitted no obfuscation is applied" (lines 55, 60), but minItems: 1 (line 68) requires at least one item when the array is present. This is valid semantics (optional field, but non-empty when provided), however the description could be clearer about this constraint.

Consider adding wording like "When provided, it must contain at least 1 item."

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to data retention organization setting

📥 Commits

Reviewing files that changed from the base of the PR and between 6d35063 and 2a9f7e0.

📒 Files selected for processing (7)
  • hack/update-payload-crds.sh
  • payload-manifests/crds/0000_10_config-operator_01_insightsdatagathers-CustomNoUpgrade.crd.yaml
  • payload-manifests/crds/0000_10_config-operator_01_insightsdatagathers-DevPreviewNoUpgrade.crd.yaml
  • payload-manifests/crds/0000_10_config-operator_01_insightsdatagathers-TechPreviewNoUpgrade.crd.yaml
  • payload-manifests/crds/0000_10_insights_01_datagathers-CustomNoUpgrade.crd.yaml
  • payload-manifests/crds/0000_10_insights_01_datagathers-DevPreviewNoUpgrade.crd.yaml
  • payload-manifests/crds/0000_10_insights_01_datagathers-TechPreviewNoUpgrade.crd.yaml
🔇 Additional comments (11)
payload-manifests/crds/0000_10_config-operator_01_insightsdatagathers-CustomNoUpgrade.crd.yaml (2)

20-26: API upgrade to v1 with compatibility level 1 looks good.

The version bump from v1alpha2 to v1 with compatibility level 1 (stable for minimum 12 months or 3 minor releases) is appropriate for a GA API.


226-231: Breaking change: gatherConfig is now required.

Making gatherConfig required at the spec level is a breaking change from v1alpha2. Existing CRs without this field will fail validation after upgrade.

Ensure migration documentation and upgrade path are in place for existing v1alpha2 resources.

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

1-233: Consistent with CustomNoUpgrade variant.

The schema changes (v1 upgrade, required gatherConfig, minItems/minLength constraints) are identical to the CustomNoUpgrade CRD, maintaining consistency across feature sets.

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

1-233: Consistent with other InsightsDataGather variants.

The schema changes are identical across all three feature set variants (CustomNoUpgrade, DevPreviewNoUpgrade, TechPreviewNoUpgrade), ensuring API consistency.

hack/update-payload-crds.sh (1)

31-32: Path updated from v1alpha2 to v1 for insights datagathers.

The path change from insights/v1alpha2 to insights/v1 correctly aligns with the CRD version upgrade.

payload-manifests/crds/0000_10_insights_01_datagathers-CustomNoUpgrade.crd.yaml (4)

29-33: Age printer column added alongside v1 upgrade.

The Age column provides useful UX when listing resources with kubectl get. The v1 version with compatibility level 1 is appropriate.


230-233: minProperties: 1 on status may cause issues.

The minProperties: 1 constraint requires the status object to have at least one property when present. This could cause issues if the controller sets an empty status initially before populating fields.

Verify this aligns with controller behavior - if the controller always sets at least one status field (e.g., startTime or a condition) on creation, this is fine.


516-518: insightsReport now requires downloadedTime and uri.

Making these fields required within insightsReport is appropriate since the report is meaningless without knowing when it was downloaded and from where.


227-228: Breaking change: gatherers is now required in spec.

This is a breaking change from v1alpha2. Ensure existing DataGather resources include the gatherers field or have a migration path.

payload-manifests/crds/0000_10_insights_01_datagathers-DevPreviewNoUpgrade.crd.yaml (1)

1-627: Consistent with CustomNoUpgrade DataGather variant.

The schema changes are identical to the CustomNoUpgrade CRD, maintaining consistency across feature sets for the DataGather resource.

payload-manifests/crds/0000_10_insights_01_datagathers-TechPreviewNoUpgrade.crd.yaml (1)

1-627: Consistent with other DataGather variants.

The schema changes are identical across all three feature set variants, ensuring API consistency for the DataGather resource.

Comment on lines 9 to 10
operator/v1/zz_generated.crd-manifests//*_config-operator_*.crd*yaml\
operator/v1alpha1/zz_generated.crd-manifests//*_config-operator_*.crd*yaml\
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Typo: Double slashes in glob patterns.

Lines 9 and 10 contain double slashes (//) which appear to be typos:

  • operator/v1/zz_generated.crd-manifests//*_config-operator_*.crd*yaml
  • operator/v1alpha1/zz_generated.crd-manifests//*_config-operator_*.crd*yaml

While this may still work due to path normalization, it's inconsistent with the other patterns.

🔧 Suggested fix
-    operator/v1/zz_generated.crd-manifests//*_config-operator_*.crd*yaml\
-    operator/v1alpha1/zz_generated.crd-manifests//*_config-operator_*.crd*yaml\
+    operator/v1/zz_generated.crd-manifests/*_config-operator_*.crd*yaml\
+    operator/v1alpha1/zz_generated.crd-manifests/*_config-operator_*.crd*yaml\
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
operator/v1/zz_generated.crd-manifests//*_config-operator_*.crd*yaml\
operator/v1alpha1/zz_generated.crd-manifests//*_config-operator_*.crd*yaml\
operator/v1/zz_generated.crd-manifests/*_config-operator_*.crd*yaml\
operator/v1alpha1/zz_generated.crd-manifests/*_config-operator_*.crd*yaml\
🤖 Prompt for AI Agents
In @hack/update-payload-crds.sh around lines 9 - 10, The two glob patterns in
hack/update-payload-crds.sh contain a stray double slash; update the patterns
`operator/v1/zz_generated.crd-manifests//*_config-operator_*.crd*yaml` and
`operator/v1alpha1/zz_generated.crd-manifests//*_config-operator_*.crd*yaml` to
use a single slash (i.e., `...crd-manifests/*_config-operator_*.crd*yaml`) so
they match consistently with the other patterns.

@opokornyy
Copy link
Contributor Author

/testwith openshift/insights-operator/master/periodics/e2e-gcp-techpreview openshift/insights-operator#1159 ccx/insights-operator-tests#1108

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jan 7, 2026

@opokornyy, testwith: Error processing request. ERROR:

could not determine job runs: couldn't get PR from GitHub: ccx/insights-operator-tests#1108: Get "http://ghproxy/repos/ccx/insights-operator-tests/pulls/1108": failed to get installation id for org ccx: the github app is not installed in organization ccx

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jan 7, 2026

@opokornyy: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/okd-scos-images 2a9f7e0 link true /test okd-scos-images
ci/prow/minor-e2e-upgrade-minor 2a9f7e0 link true /test minor-e2e-upgrade-minor

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

@BaiyangZhou
Copy link

All the v1-related cases of Insights-Operator passed in the 4.22 cluster.

@JoelSpeed
Copy link
Contributor

@BaiyangZhou can you confirm which PRs you needed to get that testing working?

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/L Denotes a PR that changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants