From 6793d65fc5481abd2d1ae4a67b4623acf9c12690 Mon Sep 17 00:00:00 2001 From: Corneil du Plessis Date: Fri, 28 Oct 2022 12:07:06 +0200 Subject: [PATCH] [GitHub Actions] Add missing files. --- scripts/add-roles.sh | 25 +++++++++++++++++++++++++ scripts/ensure-ns.sh | 26 ++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100755 scripts/add-roles.sh create mode 100755 scripts/ensure-ns.sh diff --git a/scripts/add-roles.sh b/scripts/add-roles.sh new file mode 100755 index 00000000..f2c15644 --- /dev/null +++ b/scripts/add-roles.sh @@ -0,0 +1,25 @@ +#!/usr/bin/env bash +function add_role() { + ROLE=$1 + ROLE_NAME=$(echo "rolebinding-$NS-default-$ROLE" | sed 's/:/-/g') + echo "ROLE_NAME=$ROLE_NAME into $NS" + set +e + kubectl create rolebinding "$ROLE_NAME" \ + --namespace $NS \ + "--clusterrole=$ROLE" \ + "--user=system:serviceaccount:$NS:default" + + CROLE_NAME=$(echo "cluster-$NS-$ROLE" | sed 's/:/-/g') + echo "CROLE_NAME=$CROLE_NAME into $NS" + kubectl create clusterrolebinding "$CROLE_NAME" \ + --clusterrole=$ROLE \ + --group=system:authenticated --namespace $NS +} +if [ "$NS" == "" ]; then + echo "NS not defined" + exit 1 +fi +for role in "$@"; do + echo "Adding Role: $role" + add_role "$role" +done \ No newline at end of file diff --git a/scripts/ensure-ns.sh b/scripts/ensure-ns.sh new file mode 100755 index 00000000..df0e80ff --- /dev/null +++ b/scripts/ensure-ns.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env bash +(return 0 2>/dev/null) && sourced=1 || sourced=0 +if [ "$1" == "" ]; then + echo "Usage: ensure-ns.sh " + if ((sourced != 0)); then + return 1 + else + exit 1 + fi +fi +NS=$1 +set +e +FOUND=$(kubectl get namespaces --output=json | jq --arg namespace $NS '.items | map(select(.metadata.name == $namespace)) | .[] | .metadata.name') +if [ "$FOUND" == "" ]; then + echo "Creating namespace $NS" + kubectl create namespace "$NS" + set +e + COUNT=$(kubectl get namespaces 2>/dev/null | grep -c -F "$NS") + while ((COUNT == 0)); do + echo "Waiting for Namespace:$NS" + sleep 3 + COUNT=$(kubectl get namespaces 2>/dev/null | grep -c -F "$NS") + done +else + echo "Namespace $NS exists" +fi