Skip to content

make kind the standard - #1718

Open
UncivilizedGhost wants to merge 1 commit into
metal3-io:mainfrom
Nordix:saad/kill_minikube
Open

make kind the standard#1718
UncivilizedGhost wants to merge 1 commit into
metal3-io:mainfrom
Nordix:saad/kill_minikube

Conversation

@UncivilizedGhost

@UncivilizedGhost UncivilizedGhost commented Aug 20, 2026

Copy link
Copy Markdown
Member

Make kind the default cluster

Add option to deploy ironic in cluster with kind and function connect_kind_to_provisioning_network which creates a virtual Ethernet connection to connect the kind node to ironic.

Modify some documentation

@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 elfosardo 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 Aug 20, 2026
@UncivilizedGhost

Copy link
Copy Markdown
Member Author

/copilot-review
/metal3-centos-e2e-integration-test-release-1-13
/metal3-dev-env-integration-test-ubuntu-main

@metal3-io-bot
metal3-io-bot requested a balanced review from Copilot August 20, 2026 12:33
@metal3-io-bot

Copy link
Copy Markdown
Collaborator

Copilot code review has been requested by @UncivilizedGhost. Please allow a few moments for the review to be added.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Removes Minikube support and standardizes Kind as the bootstrap cluster.

Changes:

  • Defaults bootstrap clusters to Kind while retaining Tilt.
  • Removes Minikube installation, networking, lifecycle, and Ironic paths.
  • Updates related documentation and test workflows.

Reviewed changes

Copilot reviewed 14 out of 14 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
vars.md Updates supported cluster options and IPv6 guidance.
tests/roles/run_tests/tasks/move.yml Removes Minikube pivot handling.
tests/roles/run_tests/tasks/move_back.yml Removes Minikube repivot handling.
README.md Removes Minikube resource information.
lib/network.sh Removes Minikube IPv6 addressing.
lib/download.sh Removes Minikube and KVM2 downloads.
lib/common.sh Makes Kind the default across runtimes.
config_example.sh Documents Kind and Tilt options.
cluster_cleanup.sh Removes Minikube cleanup.
AGENTS.md Updates bootstrap-cluster guidance.
04_verify.sh Removes Minikube-specific Ironic checks.
03_launch_mgmt_cluster.sh Removes Minikube launch and Ironic branches.
02_configure_host.sh Removes Minikube VM and networking setup.
01_prepare_host.sh Removes Minikube installation handling.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread lib/common.sh
Comment thread 02_configure_host.sh Outdated
Comment thread README.md Outdated

The Minikube machine is deployed with 4GB of RAM, and 2 vCPUs, and the target
hosts with 4 vCPUs and 4GB of RAM.
The target hosts are deployed with 4 vCPUs and 4GB of RAM.
Comment thread AGENTS.md Outdated
- `IMAGE_OS` - Target OS: `ubuntu`, `centos`, `flatcar` (default: `ubuntu`)
- `CAPM3_VERSION`, `CAPI_VERSION` - Component versions
- `EPHEMERAL_CLUSTER` - Cluster type: `kind`, `minikube`, `tilt`
- `EPHEMERAL_CLUSTER` - Cluster type: `kind`, `tilt`
@UncivilizedGhost UncivilizedGhost changed the title Remove everything related to xminkube and make kind the standard Remove everything related to minikube and make kind the standard Aug 20, 2026
@UncivilizedGhost

Copy link
Copy Markdown
Member Author

/test metal3-centos-e2e-integration-test-release-1-13
/test metal3-dev-env-integration-test-ubuntu-main

Comment thread 03_launch_mgmt_cluster.sh Outdated
@UncivilizedGhost

Copy link
Copy Markdown
Member Author

/copilot-review

@metal3-io-bot
metal3-io-bot requested a balanced review from Copilot August 21, 2026 10:39
@metal3-io-bot

Copy link
Copy Markdown
Collaborator

Copilot code review has been requested by @UncivilizedGhost. Please allow a few moments for the review to be added.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 15 out of 15 changed files in this pull request and generated no new comments.

Suppressed comments (7)

03_launch_mgmt_cluster.sh:689

  • These commands have the same rootless-Podman ownership issue: the Kind container was created as ${USER}, but sudo podman exec looks in root's container storage. This makes the IPv6 Kind path fail on the non-Ubuntu hosts that now default to Kind; execute through the current user's runtime instead.
        sudo "${CONTAINER_RUNTIME}" exec kind-control-plane mkdir -p /etc/containerd/certs.d/"${REGISTRY}"
        sudo "${CONTAINER_RUNTIME}" exec kind-control-plane cp /hosts.toml /etc/containerd/certs.d/"${REGISTRY}"/hosts.toml

