Support for IPV6 infra in AIAP Zuul Gate
- Replaced minikube with kind cluster to setup a dualstack IPv6 cluster Closes: #662 Change-Id: Ibc40e574e37c8cf9ab5348e6413a1b1520f5d1c1
This commit is contained in:
parent
bc704b736d
commit
e1562899d9
@ -14,10 +14,10 @@
|
|||||||
|
|
||||||
set -ex
|
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(){
|
install_pkg(){
|
||||||
for i in "$@"; do
|
for i in "$@"; do
|
||||||
@ -25,11 +25,11 @@ install_pkg(){
|
|||||||
done
|
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
|
install_pkg curl conntrack make jq
|
||||||
|
|
||||||
curl -Lo minikube "https://storage.googleapis.com/minikube/releases/$MINIKUBE_VERSION/minikube-linux-amd64" \
|
curl -Lo ./kind "https://kind.sigs.k8s.io/dl/${KIND_VERSION}/kind-linux-amd64" \
|
||||||
&& chmod +x minikube
|
&& chmod +x ./kind
|
||||||
|
|
||||||
sudo mkdir -p /usr/local/bin/
|
sudo mkdir -p /usr/local/bin/
|
||||||
sudo install minikube /usr/local/bin/
|
sudo mv ./kind /usr/local/bin/
|
@ -23,11 +23,15 @@ AIRSHIPCTL_REF=${AIRSHIPCTL_REF:-"master"}
|
|||||||
export AIRSHIPCTL_REF
|
export AIRSHIPCTL_REF
|
||||||
# Images that are required by airship-in-a-pod but not built
|
# 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"
|
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
|
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
|
for IMAGE in $PULL_LIST; do
|
||||||
docker pull "$IMAGE"
|
docker pull "$IMAGE"
|
||||||
|
106
tools/airship-in-a-pod/scripts/12_start_kind.sh
Executable file
106
tools/airship-in-a-pod/scripts/12_start_kind.sh
Executable file
@ -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 <<EOF | kind create cluster --config -
|
||||||
|
kind: Cluster
|
||||||
|
apiVersion: kind.x-k8s.io/v1alpha4
|
||||||
|
networking:
|
||||||
|
disableDefaultCNI: true # disable kindnet
|
||||||
|
kubeProxyMode: "ipvs"
|
||||||
|
ipFamily: dual
|
||||||
|
nodes:
|
||||||
|
- role: control-plane
|
||||||
|
extraPortMappings:
|
||||||
|
- containerPort: 30002
|
||||||
|
hostPort: 30002
|
||||||
|
listenAddress: 0.0.0.0 # Optional, defaults to 0.0.0.0
|
||||||
|
protocol: tcp # Optional, defaults to tcp
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
create_cluster
|
||||||
|
|
||||||
|
status=$?
|
||||||
|
if [[ $status -gt 0 ]]; then
|
||||||
|
echo "Failed to create kind cluster"
|
||||||
|
return -1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Give cluster a chance to start up
|
||||||
|
sleep 10
|
||||||
|
|
||||||
|
|
||||||
|
kubectl create -f https://docs.projectcalico.org/manifests/tigera-operator.yaml
|
||||||
|
|
||||||
|
|
||||||
|
cat <<EOF | kubectl apply -f -
|
||||||
|
apiVersion: operator.tigera.io/v1
|
||||||
|
kind: Installation
|
||||||
|
metadata:
|
||||||
|
name: default
|
||||||
|
spec:
|
||||||
|
# Configures Calico networking.
|
||||||
|
calicoNetwork:
|
||||||
|
# Note: The ipPools section cannot be modified post-install.
|
||||||
|
ipPools:
|
||||||
|
- blockSize: 26
|
||||||
|
cidr: 10.244.0.0/16
|
||||||
|
encapsulation: VXLANCrossSubnet
|
||||||
|
natOutgoing: Enabled
|
||||||
|
nodeSelector: all()
|
||||||
|
- blockSize: 116 # must be greater than 115 and < 128
|
||||||
|
cidr: fd00:10:244::/56
|
||||||
|
encapsulation: None # Does not support
|
||||||
|
natOutgoing: Enabled
|
||||||
|
nodeSelector: all()
|
||||||
|
nodeAddressAutodetectionV4:
|
||||||
|
interface: eth0
|
||||||
|
nodeAddressAutodetectionV6:
|
||||||
|
interface: eth0
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# This section configures the Calico API server.
|
||||||
|
apiVersion: operator.tigera.io/v1
|
||||||
|
kind: APIServer
|
||||||
|
metadata:
|
||||||
|
name: default
|
||||||
|
spec: {}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Make a copy of the kubeconfig for the log playbooks
|
||||||
|
mkdir -p "$HOME"/.airship
|
||||||
|
kind get kubeconfig > "$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
|
||||||
|
|
@ -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
|
|
@ -174,9 +174,9 @@
|
|||||||
- ./tools/deployment/01_install_kubectl.sh
|
- ./tools/deployment/01_install_kubectl.sh
|
||||||
- ./tools/install_kustomize.sh
|
- ./tools/install_kustomize.sh
|
||||||
- ./tools/airship-in-a-pod/scripts/01_dns_settings.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/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/13_apply_dns.sh
|
||||||
- ./tools/airship-in-a-pod/scripts/20_apply_aiap.sh
|
- ./tools/airship-in-a-pod/scripts/20_apply_aiap.sh
|
||||||
serve_dir: /srv/images
|
serve_dir: /srv/images
|
||||||
|
Loading…
Reference in New Issue
Block a user