2020-10-07 13:49:40 +05:00
|
|
|
#!/bin/bash -e
|
2019-12-13 09:48:00 -05:00
|
|
|
################################################################################
|
2023-11-22 21:49:23 +01:00
|
|
|
## File: install-kubernetes-tools.sh
|
2020-08-17 14:06:21 +05:30
|
|
|
## Desc: Installs kubectl, helm, kustomize
|
2023-11-02 15:40:32 +01:00
|
|
|
## Supply chain security: KIND, minikube - checksum validation
|
2019-12-13 09:48:00 -05:00
|
|
|
################################################################################
|
|
|
|
|
|
2022-02-08 19:41:23 +03:00
|
|
|
# Source the helpers for use with the script
|
|
|
|
|
source $HELPER_SCRIPTS/install.sh
|
|
|
|
|
|
2023-11-02 15:40:32 +01:00
|
|
|
# Download KIND
|
2023-12-25 19:47:58 +01:00
|
|
|
kind_url=$(resolve_github_release_asset_url "kubernetes-sigs/kind" "endswith(\"kind-linux-amd64\")" "latest")
|
2023-12-29 12:36:27 +01:00
|
|
|
kind_binary_path=$(download_with_retry "${kind_url}")
|
|
|
|
|
|
2023-11-02 15:40:32 +01:00
|
|
|
# Supply chain security - KIND
|
2023-12-25 19:47:58 +01:00
|
|
|
kind_external_hash=$(get_checksum_from_url "${kind_url}.sha256sum" "kind-linux-amd64" "SHA256")
|
2023-12-29 12:36:27 +01:00
|
|
|
use_checksum_comparison "${kind_binary_path}" "${kind_external_hash}"
|
|
|
|
|
|
2020-12-25 18:03:35 +03:00
|
|
|
# Install KIND
|
2023-12-29 12:36:27 +01:00
|
|
|
install "${kind_binary_path}" /usr/local/bin/kind
|
2020-12-25 18:03:35 +03:00
|
|
|
|
2019-12-13 09:48:00 -05:00
|
|
|
## Install kubectl
|
2023-12-29 12:36:27 +01:00
|
|
|
kubectl_minor_version=$(curl -fsSL "https://dl.k8s.io/release/stable.txt" | cut -d'.' -f1,2 )
|
|
|
|
|
curl -fsSL https://pkgs.k8s.io/core:/stable:/$kubectl_minor_version/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
|
|
|
|
|
echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/'$kubectl_minor_version'/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list
|
2024-05-29 13:43:07 +02:00
|
|
|
apt-get update
|
|
|
|
|
apt-get install kubectl
|
2023-10-23 14:34:26 +02:00
|
|
|
rm -f /etc/apt/sources.list.d/kubernetes.list
|
2019-12-13 09:48:00 -05:00
|
|
|
|
|
|
|
|
# Install Helm
|
2024-05-24 12:43:37 +02:00
|
|
|
curl -fsSL https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash
|
2019-12-13 09:48:00 -05:00
|
|
|
|
2023-11-02 15:40:32 +01:00
|
|
|
# Download minikube
|
2023-07-28 20:18:41 +02:00
|
|
|
curl -fsSL -O https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
|
2023-12-29 12:36:27 +01:00
|
|
|
|
2023-10-23 14:36:13 +02:00
|
|
|
# Supply chain security - minikube
|
2023-12-25 19:47:58 +01:00
|
|
|
minikube_hash=$(get_checksum_from_github_release "kubernetes/minikube" "linux-amd64" "latest" "SHA256")
|
2023-11-02 15:40:32 +01:00
|
|
|
use_checksum_comparison "minikube-linux-amd64" "${minikube_hash}"
|
2023-12-29 12:36:27 +01:00
|
|
|
|
2023-11-02 15:40:32 +01:00
|
|
|
# Install minikube
|
2023-12-29 12:36:27 +01:00
|
|
|
install minikube-linux-amd64 /usr/local/bin/minikube
|
2020-05-28 03:30:22 +00:00
|
|
|
|
2020-08-17 14:06:21 +05:30
|
|
|
# Install kustomize
|
2020-08-31 14:39:57 +02:00
|
|
|
download_url="https://raw.githubusercontent.com/kubernetes-sigs/kustomize/master/hack/install_kustomize.sh"
|
2023-07-28 20:18:41 +02:00
|
|
|
curl -fsSL "$download_url" | bash
|
2020-08-28 18:14:03 +02:00
|
|
|
mv kustomize /usr/local/bin
|
2020-05-28 03:30:22 +00:00
|
|
|
|
2020-12-25 18:03:35 +03:00
|
|
|
invoke_tests "Tools" "Kubernetes tools"
|