lib/kind.sh:33

  • On non-Ubuntu hosts, configure_kind_network already assigns CLUSTER_BARE_METAL_PROVISIONER_IP to the host-side ironicendpoint (02_configure_host.sh:149-157). Assigning that same address here puts duplicate IPs on the same provisioning L2 when in-cluster Ironic is enabled. Make host configuration omit the cluster IP in this mode, or transfer/remove it before configuring the Kind interface.
    sudo nsenter -t "${kind_pid}" -n ip addr add "${ip_with_cidr}" dev "${iface}"

AGENTS.md:57

  • The documented variable name does not exist in the codebase; cluster selection is configured through BOOTSTRAP_CLUSTER. Keeping EPHEMERAL_CLUSTER here directs users and agents to set an ignored variable.
- `EPHEMERAL_CLUSTER` - Cluster type: `kind`, `tilt`

lib/kind.sh:26

  • Kind is created as ${USER}, so on the non-Ubuntu Podman path its node is a rootless container. Inspecting it through sudo podman switches to root's separate container storage and returns “no such container”, leaving the newly created veth pair behind and aborting setup. Run the runtime command as the same user that launched Kind.

This issue also appears on line 33 of the same file.

    kind_pid=$(sudo "${CONTAINER_RUNTIME}" inspect -f '{{.State.Pid}}' "${container_name}")

03_launch_mgmt_cluster.sh:218

  • The new in-cluster mode is not handled by the pivot flow. move.yml still fetches logs from and removes local Ironic containers for every Kind cluster, so with this option enabled it fails on the first nonexistent container; move_back.yml also always restores local Ironic. Propagate this setting into the test role and branch both pivot directions between Kubernetes and local-container operations.

This issue also appears on line 688 of the same file.

    if [[ "${IRONIC_DEPLOY_IN_CLUSTER}" == "true" ]]; then
        # Deploy Ironic in-cluster using kustomize manifests
        "${BMOPATH}/tools/deploy.sh" -i "${BMO_IRONIC_ARGS[@]}"

lib/common.sh:352

  • This introduces a user-configurable deployment mode, but it is absent from both vars.md and config_example.sh. Users therefore have no documented way to discover its purpose, allowed values, default, or networking implications. Document the variable alongside the other Ironic options.
export IRONIC_DEPLOY_IN_CLUSTER="${IRONIC_DEPLOY_IN_CLUSTER:-false}"

vars.md:16

  • The documentation cleanup is incomplete relative to the PR's stated removal of all Minikube support: PoCs/README.md:54 still describes moving an IP from Minikube, and line 78 instructs users to run minikube addons enable metallb, although this PR removes Minikube installation. Update those PoC instructions for Kind or clearly mark them as archival and unsupported.
| BOOTSTRAP_CLUSTER | Tool for running management/bootstrap cluster. | kind, tilt | "kind" |

@UncivilizedGhost
UncivilizedGhost force-pushed the saad/kill_minikube branch 4 times, most recently from 5300af1 to 7266af0 Compare August 24, 2026 07:01
@UncivilizedGhost

Copy link
Copy Markdown
Member Author

/test metal3-centos-e2e-integration-test-release-1-13
/test metal3-dev-env-integration-test-ubuntu-main

@UncivilizedGhost

Copy link
Copy Markdown
Member Author

/test metal3-centos-e2e-integration-test-release-1-13

@metal3-io-bot

metal3-io-bot commented Aug 28, 2026

Copy link
Copy Markdown
Collaborator

@UncivilizedGhost: The following test 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-centos-e2e-integration-test-release-1-13 7266af0 link true /test metal3-centos-e2e-integration-test-release-1-13

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.

Make kind the default cluster
Delete any minikube downloading or installing functions
Remove any ironic logic related to minikube
Stop fetching minikube clusters from move.yml
Remove minikube cleanup from cluster_cleanup

Add option to deploy in cluster with kind and function
`connect_kind_to_provisioning_network` which creates
a virtual Ethernet connection to connect ironic in a kind node to
the provisioning network.

Modify all documentation

Signed-off-by: Saad Zia <saad.zia@est.tech>
@metal3-io-bot metal3-io-bot removed the size/L Denotes a PR that changes 100-499 lines, ignoring generated files. label Aug 28, 2026
@metal3-io-bot metal3-io-bot added the size/M Denotes a PR that changes 30-99 lines, ignoring generated files. label Aug 28, 2026
@UncivilizedGhost UncivilizedGhost changed the title Remove everything related to minikube and make kind the standard make kind the standard Aug 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/M Denotes a PR that changes 30-99 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants