Skip to content

MGMT-21787: Update prompt to include platform integration#218

Merged
openshift-merge-bot[bot] merged 1 commit intorh-ecosystem-edge:mainfrom
CrystalChun:platforms
Sep 29, 2025
Merged

MGMT-21787: Update prompt to include platform integration#218
openshift-merge-bot[bot] merged 1 commit intorh-ecosystem-edge:mainfrom
CrystalChun:platforms

Conversation

@CrystalChun
Copy link
Contributor

@CrystalChun CrystalChun commented Sep 22, 2025

Includes:

  • additional constraints around setting VIPs during Cluster Configuration (step 4)
  • additional note about setting host roles with OCI during host discovery (step 3)

Summary by CodeRabbit

  • Documentation
    • Added guidance for OCI clusters: hosts must be assigned manually; manual role assignment options documented.
    • Expanded VIP configuration guidance: API/Ingress VIPs are required for Bare Metal, vSphere, and Nutanix; not required for Platform None or OCI.
    • Clarified that existing VIP rules for single-node clusters and for clusters with user-managed networking disabled remain unchanged.

@openshift-ci-robot
Copy link

openshift-ci-robot commented Sep 22, 2025

@CrystalChun: This pull request references MGMT-21787 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 "4.21.0" version, but no target version was set.

Details

In response to this:

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.

@openshift-ci openshift-ci bot requested review from carbonin and keitwb September 22, 2025 17:52
@coderabbitai
Copy link

coderabbitai bot commented Sep 22, 2025

Walkthrough

Template guidance updated to be platform-aware: clusters on baremetal, vsphere, or nutanix must set API and Ingress VIPs; clusters on none or oci do not require VIPs. Existing VIP rules for single-node clusters and when user-managed networking is disabled remain unchanged.

Changes

Cohort / File(s) Summary
Installer template updates
template.yaml
Added platform selection (baremetal, vsphere, oci, nutanix, none) and extended VIP guidance to require API/Ingress VIPs for baremetal/vsphere/nutanix while indicating none/oci do not need VIPs; preserved single-node and user-managed-networking conditions; clarified initiation prompt.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  participant U as User
  participant T as Template UI
  participant C as Cluster Config

  rect rgb(245,248,255)
  note over T,C: Platform selection & VIP rules
  U->>T: Select platform (baremetal|vsphere|oci|nutanix|none)
  T->>C: Save platform
  alt Platform requires VIPs (baremetal|vsphere|nutanix)
    T->>U: Show API & Ingress VIP prerequisites
  else Platform without VIPs (none|oci)
    T->>U: Indicate VIPs not required
  end
  end

  rect rgb(243,255,245)
  note over T: Initiate Installation
  T->>U: Prompt to initiate installation
  U->>T: Confirm start
  T->>C: Start installation
  end
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Suggested reviewers

  • keitwb
  • carbonin
  • omertuc

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed The title references the corresponding JIRA issue and clearly summarizes the primary change of updating the assistant prompt to include platform integration, aligning with the PR objectives.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 10d224b and 9f60272.

📒 Files selected for processing (1)
  • template.yaml (2 hunks)
🔇 Additional comments (2)
template.yaml (2)

275-275: Confirm OCI really requires manual role assignment

Line 275 asserts OCI hosts must be manually assigned. I’m not aware of platform OCI disabling Assisted Installer’s automatic role assignment heuristics. Please double-check before we hard-code this behavior.


295-298: Stop gating VIP prompts solely by platform

Line 295 contradicts the preceding gating by multi-node + UMN-disabled and will drive the agent to give wrong instructions. Please fold platform nuances under that existing rule so we don't override it.

-          * Clusters with platform baremetal, vsphere, or nutanix need to **set API and Ingress VIPs**.
-          * Single node clusters don't need to **set API and Ingress VIPs**.
-          * Clusters with platform none or oci don't need to **set API and Ingress VIPs**.
-          * Cluster with user-managed networking enabled don't need to **set API and Ingress VIPs**.
+          * Single node clusters don't need to **set API and Ingress VIPs**.
+          * Platform nuances:
+            * baremetal, vsphere, nutanix: follow the rule above—VIPs required only when user-managed networking is disabled; when user-managed networking is enabled, rely on external load balancer IPs instead of prompting for VIPs.
+            * none: rely on external/manual load balancing; do not set VIPs.
+            * oci: supported only with user-managed networking; gather external load balancer IPs instead of prompting for VIPs.
+          * When user-managed networking is enabled, do not prompt for VIPs; instead collect the external load balancer IPs (api_vips/ingress_vips) if the workflow needs them.

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.

