Skip to content
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

Metal3 Scalability with Fake Nodes experiment #88

Merged
merged 1 commit into from
Nov 5, 2024

Conversation

mquhuy
Copy link
Member

@mquhuy mquhuy commented Jul 17, 2023

This study experiments provisioning multiple workload clusters with CAPI + Metal3 with only fake nodes. It takes into account Fake IPA, FKAS, and Ironic with multiple conductors (with shared endpoints and database).

@mquhuy mquhuy force-pushed the mquhuy/multiple-ironic-study branch 3 times, most recently from 105b499 to dde9301 Compare July 17, 2023 11:57
@mquhuy mquhuy force-pushed the mquhuy/multiple-ironic-study branch 6 times, most recently from 9246c3b to b17e6b4 Compare August 11, 2023 13:24
@mquhuy mquhuy force-pushed the mquhuy/multiple-ironic-study branch 2 times, most recently from 50bd933 to 2cf05d6 Compare September 19, 2023 13:34
@Rozzii
Copy link
Contributor

Rozzii commented Sep 20, 2023

@mquhuy please ping me in comment after this passes the static code checks.

@mquhuy mquhuy force-pushed the mquhuy/multiple-ironic-study branch 3 times, most recently from eb18735 to 644cb67 Compare September 27, 2023 09:19
@mquhuy mquhuy force-pushed the mquhuy/multiple-ironic-study branch 3 times, most recently from ea421e3 to dbc9136 Compare October 19, 2023 13:04
@mquhuy mquhuy force-pushed the mquhuy/multiple-ironic-study branch 4 times, most recently from 4570c88 to 570b712 Compare November 3, 2023 07:32
@mquhuy mquhuy force-pushed the mquhuy/multiple-ironic-study branch 2 times, most recently from 61d16bb to 59761fb Compare November 9, 2023 08:54
@kashifest
Copy link
Contributor

wow this is big, will check it but it would take some time

@mquhuy mquhuy force-pushed the mquhuy/multiple-ironic-study branch 3 times, most recently from 002de29 to 697038f Compare October 30, 2024 12:19
Copy link
Contributor

@Rozzii Rozzii left a comment

Choose a reason for hiding this comment

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

/approve

Thanks for doing the experiment and documenting it !

@metal3-io-bot
Copy link
Member

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: Rozzii

The full list of commands accepted by this bot can be found here.

The pull request process is described here

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

Copy link
Member

@tuminoid tuminoid left a comment

Choose a reason for hiding this comment

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

Plenty of nits, mostly repeating few all over. Some suggestions as well.

Thanks for putting it together!


