@@ -36,29 +36,34 @@ waitandretry() {
3636 fi
3737}
3838
39- function setup_arch_and_os(){
39+ function setup_arch_and_os() {
4040 ARCH=$( uname -m)
4141 case $ARCH in
42- armv5* ) ARCH=" armv5" ;;
43- armv6* ) ARCH=" armv6" ;;
44- armv7* ) ARCH=" arm" ;;
45- aarch64) ARCH=" arm64" ;;
46- x86) ARCH=" 386" ;;
47- x86_64) ARCH=" amd64" ;;
48- i686) ARCH=" 386" ;;
49- i386) ARCH=" 386" ;;
50- * ) echo " Error architecture '${ARCH} ' unknown" ; exit 1 ;;
42+ armv5* ) ARCH=" armv5" ;;
43+ armv6* ) ARCH=" armv6" ;;
44+ armv7* ) ARCH=" arm" ;;
45+ aarch64) ARCH=" arm64" ;;
46+ x86) ARCH=" 386" ;;
47+ x86_64) ARCH=" amd64" ;;
48+ i686) ARCH=" 386" ;;
49+ i386) ARCH=" 386" ;;
50+ * )
51+ echo " Error architecture '${ARCH} ' unknown"
52+ exit 1
53+ ;;
5154 esac
5255
53- OS=$( uname | tr ' [:upper:]' ' [:lower:]' )
56+ OS=$( uname | tr ' [:upper:]' ' [:lower:]' )
5457 case " $OS " in
5558 # Minimalist GNU for Windows
56- " mingw" * ) OS=' windows' ; return ;;
59+ " mingw" * )
60+ OS=' windows'
61+ return
62+ ;;
5763 esac
5864}
5965
60-
61- function check_supported_arch_and_os(){
66+ function check_supported_arch_and_os() {
6267 local supported=$1
6368 local os=$2
6469 local arch=$3
@@ -89,8 +94,7 @@ function install_kubectl() {
8994 version=$( curl -L -s https://dl.k8s.io/release/stable.txt)
9095 fi
9196
92- if ! command -v " ${KUBECTL} " & > /dev/null
93- then
97+ if ! command -v " ${KUBECTL} " & > /dev/null; then
9498 echo " WARNING: kubectl could not be found. Downloading and installing it locally..."
9599 echo " Downloading https://dl.k8s.io/release/${version} /bin/${os} /${arch} /kubectl"
96100 if ! curl --fail -Lo " ${KUBECTL} " " https://dl.k8s.io/release/${version} /bin/${os} /${arch} /kubectl" ; then
@@ -114,8 +118,7 @@ function install_helm() {
114118
115119 HELM_VERSION=" v3.15.3"
116120
117- if ! command -v " ${HELM} " & > /dev/null
118- then
121+ if ! command -v " ${HELM} " & > /dev/null; then
119122 echo " WARNING: helm could not be found. Downloading and installing it locally..."
120123 if ! curl --fail -Lo " ./helm-${HELM_VERSION} -${os} -${arch} .tar.gz" " https://get.helm.sh/helm-${HELM_VERSION} -${os} -${arch} .tar.gz" ; then
121124 echo " Error: Unable to download helm for '${os} -${arch} '"
@@ -159,27 +162,24 @@ function install_gcloud() {
159162 cd -
160163
161164 # Login to gcloud
162- echo " ${GCLOUD_KEY} " | base64 -d > " ${BINDIR} /gke_key_file.json"
165+ echo " ${GCLOUD_KEY} " | base64 -d > " ${BINDIR} /gke_key_file.json"
163166 " ${GCLOUD} " auth activate-service-account --key-file=" ${BINDIR} /gke_key_file.json"
164167 " ${GCLOUD} " components install gke-gcloud-auth-plugin
165168}
166169
167170function install_az() {
168171 local os=$1
169172
170- if ! command -v az & > /dev/null
171- then
172- echo " Azure CLI could not be found. Downloading and installing..."
173- if [[ " ${os} " == " linux" ]]
174- then
175- curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
176- elif [[ " ${os} " == " darwin" ]]
177- then
178- brew update && brew install azure-cli
179- else
180- echo " Error: Azure CLI is not supported on ${os} "
181- exit 1
182- fi
173+ if ! command -v az & > /dev/null; then
174+ echo " Azure CLI could not be found. Downloading and installing..."
175+ if [[ " ${os} " == " linux" ]]; then
176+ curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
177+ elif [[ " ${os} " == " darwin" ]]; then
178+ brew update && brew install azure-cli
179+ else
180+ echo " Error: Azure CLI is not supported on ${os} "
181+ exit 1
182+ fi
183183 fi
184184
185185 echo " Azure CLI version:"
@@ -206,8 +206,7 @@ function wait_kyverno() {
206206 local kubeconfig=$1
207207
208208 # Wait for the kyverno deployments to be ready
209- if ! waitandretry 5s 2 " ${KUBECTL} rollout status deployment -n kyverno --kubeconfig ${kubeconfig} "
210- then
209+ if ! waitandretry 5s 2 " ${KUBECTL} rollout status deployment -n kyverno --kubeconfig ${kubeconfig} " ; then
211210 echo " Failed to wait for kyverno deployments to be ready"
212211 exit 1
213212 fi
@@ -221,3 +220,27 @@ function install_clusterctl() {
221220 sudo install -o root -g root -m 0755 clusterctl /usr/local/bin/clusterctl
222221 clusterctl version
223222}
223+
224+ function install_krew() {
225+ local os=$1
226+ local arch=$2
227+
228+ (
229+ set -x
230+ cd " $( mktemp -d) " &&
231+ KREW=" krew-${os} _${arch} " &&
232+ curl -fsSLO " https://github.com/kubernetes-sigs/krew/releases/latest/download/${KREW} .tar.gz" &&
233+ tar zxvf " ${KREW} .tar.gz" &&
234+ ./" ${KREW} " install krew
235+ )
236+
237+ # Add krew to PATH in .bashrc if not already present
238+ echo ' export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"' >> ~/.bashrc
239+
240+ # Export for current session
241+ export PATH=" ${KREW_ROOT:- $HOME / .krew} /bin:$PATH "
242+ }
243+
244+ function install_oidc() {
245+ " ${KUBECTL} " krew install oidc-login
246+ }
0 commit comments