From 6ff394b8878dcc519b618fb57d80e6594594f3de Mon Sep 17 00:00:00 2001 From: "Brett C. Dudo" Date: Sun, 14 Apr 2024 11:00:54 -0700 Subject: [PATCH] k0s -> k3s --- Brewfile | 21 ++------- README.md | 40 +++++++++-------- clusters/overlays/local/k0s.yaml | 8 ++-- .../kustomization.yaml | 6 +++ .../base/system-upgrade-controller/plan.yaml | 44 +++++++++++++++++++ .../system-upgrade-controller/source.yaml | 27 ++++++++++++ 6 files changed, 105 insertions(+), 41 deletions(-) create mode 100644 manifests/base/system-upgrade-controller/kustomization.yaml create mode 100644 manifests/base/system-upgrade-controller/plan.yaml create mode 100644 manifests/base/system-upgrade-controller/source.yaml diff --git a/Brewfile b/Brewfile index 0376a4a..9d3febb 100644 --- a/Brewfile +++ b/Brewfile @@ -1,25 +1,10 @@ # frozen_string_literal: true -tap 'siderolabs/talos' -brew 'siderolabs/talos/talosctl' - -brew 'crane' - -tap 'metalbear-co/mirrord' -brew 'metalbear-co/mirrord/mirrord' - tap 'fluxcd/tap' brew 'fluxcd/tap/flux' -tap 'k0sproject/tap' -brew 'k0sproject/tap/k0sctl' - -brew 'kubernetes-cli' - -brew 'helm' - brew 'cilium-cli' - -brew 'kubeseal' - brew 'cloudflared' +brew 'helm' +brew 'kubernetes-cli' +brew 'kubeseal' diff --git a/README.md b/README.md index e930d3d..5c78648 100644 --- a/README.md +++ b/README.md @@ -65,11 +65,11 @@ xz -d ubuntu-22.04.3-preinstalled-desktop-arm64-turing-rk1_v1.32.img.xz tpi flash -n N -i /mnt/sdcard/ubuntu-22.04.3-preinstalled-server-arm64-turing-rk1_v1.32.img ``` -### Kubernetes (via k0s) +### Kubernetes (via k3s) An open-source system for automating deployment, scaling, and management of containerized applications. - + ### Flux @@ -101,14 +101,28 @@ brew bundle When spinning up the cluster for the first time, there are 3 primary steps. -1. Install `k0s` +1. Install `k3s` - + + + ```sh - k0sctl apply --config ./clusters/overlays/local/k0s.yaml - k0sctl kubeconfig --config ./clusters/overlays/local/k0s.yaml - # add the output of this to ~/.kube/config + # Controller + curl -sfL https://get.k3s.io | sh -s - \ + --write-kubeconfig-mode 644 \ + --token toooookkkkeeennnnnnn \ + --node-ip 192.168.4.78 \ + --flannel-backend=none \ + --disable-cloud-controller \ + --disable-kube-proxy \ + --disable-network-policy \ + --disable local-storage \ + --disable servicelb \ + --disable traefik + + # Workers + curl -sfL https://get.k3s.io | K3S_URL=https://192.168.4.78:6443 K3S_TOKEN=toooookkkkeeennnnnnn sh - ``` 2. Install `cilium` @@ -190,18 +204,6 @@ data: EOF ``` -### Reset - -Tearing down the cluster is a 1 step process. - -1. Reset the cluster - - - - ```sh - k0sctl reset --config ./clusters/overlays/local/k0s.yaml - ``` - ## Pertinent Sections - [Apps](./apps) diff --git a/clusters/overlays/local/k0s.yaml b/clusters/overlays/local/k0s.yaml index fe6af83..307502e 100644 --- a/clusters/overlays/local/k0s.yaml +++ b/clusters/overlays/local/k0s.yaml @@ -21,7 +21,7 @@ spec: keyPath: ~/.ssh/id_rsa role: worker installFlags: - - --labels="tp2.turingpi.com/slot=2,kubernetes.io/role=worker" + - --labels="tp2.turingpi.com/slot=2" - ssh: address: 192.168.4.80 user: dudo @@ -29,7 +29,7 @@ spec: keyPath: ~/.ssh/id_rsa role: worker installFlags: - - --labels="tp2.turingpi.com/slot=3,kubernetes.io/role=worker" + - --labels="tp2.turingpi.com/slot=3" - ssh: address: 192.168.4.53 user: dudo @@ -37,9 +37,9 @@ spec: keyPath: ~/.ssh/id_rsa role: worker installFlags: - - --labels="tp2.turingpi.com/slot=4,kubernetes.io/role=worker" + - --labels="tp2.turingpi.com/slot=4" k0s: - version: 1.29.1+k0s.1 + version: 1.29.2+k0s.0 versionChannel: stable config: apiVersion: k0s.k0sproject.io/v1beta1 diff --git a/manifests/base/system-upgrade-controller/kustomization.yaml b/manifests/base/system-upgrade-controller/kustomization.yaml new file mode 100644 index 0000000..a8fc54d --- /dev/null +++ b/manifests/base/system-upgrade-controller/kustomization.yaml @@ -0,0 +1,6 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +namespace: flux-system +resources: + - source.yaml diff --git a/manifests/base/system-upgrade-controller/plan.yaml b/manifests/base/system-upgrade-controller/plan.yaml new file mode 100644 index 0000000..f4c9618 --- /dev/null +++ b/manifests/base/system-upgrade-controller/plan.yaml @@ -0,0 +1,44 @@ +--- +# Server plan +apiVersion: upgrade.cattle.io/v1 +kind: Plan +metadata: + name: server-plan + namespace: rancher +spec: + concurrency: 1 + cordon: true + nodeSelector: + matchExpressions: + - key: node-role.kubernetes.io/control-plane + operator: In + values: + - "true" + serviceAccountName: system-upgrade + upgrade: + image: rancher/k3s-upgrade + channel: https://update.k3s.io/v1-release/channels/stable + +--- +# Agent plan +apiVersion: upgrade.cattle.io/v1 +kind: Plan +metadata: + name: agent-plan + namespace: rancher +spec: + concurrency: 1 + cordon: true + nodeSelector: + matchExpressions: + - key: node-role.kubernetes.io/control-plane + operator: DoesNotExist + prepare: + args: + - prepare + - server-plan + image: rancher/k3s-upgrade + serviceAccountName: system-upgrade + upgrade: + image: rancher/k3s-upgrade + channel: https://update.k3s.io/v1-release/channels/stable diff --git a/manifests/base/system-upgrade-controller/source.yaml b/manifests/base/system-upgrade-controller/source.yaml new file mode 100644 index 0000000..d1921f7 --- /dev/null +++ b/manifests/base/system-upgrade-controller/source.yaml @@ -0,0 +1,27 @@ +--- +apiVersion: source.toolkit.fluxcd.io/v1 +kind: GitRepository +metadata: + name: system-upgrade-controller +spec: + interval: 24h + ref: + branch: master + url: https://github.com/rancher/system-upgrade-controller + +--- +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: system-upgrade-controller +spec: + interval: 12h + sourceRef: + kind: GitRepository + name: system-upgrade-controller + namespace: flux-system + targetNamespace: rancher + path: ./ + prune: true + wait: true + timeout: 5m