2026-02-20 18:05:12 +02:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
|
2026-02-20 18:10:01 +02:00
|
|
|
# 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)
|
2026-02-20 18:05:12 +02:00
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|