Skip to content

Conversation

@eliorerz
Copy link
Contributor

List all the issues related to this PR

  • New Feature
  • Enhancement
  • Bug fix
  • Tests
  • Documentation
  • CI/CD

What environments does this code impact?

  • Automation (CI, tools, etc)
  • Cloud
  • Operator Managed Deployments
  • None

/cc @eliorerz

@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Nov 25, 2025
@openshift-ci-robot
Copy link

@eliorerz: This pull request explicitly references no jira issue.

In response to this:

List all the issues related to this PR

  • New Feature
  • Enhancement
  • Bug fix
  • Tests
  • Documentation
  • CI/CD

What environments does this code impact?

  • Automation (CI, tools, etc)
  • Cloud
  • Operator Managed Deployments
  • None

/cc @eliorerz

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

openshift-ci bot commented Nov 25, 2025

@eliorerz: GitHub didn't allow me to request PR reviews from the following users: eliorerz.

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

In response to this:

List all the issues related to this PR

  • New Feature
  • Enhancement
  • Bug fix
  • Tests
  • Documentation
  • CI/CD

What environments does this code impact?

  • Automation (CI, tools, etc)
  • Cloud
  • Operator Managed Deployments
  • None

/cc @eliorerz

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
Copy link

coderabbitai bot commented Nov 25, 2025

Walkthrough

Adds a new comprehensive user guide for configuring and managing MachineSets on Assisted Installer vSphere clusters, covering setup procedures, configuration steps, YAML construction, worker provisioning, scaling strategies, and troubleshooting guidance.

Changes

Cohort / File(s) Change Summary
Documentation: vSphere MachineSet Guide
docs/user-guide/vsphere-machinesets.md
New file providing step-by-step instructions for deploying MachineSets on vSphere clusters, including preconditions, infrastructure data retrieval, YAML examples with placeholders, provisioning workflows, CSR handling, scaling configuration (manual and autoscaling), verification procedures, and troubleshooting reference.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

  • This is a documentation-only addition with no code logic or structural changes
  • Review focus: verify technical accuracy of commands, YAML syntax examples, and procedure completeness
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

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

@openshift-ci openshift-ci bot added the size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. label Nov 25, 2025
@openshift-ci
Copy link

openshift-ci bot commented Nov 25, 2025

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: eliorerz

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

The pull request process is described here

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 the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Nov 25, 2025
@eliorerz eliorerz force-pushed the autoscaling-vsphere branch from a543f06 to bf959d4 Compare November 25, 2025 00:40
@eliorerz eliorerz changed the title [WIP ] NO-ISSUE: Add documentation for creating RHCOS template and configuring MachineSets on vSphere clusters NO-ISSUE: Add documentation for creating RHCOS template and configuring MachineSets on vSphere clusters Nov 26, 2025
@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 Nov 26, 2025
Copy link
Member

@carbonin carbonin left a comment

Choose a reason for hiding this comment

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

Generally looks good, but there's repetition in some sections. For example, checking that the node is ready, ensuring CSRs are signed, how to get some information are things I saw multiple times.

I also think a good amount of the general scaling and autoscaling doc doesn't really need to be something we maintain because it should be in the core OCP docs and as far as I can tell isn't any different for clusters installed with assisted.


Below is a reference table for all the placeholders used in the example MachineSet YAML, including what each one means and how to find the correct value in your own environment.

| Placeholder | Meaning | Where to Find It |
Copy link
Member

Choose a reason for hiding this comment

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

This chart repeats a lot of the information in section 4.2 (specifically the details in "Where to Find It")

Maybe we should find a way to deduplicate

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Fixed! Simplified the reference table to just show placeholder descriptions. I also added a note pointing to Section 4.2 for the extraction commands.


## 6. Wait for node to join and approve CSRs

After applying the MachineSet, the Machine API will clone a new VM from the RHCOS template and boot it. The node will then request to join the cluster.
Copy link
Member

Choose a reason for hiding this comment

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

Do users need to deploy a new worker to set up platform integration? Would it be better to create the machineset with 0 replicas and scale up only when a worker is needed?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

No, they don't. The user will need to create a MachineSet (+ template) only if he wants to be able to scaling up/down the workers. For setting up the network integration the user is basically need to set up the credentials as described in section 2

