Which issue(s) this PR fixes(optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #21
Fixes #98
$ docker logs sushy-tools
* Serving Flask app 'sushy_tools.emulator.main'
* Debug mode: off
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
* Running on http://192.168.222.1:8000
Press CTRL+C to quit
DHCP_HOSTS=00:60:2f:31:81:01,192.168.222.100;00:60:2f:31:81:02,192.168.222.101;00:60:2f:31:81:03,192.168.222.102;00:60:2f:31:81:04,192.168.222.103
DHCP_IGNORE=tag:!known
# IP of the host from VM perspective
PROVISIONING_IP=192.168.222.1
GATEWAY_IP=192.168.222.1
DHCP_RANGE=192.168.222.100,192.168.222.149
DNS_IP=provisioning
$ kubectl get bmh --show-labels
NAME STATE CONSUMER ONLINE ERROR AGE LABELS
bml-vm-01 available true 11m type=control-plane
bml-vm-02 available true 11m type=worker
bml-vm-03 available true 11m type=worker
bml-vm-04 available true 11m type=worker
Deploy CAPI/CAPM3/CSO
export CLUSTER_TOPOLOGY=true
clusterctl init --infrastructure metal3
# apply Metal3ClusterTemplate CRD until new CAPM3 release (current v1.7.0)
kubectl apply -f https://raw.githubusercontent.com/metal3-io/cluster-api-provider-metal3/main/config/crd/bases/infrastructure.cluster.x-k8s.io_metal3clustertemplates.yaml
kubectl label crd metal3clustertemplates.infrastructure.cluster.x-k8s.io cluster.x-k8s.io/v1beta1=v1beta1
# install CSO in your favourite way
$ kubectl get cluster,metal3cluster
NAME CLUSTERCLASS PHASE AGE VERSION
cluster.cluster.x-k8s.io/my-cluster metal3-alpha-1-28-v0-sha.b699b93 Provisioned 62m v1.28.9
NAME AGE READY ERROR CLUSTER ENDPOINT
metal3cluster.infrastructure.cluster.x-k8s.io/my-cluster-srg2j 62m true my-cluster {"host":"192.168.222.150","port":6443}
$ clusterctl get kubeconfig my-cluster > kubeconfig.yaml
Test kube-vip service loadbalancing
$ kubectl --kubeconfig kubeconfig.yaml create deploy --image nginx --port 80 nginx
# --load-balancer-ip needs to be specified because kube-vip-cloud-provider is missing
$ kubectl --kubeconfig kubeconfig.yaml expose deployment nginx --port 80 --type LoadBalancer --load-balancer-ip 192.168.222.151
$ curl 192.168.222.151
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
Please confirm that if this PR changes any image versions, then that's the sole change this PR makes.
What this PR does / why we need it:
Which issue(s) this PR fixes (optional, in
fixes #<issue number>(, fixes #<issue_number>, ...)
format, will close the issue(s) when PR gets merged): Fixes #21 Fixes #98Special notes for your reviewer: Test on virtualized environment: See docs https://book.metal3.io/quick-start
hooks.json
:ironic-cacert
secret into the management cluster, so BMO can use it(or useIRONIC_INSECURE=True
)Create Cluster
Test kube-vip service loadbalancing
Please confirm that if this PR changes any image versions, then that's the sole change this PR makes.
TODOs: