-
- if [ -n "$COMPUTE_NODE_FQDN" ]; then
- printf "fqdn: ""%s" "$COMPUTE_NODE_FQDN" >> $name-userdata.yaml
- printf "\n" >> $name-userdata.yaml
- fi
- printf "disable_root: false\n" >> $name-userdata.yaml
- printf "ssh_authorized_keys:\n - " >> $name-userdata.yaml
-
- if [ ! -f $HOME/.ssh/id_rsa.pub ]; then
- yes y | ssh-keygen -t rsa -N "" -f $HOME/.ssh/id_rsa
- fi
-
- cat $HOME/.ssh/id_rsa.pub >> $name-userdata.yaml
- network_config_files >> $name-userdata.yaml
- printf "\n" >> $name-userdata.yaml
-}
-
-function launch_baremetal_operator {
- docker pull integratedcloudnative/baremetal-operator:v1.0-icn
- kubectl apply -f bmo/namespace/namespace.yaml
- kubectl apply -f bmo/rbac/service_account.yaml -n metal3
- kubectl apply -f bmo/rbac/role.yaml -n metal3
- kubectl apply -f bmo/rbac/role_binding.yaml
- kubectl apply -f bmo/crds/metal3.io_baremetalhosts_crd.yaml
- kubectl apply -f bmo/operator/no_ironic/operator.yaml -n metal3
-}
-
-function remove_baremetal_operator {
- kubectl delete -f bmo/operator/no_ironic/operator.yaml -n metal3
- kubectl delete -f bmo/crds/metal3.io_baremetalhosts_crd.yaml
- kubectl delete -f bmo/rbac/role_binding.yaml
- kubectl delete -f bmo/rbac/role.yaml -n metal3
- kubectl delete -f bmo/rbac/service_account.yaml -n metal3
- kubectl delete -f bmo/namespace/namespace.yaml
-}
-
-function network_config_files {
- cat << 'EOF'
-write_files:
-- path: /opt/ironic_net.sh
- owner: root:root
- permissions: '0777'
- content: |
- #!/usr/bin/env bash
- set -xe
- for intf in /sys/class/net/*; do
- 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
-}
-
-function apply_userdata_credential {
- name="$1"
- cat <<EOF > ./$name-user-data-credential.yaml
-apiVersion: v1
-data:
- userData: $(base64 -w 0 $name-userdata.yaml)
-kind: Secret
-metadata:
- name: $name-user-data
- namespace: metal3
-type: Opaque
-EOF
- kubectl apply -n metal3 -f $name-user-data-credential.yaml