This article will document how to deploy K3s to a cluster of Raspberry Pis.
I am using the following:
| auth_enabled: false | |
| analytics: | |
| reporting_enabled: false | |
| server: | |
| http_listen_port: 3100 | |
| common: | |
| path_prefix: /var/loki |
| /* Using a JavaScript proxy for a super low code REST client */ | |
| // via https://dev.to/dipsaus9/javascript-lets-create-aproxy-19hg | |
| // also see https://towardsdatascience.com/why-to-use-javascript-proxy-5cdc69d943e3 | |
| // also see https://github.com/fastify/manifetch | |
| // also see https://github.com/flash-oss/allserver | |
| // and https://gist.github.com/v1vendi/75d5e5dad7a2d1ef3fcb48234e4528cb | |
| const createApi = (url) => { | |
| return new Proxy({}, { | |
| get(target, key) { |
| import json | |
| import os | |
| from datetime import datetime | |
| import requests | |
| SLACK_WEBHOOK_URL = os.environ['SLACK_WEBHOOK_URL'] | |
| ENV = os.environ['ENV'] | |
| SUBSCRIPTION_ID = os.environ["SUBSCRIPTION_ID"] | |
| TENANT = os.environ["TENANT"] |
| #!/bin/bash | |
| set -e | |
| ## The following commented environment variables should be set | |
| ## before running this script | |
| # export GOVC_USERNAME='administrator@vsphere.local' | |
| # export GOVC_PASSWORD='xxx' | |
| # export GOVC_INSECURE=true |
| curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - | |
| echo "step1" | |
| echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list | |
| echo "kubeadm install" | |
| sudo apt update -y | |
| sudo apt -y install vim git curl wget kubelet=1.23.0-00 kubeadm=1.23.0-00 kubectl=1.23.0-00 | |
| echo "memory swapoff" | |
| sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab | |
| sudo swapoff -a | |
| sudo modprobe overlay |
| #!/bin/bash | |
| ############################################################################ | |
| ## ██╗ ██████╗ █████╗ ███████╗███████╗ ███████╗███████╗██╗ ██╗ ## | |
| ## ██║ ██╔══██╗██╔══██╗██╔════╝██╔════╝ ██╔════╝██╔════╝██║ ██║ ## | |
| ## ██║ ██████╔╝███████║███████╗███████╗█████╗███████╗███████╗███████║ ## | |
| ## ██║ ██╔═══╝ ██╔══██║╚════██║╚════██║╚════╝╚════██║╚════██║██╔══██║ ## | |
| ## ███████╗██║ ██║ ██║███████║███████║ ███████║███████║██║ ██║ ## | |
| ## ╚══════╝╚═╝ ╚═╝ ╚═╝╚══════╝╚══════╝ ╚══════╝╚══════╝╚═╝ ╚═╝ ## | |
| ############################################################################ | |
| ## Preparation: |
| # code to load the JWT token in PowerShell | |
| # Call teh Get-JWTToken method with the App ID and the App Private Key (normal string from env var or file contents, make sure there is no extra line ending at the end of it!). | |
| function Build-Payload { | |
| Param ( | |
| [string] $app_id | |
| ) | |
| $iat = [Math]::Floor([decimal](Get-Date(Get-Date) -UFormat %s)) | |
| $payload = @{ | |
| "iat" = [int]$iat # issues at = now |
| # Originally from here : https://gist.github.com/ngaffa/15d46c98dd82620c8120ddf7398d6dbd | |
| #cloud-config | |
| package_update: true | |
| package_upgrade: true | |
| packages: | |
| # Update the apt package index and install packages needed to use the Docker and Kubernetes apt repositories over HTTPS | |
| - apt-transport-https | |
| - ca-certificates | |
| - curl |
| const express = require('express'); // Adding Express | |
| const app = express(); // Initializing Express | |
| const puppeteer = require('puppeteer'); // Adding Puppeteer, Run `apt-get install chromium` first (on Debian) | |
| // Wrapping the Puppeteer browser logic in a GET request | |
| app.get('/', function (req, res) { | |
| // Launching the Puppeteer controlled headless browser and navigate to the Digimon website | |
| puppeteer.launch({ | |
| headless: true, |