- node_networkdata $name > $name-networkdata.json
-}
-
-function launch_baremetal_operator {
- docker pull $IRONIC_BAREMETAL_IMAGE
- 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 cloud_init_scripts {
- # The "intel_iommu=on iommu=pt" kernel command line is necessary
- # for QAT support.
- cat << 'EOF'
-write_files:
-- path: /var/lib/cloud/scripts/per-instance/set_kernel_cmdline.sh
- owner: root:root
- permissions: '0777'
- content: |
- #!/usr/bin/env bash
- set -eux -o pipefail
- grub_file=${1:-"/etc/default/grub"}
- kernel_parameters="intel_iommu=on iommu=pt"
- sed -i~ "/^GRUB_CMDLINE_LINUX=/{h;s/\(=\".*\)\"/\1 ${kernel_parameters}\"/};\${x;/^$/{s//GRUB_CMDLINE_LINUX=\"${kernel_parameters}\"/;H};x}" "$grub_file"
- update-grub
- reboot
-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
-}
-
-apply_networkdata_credential() {
- name="$1"
- cat <<EOF > ./$name-network-data-credential.yaml
-apiVersion: v1
-data:
- networkData: $(base64 -w 0 $name-networkdata.json)
-kind: Secret
-metadata:
- name: $name-network-data
- namespace: metal3
-type: Opaque
-EOF
- kubectl apply -n metal3 -f $name-network-data-credential.yaml