@openshift-ci
Copy link

openshift-ci bot commented Sep 22, 2025

Hi @CrystalChun. Thanks for your PR.

I'm waiting for a rh-ecosystem-edge member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

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.

@openshift-ci-robot
Copy link

openshift-ci-robot commented Sep 22, 2025

@CrystalChun: This pull request references MGMT-21787 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 "4.21.0" version, but no target version was set.

Details

In response to this:

Summary by CodeRabbit

  • New Features

  • Added platform selection for clusters: Bare Metal, vSphere, OCI, Nutanix, or None.

  • Enhanced Initiate Installation step with a proactive prompt to start installation.

  • Documentation

  • Updated VIP configuration guidance: prerequisites now apply to Bare Metal, vSphere, and Nutanix clusters.

  • Clarified that clusters using Platform None or OCI do not require API/Ingress VIPs.

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.

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: 2

Caution

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

⚠️ Outside diff range comments (1)
template.yaml (1)

207-211: Scope contradiction: OCI listed as a platform but “Public clouds … not supported.”

If OCI is now supported via Assisted platform integration, update scope statements accordingly to avoid confusing users.

Suggested tweak:

-      - Supported: On-premise OpenShift installs via Assisted Installer on baremetal hosts or VMs (e.g., vSphere, KVM, libvirt).
-      - Not supported: Public clouds (AWS, Azure, GCP) or any non-Assisted platforms/hosted services.
+      - Supported: Assisted Installer workflows on baremetal and supported platform integrations (e.g., vSphere, Nutanix, OCI) as available for the target OCP version.
+      - Not supported: Platforms not supported by Assisted Installer for the target OCP version (e.g., AWS/Azure/GCP unless explicitly supported via Assisted integration).
🧹 Nitpick comments (1)
template.yaml (1)

249-251: Microcopy nit: fix duplicated “or”.

Minor grammar fix to polish the refusal text.

-          * **Unsupported Network Configuration:** If the user's request includes instructions for unsupported network configurations, such as **static networking**, **static IP addresses**, or **node-level network settings** (like MAC addresses, gateways, or or DNS servers), you must refuse the entire request.** Do not proceed with cluster creation. Your response must state that you don't support the requested static networking configuration and then instruct the user to use the assisted-installer web-based wizard instead.
+          * **Unsupported Network Configuration:** If the user's request includes instructions for unsupported network configurations, such as **static networking**, **static IP addresses**, or **node-level network settings** (like MAC addresses, gateways, or DNS servers), you must refuse the entire request.** Do not proceed with cluster creation. Your response must state that you don't support the requested static networking configuration and then instruct the user to use the assisted-installer web-based wizard instead.
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 048655b and 220ed29.

📒 Files selected for processing (1)
  • template.yaml (1 hunks)

Comment on lines +283 to 287
* Clusters with platform baremetal, vsphere, or nutanix need to **set API and Ingress VIPs**.
* Single node clusters don't need to **set API and Ingress VIPs**.
* Clusters with platform none or oci don't need to **set API and Ingress VIPs**.
* Cluster with user-managed networking enabled don't need to **set API and Ingress VIPs**.
* Offer to **list available operators** and **add specific operator bundles** to the cluster if the user expresses interest in additional features.
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue

🧩 Analysis chain

Clarify VIP requirements by platform; current bullets can mislead.

As written, readers may infer unconditional VIP requirements/exemptions by platform. In Assisted Installer, VIPs are tied primarily to multi‑node + user‑managed‑networking (UMN) being disabled. Please fold platform nuances under that gating to avoid contradictions.

Apply this refinement:

       * Before installation, the user might need to **set API and Ingress VIPs**. Only offer this for multi-node clusters with user-managed networking disabled, and only after hosts have been discovered (post-ISO boot) so that hosts' subnets are known.
