Skip to content

Conversation

@asergeant01
Copy link
Contributor

Proposed Changes

The current default ignition is hardcoded. This change allows it to be optionally overridden by a ConfigMap.

Copy link
Contributor

@nagadeesh-nagaraja nagadeesh-nagaraja left a comment

Choose a reason for hiding this comment

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

may be we can make sure that the changes will not break the existing workflows in metal-api?

@asergeant01 asergeant01 force-pushed the default-ipxe-template branch from 321532c to b9ff7d4 Compare November 25, 2025 08:28
@Nuckal777
Copy link
Contributor

I got two questions, sorry if I am missing something obvious:

  • What is the use case of using a custom ignition for the discovery boot?
  • Could the custom ignition be mounted into the metal-operator pod and consumed via os.ReadFile()?

@asergeant01
Copy link
Contributor Author

@Nuckal777

My use case is trying to run e2e locally with a virtualised environment. I Intercept redfish calls to start server (instead creates a qemu vm) and likewise with stop server (stops the qemu vm). This allows me to observe the pxe boot and the metal probe execution - however, there are obviously some modifications I need to make to the ignition file and currently there is no way to override the hardcoded default.

This implementation should not change the default behaviour of using the hardcoded ignition template, but add the option to use one provided from a configmap.

Regarding could it be mounted and read - absolutely if you think this is a better approach. Curious as to the benefits of this approach?

@asergeant01 asergeant01 self-assigned this Dec 1, 2025
@asergeant01 asergeant01 marked this pull request as ready for review December 1, 2025 11:10
Copy link
Contributor

@nagadeesh-nagaraja nagadeesh-nagaraja left a comment

Choose a reason for hiding this comment

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

LGTM from my side. please check on others comment if this works :)

@asergeant01 asergeant01 force-pushed the default-ipxe-template branch 3 times, most recently from 3ea6950 to b234a2e Compare December 5, 2025 09:22
@Nuckal777
Copy link
Contributor

Regarding could it be mounted and read - absolutely if you think this is a better approach. Curious as to the benefits of this approach?

It would simply the code, because you only have to os.ReadFile() instead of carrying around a whole Kubernetes client.

@asergeant01 asergeant01 force-pushed the default-ipxe-template branch from b234a2e to f8de4dd Compare December 8, 2025 08:25
@github-actions github-actions bot added size/XXL and removed size/XL labels Dec 9, 2025
@asergeant01 asergeant01 force-pushed the default-ipxe-template branch 2 times, most recently from 93c1551 to 4bca890 Compare December 9, 2025 13:00
@github-actions github-actions bot added size/XL and removed size/XXL labels Dec 9, 2025
@asergeant01 asergeant01 force-pushed the default-ipxe-template branch from 4bca890 to 772cee3 Compare December 10, 2025 11:16
@github-actions github-actions bot added size/XXL and removed size/XL labels Dec 10, 2025
@asergeant01 asergeant01 force-pushed the default-ipxe-template branch from 946f988 to 441cb68 Compare December 10, 2025 12:29
Copy link
Contributor

@xkonni xkonni left a comment

Choose a reason for hiding this comment

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

looks good to me!

@afritzler afritzler changed the title Allow default ignition template to be overridden by ConfigMap Allow default ignition template to be overridden Dec 15, 2025
@afritzler afritzler added the enhancement New feature or request label Dec 15, 2025
@@ -1,51 +0,0 @@
// SPDX-FileCopyrightText: 2025 SAP SE or an SAP affiliate company and IronCore contributors
Copy link
Member

Choose a reason for hiding this comment

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

Why moving those helper into a new file?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

So this was my attempt at reducing the sporadic test failures by making the helper a test in itself so I'd have access to the k8sclient. I'm going to revert this.

LABEL source_repository="https://github.com/ironcore-dev/metal-operator"
WORKDIR /
COPY --from=manager-builder /workspace/manager .
COPY config/manager/ignition-template.yaml /etc/metal-operator/ignition-template.yaml
Copy link
Member

Choose a reason for hiding this comment

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

Can't we just load the in-code var as a default - meaning leaving the existing behavior if no override file is provided?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

We could, however I think it's clearer for an end user that the discovery ignition is always loaded from a file. To me it reduces ambiguity, easier debugging and reduces code.

@asergeant01 asergeant01 requested a review from a team as a code owner December 17, 2025 10:22
@github-actions github-actions bot added size/XL and removed size/XXL labels Dec 17, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/metal-automation documentation Improvements or additions to documentation enhancement New feature or request size/XL

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

7 participants