gha-deploy-to-k3s/encode-k3s-yaml.sh

38 lines
1.1 KiB
Bash
Executable file

#!/usr/bin/env bash
# Define a function to read from the terminal
read_from_terminal() {
# Check if a tty is available
if [[ -t 0 ]]; then
# Use 'read -p' if standard input is an interactive terminal
read -p "$1" user_input
else
printf "\n" > /dev/tty
# If not interactive (e.g. piped), read from /dev/tty
# The '< /dev/tty' redirects input for 'read' to the terminal device
read -p "$1" user_input < /dev/tty
fi
echo "$user_input"
}
server_url=$(read_from_terminal "Server URL (public DNS name or IP address for the k3s server): ")
workdir=$(mktemp -d /tmp/encode-k3s-yaml.XXXXXX)
cd $workdir
echo "Working directory: $workdir"
pwd
cp /etc/rancher/k3s/k3s.yaml ./
# update server url
sed -i "s/127.0.0.1/$server_url/g" k3s.yaml
# append tls-server-name: kubernetes after 'server:' line
sed -i "/server:/a\ \ \ \ tls-server-name: kubernetes" k3s.yaml
# base64 encode the yaml file
base64 -w 0 -i k3s.yaml > k3s.yaml.b64
echo "Base64 encoded k3s.yaml for use as K3S_YAML for deployment scripts:"
cat k3s.yaml.b64