This directory stores the code and configuration for the __Metal3 Scalability with
Fake Nodes and Multiple Ironics__. Its purpose is to have a way of testing
[Metal3](https://metal3.io) provisioning on multiple nodes, without needing
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
[Metal3](https://metal3.io) provisioning on multiple nodes, without needing
[Metal3](https://metal3.io/) provisioning on multiple nodes, without needing

This directory stores the code and configuration for the __Metal3 Scalability with
Fake Nodes and Multiple Ironics__. Its purpose is to have a way of testing
[Metal3](https://metal3.io) provisioning on multiple nodes, without needing
too much hardware resource.
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
too much hardware resource.
too much hardware resources.


## Quick Start

For a quick start, here are the steps you need:
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
For a quick start, here are the steps you need:
For a quick start:

For a quick start, here are the steps you need:

- Install some additional tools, add libvirt network
(named `baremetal`) by using `./vm-setup.sh`.
Copy link
Member

Choose a reason for hiding this comment

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

At this point, I'm already confused about the usage of vm-setup.sh as its mentioned two times, doing different things, with no arguments.

For easy comparison, here is the spec of the machine we used to provision 1000
single-node clusters:

- CPUs: 20c
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
- CPUs: 20c
- CPUs: 20 cores

API_URL="https://192.168.222.100:6385"
CALLBACK_URL="https://192.168.222.100:6385/v1/continue_inspection"

rm -rf "$SUSHY_CONF_DIR"
Copy link
Member

Choose a reason for hiding this comment

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

Please fix all the brace issues in this file.

@@ -0,0 +1,16 @@
#!/usr/bin/env bash

set -x
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
set -x
set -eux

@@ -0,0 +1,58 @@
#!/bin/bash
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
#!/bin/bash
#!/usr/bin/env bash


sudo systemctl enable --now libvirtd

if [[ ! -f $(which minikube) ]]; then
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
if [[ ! -f $(which minikube) ]]; then
if ! command -v minikube &>/dev/null; then

rm minikube-linux-amd64
fi

if [[ ! -f $(which kubectl) ]]; then
Copy link
Member

Choose a reason for hiding this comment

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

Same for all tools

@mquhuy mquhuy force-pushed the mquhuy/multiple-ironic-study branch from 697038f to 7693d3d Compare October 31, 2024 07:59
@mquhuy
Copy link
Member Author

mquhuy commented Oct 31, 2024

Plenty of nits, mostly repeating few all over. Some suggestions as well.

Thanks for putting it together!

Thank you for the review! I've fixed the issues now.

Copy link
Member

@lentzi90 lentzi90 left a comment

Choose a reason for hiding this comment

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

Nice job on putting all of this together!
I added some small nits below. Not sure if it is worth fixing.
One thing I'm curious about is the use of helm. Why create a helm chart when almost everything is hard coded in the templates? 🤔
Even the configmap content and container images are static in there, so why not just use a plain manifest and get rid of the extra dependency? 😅

Anyway, I don't want to block this. It looks good enough to merge
/lgtm

.yamllint.yaml Show resolved Hide resolved
@lentzi90
Copy link
Member

lentzi90 commented Nov 5, 2024

/hold
if you want to change anything. Otherwise remove

@mquhuy
Copy link
Member Author

mquhuy commented Nov 5, 2024

Nice job on putting all of this together! I added some small nits below. Not sure if it is worth fixing. One thing I'm curious about is the use of helm. Why create a helm chart when almost everything is hard coded in the templates? 🤔 Even the configmap content and container images are static in there, so why not just use a plain manifest and get rid of the extra dependency? 😅

Anyway, I don't want to block this. It looks good enough to merge /lgtm

Thanks Lennart. What I want to achieve here is to have a custom number of ironic conductors, each with its own configmap, and provisioning_ip. Go template allows us to do so, but I haven't found a way to achieve the same result in kustomize. Perhaps ironic-standalone-operator will allow that.

@lentzi90
Copy link
Member

lentzi90 commented Nov 5, 2024

Thanks Lennart. What I want to achieve here is to have a custom number of ironic conductors, each with its own configmap, and provisioning_ip. Go template allows us to do so, but I haven't found a way to achieve the same result in kustomize. Perhaps ironic-standalone-operator will allow that.

Fair enough, if it works it works. 🙂
I would perhaps have chosen to do it with just bash or python that was used elsewhere, to keep the number of dependencies down.

@mquhuy mquhuy force-pushed the mquhuy/multiple-ironic-study branch from 6056aac to 4578a4a Compare November 5, 2024 10:15
@metal3-io-bot metal3-io-bot removed the lgtm label Nov 5, 2024
@mquhuy
Copy link
Member Author

mquhuy commented Nov 5, 2024

Fair enough, if it works it works. 🙂 I would perhaps have chosen to do it with just bash or python that was used elsewhere, to keep the number of dependencies down.

Thanks. Change coming

Copy link
Member

@lentzi90 lentzi90 left a comment

Choose a reason for hiding this comment

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

/lgtm
/hold cancel

@metal3-io-bot metal3-io-bot merged commit 23e88a0 into main Nov 5, 2024
4 checks passed
@metal3-io-bot metal3-io-bot deleted the mquhuy/multiple-ironic-study branch November 5, 2024 11:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants