-
Notifications
You must be signed in to change notification settings - Fork 16
Add baremetal node adoption automation #88
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
fonta-rh
wants to merge
17
commits into
openshift-eng:main
Choose a base branch
from
fonta-rh:ocpedge-2774-baremetal-adopt
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
17 commits
Select commit
Hold shift + click to select a range
e1edbf3
Add baremetal node adoption automation for TNF
fonta-rh 251d127
Extract wizard into standalone script with input validation
fonta-rh 3140888
Accept hostnames in BMC address wizard input
fonta-rh 1a1c5e3
Rename bmc_ip to bmc_address, make boot_mac optional
fonta-rh 10747b2
Use Redfish BootOptions for boot MAC discovery
fonta-rh 84ebb54
Address CodeRabbit review findings on PR #88
fonta-rh 388f2fe
Address Doug's poka-yoke review findings on PR #88
fonta-rh 4f112de
Fix boot MAC discovery failing on HPE iLO (trailing slash in system_id)
fonta-rh 9b6cefb
Add OS-level network config to baremetal adoption workflow
fonta-rh b895d7d
Add [provisioning_host] prompts to baremetal wizard
fonta-rh 101f533
Add BMC port to Redfish addresses for CEO fencing compatibility
fonta-rh 8d9c936
Move generated adoption artifacts to role files/ directory
fonta-rh 58c41f5
Add data_mac support for multi-NIC baremetal servers
fonta-rh 9355029
Make node_ip and api_vip mandatory, add AGENT_E2E_TEST_SCENARIO, remo…
fonta-rh d08ac31
Make data_mac mandatory for baremetal deploy
fonta-rh 34ec8fe
Add iso_url for Redfish VirtualMedia boot and make data_mac mandatory
fonta-rh 13c5ee0
Use RDU2 provisioner ISO URL in inventory sample
fonta-rh File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,4 +1,6 @@ | ||
| inventory.ini | ||
| inventory_baremetal.ini | ||
|
|
||
| proxy.env | ||
| kubeconfig | ||
| kubeadmin-password | ||
|
|
||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,64 @@ | ||
| # Baremetal node inventory for TNF adoption | ||
| # | ||
| # NOTE: This is separate from inventory.ini, which targets the hypervisor host. | ||
| # This file describes the physical baremetal nodes to be adopted as OpenShift nodes. | ||
| # inventory.ini → hypervisor (where dev-scripts runs) | ||
| # inventory_baremetal.ini → baremetal nodes (BMC endpoints for adoption) | ||
| # | ||
| # Copy this file to inventory_baremetal.ini and fill in your node details. | ||
| # Then run: make baremetal-adopt | ||
| # | ||
| # Each node requires: | ||
| # bmc_address - BMC/iDRAC/iLO management address (IP or hostname) | ||
| # bmc_user - BMC login username | ||
| # bmc_pass - BMC login password | ||
| # bmc_port - (optional) BMC Redfish port (default: 443) | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Consider adding a note that values must not contain spaces (the parser uses whitespace as the field delimiter). e.g.: |
||
| # boot_mac - (optional) MAC address of the NIC used for PXE boot | ||
| # If omitted, the adopt script attempts Redfish discovery. | ||
| # data_mac - MAC address of the data NIC (for agent-config hostname mapping) | ||
| # May differ from boot_mac on multi-NIC servers. Emitted as BAREMETAL_MACS. | ||
| # node_ip - Static IP address for this node on the machine network | ||
| # | ||
| # The hostname (first field) becomes the node name in ironic_nodes.json. | ||
| # For TNF, you need exactly 2 nodes (master-0 and master-1). | ||
|
|
||
| [baremetal_nodes] | ||
| master-0 bmc_address=192.168.1.100 bmc_user=admin bmc_pass=changeme boot_mac=52:54:00:00:00:01 data_mac=52:54:00:00:00:01 node_ip=192.168.1.10 | ||
| master-1 bmc_address=192.168.1.101 bmc_user=admin bmc_pass=changeme boot_mac=52:54:00:00:00:02 data_mac=52:54:00:00:00:02 node_ip=192.168.1.11 | ||
|
|
||
| [baremetal_nodes:vars] | ||
| # BMC driver — only redfish is supported for TNF fencing | ||
| bmc_driver=redfish | ||
|
|
||
| # BMC Redfish port (per-node bmc_port overrides this) | ||
| bmc_port=443 | ||
|
|
||
| # Skip TLS verification for BMC endpoints (common with self-signed certs) | ||
| bmc_verify_ca=False | ||
|
|
||
| # Node CPU architecture | ||
| cpu_arch=x86_64 | ||
|
|
||
| [baremetal_network] | ||
| # Cluster-wide network config for baremetal deploy. | ||
| # api_vip - API virtual IP (required) | ||
| # ingress_vip - (optional) Ingress virtual IP — defaults to api_vip if omitted | ||
| # machine_network - (optional) Machine network CIDR (e.g. 192.168.1.0/24) | ||
| # iso_url - Full HTTP URL for agent ISO VirtualMedia boot (required) | ||
| # Must be reachable from BMCs. dev-scripts stages the ISO at | ||
| # ${WORKING_DIR}/${CLUSTER_NAME}/agent.x86_64.iso on the provisioning host. | ||
| api_vip=192.168.1.100 | ||
| #ingress_vip=192.168.1.101 | ||
| #machine_network=192.168.1.0/24 | ||
| iso_url=http://10.1.235.49:8080/dev-scripts/ostest/agent.x86_64.iso | ||
|
|
||
| [provisioning_host] | ||
| # Remote host where dev-scripts runs (all optional). | ||
| # ssh_target - user@host for SSH access to the provisioning machine | ||
| # ssh_key - Path to SSH private key (omit to use ssh-agent/default) | ||
| # dev_scripts_path - dev-scripts checkout on the remote host | ||
| # working_dir - Working directory on the remote host for adoption artifacts | ||
| #ssh_target=root@hypervisor.example.com | ||
| #ssh_key=~/.ssh/id_ed25519 | ||
| #dev_scripts_path=~/openshift-metal3/dev-scripts | ||
| #working_dir=~/tnt-baremetal | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is a hypervisor necessary to deploy here ? Seems like overhead. I guess dev-scripts need to run somewhere ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, there is no hypervisor deploy. These 2 comment lines are to describe the difference between inventory.ini and inventory_baremetal.ini
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ah, ok. Sorry this makes sense now that I have context of the existing inventory.ini