#!/bin/bash # encrypt secrets in the selected configuration # Note that existing encrypted files will be overwritten # base setup SCRIPT_PATH=$(realpath $0) SCRIPT_DIR=$(dirname $SCRIPT_PATH) # check CONFIGURATION if [ -z ${CONFIGURATION} ]; then echo "You must provide a `CONFIGURATION` via environment variable" exit 1 fi echo "Using CONFIGURATION=${CONFIGURATION}" # configuration SECRET=${SECRET} SECRET_FILE=${SCRIPT_DIR}/../configurations/${CONFIGURATION}/SECRET FILES=(\ "${SCRIPT_DIR}/../configurations/${CONFIGURATION}/.env" \ "${SCRIPT_DIR}/../configurations/${CONFIGURATION}/kubeconfig.yaml" \ "${SCRIPT_DIR}/../configurations/${CONFIGURATION}/kubernetes/values.yaml" \ "${SCRIPT_DIR}/../configurations/${CONFIGURATION}/kubernetes/dns.values.yaml" \ ) # Load SECRET from file if it is not set explicitly if [ -z ${SECRET} ] && [ -f "${SECRET_FILE}" ]; then SECRET=$(<${SECRET_FILE}) fi # exit when there is no SECRET set if [ -z ${SECRET} ]; then echo "No SECRET provided and no SECRET-File found." exit 1 fi # encrypt for file in "${FILES[@]}" do if [ -f "${file}" ]; then gpg --symmetric --batch --yes --passphrase="${SECRET}" --cipher-algo AES256 --output ${file}.enc ${file} echo "Encrypted ${file}" fi done echo "DONE"