-
Notifications
You must be signed in to change notification settings - Fork 134
Quick-start update #585
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
base: main
Are you sure you want to change the base?
Quick-start update #585
Conversation
|
Skipping CI for Draft Pull Request. |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
652b112 to
7a946d2
Compare
7a946d2 to
60ffb94
Compare
60ffb94 to
857c22e
Compare
857c22e to
3f96712
Compare
e15486f to
321edf9
Compare
321edf9 to
f39bc48
Compare
f39bc48 to
00b71ba
Compare
| # This is the kustomization that we build on. You can download it and change | ||
| # the URL to a relative path if you do not want to access it over the network. | ||
| # Note that the ref=main specifies the version to use. | ||
| # We use main here simply because the integration with IrSO is not included in a release yet. | ||
| resources: | ||
| - https://github.com/metal3-io/baremetal-operator/config/use-irso?ref=main |
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.
TODO: After next BMO release, pin to release instead of main.
| patches: | ||
| - target: | ||
| kind: Deployment | ||
| name: ironic-standalone-operator-controller-manager | ||
| patch: |- | ||
| apiVersion: apps/v1 | ||
| kind: Deployment | ||
| metadata: | ||
| name: ironic-standalone-operator | ||
| spec: | ||
| template: | ||
| spec: | ||
| containers: | ||
| - name: manager | ||
| envFrom: | ||
| - configMapRef: | ||
| name: ironic-operator-config |
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.
This patch is no longer needed in IrSO v0.7. Then we have a predictable name for the configmap that we can reuse instead. See metal3-io/ironic-standalone-operator#405
| export CTLPLANE_KUBEADM_EXTRA_CONFIG=" | ||
| preKubeadmCommands: | ||
| - systemctl enable --now crio |
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.
TODO: Fix node images so that crio is enabled. We should not need preKubeadmCommands for stuff like this.
| kubectl -n ironic-standalone-operator-system wait --for=condition=Available deploy/ironic-standalone-operator-controller-manager | ||
|
|
||
| # Now we can deploy Ironic and BMO | ||
| kubectl create ns baremetal-operator-system | ||
| # Apply Ironic with retry logic (up to 5 attempts with 10 second delays). | ||
| # The IrSO webhoook is not guaranteed to be ready when the IrSO deployment is, | ||
| # so some retries may be needed. | ||
| MAX_RETRIES=5 | ||
| RETRY_DELAY=10 | ||
| RETRY_COUNT=0 | ||
| echo "Applying Ironic configuration..." | ||
| while [ $RETRY_COUNT -lt $MAX_RETRIES ]; do | ||
| if kubectl apply -k ironic; then | ||
| echo "Successfully applied Ironic configuration" | ||
| break | ||
| else | ||
| RETRY_COUNT=$((RETRY_COUNT + 1)) | ||
| echo "Failed to apply Ironic configuration. Retrying in ${RETRY_DELAY} seconds... (Attempt $RETRY_COUNT/$MAX_RETRIES)" | ||
| sleep $RETRY_DELAY | ||
| fi | ||
| done |
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.
I used this for easy testing. Not sure if we should actually include the retry in the guide or just say "wait for IrSO, then deploy Ironic". What do you think?
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.
I would want vbmctl to take care of all of this eventually.
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.
This is copied from https://github.com/metal3-io/baremetal-operator/blob/main/test/e2e/sushy-tools/sushy-emulator.conf for easy testing. I think not all the settings here are needed so we could minimize it a bit more. We could also avoid having a copy in this repo and just use it directly from BMO.
|
Ok I think this is ready for review now. Note that there is a test commit that switches all the "embed" snippets to use this branch to make the netlify render correct. Otherwise they would show up empty since the content is not on main yet. |
tuminoid
left a comment
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.
nits
| RETRY_DELAY=10 | ||
| RETRY_COUNT=0 | ||
| echo "Applying Ironic configuration..." | ||
| while [ $RETRY_COUNT -lt $MAX_RETRIES ]; do |
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.
| while [ $RETRY_COUNT -lt $MAX_RETRIES ]; do | |
| while [[ "${RETRY_COUNT}" -lt "${MAX_RETRIES}" ]]; do |
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.
Pull Request Overview
This PR modernizes the quick-start guide to reflect current upstream changes and best practices. The guide has been updated from Ubuntu 22.04 to 24.04, Kubernetes to v1.34.1, and introduces Ironic Standalone Operator (IrSO) for simplified deployment. The setup also switches from legacy to UEFI boot mode for better compatibility.
Key Changes
- Introduces Ironic Standalone Operator (IrSO) for managing Ironic deployment, replacing manual kustomization setup
- Updates base OS from Ubuntu 22.04 to 24.04 and Kubernetes version to v1.34.1
- Switches to UEFI boot mode from legacy BIOS
Reviewed Changes
Copilot reviewed 17 out of 17 changed files in this pull request and generated 15 comments.
Show a summary per file
| File | Description |
|---|---|
| docs/user-guide/src/quick-start.md | Restructures guide to use IrSO, updates OS/k8s versions, simplifies deployment steps by removing manual DHCP and Ironic setup sections |
| docs/user-guide/examples/sushy-emulator.conf | Adds sushy-tools configuration for virtual BMC simulation with UEFI boot support |
| docs/user-guide/examples/setup-virtual-lab.sh | Creates virtualized lab environment with networking, VMs, and BMC emulation |
| docs/user-guide/examples/setup-bootstrap.sh | Bootstraps management cluster with kind, cert-manager, IrSO, Ironic, and BMO |
| docs/user-guide/examples/net.xml | Defines libvirt network with DHCP and PXE boot configuration |
| docs/user-guide/examples/kind.yaml | Configures kind cluster with port forwarding for Ironic services |
| docs/user-guide/examples/ironic/kustomization.yaml | Defines kustomization for Ironic and certificate resources |
| docs/user-guide/examples/ironic/ironic.yaml | Configures Ironic instance via IrSO with DHCP and networking settings |
| docs/user-guide/examples/ironic/certificate.yaml | Sets up TLS certificates for Ironic using cert-manager |
| docs/user-guide/examples/image-server.sh | Downloads disk images and starts nginx server for image hosting |
| docs/user-guide/examples/cleanup-virtual-lab.sh | Cleans up virtualized lab resources including VMs, networks, and network interfaces |
| docs/user-guide/examples/capm3-vars.sh | Exports environment variables for CAPM3 deployment with updated image URLs and k8s version |
| docs/user-guide/examples/bmo/kustomization.yaml | Simplifies BMO deployment using IrSO integration |
| docs/user-guide/examples/bmh-01.yaml | Example BareMetalHost manifest for virtualized setup with UEFI boot |
| docs/user-guide/examples/bmh-01-provision.yaml | Example BareMetalHost with image provisioning configuration |
| docs/user-guide/examples/bmc-secret.yaml | Template for BMC credentials secret |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
PTAL Copilot review, some legit minor findings at least. |
00b71ba to
0da3ee7
Compare
The guide has been broken by upstream changes, and is a bit outdated anyway. This is a quite substantial refresh of it that also introduces IrSO. - Bump k8s to v1.34.1 - Deploy Ironic using IrSO - Switch to UEFI boot mode Signed-off-by: Lennart Jern <[email protected]>
Signed-off-by: Lennart Jern <[email protected]>
0da3ee7 to
6ca6baf
Compare
The guide has been broken by upstream changes, and is a bit outdated
anyway. This is a quite substantial refresh of it that also introduces IrSO.
Fixes #567