Skip to content

rh-ecosystem-edge/ibm-ci: onboard IBM Spyre operator CI to Prow - #82309

Open
onaim500 wants to merge 6 commits into
openshift:mainfrom
onaim500:ibm-ci-prow-onboard
Open

rh-ecosystem-edge/ibm-ci: onboard IBM Spyre operator CI to Prow#82309
onaim500 wants to merge 6 commits into
openshift:mainfrom
onaim500:ibm-ci-prow-onboard

Conversation

@onaim500

@onaim500 onaim500 commented Jul 22, 2026

Copy link
Copy Markdown

Summary

  • Onboards rh-ecosystem-edge/ibm-ci to OpenShift CI (Prow)
  • Image build from Containerfile
  • deploy-spyre-operator test: SSH to IBM Spyre hardware, deploy via Ansible (manual trigger with /test deploy-spyre-operator)
  • Prow plugins (assign, blunderbuss, lgtm, approve, etc.) and Tide merge automation
  • OWNERS files for team reviewers

Jira

MGMT-24319

Test plan

  • Verify image build with /test images
  • Verify deploy job with /test deploy-spyre-operator (requires Vault secret ibm-ci synced to test-credentials namespace)
  • Confirm Vault secret propagation (~30 min after creation)

/cc @aopincar @ItzikEzra-rh

Summary by CodeRabbit

  • Onboards rh-ecosystem-edge/ibm-ci to OpenShift CI with a Containerfile-based image build.
  • Adds a manually triggered deploy-spyre-operator test for IBM Spyre hardware.
  • Adds the ibm-ci-deploy step, which uses SSH credentials and a pull secret to run the Ansible deployment.
  • Configures Prow plugins and Tide merge automation.
  • Adds OWNERS files for reviewer and approver selection.

Adds CI configuration for rh-ecosystem-edge/ibm-ci with:
- Image build from Containerfile
- deploy-spyre-operator test (manual trigger, SSH to IBM hardware)
- Prow plugins and Tide merge automation
- OWNERS files for team reviewers

MGMT-24319

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@openshift-ci
openshift-ci Bot requested a review from aopincar July 22, 2026 16:47
@openshift-ci

openshift-ci Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

@onaim500: GitHub didn't allow me to request PR reviews from the following users: ItzikEzra-rh.

Note that only openshift members and repo collaborators can review this PR, and authors cannot review their own PRs.

Details

In response to this:

Summary

  • Onboards rh-ecosystem-edge/ibm-ci to OpenShift CI (Prow)
  • Image build from Containerfile
  • deploy-spyre-operator test: SSH to IBM Spyre hardware, deploy via Ansible (manual trigger with /test deploy-spyre-operator)
  • Prow plugins (assign, blunderbuss, lgtm, approve, etc.) and Tide merge automation
  • OWNERS files for team reviewers

Jira

MGMT-24319

Test plan

  • Verify image build with /test images
  • Verify deploy job with /test deploy-spyre-operator (requires Vault secret ibm-ci synced to test-credentials namespace)
  • Confirm Vault secret propagation (~30 min after creation)

/cc @aopincar @ItzikEzra-rh

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.

@coderabbitai

coderabbitai Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Central YAML (inherited)

Review profile: CHILL

Plan: Pro Plus

Run ID: cc5d1d00-136f-4945-90a1-245b95c9b4a9

📥 Commits

Reviewing files that changed from the base of the PR and between c15a316 and 6e71587.

⛔ Files ignored due to path filters (1)
  • ci-operator/jobs/rh-ecosystem-edge/ibm-ci/rh-ecosystem-edge-ibm-ci-main-presubmits.yaml is excluded by !ci-operator/jobs/**
📒 Files selected for processing (2)
  • ci-operator/step-registry/ibm-ci/deploy/ibm-ci-deploy-ref.metadata.json
  • core-services/prow/02_config/rh-ecosystem-edge/ibm-ci/_pluginconfig.yaml

Walkthrough

Adds IBM CI repository ownership, an OpenShift CI-operator build and deployment test, a registered deployment step, and Prow plugin and Tide configuration for rh-ecosystem-edge/ibm-ci.

Changes

IBM CI onboarding

Layer / File(s) Summary
Prow governance and ownership
core-services/prow/02_config/rh-ecosystem-edge/ibm-ci/*
Adds repository ownership, enables Prow plugins, configures trusted triggers, and requires approved and lgtm labels with blocking-label checks.
Deployment step registration and execution
ci-operator/step-registry/ibm-ci/deploy/*, ci-operator/step-registry/ibm-ci/OWNERS
Registers ibm-ci-deploy, mounts IBM CI credentials, prepares SSH and pull-secret files, generates an Ansible inventory from IBM_HOST, and runs make -C ansible install.
CI-operator workflow
ci-operator/config/rh-ecosystem-edge/ibm-ci/*
Defines the build image, resource defaults, generated metadata, and a deploy-spyre-operator test that references ibm-ci-deploy.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Test as deploy-spyre-operator
  participant Step as ibm-ci-deploy
  participant Credentials as IBM CI credentials
  participant Ansible as Ansible
  Test->>Step: Run deployment step
  Step->>Credentials: Read SSH key and pull secret
  Step->>Step: Generate inventory from IBM_HOST
  Step->>Ansible: Run make -C ansible install
Loading

Possibly related PRs

  • openshift/release#82954: Adds a repository-specific Tide configuration requiring approved and lgtm labels with blocking-label checks.

Suggested labels: jira/valid-reference

Suggested reviewers: aopincar

🚥 Pre-merge checks | ✅ 15
✅ Passed checks (15 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes onboarding IBM Spyre operator CI to Prow, which matches the main changes in the pull request.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Stable And Deterministic Test Names ✅ Passed The PR adds no Ginkgo test code or It/Describe/Context/When titles. Its deploy-spyre-operator CI test identifier is static and contains no run-dependent value.
Test Structure And Quality ✅ Passed The PR contains CI configuration files, OWNERS files, a Bash deployment script, and JSON metadata—not Ginkgo test code. The check requires Ginkgo test review and does not apply.
Microshift Test Compatibility ✅ Passed The PR adds CI configuration, OWNERS files, metadata, and a deployment shell script; it adds no Ginkgo e2e tests or It/Describe/Context/When declarations.
Single Node Openshift (Sno) Test Compatibility ✅ Passed The complete PR range adds only CI configuration, OWNERS files, YAML, JSON, and a deployment shell script; it adds no Ginkgo e2e tests requiring SNO analysis.
Topology-Aware Scheduling Compatibility ✅ Passed The PR adds CI/Prow configuration and a remote Ansible step; reviewed files contain no topology, affinity, spread, node-selection, toleration, replica, or PDB scheduling constraints.
Ote Binary Stdout Contract ✅ Passed The PR changes only YAML, OWNERS, metadata, and a deployment shell script; no Go or OTE process-level code is added or modified.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed PR adds no Ginkgo e2e tests. The files added are CI/Prow configuration, OWNERS metadata, and a bash deployment script—not e2e test code.
No-Weak-Crypto ✅ Passed The cumulative PR additions contain no MD5, SHA1, DES, RC4, 3DES, Blowfish, ECB, crypto APIs, custom crypto, or secret comparisons; the script only decodes base64 credentials.
Container-Privileges ✅ Passed No privileged container configurations found. The PR adds CI configs with no privileged: true, hostPID, hostNetwork, hostIPC, SYS_ADMIN, or allowPrivilegeEscalation settings. The ansible_user: root...
No-Sensitive-Data-In-Logs ✅ Passed The deployment script uses two echo statements only for appending newlines and configuration file paths, not actual secrets. Credentials are handled securely without logging exposure.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

@openshift-ci

openshift-ci Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: onaim500

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

The pull request process is described 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

@openshift-ci openshift-ci Bot added approved Indicates a PR has been approved by an approver from all required OWNERS files. do-not-merge/invalid-owners-file Indicates that a PR should not merge because it has an invalid OWNERS file in it. labels Jul 22, 2026
Extract inline deploy commands to step-registry ref ibm-ci-deploy
for reusability and consistency with DPF pattern.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In
`@ci-operator/config/rh-ecosystem-edge/ibm-ci/rh-ecosystem-edge-ibm-ci-main.yaml`:
- Around line 18-53: Restrict the credential-bearing deploy-spyre-operator job
from untrusted pull-request execution by removing it from the pull-ci presubmit
configuration and moving it to a trusted postsubmit or branch job. Preserve the
deployment steps only where the ibm-ci credential mount is permitted, or replace
that mount with short-lived, narrowly scoped access.

In `@core-services/prow/02_config/rh-ecosystem-edge/ibm-ci/_prowconfig.yaml`:
- Around line 6-12: Add do-not-merge/product-pre-release to the missingLabels
list in the Prow configuration, matching the standard merge-blocking policy used
by comparable repositories. Preserve all existing labels and ordering.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Central YAML (inherited)

Review profile: CHILL

Plan: Enterprise

Run ID: 0e673a9b-4b17-49a0-9b25-3933ec8af824

📥 Commits

Reviewing files that changed from the base of the PR and between e7b3e6d and 40a663a.

⛔ Files ignored due to path filters (2)
  • ci-operator/jobs/rh-ecosystem-edge/ibm-ci/OWNERS is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/rh-ecosystem-edge/ibm-ci/rh-ecosystem-edge-ibm-ci-main-presubmits.yaml is excluded by !ci-operator/jobs/**
📒 Files selected for processing (4)
  • ci-operator/config/rh-ecosystem-edge/ibm-ci/OWNERS
  • ci-operator/config/rh-ecosystem-edge/ibm-ci/rh-ecosystem-edge-ibm-ci-main.yaml
  • core-services/prow/02_config/rh-ecosystem-edge/ibm-ci/_pluginconfig.yaml
  • core-services/prow/02_config/rh-ecosystem-edge/ibm-ci/_prowconfig.yaml

Comment thread ci-operator/config/rh-ecosystem-edge/ibm-ci/rh-ecosystem-edge-ibm-ci-main.yaml Outdated
Comment on lines +6 to +12
missingLabels:
- backports/unvalidated-commits
- do-not-merge/hold
- do-not-merge/invalid-owners-file
- do-not-merge/work-in-progress
- jira/invalid-bug
- needs-rebase

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Block merges for do-not-merge/product-pre-release.

The Tide query omits this standard merge-blocking label, so a PR marked as a product pre-release could merge once it has approved and lgtm. Add it unless this repository is intentionally exempt.

This aligns with the existing policy in core-services/prow/02_config/integr8ly/integreatly-operator/_prowconfig.yaml.

Proposed fix
     - do-not-merge/invalid-owners-file
+    - do-not-merge/product-pre-release
     - do-not-merge/work-in-progress
📝 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
missingLabels:
- backports/unvalidated-commits
- do-not-merge/hold
- do-not-merge/invalid-owners-file
- do-not-merge/work-in-progress
- jira/invalid-bug
- needs-rebase
missingLabels:
- backports/unvalidated-commits
- do-not-merge/hold
- do-not-merge/invalid-owners-file
- do-not-merge/product-pre-release
- do-not-merge/work-in-progress
- jira/invalid-bug
- needs-rebase
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@core-services/prow/02_config/rh-ecosystem-edge/ibm-ci/_prowconfig.yaml`
around lines 6 - 12, Add do-not-merge/product-pre-release to the missingLabels
list in the Prow configuration, matching the standard merge-blocking policy used
by comparable repositories. Preserve all existing labels and ordering.

onaim500 and others added 2 commits July 22, 2026 20:12
- Add StrictHostKeyChecking=no for CI environment SSH
- Inject pull secret via --extra-vars ocp_pull_secret_file
  (playbook pre_tasks validates this variable is set)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ERBOSE

Append ocp_pull_secret_file to group_vars/all.yml instead of
overloading the Makefile VERBOSE variable with --extra-vars.
This uses Ansible's built-in variable mechanism properly.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@onaim500

Copy link
Copy Markdown
Author

/test images

@openshift-ci

openshift-ci Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

@onaim500: The specified target(s) for /test were not found.
The following commands are available to trigger required jobs:

/test boskos-config
/test boskos-config-generation
/test check-gh-automation
/test check-gh-automation-tide
/test check-trigger-trusted-apps
/test ci-operator-config
/test ci-operator-config-metadata
/test ci-operator-registry
/test ci-secret-bootstrap-config-validation
/test ci-testgrid-allow-list
/test cluster-manifest-verifier
/test clusterimageset-validate
/test config
/test core-valid
/test generated-config
/test generated-dashboards
/test hyperfleet-risk-scorer-test
/test image-mirroring-config-validation
/test jira-lifecycle-config
/test labels
/test openshift-image-mirror-mappings
/test ordered-prow-config
/test owners
/test pr-reminder-config
/test prow-config
/test prow-config-filenames
/test prow-config-semantics
/test pylint
/test release-config
/test release-controller-config
/test rover-groups-config-validation
/test secret-generator-config-valid
/test services-valid
/test stackrox-stackrox-stackrox-stackrox-check
/test step-registry-metadata
/test step-registry-shellcheck
/test sync-rover-groups
/test verified-config
/test yamllint

The following commands are available to trigger optional jobs:

/test check-cluster-profiles-config

Use /test all to run the following jobs that were automatically triggered:

pull-ci-openshift-release-check-gh-automation
pull-ci-openshift-release-check-gh-automation-tide
pull-ci-openshift-release-check-trigger-trusted-apps
pull-ci-openshift-release-main-boskos-config-generation
pull-ci-openshift-release-main-ci-operator-config
pull-ci-openshift-release-main-ci-operator-config-metadata
pull-ci-openshift-release-main-ci-operator-registry
pull-ci-openshift-release-main-config
pull-ci-openshift-release-main-core-valid
pull-ci-openshift-release-main-generated-config
pull-ci-openshift-release-main-ordered-prow-config
pull-ci-openshift-release-main-owners
pull-ci-openshift-release-main-prow-config
pull-ci-openshift-release-main-prow-config-filenames
pull-ci-openshift-release-main-prow-config-semantics
pull-ci-openshift-release-main-release-controller-config
pull-ci-openshift-release-main-step-registry-metadata
pull-ci-openshift-release-main-step-registry-shellcheck
pull-ci-openshift-release-openshift-image-mirror-mappings
pull-ci-openshift-release-yamllint
Details

In response to this:

/test images

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.

Add OWNERS files to core-services/prow/02_config and step-registry
parent directories. Remove ItzikEzra-rh (not an openshift org member)
from all OWNERS files to fix CI validation failures.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@openshift-ci openshift-ci Bot removed the do-not-merge/invalid-owners-file Indicates that a PR should not merge because it has an invalid OWNERS file in it. label Aug 5, 2026
- Add step-registry metadata JSON for ibm-ci-deploy ref
- Add cluster fields to presubmit job definitions
- Add external_plugins (needs-rebase, refresh, cherrypick, etc.)
  and triggers config to _pluginconfig.yaml matching org standard

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@openshift-merge-bot

Copy link
Copy Markdown
Contributor

[REHEARSALNOTIFIER]
@onaim500: the pj-rehearse plugin accommodates running rehearsal tests for the changes in this PR. Expand 'Interacting with pj-rehearse' for usage details. The following rehearsable tests have been affected by this change:

Test name Repo Type Reason
pull-ci-rh-ecosystem-edge-ibm-ci-main-deploy-spyre-operator rh-ecosystem-edge/ibm-ci presubmit Presubmit changed
pull-ci-rh-ecosystem-edge-ibm-ci-main-images rh-ecosystem-edge/ibm-ci presubmit Presubmit changed
Interacting with pj-rehearse

Comment: /pj-rehearse to run up to 5 rehearsals
Comment: /pj-rehearse skip to opt-out of rehearsals
Comment: /pj-rehearse {test-name}, with each test separated by a space, to run one or more specific rehearsals
Comment: /pj-rehearse more to run up to 10 rehearsals
Comment: /pj-rehearse max to run up to 25 rehearsals
Comment: /pj-rehearse auto-ack to run up to 5 rehearsals, and add the rehearsals-ack label on success
Comment: /pj-rehearse list to get an up-to-date list of affected jobs
Comment: /pj-rehearse abort to abort all active rehearsals
Comment: /pj-rehearse network-access-allowed to allow rehearsals of tests that have the restrict_network_access field set to false. This must be executed by an openshift org member who is not the PR author

Once you are satisfied with the results of the rehearsals, comment: /pj-rehearse ack to unblock merge. When the rehearsals-ack label is present on your PR, merge will no longer be blocked by rehearsals.
If you would like the rehearsals-ack label removed, comment: /pj-rehearse reject to re-block merging.

@openshift-ci

openshift-ci Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

@onaim500: all tests passed!

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.

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

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant