Last active
March 7, 2025 03:07
-
-
Save kriipke/d60d277dd79cf6ae3d4122282b96210a to your computer and use it in GitHub Desktop.
post install script to install Kubernetes (k3s) on dietpi on Turing Pi 2, set the path to this file in the AUTO_SETUP_CUSTOM_SCRIPT_EXEC variable in dietpi.txt, see https://help.turingpi.com/hc/en-us/articles/8942873470877-The-plan
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
AUTO_SETUP_ACCEPT_LICENSE=1 | |
AUTO_SETUP_LOCALE=C.UTF-8 | |
AUTO_SETUP_KEYBOARD_LAYOUT=us | |
AUTO_SETUP_TIMEZONE=America/New_York | |
AUTO_SETUP_NET_ETHERNET_ENABLED=1 | |
AUTO_SETUP_NET_WIFI_ENABLED=0 | |
AUTO_SETUP_NET_ETH_FORCE_SPEED=0 | |
AUTO_SETUP_NET_WIFI_COUNTRY_CODE=SK | |
AUTO_SETUP_NET_USESTATIC=1 | |
AUTO_SETUP_NET_STATIC_IP=192.168.40.200 | |
AUTO_SETUP_NET_STATIC_MASK=255.255.255.0 | |
AUTO_SETUP_NET_STATIC_GATEWAY=192.168.40.1 | |
AUTO_SETUP_NET_STATIC_DNS=1.1.1.1 8.8.8.8 | |
AUTO_SETUP_DHCP_TO_STATIC=0 | |
AUTO_SETUP_NET_HOSTNAME=cube01 | |
AUTO_SETUP_BOOT_WAIT_FOR_NETWORK=1 | |
AUTO_SETUP_SWAPFILE_SIZE=1 | |
AUTO_SETUP_SWAPFILE_LOCATION=/var/swap | |
AUTO_SETUP_HEADLESS=1 | |
AUTO_UNMASK_LOGIND=0 | |
AUTO_SETUP_CUSTOM_SCRIPT_EXEC=https://gist.githubusercontent.com/kriipke/d60d277dd79cf6ae3d4122282b96210a/raw/239c71d0cc357344d156c9641c5ea590f20bc544/post-install-script-dietpi.sh | |
AUTO_SETUP_SSH_PUBKEY=ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFdp/F7yYv33wnZQGbJAGmNcFNbm3qOFCOvrprXDlP24 ansible-primary | |
AUTO_SETUP_BACKUP_RESTORE=0 | |
AUTO_SETUP_SSH_SERVER_INDEX=-2 | |
AUTO_SETUP_LOGGING_INDEX=-1 | |
AUTO_SETUP_RAMLOG_MAXSIZE=50 | |
AUTO_SETUP_WEB_SERVER_INDEX=0 | |
AUTO_SETUP_DESKTOP_INDEX=0 | |
AUTO_SETUP_BROWSER_INDEX=0 | |
AUTO_SETUP_AUTOSTART_TARGET_INDEX=7 | |
AUTO_SETUP_AUTOSTART_LOGIN_USER=root | |
AUTO_SETUP_GLOBAL_PASSWORD=dietpi | |
AUTO_SETUP_AUTOMATED=1 | |
SURVEY_OPTED_IN=0 | |
#OpenSSH Client | |
AUTO_SETUP_INSTALL_SOFTWARE_ID=0 | |
#Samba Client | |
AUTO_SETUP_INSTALL_SOFTWARE_ID=1 | |
#vim | |
AUTO_SETUP_INSTALL_SOFTWARE_ID=20 | |
#RPi.GPIO | |
AUTO_SETUP_INSTALL_SOFTWARE_ID=69 | |
#OpenSSH Server | |
AUTO_SETUP_INSTALL_SOFTWARE_ID=105 | |
#Python 3 pip | |
AUTO_SETUP_INSTALL_SOFTWARE_ID=130 | |
CONFIG_CPU_GOVERNOR=schedutil | |
CONFIG_CPU_ONDEMAND_SAMPLE_RATE=25000 | |
CONFIG_CPU_ONDEMAND_SAMPLE_DOWNFACTOR=40 | |
CONFIG_CPU_USAGE_THROTTLE_UP=50 | |
CONFIG_CPU_MAX_FREQ=Disabled | |
CONFIG_CPU_MIN_FREQ=Disabled | |
CONFIG_CPU_DISABLE_TURBO=0 | |
CONFIG_PROXY_ADDRESS=MyProxyServer.com | |
CONFIG_PROXY_PORT=8080 | |
CONFIG_PROXY_USERNAME= | |
CONFIG_PROXY_PASSWORD= | |
CONFIG_G_CHECK_URL_TIMEOUT=10 | |
CONFIG_G_CHECK_URL_ATTEMPTS=5 | |
CONFIG_CHECK_CONNECTION_IP=8.8.8.8 | |
CONFIG_CHECK_CONNECTION_IPV6=2620:fe::fe | |
CONFIG_CHECK_DNS_DOMAIN=google.com | |
CONFIG_CHECK_DIETPI_UPDATES=1 | |
CONFIG_CHECK_APT_UPDATES=1 | |
CONFIG_NTP_MODE=2 | |
CONFIG_SERIAL_CONSOLE_ENABLE=1 | |
CONFIG_SOUNDCARD=none | |
CONFIG_LCDPANEL=none | |
CONFIG_ENABLE_IPV6=0 | |
CONFIG_APT_RASPBIAN_MIRROR=http://raspbian.raspberrypi.org/raspbian/ | |
CONFIG_APT_DEBIAN_MIRROR=https://deb.debian.org/debian/ | |
CONFIG_NTP_MIRROR=debian.pool.ntp.org | |
#------------------------------------------------------------------------------------------------------ | |
##### DietPi-Software settings ##### | |
#------------------------------------------------------------------------------------------------------ | |
SOFTWARE_DISABLE_SSH_PASSWORD_LOGINS=0 | |
#------------------------------------------------------------------------------------------------------ | |
##### Dev settings ##### | |
#------------------------------------------------------------------------------------------------------ | |
DEV_GITBRANCH=master | |
DEV_GITOWNER=MichaIng | |
#------------------------------------------------------------------------------------------------------ | |
##### Settings, automatically added by dietpi-update ##### | |
#------------------------------------------------------------------------------------------------------ |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
set -x | |
case $HOSTNAME in | |
cube01 | cube02 | cube03 | cube04) echo -n "Hostname configured correctly. Proceeding." ;; | |
*) echo -n "Hostnames not configured correctly. Exiting."; exit 1; ;; | |
esac | |
# play #1 - all hosts | |
CONTROL_NODE_IP=192.168.40.200 | |
K3S_JOIN_TOKEN=myrandompassword | |
apt update -y | |
apt upgrade -y | |
cat > /etc/hosts <<EOF | |
127.0.0.1 localhost | |
192.168.40.200 cube01 cube01.local | |
192.168.40.201 cube02 cube02.local | |
192.168.40.202 cube03 cube03.local | |
192.168.40.203 cube04 cube04.local | |
EOF | |
apt -y install iptables | |
if [[ "$HOSTNAME" = "cube01" ]]; then | |
# play #2 - cube01 | |
curl -sfL https://get.k3s.io | sh -s - \ | |
--write-kubeconfig-mode 644 \ | |
--disable servicelb \ | |
--token $K3S_JOIN_TOKEN \ | |
--node-ip $CONTROL_NODE_IP \ | |
--disable-cloud-controller \ | |
--disable local-storage | |
else | |
# play #3 - cube02, cube03, cube04 | |
curl -sfL https://get.k3s.io | K3S_URL=https://${CONTROL_NODE_IP}:6443 K3S_TOKEN=$K3S_JOIN_TOKEN sh - | |
fi | |
# play #4 - cube01 | |
# | |
# Perform manually once all nodes are up | |
# | |
# if [[ "$HOSTNAME" -eq "cube01" ]]; then | |
# kubectl label nodes cube01 kubernetes.io/role=worker | |
# kubectl label nodes cube02 kubernetes.io/role=worker | |
# kubectl label nodes cube03 kubernetes.io/role=worker | |
# kubectl label nodes cube04 kubernetes.io/role=worker | |
# kubectl label nodes cube01 node-type=worker | |
# kubectl label nodes cube02 node-type=worker | |
# kubectl label nodes cube03 node-type=worker | |
# kubectl label nodes cube04 node-type=worker | |
# fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment