Skip to content

Default to Kind and in-cluster Ironic via IRSO - #1692

Draft
adilGhaffarDev wants to merge 1 commit into
metal3-io:mainfrom
Nordix:use-kind-all/adil
Draft

Default to Kind and in-cluster Ironic via IRSO#1692
adilGhaffarDev wants to merge 1 commit into
metal3-io:mainfrom
Nordix:use-kind-all/adil

Conversation

@adilGhaffarDev

@adilGhaffarDev adilGhaffarDev commented Jun 11, 2026

Copy link
Copy Markdown
Member

This PR simplifies metal3-dev-env by standardizing on Kind as the only
bootstrap cluster and using ironic-standalone-operator (IRSO) for
in-cluster Ironic deployment by default.

This PR is doing following:

  • Remove minikube support and standardize on Kind as the only bootstrap
    cluster option (tilt still supported for development)
  • Change USE_IRSO default from "false" to "true" to run Ironic inside
    the Kubernetes cluster using ironic-standalone-operator
  • Add setup_kind_provisioning_network() to connect Kind node to the
    provisioning bridge via veth pair when using IRSO
  • Update pivot/repivot tests to use IRSO (Ironic CR) instead of
    container-based Ironic deployment

This simplifies the deployment architecture by:

  • Using a single bootstrap cluster type (Kind) for all environments
  • Using in-cluster Ironic for both management and target clusters
  • Aligning with the recommended production deployment model

To run Ironic locally: export USE_IRSO="false"

Part of #1691

@adilGhaffarDev

Copy link
Copy Markdown
Member Author

/test ?

@metal3-io-bot

Copy link
Copy Markdown
Collaborator

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@metal3-io-bot metal3-io-bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Jun 11, 2026
@metal3-io-bot

Copy link
Copy Markdown
Collaborator

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign rozzii for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found 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

@metal3-io-bot metal3-io-bot added the size/L Denotes a PR that changes 100-499 lines, ignoring generated files. label Jun 11, 2026
@adilGhaffarDev

Copy link
Copy Markdown
Member Author

/test metal3-centos-e2e-feature-test-main-pivoting
/test metal3-ubuntu-e2e-feature-test-main-pivoting
/test metal3-dev-env-integration-test-ubuntu-main
/test metal3-dev-env-integration-test-centos-main

Comment thread lib/common.sh Outdated
export CAPM3RELEASEBRANCH="${CAPM3RELEASEBRANCH:-main}"

export USE_IRSO="${USE_IRSO:-false}"
export USE_IRSO="${USE_IRSO:-true}"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Are we going to support deployments that don't use IrSO? Or is it for stable branches?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

for CI no but user can still user run-local and deploy scripts for development purposes.
We will move those scripts from bmo to dev-env.

Comment thread tests/roles/run_tests/tasks/move.yml Outdated
when: BOOTSTRAP_CLUSTER == "kind"

- name: Remove Ironic from source cluster (minikube cluster)
- name: Remove IRSO operator from source cluster (kind cluster)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

nit: not strictly required

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Ok, i will test it and see how it goes.

state: absent
kubeconfig: "/tmp/kubeconfig-{{ CLUSTER_NAME }}.yaml"

- name: Remove IRSO operator from target cluster

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

nit: not strictly required

environment:
CONTAINER_RUNTIME: "{{ CONTAINER_RUNTIME }}"
- name: Install IRSO operator in Source cluster
shell: "make -C {{ IRSOPATH }} install deploy IMG={{ IRSO_IMAGE }}"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Are we planning to ever use IrSO from source (e.g. for the CI)? If not, you may be better off using released manifests.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

In CI no, in CI we will always use release branches. I will fix this.

@adilGhaffarDev

Copy link
Copy Markdown
Member Author

/test metal3-dev-env-integration-test-ubuntu-main

@adilGhaffarDev

Copy link
Copy Markdown
Member Author

/test metal3-dev-env-integration-test-ubuntu-main

@adilGhaffarDev

Copy link
Copy Markdown
Member Author

/test metal3-dev-env-integration-test-ubuntu-main

1 similar comment
@adilGhaffarDev

Copy link
Copy Markdown
Member Author

/test metal3-dev-env-integration-test-ubuntu-main

@adilGhaffarDev

Copy link
Copy Markdown
Member Author

/test metal3-dev-env-integration-test-ubuntu-main

@metal3-io-bot

Copy link
Copy Markdown
Collaborator

@adilGhaffarDev: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
metal3-dev-env-integration-test-centos-main cfd46d7 link false /test metal3-dev-env-integration-test-centos-main
metal3-centos-e2e-feature-test-main-pivoting cfd46d7 link false /test metal3-centos-e2e-feature-test-main-pivoting
metal3-ubuntu-e2e-feature-test-main-pivoting cfd46d7 link false /test metal3-ubuntu-e2e-feature-test-main-pivoting
metal3-dev-env-integration-test-ubuntu-main 8bf9321 link true /test metal3-dev-env-integration-test-ubuntu-main

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.

@metal3-io-bot

Copy link
Copy Markdown
Collaborator

@adilGhaffarDev: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
metal3-dev-env-integration-test-centos-main cfd46d7 link false /test metal3-dev-env-integration-test-centos-main
metal3-centos-e2e-feature-test-main-pivoting cfd46d7 link false /test metal3-centos-e2e-feature-test-main-pivoting
metal3-ubuntu-e2e-feature-test-main-pivoting cfd46d7 link false /test metal3-ubuntu-e2e-feature-test-main-pivoting
metal3-dev-env-integration-test-ubuntu-main 8bf9321 link true /test metal3-dev-env-integration-test-ubuntu-main
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.

- Remove minikube support and standardize on Kind as the only bootstrap
  cluster option (tilt still supported for development)
- Change USE_IRSO default from "false" to "true" to run Ironic inside
  the Kubernetes cluster using ironic-standalone-operator
- Add setup_kind_provisioning_network() to connect Kind node to the
  provisioning bridge via veth pair when using IRSO
- Update pivot/repivot tests to use IRSO (Ironic CR) instead of
  container-based Ironic deployment

This simplifies the deployment architecture by:
- Using a single bootstrap cluster type (Kind) for all environments
- Using in-cluster Ironic for both management and target clusters
- Aligning with the recommended production deployment model

To run Ironic locally (old behavior): export USE_IRSO="false"

Signed-off-by: Muhammad Adil Ghaffar <muhammad.adil.ghaffar@est.tech>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. size/L Denotes a PR that changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants