From aa86c554e80f9c80187f9901c78a22947b42164c Mon Sep 17 00:00:00 2001 From: Syed Ahsan Date: Thu, 24 Oct 2019 12:00:32 -0700 Subject: [PATCH] Adding Cilium to create_stack (#218) This change adds Cilium to create_stack script, and uses crio by default unless the user otherwise speicify Signed-Off: Syed Ahsan --- clr-k8s-examples/README.md | 5 ++++ clr-k8s-examples/create_stack.sh | 50 ++++++++++++++++++++++---------- 2 files changed, 40 insertions(+), 15 deletions(-) diff --git a/clr-k8s-examples/README.md b/clr-k8s-examples/README.md index e63fc74..77f3911 100644 --- a/clr-k8s-examples/README.md +++ b/clr-k8s-examples/README.md @@ -65,6 +65,11 @@ you need to setup other cluster wide properties. There are different flavors to install, run `./create_stack.sh help` to get more information. +> NOTE: Before running [`create_stack.sh`](create_stack.sh) script, make sure to export +the necessary environment variables if needed to be changed. By default it will use +`CLRK8S_CNI` to be canal, and `CLRK8S_RUNNER` to be crio. Cilium is tested only in the +Vagrant. + ```bash # default shows help ./create_stack.sh diff --git a/clr-k8s-examples/create_stack.sh b/clr-k8s-examples/create_stack.sh index 4ce8282..49acaa5 100755 --- a/clr-k8s-examples/create_stack.sh +++ b/clr-k8s-examples/create_stack.sh @@ -16,10 +16,13 @@ HIGH_POD_COUNT=${HIGH_POD_COUNT:-""} # versions CANAL_VER="${CLRK8S_CANAL_VER:-v3.9}" +CILIUM_VER="${CLRK8S_CILIUM_VER:-v1.6}" K8S_VER="${CLRK8S_K8S_VER:-}" ROOK_VER="${CLRK8S_ROOK_VER:-v1.1.1}" METRICS_VER="${CLRK8S_METRICS_VER:-v0.3.5}" PROMETHEUS_VER="${CLRK8S_PROMETHEUS_VER:-f458e85e5d7675f7bc253072e1b4c8892b51af0f}" +CNI=${CLRK8S_CNI:-"canal"} +RUNNER=${CLRK8S_RUNNER:-"crio"} function print_usage_exit() { exit_code=${1:-0} @@ -100,23 +103,40 @@ function kata() { } function cni() { - # note version is not semver - CANAL_VER=${1:-$CANAL_VER} - CANAL_URL="https://docs.projectcalico.org/${CANAL_VER}/manifests" - if [[ "$CANAL_VER" == "v3.3" ]]; then - CANAL_URL="https://docs.projectcalico.org/v3.3/getting-started/kubernetes/installation/hosted/canal" - fi - CANAL_DIR="0-canal" + case "$CNI" in + canal) + # note version is not semver + CANAL_VER=${1:-$CANAL_VER} + CANAL_URL="https://docs.projectcalico.org/${CANAL_VER}/manifests" + if [[ "$CANAL_VER" == "v3.3" ]]; then + CANAL_URL="https://docs.projectcalico.org/v3.3/getting-started/kubernetes/installation/hosted/canal" + fi + CANAL_DIR="0-canal" - # canal manifests are not kept in repo but in docs site so use curl - mkdir -p "${CANAL_DIR}/overlays/${CANAL_VER}/canal" - curl -o "${CANAL_DIR}/overlays/${CANAL_VER}/canal/canal.yaml" "$CANAL_URL/canal.yaml" - if [[ "$CANAL_VER" == "v3.3" ]]; then - curl -o "${CANAL_DIR}/overlays/${CANAL_VER}/canal/rbac.yaml" "$CANAL_URL/rbac.yaml" - fi - # canal doesnt pass kustomize validation - kubectl apply -k "${CANAL_DIR}/overlays/${CANAL_VER}" --validate=false + # canal manifests are not kept in repo but in docs site so use curl + mkdir -p "${CANAL_DIR}/overlays/${CANAL_VER}/canal" + curl -o "${CANAL_DIR}/overlays/${CANAL_VER}/canal/canal.yaml" "$CANAL_URL/canal.yaml" + if [[ "$CANAL_VER" == "v3.3" ]]; then + curl -o "${CANAL_DIR}/overlays/${CANAL_VER}/canal/rbac.yaml" "$CANAL_URL/rbac.yaml" + fi + # canal doesnt pass kustomize validation + kubectl apply -k "${CANAL_DIR}/overlays/${CANAL_VER}" --validate=false + ;; + cilium) + CILIUM_VER=${1:-$CILIUM_VER} + CILIUM_URL="https://github.com/cilium/cilium.git" + CILIUM_DIR="0-cilium" + mkdir -p "${CILIUM_DIR}/overlays/${CILIUM_VER}" + get_repo "${CILIUM_URL}" "${CILIUM_DIR}/overlays/${CILIUM_VER}" + set_repo_version "${CILIUM_VER}" "${CILIUM_DIR}/overlays/${CILIUM_VER}/cilium/" + helm template "${CILIUM_DIR}/overlays/${CILIUM_VER}/cilium/install/kubernetes/cilium" --namespace kube-system --set global.containerRuntime.integration="$RUNNER" | kubectl apply -f - + ;; + *) + echo"Unknown cni $CNI" + exit 1 + ;; + esac } function metrics() {