Guillaume B.B. Van Hemmen
1cdedc26c7
Introduce a bash script (`05_install_longhorn.sh`) to automate the installation of Longhorn using Helm, including S3 backup credentials setup. Include a new Helm values file (`longhorn.yaml`) to define default settings like replica count and S3 backup configuration.
46 lines
1.5 KiB
Bash
Executable file
46 lines
1.5 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
# Check if the Cloudflare API token is provided as an argument
|
|
if [ -z "$1" ]; then
|
|
echo "Error: Missing S3 access key ID."
|
|
echo "Usage: $0 <AWS_ACCESS_KEY_ID> <AWS_SECRET_ACCESS_KEY>"
|
|
echo "You must provide your access key ID as a parameter to run this script."
|
|
exit 1
|
|
fi
|
|
|
|
# Check if the Cloudflare API token is provided as an argument
|
|
if [ -z "$2" ]; then
|
|
echo "Error: Missing S3 secret access key ID."
|
|
echo "Usage: $0 <AWS_ACCESS_KEY_ID> <AWS_SECRET_ACCESS_KEY>"
|
|
echo "You must provide your secret access key ID as a parameter to run this script."
|
|
exit 1
|
|
fi
|
|
|
|
AWS_ACCESS_KEY_ID=$1
|
|
AWS_SECRET_ACCESS_KEY=$2
|
|
|
|
# Add the longhorn Helm repository
|
|
helm repo add longhorn https://charts.longhorn.io
|
|
helm repo update
|
|
|
|
# Create the namespace for longhorn
|
|
kubectl create namespace longhorn-system || true
|
|
kubectl label namespace longhorn-system pod-security.kubernetes.io/enforce=privileged
|
|
kubectl label namespace longhorn-system pod-security.kubernetes.io/audit=privileged
|
|
kubectl label namespace longhorn-system pod-security.kubernetes.io/warn=privileged
|
|
|
|
kubectl delete secret longhorn-s3-secret -n longhorn-system || true
|
|
kubectl create secret generic longhorn-s3-secret \
|
|
--namespace longhorn-system \
|
|
--from-literal=AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID \
|
|
--from-literal=AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY \
|
|
--from-literal=AWS_REGION=eu-west-1
|
|
|
|
# Install the longhorn chart
|
|
helm install longhorn longhorn/longhorn \
|
|
--namespace longhorn-system \
|
|
--version 1.7.2 \
|
|
-f ./helm-values/longhorn.yaml
|
|
|