csr-fghij 20s kubernetes.io/kubelet-serving system:node:worker-xxxxx Approved,Issued
```

### 8.4 Verify the new node joins the cluster
Copy link
Member

Choose a reason for hiding this comment

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

We already have this in section 6.2 right? Do we need to repeat it here?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Consolidated sections 8.3 and 8.4 into a single section that references section 6 for the detailed CSR approval and node verification steps


---

## 9. Test MachineSet scaling
Copy link
Member

Choose a reason for hiding this comment

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

This is all documented in OCP docs right?

I think we should keep this specific to what is different in assisted from installing a regular IPI cluster with vsphere integration

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I Removed all the generic OCP scaling content and added references to Section 7 and links to official OCP documentation

@eliorerz eliorerz force-pushed the autoscaling-vsphere branch from bf959d4 to 8dc8c54 Compare December 9, 2025 17:00
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

🧹 Nitpick comments (6)
docs/user-guide/vsphere-machinesets.md (6)

58-58: Wrap bare URL in markdown link syntax.

MD034 flags bare URLs used without proper markdown link syntax. Wrap the URL reference in angle brackets or a proper link:

- The latest RHCOS version can be found at https://mirror.openshift.com/pub/openshift-v4/x86_64/dependencies/rhcos/latest/.
+ The latest RHCOS version can be found at <https://mirror.openshift.com/pub/openshift-v4/x86_64/dependencies/rhcos/latest/>.

62-63: Add language specifier to fenced code block.

MD040 requires language specification for fenced code blocks. Add text or plaintext as the language identifier:

- ```
+ ```text
  rhcos-<version>-x86_64-vmware.x86_64.ova
- ```
+ ```

75-84: Fix inconsistent list indentation.

Lines have mixed indentation (1 space instead of 0). Either align with no indentation or use consistent spacing throughout:

  For RHCOS specifically:
  
- - The RHCOS OVA contains a fresh, never-booted RHCOS image
- - Ignition will run on first boot, as required for OpenShift Machine API
- - It has no kubelet state, no machine-id, no certificates, making it safe to clone repeatedly
+ - The RHCOS OVA contains a fresh, never-booted RHCOS image
+ - Ignition will run on first boot, as required for OpenShift Machine API
+ - It has no kubelet state, no machine-id, no certificates, making it safe to clone repeatedly

300-302: Add language specifier to fenced code block (CSR output).

The CSR output block should have a language specifier for proper syntax highlighting:

- ```
+ ```text
  NAME        AGE   SIGNERNAME                                    REQUESTOR                                         CONDITION
  csr-xxxxx   1m    kubernetes.io/kube-apiserver-client-kubelet   system:serviceaccount:openshift-machine-config-operator:node-bootstrapper   Pending
- ```
+ ```

642-644: Add language specifier to fenced code block (MachineSet output).

Add a language identifier for the tabular output:

- ```
+ ```text
  NAME                               DESIRED   CURRENT   READY   AVAILABLE   AGE
  my-test-cluster-d7-jzsct-worker   1         1         1       1           5m
- ```
+ ```

679-685: Add language specifier to fenced code block (Machine status).

Add language specifier for the YAML-like status output:

- ```
+ ```yaml
  Status:
    Phase: Running
    Node Ref:
      Kind: Node
      Name: my-test-cluster-d7-jzsct-worker-xxxxx
      UID: ...
- ```
+ ```
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to Reviews -> Disable Knowledge Base setting

📥 Commits

Reviewing files that changed from the base of the PR and between 28a9e58 and 8dc8c54.

📒 Files selected for processing (1)
  • docs/user-guide/vsphere-machinesets.md (1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
**

⚙️ CodeRabbit configuration file

-Focus on major issues impacting performance, readability, maintainability and security. Avoid nitpicks and avoid verbosity.

Files:

  • docs/user-guide/vsphere-machinesets.md
🪛 markdownlint-cli2 (0.18.1)
docs/user-guide/vsphere-machinesets.md

58-58: Bare URL used

(MD034, no-bare-urls)


62-62: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


75-75: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


76-76: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


77-77: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


78-78: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


82-82: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


83-83: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


84-84: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


300-300: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


642-642: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


679-679: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🔇 Additional comments (1)
docs/user-guide/vsphere-machinesets.md (1)

1-795: Excellent comprehensive documentation — content and structure are solid.

The guide is well-organized, thorough, and provides clear step-by-step workflows covering setup, configuration, troubleshooting, and scaling. The commands are functional and examples are realistic. Past concerns about duplication have been resolved. The cross-references between sections work well and reduce repetition effectively.

@openshift-ci
Copy link

openshift-ci bot commented Dec 9, 2025

@eliorerz: all tests passed!

Full PR test history. Your PR dashboard.

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. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. size/XL Denotes a PR that changes 500-999 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants