From e1562899d9a2cd14f130ac3088ceaabdec5ee391 Mon Sep 17 00:00:00 2001 From: "Manoj Alva(ma257n)" Date: Sat, 30 Oct 2021 11:46:54 +0000 Subject: [PATCH] Support for IPV6 infra in AIAP Zuul Gate - Replaced minikube with kind cluster to setup a dualstack IPv6 cluster Closes: #662 Change-Id: Ibc40e574e37c8cf9ab5348e6413a1b1520f5d1c1 --- ...install_minikube.sh => 10_install_kind.sh} | 12 +- .../scripts/11_build_images.sh | 8 +- .../airship-in-a-pod/scripts/12_start_kind.sh | 106 ++++++++++++++++++ .../scripts/12_start_minikube.sh | 43 ------- zuul.d/jobs.yaml | 4 +- 5 files changed, 120 insertions(+), 53 deletions(-) rename tools/airship-in-a-pod/scripts/{10_install_minikube.sh => 10_install_kind.sh} (70%) create mode 100755 tools/airship-in-a-pod/scripts/12_start_kind.sh delete mode 100755 tools/airship-in-a-pod/scripts/12_start_minikube.sh diff --git a/tools/airship-in-a-pod/scripts/10_install_minikube.sh b/tools/airship-in-a-pod/scripts/10_install_kind.sh similarity index 70% rename from tools/airship-in-a-pod/scripts/10_install_minikube.sh rename to tools/airship-in-a-pod/scripts/10_install_kind.sh index da875bee2..067150898 100755 --- a/tools/airship-in-a-pod/scripts/10_install_minikube.sh +++ b/tools/airship-in-a-pod/scripts/10_install_kind.sh @@ -14,10 +14,10 @@ set -ex -# Installs minikube and other dependencies required for the scripts to run +# Installs kind and other dependencies required for the scripts to run -MINIKUBE_VERSION="latest" +KIND_VERSION="v0.11.1" install_pkg(){ for i in "$@"; do @@ -25,11 +25,11 @@ install_pkg(){ done } -# Grab usefull packages needed for minikube and other scripts +# Grab usefull packages needed for kind and other scripts install_pkg curl conntrack make jq -curl -Lo minikube "https://storage.googleapis.com/minikube/releases/$MINIKUBE_VERSION/minikube-linux-amd64" \ - && chmod +x minikube +curl -Lo ./kind "https://kind.sigs.k8s.io/dl/${KIND_VERSION}/kind-linux-amd64" \ + && chmod +x ./kind sudo mkdir -p /usr/local/bin/ -sudo install minikube /usr/local/bin/ +sudo mv ./kind /usr/local/bin/ diff --git a/tools/airship-in-a-pod/scripts/11_build_images.sh b/tools/airship-in-a-pod/scripts/11_build_images.sh index 2b2d2a6af..7c9d94006 100755 --- a/tools/airship-in-a-pod/scripts/11_build_images.sh +++ b/tools/airship-in-a-pod/scripts/11_build_images.sh @@ -23,11 +23,15 @@ AIRSHIPCTL_REF=${AIRSHIPCTL_REF:-"master"} export AIRSHIPCTL_REF # Images that are required by airship-in-a-pod but not built PULL_LIST="docker:stable-dind nginx quay.io/metal3-io/sushy-tools quay.io/airshipit/libvirt:aiap-v1" - +export PULL_LIST pushd tools/airship-in-a-pod/ || exit -make -e images artifact-setup base infra-builder runner libvirt + +BUILD_LIST="images artifact-setup base infra-builder runner libvirt" +export BUILD_LIST + +make -e ${BUILD_LIST} for IMAGE in $PULL_LIST; do docker pull "$IMAGE" diff --git a/tools/airship-in-a-pod/scripts/12_start_kind.sh b/tools/airship-in-a-pod/scripts/12_start_kind.sh new file mode 100755 index 000000000..d97aca0fc --- /dev/null +++ b/tools/airship-in-a-pod/scripts/12_start_kind.sh @@ -0,0 +1,106 @@ +#!/usr/bin/env bash + +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -ex + +# This script starts up kind cluster set for dual stack and proxy mode set for ipvs + +set +e + +create_cluster(){ +# possibly a cluster by name kind exists +kind delete cluster --name kind +cat < "$HOME"/.airship/kubeconfig + +# Ensure all of the downloaded images are loaded into kind +# Redefining the environment variables (as export does not seem to work in Zuul environment) + +BUILD_LIST="status-checker artifact-setup base infra-builder runner" +PULL_LIST="docker:stable-dind nginx quay.io/metal3-io/sushy-tools quay.io/airshipit/libvirt:aiap-v1" + +kind load docker-image ${PULL_LIST} + +for IMAGE in ${BUILD_LIST}; do + kind load docker-image "quay.io/airshipit/aiap-$IMAGE:latest" +done + diff --git a/tools/airship-in-a-pod/scripts/12_start_minikube.sh b/tools/airship-in-a-pod/scripts/12_start_minikube.sh deleted file mode 100755 index f9a706ade..000000000 --- a/tools/airship-in-a-pod/scripts/12_start_minikube.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/usr/bin/env bash - -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -set -ex - -# This script starts up minikube, and accounts for an issue that sometimes -# comes up when running minikube for the first time in some environments - - -set +e -sudo -E minikube start --driver=none -status=$? -sudo chown -R "$USER" "$HOME"/.minikube; chmod -R u+wrx "$HOME"/.minikube -if [[ $status -gt 0 ]]; then - # Sometimes minikube fails to start if the directory permissions are not correct - sudo -E minikube delete - set -e - sudo -E minikube start --driver=none -fi - -set -e -sudo -E minikube status - -# Ensure .kube and .minikube have proper ownership -sudo chown -R "$USER" "$HOME"/.kube "$HOME"/.minikube - -# Make a copy of the kubeconfig for the log playbooks -mkdir -p "$HOME"/.airship -cp "$HOME"/.kube/config "$HOME"/.airship/kubeconfig - -# Give cluster a chance to start up -sleep 10 \ No newline at end of file diff --git a/zuul.d/jobs.yaml b/zuul.d/jobs.yaml index 26012f2ca..5984b90b8 100644 --- a/zuul.d/jobs.yaml +++ b/zuul.d/jobs.yaml @@ -174,9 +174,9 @@ - ./tools/deployment/01_install_kubectl.sh - ./tools/install_kustomize.sh - ./tools/airship-in-a-pod/scripts/01_dns_settings.sh - - ./tools/airship-in-a-pod/scripts/10_install_minikube.sh + - ./tools/airship-in-a-pod/scripts/10_install_kind.sh - ./tools/airship-in-a-pod/scripts/11_build_images.sh - - ./tools/airship-in-a-pod/scripts/12_start_minikube.sh + - ./tools/airship-in-a-pod/scripts/12_start_kind.sh - ./tools/airship-in-a-pod/scripts/13_apply_dns.sh - ./tools/airship-in-a-pod/scripts/20_apply_aiap.sh serve_dir: /srv/images