-
Notifications
You must be signed in to change notification settings - Fork 2
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
Conversation
105b499
to
dde9301
Compare
9246c3b
to
b17e6b4
Compare
50bd933
to
2cf05d6
Compare
@mquhuy please ping me in comment after this passes the static code checks. |
eb18735
to
644cb67
Compare
ea421e3
to
dbc9136
Compare
4570c88
to
570b712
Compare
61d16bb
to
59761fb
Compare
wow this is big, will check it but it would take some time |
002de29
to
697038f
Compare
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.
/approve
Thanks for doing the experiment and documenting it !
[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 |
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.
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 |
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.
[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. |
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.
too much hardware resource. | |
too much hardware resources. |
|
||
## Quick Start | ||
|
||
For a quick start, here are the steps you need: |
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.
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`. |
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.
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 |
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.
- 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" |
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.
Please fix all the brace issues in this file.
@@ -0,0 +1,16 @@ | |||
#!/usr/bin/env bash | |||
|
|||
set -x |
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.
set -x | |
set -eux |
@@ -0,0 +1,58 @@ | |||
#!/bin/bash |
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.
#!/bin/bash | |
#!/usr/bin/env bash |
|
||
sudo systemctl enable --now libvirtd | ||
|
||
if [[ ! -f $(which minikube) ]]; then |
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.
if [[ ! -f $(which minikube) ]]; then | |
if ! command -v minikube &>/dev/null; then |
rm minikube-linux-amd64 | ||
fi | ||
|
||
if [[ ! -f $(which kubectl) ]]; then |
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.
Same for all tools
697038f
to
7693d3d
Compare
Thank you for the review! I've fixed the issues now. |
e2c69d9
to
6056aac
Compare
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.
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
Support/Multitenancy/Scalability-with-Fake-Nodes/bmo-config/kustomization.yaml
Outdated
Show resolved
Hide resolved
Support/Multitenancy/Scalability-with-Fake-Nodes/ironic/Chart.yaml
Outdated
Show resolved
Hide resolved
/hold |
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. 🙂 |
Signed-off-by: Huy Mai <[email protected]>
6056aac
to
4578a4a
Compare
Thanks. Change coming |
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.
/lgtm
/hold cancel
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).