-      * Clusters with platform baremetal, vsphere, or nutanix need to **set API and Ingress VIPs**.
-      * Single node clusters don't need to **set API and Ingress VIPs**.
-      * Clusters with platform none or oci don't need to **set API and Ingress VIPs**.
-      * Cluster with user-managed networking enabled don't need to **set API and Ingress VIPs**.
+      * Platform nuances:
+        * baremetal, vsphere, nutanix: VIPs required when UMN is disabled; when UMN is enabled, do not set VIPs.
+        * none: do not set VIPs (rely on external/manual load balancing).
+        * oci: do not set VIPs (rely on cloud load balancers if applicable).
+      * Single node clusters don't need to **set API and Ingress VIPs**.
+      * Clusters with user-managed networking enabled don't need to **set API and Ingress VIPs**.

To confirm the exact OCI/None behaviors in Assisted Installer, please verify with upstream docs/releases:


🌐 Web query:

OpenShift Assisted Installer VIP requirements by platform (baremetal, vSphere, Nutanix, None, OCI) and user-managed networking

💡 Result:

Summary — VIP requirements (Assisted Installer / OpenShift 4.x)

  • General (cluster-managed networking, default): you must provide two VIPs in the machine network: API VIP (api..<base_domain>) and Ingress VIP (*.apps..<base_domain>). VIPs must be IPv4 when using dual‑stack (IPv4 primary). VIPs must belong to the machine CIDR and be reachable. [1][2][3]

  • User‑managed networking: the Assisted API expects you to supply the load‑balancer IP(s) instead of relying on keepalived/VRRP. Set user_managed_networking=true (and load_balancer.type=user‑managed) and specify api_vips and ingress_vips (they may both point to the same external LB IP if your LB uses a single VIP). VIP DHCP allocation is available but limited and not supported for newer SDN/OVN changes. [4][1]

  • Bare metal (Assisted IPI/UPI): requires API and Ingress VIPs for cluster‑managed networking (or the external LB IPs when user‑managed). If using VIP DHCP allocation, ensure SDN constraints apply. Keep ports 6443 (API) and 443 (console) reachable. [2][5]

  • vSphere (Assisted): same VIP rules as bare metal — provide API + Ingress VIPs (or external LB IPs with user‑managed networking). vSphere platform integration is supported by the Assisted Installer. [6][2]

  • Nutanix (Assisted): same VIP rules — supply API + Ingress VIPs (or external LB IPs if user‑managed). Nutanix is a supported platform for the Assisted Installer. [2][6]

  • OCI (Oracle Cloud Infrastructure): Assisted Installer support for OCI is available only with user‑managed networking (use an external load balancer / provide LB VIPs). You must supply the external LB IP(s) via api_vips/ingress_vips and enable user_managed_networking. [7][2]

Notes / links

  • API/Ingress VIP JSON fields and examples, dual‑stack rules, and vip_dhcp_allocation details: Red Hat Assisted Installer docs. [1][4]
  • Machine‑CIDR / validation rules, cluster vs. user‑managed networking behavior and validations. [3][5]

Sources
[1] Red Hat — Assisted Installer (VIPs, JSON examples & vip_dhcp_allocation).
[2] OpenShift docs — Installing with the Assisted Installer (networking, VIP requirements).
[3] OpenShift installer UPI docs (load balancer ports/requirements).
[4] Assisted Installer guide — configuring user‑managed load balancer and api_vips/ingress_vips.
[5] Assisted Installer validations (api/ingress VIP validations, machine CIDR).
[6] Assisted Installer platform pages (vSphere, Nutanix support).
[7] Notes on OCI support requiring user‑managed networking.

If you want, I can extract the exact JSON snippets and example CLI/API payloads for each platform (and indicate whether API+Ingress can be the same IP for your LB).


Clarify VIP requirements: gate by networking mode and node-count, not just platform

File: template.yaml Lines: 283-287

  • VIPs are determined by node-count + networking mode, not only by platform: for multi-node clusters with cluster-managed networking (default) require API + Ingress VIPs in the machine CIDR and reachable; prompt for them only after hosts are discovered (post‑ISO) so subnets are known.
  • If user_managed_networking=true the Assisted API expects external load‑balancer IP(s) — set api_vips/ingress_vips (may be the same IP). OCI is supported only with user‑managed networking and requires external LB IPs.
  • Platform mapping: baremetal / vSphere / Nutanix follow the above (VIPs for cluster‑managed; external LB IPs when UMN). platform "none" relies on external/manual load balancing (supply external LB IPs). Single‑node clusters do not need VIPs.
