Skip to content

OSPRH-38067: Record platform-state after RHOSO in monolithic jobs - #48

Merged
openshift-merge-bot[bot] merged 1 commit into
mainfrom
feat/monolithic-record-platform-state
Oct 12, 2026
Merged

openshift-merge-bot[bot] merged 1 commit into
mainfrom
feat/monolithic-record-platform-state

Conversation

@tusharjadhav3302

@tusharjadhav3302 tusharjadhav3302 commented Oct 11, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Monolithic osp_verification* jobs now write the phased platform-state.yaml contract on the hypervisor after RHOSO is already deployed, so warm Pipeline B can reuse Saturday platforms.

  • New record_platform_state stage/role probes live RHOSO via rhoso_kubeconfig (OpenStackVersion.deployedVersion, OCP /readyz, OpenStackControlPlane Ready) and writes /home/zuul/ci-framework-data/platform-state.yaml on the hypervisor (same schema as ci-framework-jobs phased recorder).
  • Wired in playbooks/ocp_testing.yaml when the stage is listed.
  • Enabled only on monolithic osp_verification.yaml and osp_verification_*_nightly.yaml job definitions.
  • Not for phased setup: Pipeline A already records via ci-framework-jobs; Pipeline B overrides stages without this stage (would be redundant).

Related

Test plan

  • Dry-run / review: stage runs after prepare in monolithic nightlies only; absent from phased cifmw_shiftstack_stages_override.
  • On next monolithic osp_verification run, confirm /home/zuul/ci-framework-data/platform-state.yaml exists on the hypervisor with platform_status: ready and live rhoso_version_full.
  • Confirm phased Pipeline B still skips this stage via override and continues to use Pipeline A recorded state.

Made with Cursor

@openshift-ci-robot

openshift-ci-robot commented Oct 11, 2026 •

Copy link
Copy Markdown

@tusharjadhav3302: This pull request references OSPRH-38067 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the task to target the "5.1.0" version, but no target version was set.

Details

In response to this:

Summary

Monolithic osp_verification* jobs now write the phased platform-state.yaml contract on the hypervisor after RHOSO is already deployed, so warm Pipeline B can reuse Saturday platforms.

  • New record_platform_state stage/role probes live RHOSO via rhoso_kubeconfig (OpenStackVersion.deployedVersion, OCP /readyz, OpenStackControlPlane Ready) and writes /home/zuul/ci-framework-data/platform-state.yaml on the hypervisor (same schema as ci-framework-jobs phased recorder).
  • Wired in playbooks/ocp_testing.yaml when the stage is listed.
  • Enabled only on monolithic osp_verification.yaml and osp_verification_*_nightly.yaml job definitions.
  • Not for phased setup: Pipeline A already records via ci-framework-jobs; Pipeline B overrides stages without this stage (would be redundant).

Related

Test plan

  • Dry-run / review: stage appears first in monolithic nightlies only; absent from phased cifmw_shiftstack_stages_override.
  • On next monolithic osp_verification run, confirm /home/zuul/ci-framework-data/platform-state.yaml exists on the hypervisor with platform_status: ready and live rhoso_version_full.
  • Confirm phased Pipeline B still skips this stage via override and continues to use Pipeline A recorded state.

Made with Cursor

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 openshift-eng/jira-lifecycle-plugin repository.

Comment thread playbooks/ocp_testing.yaml Outdated
# so warm Pipeline B can reuse the platform. Phased jobs must not list this stage
# (Pipeline B overrides stages without it; Pipeline A already records via jobs).
- name: Record platform-state for monolithic warm reuse
ansible.builtin.import_playbook: plays/record_platform_state.yaml

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.

On a fresh shiftstackclient pod, oc is not installed yet: the published client image does not include it, and plays/prepare.yaml downloads it later. Running the recorder here makes its probes fail and aborts every monolithic job before preparation starts. Please bootstrap oc before these probes, or move the recorder after plays/prepare.yaml installs the client.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Good catch. Moved the recorder to run after plays/prepare.yaml, so oc is installed before the probes. Also reordered the monolithic stage lists to prepare then record_platform_state to match playbook order.

@tusharjadhav3302
tusharjadhav3302 force-pushed the feat/monolithic-record-platform-state branch from 7bf008e to 7719b14 Compare October 12, 2026 09:23
KUBECONFIG: "{{ rhoso_kubeconfig }}"
ansible.builtin.shell: |
set -euo pipefail
oc -n {{ record_platform_state_openstack_namespace }} \

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.

Zuul can leave this kubeconfig on a non-admin context; configure-hypervisor.yaml switches its separate copy to admin for that reason. If the pod's current context cannot read these OpenStack resources, this probe fails and stops the monolithic job before installation. Could you pass --context=admin to the oc probes, or use an isolated kubeconfig copy with admin selected?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Agreed. Updated the three oc probes to pass --context=admin so they do not depend on the kubeconfig current context.

Add a record_platform_state stage that probes live RHOSO
(OpenStackVersion.deployedVersion, OCP API, OpenStackControlPlane Ready)
from the shiftstackclient pod and writes platform-state.yaml on the
hypervisor in the same schema as the phased recorder.

Run the stage after prepare installs oc on the client pod. Pass
--context=admin on oc probes so a non-admin current context cannot
block OpenStack CR reads. Enable the stage only on monolithic
osp_verification* nightlies so warm Pipeline B can reuse Saturday
platforms. Phased Pipeline A already records via ci-framework-jobs;
Pipeline B stage overrides must not list this stage (redundant).

Co-authored-by: Cursor <[email protected]>
@tusharjadhav3302
tusharjadhav3302 force-pushed the feat/monolithic-record-platform-state branch from 7719b14 to 4591830 Compare October 12, 2026 10:04
@ekuris-redhat

Copy link
Copy Markdown
Contributor

/lgtm
/approve

@openshift-ci

openshift-ci Bot commented Oct 12, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: ekuris-redhat

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-merge-bot
openshift-merge-bot Bot merged commit f407708 into main Oct 12, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Development

Successfully merging this pull request may close these issues.

3 participants