Remove unused functions and code as part of this work.
Signed-off-by: Todd Malsbary <todd.malsbary@intel.com>
Change-Id: I838ee3a8ef0b54d1caf4df4732d3d416af0f4d93
# set password for mariadb
mariadb_password="$(echo "$(date;hostname)"|sha256sum |cut -c-20)"
-if [[ "${CONTAINER_RUNTIME}" == "podman" ]]; then
- # Remove existing pod
- if sudo "${CONTAINER_RUNTIME}" pod exists ironic-pod ; then
- sudo "${CONTAINER_RUNTIME}" pod rm ironic-pod -f
- fi
- # Create pod
- sudo "${CONTAINER_RUNTIME}" pod create -n ironic-pod
- POD_NAME="--pod ironic-pod"
-else
- POD_NAME=""
-fi
-
cat <<EOF > ${PWD}/ironic.env
PROVISIONING_INTERFACE=provisioning
DHCP_RANGE=172.22.0.10,172.22.0.100
sudo "${CONTAINER_RUNTIME}" ps --all | grep -w "$name$" && sudo "${CONTAINER_RUNTIME}" rm $name -f
done
-# Remove existing pod
-if [[ "${CONTAINER_RUNTIME}" == "podman" ]]; then
- if sudo "${CONTAINER_RUNTIME}" pod exists ironic-pod ; then
- sudo "${CONTAINER_RUNTIME}" pod rm ironic-pod -f
- fi
-fi
-
# Kill the locally running operators
if [ "${BMO_RUN_LOCAL}" = true ]; then
kill "$(pgrep "operator-sdk")" 2> /dev/null || true
#export SSH_PUB_KEY=~/.ssh/id_rsa.pub
#
-# Select the Container Runtime, can be "podman" or "docker"
-# Defaults to "podman"
+# Select the Container Runtime, can be "docker" or "containerd"
+# Defaults to "docker"
#
-#export CONTAINER_RUNTIME="podman"
+#export CONTAINER_RUNTIME="docker"
#
# Set the Baremetal Operator repository to clone
# shellcheck disable=SC1091
source lib/common.sh
-# sudo apt install -y libselinux-utils
-# if selinuxenabled ; then
-# sudo setenforce permissive
-# sudo sed -i "s/=enforcing/=permissive/g" /etc/selinux/config
-# fi
-
# Update to latest packages first
sudo apt -y update
-# Install EPEL required by some packages
-# if [ ! -f /etc/yum.repos.d/epel.repo ] ; then
-# if grep -q "Red Hat Enterprise Linux" /etc/redhat-release ; then
-# sudo yum -y install http://mirror.centos.org/centos/7/extras/x86_64/Packages/epel-release-7-11.noarch.rpm
-# else
-# sudo yum -y install epel-release --enablerepo=extras
-# fi
-# fi
-
-# Work around a conflict with a newer zeromq from epel
-# if ! grep -q zeromq /etc/yum.repos.d/epel.repo; then
-# sudo sed -i '/enabled=1/a exclude=zeromq*' /etc/yum.repos.d/epel.repo
-# fi
-
# Install required packages
sudo apt -y install \
#curl -sL https://rpm.nodesource.com/setup_10.x | sudo bash -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
-# Add this repository to install podman
-sudo add-apt-repository -y ppa:projectatomic/ppa
# Add this repository to install Golang 1.12
sudo add-apt-repository -y ppa:longsleep/golang-backports
yarn \
genisoimage
-
-if [[ "${CONTAINER_RUNTIME}" == "podman" ]]; then
- sudo apt -y install podman
-fi
-
# Install python packages not included as rpms
sudo pip install \
ansible==2.8.2 \
#Todo include over all variables here
KUBE_VERSION=${KUBE_VERSION:-"v1.15.0"}
POD_NETWORK_CIDR=${POD_NETWORK_CIDR:-"10.244.0.0/16"}
-PODMAN_CNI_CONFLIST=${PODMAN_CNI_CONFLIST:-"https://raw.githubusercontent.com/containers/libpod/v1.4.4/cni/87-podman-bridge.conflist"}
#Ironic variables
IRONIC_IMAGE=${IRONIC_IMAGE:-"integratedcloudnative/ironic:v1.0-icn"}
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_interface_ip $IRONIC_PROVISIONING_INTERFACE $IRONIC_PROVISIONING_INTERFACE_IP
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
}
function configure {
- #Kubeadm usage deprecated for v1.0.0 release
- #configure_kubeadm $1
- #configure_kubelet
configure_ironic $1
configure_ironic_bridge
configure_ironic_interfaces
exit 1
fi
-function get_default_interface_ipaddress {
- local _ip=$1
- local _default_interface=$(awk '$2 == 00000000 { print $1 }' /proc/net/route)
- local _ipv4address=$(ip addr show dev $_default_interface | awk '$1 == "inet" { sub("/.*", "", $2); print $2 }')
- eval $_ip="'$_ipv4address'"
-}
-
-function check_cni_network {
- #since bootstrap cluster is a single node cluster,
- #podman and bootstap cluster have same network configuration to avoid the cni network conf conflicts
- if [ ! -d "/etc/cni/net.d" ]; then
- mkdir -p "/etc/cni/net.d"
- fi
-
- if [ -f "/etc/cni/net.d/87-podman-bridge.conflist" ]; then
- rm -rf /etc/cni/net.d/87-podman-bridge.conflist
- fi
-
- if [ "$1" == "offline" ]; then
- cp $BUILD_DIR/87-podman-bridge.conflist /etc/cni/net.d/
- return
- fi
-
- if !(wget $PODMAN_CNI_CONFLIST -P /etc/cni/net.d/); then
- exit 1
- fi
-}
-
-function create_k8s_regular_user {
- if [ ! -d "$HOME/.kube" ]; then
- mkdir -p $HOME/.kube
- fi
-
- if [ ! -f /etc/kubernetes/admin.conf]; then
- exit 1
- fi
-
- cp -rf /etc/kubernetes/admin.conf $HOME/.kube/config
- chown $(id -u):$(id -g) $HOME/.kube/config
-}
-
-function check_k8s_node_status {
- echo 'checking bootstrap cluster single node status'
- node_status="False"
-
- for i in {1..5}; do
- check_node=$(kubectl get node -o \
- jsonpath='{.items[0].status.conditions[?(@.reason == "KubeletReady")].status}')
- if [ $check_node != "" ]; then
- node_status=${check_node}
- fi
-
- if [ $node_status == "True" ]; then
- break
- fi
-
- sleep 3
- done
-
- if [ $node_status != "True" ]; then
- echo "bootstrap cluster single node status is not ready"
- exit 1
- fi
-}
-
function install_ironic_container {
# set password for mariadb
mariadb_password=$(echo $(date;hostname)|sha256sum |cut -c-20)
-v "$IRONIC_DATA_DIR:/shared" "${IRONIC_INSPECTOR_IMAGE}"
}
-function remove_k8s_noschedule_taint {
- #Bootstrap cluster is a single node
- nodename=$(kubectl get node -o jsonpath='{.items[0].metadata.name}')
- if !(kubectl taint node $nodename node-role.kubernetes.io/master:NoSchedule-); then
- exit 1
- fi
-}
-
-function install_k8s_single_node {
- get_default_interface_ipaddress apiserver_advertise_addr
- kubeadm_init="kubeadm init --kubernetes-version=$KUBE_VERSION \
- --pod-network-cidr=$POD_NETWORK_CIDR \
- --apiserver-advertise-address=$apiserver_advertise_addr"
- if !(${kubeadm_init}); then
- exit 1
- fi
-}
-
function create_ironic_env {
cat <<EOF > ${PWD}/ironic.env
PROVISIONING_INTERFACE=provisioning
}
function install {
- #Kubeadm usage is deprecated in v1,0,0 version
- #install_kubernetes
- #install_k8s_single_node
- #check_cni_network $1
- #create_k8s_regular_user
- #check_k8s_node_status
- #remove_k8s_noschedule_taint
-
- #install_podman
- #Todo - error handling mechanism
create_ironic_env
install_ironic_container
}
update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1
}
-function build_baremetal_operator_images {
- if [ ! -d "$BUILD_DIR/baremetal-operator"]; then
- return
- fi
-
- pushd $BUILD_DIR/baremetal-operator
- docker build -t $IRONIC_BAREMETAL_IMAGE . -f build/Dockerfile
- docker save --output \
- $CONTAINER_IMAGES_DIR/baremetal-operator.tar $IRONIC_BAREMETAL_IMAGE
- popd
-
- docker pull $IRONIC_BAREMETAL_SOCAT_IMAGE
- docker save --output $CONTAINER_IMAGES_DIR/socat.tar $IRONIC_BAREMETAL_SOCAT_IMAGE
-}
-
-function build_ironic_images {
- for images in ironic-image ironic-inspector-image; do
- if [ -d "$BUILD_DIR/$images" ]; then
- pushd $BUILD_DIR/$images
- podman build -t $images .
- popd
- fi
- done
-
- if podman images -q localhost/ironic-inspector-image ; then
- podman tag localhost/ironic-inspector-image $IRONIC_INSPECTOR_IMAGE
- podman save --output \
- $CONTAINER_IMAGES_DIR/ironic-inspector-image.tar \
- $IRONIC_INSPECTOR_IMAGE
- fi
-
- if podman images -q localhost/ironic-image ; then
- podman tag localhost/ironic-inspector-image $IRONIC_IMAGE
- podman save --output $CONTAINER_IMAGES_DIR/ironic-image.tar \
- $IRONIC_IMAGE
- fi
-
- podman pull k8s.gcr.io/pause:3.1
- podman save --output $CONTAINER_IMAGES_DIR/podman-pause.tar \
- k8s.gcr.io/pause:3.1
-
- #build_baremetal_operator_images
-}
-
-
function download_container_images {
check_docker
pushd $CONTAINER_IMAGES_DIR
docker pull k8s.gcr.io/coredns:1.3.1
docker save --output coredns.tar k8s.gcr.io/coredns
- #podman images for Ironic
- check_podman
- build_ironic_images
- #podman pull $IRONIC_IMAGE
- #podman save --output ironic.tar $IRONIC_IMAGE
- #podman pull $IRONIC_INSPECTOR_IMAGE
- #podman save --output ironic-inspector.tar $IRONIC_INSPECTOR_IMAGE
popd
}
md5sum ${BM_IMAGE} | awk '{print $1}' > ${BM_IMAGE}.md5sum
fi
- if [ ! -f 87-podman-bridge.conflist ]; then
- curl --insecure --compressed -O -L $PODMAN_CNI_CONFLIST
- fi
-
if [ ! -d baremetal-operator ]; then
git clone https://github.com/metal3-io/baremetal-operator.git
pushd ./baremetal-operator
apt-get install docker-ce=19.03.15~3-0~ubuntu-bionic -y
}
-function check_podman {
- if which podman; then
- return
- fi
-
- add-apt-repository -y ppa:projectatomic/ppa
- apt-get update
- apt-get install podman -y
-}
-
function download_docker_packages {
apt-get remove -y docker \
docker-engine \
apt-get -d install docker-ce=19.03.15~3-0~ubuntu-bionic -y
}
-function download_podman_packages {
- apt-get update
- add-apt-repository -y ppa:projectatomic/ppa
- apt-get -d install podman -y
-}
-
function download_kubernetes_packages {
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
bash -c 'cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
download_essential_packages
download_ironic_packages
download_docker_packages
-download_podman_packages
download_kubernetes_packages
download_build_packages
download_container_images
fi
function autoremove {
- #apt-get autoremove -y
rm -rf /etc/apt/sources.list.d/*
}
apt-get update
}
-function clean_podman_packages {
- apt-get update
- add-apt-repository -y ppa:projectatomic/ppa
- apt-get remove podman -y
-}
-
function clean_kubernetes_packages {
#Just to make sure kubernetes packages are removed during the download
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
if [ "$1" == "--only-packages" ]; then
check_prerequisite
clean_docker_packages || true
- #clean_ironic_packages
autoremove
exit 0
fi
check_dir $CONTAINER_IMAGES_DIR
clean_dir $CONTAINER_IMAGES_DIR
clean_kubernetes_packages
-clean_podman_packages
clean_docker_packages
clean_ironic_packages
clean_essential_packages