🤖 Prompt for AI Agents
template.yaml lines 283-287: update the VIP guidance to gate requirements by
node-count and networking mode (user_managed_networking) rather than by platform
alone; explicitly state that multi-node clusters with cluster-managed networking
require API and Ingress VIPs in the machine CIDR and reachable (prompt for them
after hosts are discovered/post-ISO when subnets are known), that
user_managed_networking=true requires external load-balancer IPs set via
api_vips/ingress_vips (can be same IP) and that OCI supports only user-managed
networking with external LB IPs, that baremetal/vSphere/Nutanix follow the
node-count + networking-mode rules, platform "none" relies on external/manual
load balancing (supply external LB IPs), and single-node clusters do not need
VIPs.

@keitwb
Copy link
Contributor

keitwb commented Sep 22, 2025

@CrystalChun I would hold this until the submodule update for the MCP server tool changes can be done in this same PR so that it doesn't break integration.

@keitwb
Copy link
Contributor

keitwb commented Sep 22, 2025

Also have you tried it without the prompt updates that are redundant to the MCP tool descriptions? I'm not sure if it gives a higher priority or weight on the prompt vs tool listing, but it would help keep the prompt smaller if we could just rely on the MCP descriptions for most of the guidelines around setting platform.

@CrystalChun
Copy link
Contributor Author

Also have you tried it without the prompt updates that are redundant to the MCP tool descriptions? I'm not sure if it gives a higher priority or weight on the prompt vs tool listing, but it would help keep the prompt smaller if we could just rely on the MCP descriptions for most of the guidelines around setting platform.

I have and didn't realize it's best not to be redundant! Thanks for letting me know. I've removed the redundant prompts that are already part of the tool descriptions.

@CrystalChun
Copy link
Contributor Author

/hold
Until openshift-assisted/assisted-service-mcp#100 is merged

@openshift-ci-robot
Copy link

openshift-ci-robot commented Sep 22, 2025

@CrystalChun: This pull request references MGMT-21787 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 "4.21.0" version, but no target version was set.

Details

In response to this:

Summary by CodeRabbit

  • Documentation
  • Extended VIP configuration guidance: API/Ingress VIPs are required for Bare Metal, vSphere, and Nutanix clusters; not required for Platform None or OCI.
  • Clarified VIP applicability alongside existing rules for single-node clusters and user-managed networking.

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.

Includes:
- additional constraints around setting VIPs during Cluster
Configuration (step 4)
- additional note about setting host roles with OCI during
host discovery (step 3)
@openshift-ci-robot
Copy link

openshift-ci-robot commented Sep 25, 2025

@CrystalChun: This pull request references MGMT-21787 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 "4.21.0" version, but no target version was set.

Details

In response to this:

Includes:

  • additional constraints around setting VIPs during Cluster Configuration (step 4)
  • additional note about setting host roles with OCI during host discovery (step 3)

Summary by CodeRabbit

  • Documentation
  • Extended VIP configuration guidance: API/Ingress VIPs are required for Bare Metal, vSphere, and Nutanix clusters; not required for Platform None or OCI.
  • Clarified VIP applicability alongside existing rules for single-node clusters and user-managed networking.

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.

@CrystalChun
Copy link
Contributor Author

/unhold

@openshift-ci-robot
Copy link

openshift-ci-robot commented Sep 25, 2025

@CrystalChun: This pull request references MGMT-21787 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 "4.21.0" version, but no target version was set.

Details

In response to this:

Includes:

  • additional constraints around setting VIPs during Cluster Configuration (step 4)
  • additional note about setting host roles with OCI during host discovery (step 3)

Summary by CodeRabbit

  • Documentation
  • Added guidance for OCI clusters: hosts must be assigned manually; manual role assignment options documented.
  • Expanded VIP configuration guidance: API/Ingress VIPs are required for Bare Metal, vSphere, and Nutanix; not required for Platform None or OCI.
  • Clarified that existing VIP rules for single-node clusters and for clusters with user-managed networking disabled remain unchanged.

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.

@openshift-ci
Copy link

openshift-ci bot commented Sep 26, 2025

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: carbonin, CrystalChun

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

@carbonin
Copy link
Collaborator

/ok-to-test

@carbonin
Copy link
Collaborator

/retest

@openshift-ci
Copy link

openshift-ci bot commented Sep 29, 2025

@CrystalChun: The following test 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/eval-test 9f60272 link false /test eval-test

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.

@openshift-merge-bot openshift-merge-bot bot merged commit 6e2160f into rh-ecosystem-edge:main Sep 29, 2025
6 of 7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants