#!/usr/bin/env bash
-set -xe
+set -eux -o pipefail
+
LIBDIR="$(dirname "$PWD")"
source $LIBDIR/lib/logging.sh
exit 1
fi
-function check_inteface_ip {
+function check_interface_ip {
local interface=$1
local ipaddr=$2
- if [ ! $(ip addr show dev $interface) ]; then
+ ip addr show dev $interface
+ if [ $? -ne 0 ]; then
exit 1
fi
fi
}
-function configure_dhcp_bridge {
- brctl addbr dhcp0
- ip link set dhcp0 up
- brctl addif dhcp0 $BS_DHCP_INTERFACE
- ip addr add dev dhcp0 $BS_DHCP_INTERFACE_IP
-}
-
function configure_ironic_bridge {
- brctl addbr provisioning
+ ip link add dev provisioning type bridge
ip link set provisioning up
- brctl addif provisioning $IRONIC_INTERFACE
+ ip link set dev $IRONIC_INTERFACE master provisioning
ip addr add dev provisioning 172.22.0.1/24
}
-function configure_kubelet {
- swapoff -a
- #Todo addition kubelet configuration
-}
-
-function configure_kubeadm {
- #Todo error handing
- if [ "$1" == "offline" ]; then
- for images in kube-apiserver kube-controller-manager kube-scheduler kube-proxy; do
- docker load --input $CONTAINER_IMAGES_DIR/$images.tar;
- done
-
- docker load --input $CONTAINER_IMAGES_DIR/pause.tar
- docker load --input $CONTAINER_IMAGES_DIR/etcd.tar
- docker load --input $CONTAINER_IMAGES_DIR/coredns.tar
- return
- fi
- kubeadm config images pull --kubernetes-version=$KUBE_VERSION
-}
-
function configure_ironic_interfaces {
- #Todo later to change the CNI networking for podman networking
# Add firewall rules to ensure the IPA ramdisk can reach httpd, Ironic and the Inspector API on the host
if [ "$IRONIC_PROVISIONING_INTERFACE" ]; then
- check_inteface_ip $IRONIC_PROVISIONING_INTERFACE $IRONIC_PROVISIONING_INTERFACE_IP
+ check_interface_ip $IRONIC_PROVISIONING_INTERFACE $IRONIC_PROVISIONING_INTERFACE_IP
else
exit 1
fi
if [ "$IRONIC_IPMI_INTERFACE" ]; then
- check_inteface_ip $IRONIC_IPMI_INTERFACE $IRONIC_IPMI_INTERFACE_IP
+ check_interface_ip $IRONIC_IPMI_INTERFACE $IRONIC_IPMI_INTERFACE_IP
else
exit 1
fi
exit 1
fi
- for image in ironic-inspector-image ironic-image podman-pause \
+ for image in ironic-inspector-image ironic-image \
baremetal-operator socat; do
if [ ! -f "$CONTAINER_IMAGES_DIR/$image" ]; then
exit 1
exit 1
fi
- podman load --input $CONTAINER_IMAGES_DIR/ironic-inspector-image.tar
- podman load --input $CONTAINER_IMAGES_DIR/ironic-image.tar
- podman load --input $CONTAINER_IMAGES_DIR/podman-pause.tar
-
docker load --input $CONTAINER_IMAGES_DIR/baremetal-operator.tar
docker load --input $CONTAINER_IMAGES_DIR/socat.tar
return
fi
- #Podman usage is deprecated for v1.0.0 release
- #podman pull $IRONIC_IMAGE
+ for name in ironic ironic-inspector dnsmasq httpd mariadb ipa-downloader; do
+ sudo docker ps | \
+ grep -w "$name$" && sudo docker kill "$name"
+ sudo docker ps --all | \
+ grep -w "$name$" && sudo docker rm "$name" -f
+ done
+ rm -rf "$IRONIC_DATA_DIR"
+
docker pull $IRONIC_IMAGE
- #podman pull $IRONIC_INSPECTOR_IMAGE
docker pull $IRONIC_INSPECTOR_IMAGE
+ docker pull $IPA_DOWNLOADER_IMAGE
mkdir -p "$IRONIC_DATA_DIR/html/images"
pushd $IRONIC_DATA_DIR/html/images
- if [ ! -f ironic-python-agent.initramfs ]; then
- curl --insecure --compressed -L https://images.rdoproject.org/master/rdo_trunk/current-tripleo-rdo/ironic-python-agent.tar | tar -xf -
- fi
-
if [[ "$BM_IMAGE_URL" && "$BM_IMAGE" ]]; then
curl -o ${BM_IMAGE} --insecure --compressed -O -L ${BM_IMAGE_URL}
md5sum ${BM_IMAGE} | awk '{print $1}' > ${BM_IMAGE}.md5sum
}
function configure {
- #Kubeadm usage deprecated for v1.0.0 release
- #configure_kubeadm $1
- #configure_kubelet
configure_ironic $1
- configure_dhcp_bridge
configure_ironic_bridge
configure_ironic_interfaces
}
-if [ "$1" == "-o" ]; then
+if [ "$#" -eq 0 ]; then
+ configure online
+elif [ "$1" == "-o" ]; then
configure offline
- exit 0
+else
+ exit 1
fi
-
-configure