}
function launch_baremetal_operator {
+ if [ -d $GOPATH/src/github.com/metal3-io/baremetal-operator ]; then
+ rm -rf $GOPATH/src/github.com/metal3-io/baremetal-operator
+ fi
+
+ docker pull integratedcloudnative/baremetal-operator:v1.0-icn
+ docker tag integratedcloudnative/baremetal-operator:v1.0-icn \
+ quay.io/metal3-io/baremetal-operator:master
+
+ mkdir -p $GOPATH/src/github.com/metal3-io
+ pushd $GOPATH/src/github.com/metal3-io
+ git clone --single-branch --branch v1.0-icn \
+ https://github.com/akraino-icn/baremetal-operator.git
+ kubectl apply -f baremetal-operator/deploy/namespace/namespace.yaml
+ kubectl apply -f baremetal-operator/deploy/rbac/service_account.yaml -n metal3
+ kubectl apply -f baremetal-operator/deploy/rbac/role.yaml -n metal3
+ kubectl apply -f baremetal-operator/deploy/rbac/role_binding.yaml
+ kubectl apply -f baremetal-operator/deploy/crds/metal3.io_baremetalhosts_crd.yaml
+ kubectl apply -f baremetal-operator/deploy/operator/no_ironic/operator.yaml -n metal3
+ popd
+}
+
+function remove_baremetal_operator {
if [ ! -d $GOPATH/src/github.com/metal3-io/baremetal-operator ]; then
- go get github.com/metal3-io/baremetal-operator
- git checkout 3d40caa29dce82878d83aeb7f8dab4dc4a856160
+ pushd $GOPATH/src/github.com/metal3-io
+ git clone --single-branch --branch v1.0-icn \
+ https://github.com/akraino-icn/baremetal-operator.git
+ popd
fi
- pushd $GOPATH/src/github.com/metal3-io/baremetal-operator
- make deploy
+ pushd $GOPATH/src/github.com/metal3-io
+ kubectl delete -f baremetal-operator/deploy/operator/no_ironic/operator.yaml -n metal3
+ kubectl delete -f baremetal-operator/deploy/crds/metal3.io_baremetalhosts_crd.yaml
+ kubectl delete -f baremetal-operator/deploy/rbac/role_binding.yaml
+ kubectl delete -f baremetal-operator/deploy/rbac/role.yaml -n metal3
+ kubectl delete -f baremetal-operator/deploy/rbac/service_account.yaml -n metal3
+ kubectl delete -f baremetal-operator/deploy/namespace/namespace.yaml
popd
+ rm -rf $GOPATH/src/github.com/metal3-io/baremetal-operator
}
function network_config_files {
sudo ifconfig `basename $intf` up
sudo dhclient -nw `basename $intf`
done
+EOF
+cat << EOF
+- path: /opt/user_net.sh
+ owner: root:root
+ permissions: '0777'
+ content: |
+ #!/usr/bin/env bash
+ set -xe
+ route add default gw $PROVIDER_NETWORK_GATEWAY
+ sed -i -e 's/^#DNS=.*/DNS=$PROVIDER_NETWORK_DNS/g' /etc/systemd/resolved.conf
+ systemctl daemon-reload
+ systemctl restart systemd-resolved
runcmd:
- [ /opt/ironic_net.sh ]
+ - [ /opt/user_net.sh ]
EOF
}
done
}
+function cleanup {
+ while read -r name username password address; do
+ kubectl delete bmh $name -n metal3
+ kubectl delete secrets $name-bmc-secret -n metal3
+ kubectl delete secrets $name-user-data -n metal3
+ if [ -f $name-bm-node.yaml ]; then
+ rm -rf $name-bm-node.yaml
+ fi
+
+ if [ -f $name-user-data-credential.yaml ]; then
+ rm -rf $name-user-data-credential.yaml
+ fi
+
+ if [ -f $name-userdata.yaml ]; then
+ rm -rf $name-userdata.yaml
+ fi
+ done
+}
+
+function clean_all {
+ list_nodes | cleanup
+ if [ -f $IRONIC_DATA_DIR/nodes.json ]; then
+ rm -rf $IRONIC_DATA_DIR/nodes.json
+ fi
+}
+
function apply_bm_hosts {
list_nodes | make_bm_hosts
}
fi
if [ "$1" == "deprovision" ]; then
+ configure_nodes
deprovision_all_hosts
exit 0
fi
if [ "$1" == "provision" ]; then
+ configure_nodes
apply_bm_hosts
exit 0
fi
+if [ "$1" == "clean" ]; then
+ configure_nodes
+ clean_all
+ exit 0
+fi
+
+if [ "$1" == "remove" ]; then
+ remove_baremetal_operator
+ exit 0
+fi
+
echo "Usage: metal3.sh"
echo "launch - Launch the metal3 operator"
echo "provision - provision baremetal node as specified in common.sh"
echo "deprovision - deprovision baremetal node as specified in common.sh"
+echo "clean - clean all the bmh resources"
+echo "remove - remove baremetal operator"
exit 1
#Following code is tested for the offline mode