From 02bc749c241feb17aef5c115fa85b671ac5f719f Mon Sep 17 00:00:00 2001 From: Joe Monk Date: Mon, 19 Aug 2024 01:05:52 +0100 Subject: [PATCH] Ok longhorn --- apps/sonarr/pvc.yaml | 2 +- clusters/kairos/longhorn/helmrelease.yaml | 23 +++++++++++++ clusters/kairos/longhorn/helmrepo.yaml | 7 ++++ clusters/kairos/longhorn/ingress.yaml | 16 +++++++++ clusters/kairos/longhorn/kustomization.yaml | 8 +++++ clusters/kairos/longhorn/namespace.yaml | 4 +++ .../monitoring/grafana/helmrelease.yaml | 2 +- .../kairos/monitoring/loki/helmrelease.yaml | 2 +- clusters/kairos/storage/kustomization.yaml | 5 --- .../kairos/storage/localstorageconfigmap.yaml | 34 ------------------- clusters/kairos/storage/storageclass.yaml | 11 ------ 11 files changed, 61 insertions(+), 53 deletions(-) create mode 100644 clusters/kairos/longhorn/helmrelease.yaml create mode 100644 clusters/kairos/longhorn/helmrepo.yaml create mode 100644 clusters/kairos/longhorn/ingress.yaml create mode 100644 clusters/kairos/longhorn/kustomization.yaml create mode 100644 clusters/kairos/longhorn/namespace.yaml delete mode 100644 clusters/kairos/storage/kustomization.yaml delete mode 100644 clusters/kairos/storage/localstorageconfigmap.yaml delete mode 100644 clusters/kairos/storage/storageclass.yaml diff --git a/apps/sonarr/pvc.yaml b/apps/sonarr/pvc.yaml index b4320c6..0108abf 100644 --- a/apps/sonarr/pvc.yaml +++ b/apps/sonarr/pvc.yaml @@ -5,7 +5,7 @@ metadata: spec: accessModes: - ReadWriteOncePod - storageClassName: local-storage + storageClassName: longhorn resources: requests: storage: 5Gi \ No newline at end of file diff --git a/clusters/kairos/longhorn/helmrelease.yaml b/clusters/kairos/longhorn/helmrelease.yaml new file mode 100644 index 0000000..995852e --- /dev/null +++ b/clusters/kairos/longhorn/helmrelease.yaml @@ -0,0 +1,23 @@ +apiVersion: helm.toolkit.fluxcd.io/v2 +kind: HelmRelease +metadata: + name: longhorn +spec: + chart: + spec: + chart: longhorn + reconcileStrategy: ChartVersion + sourceRef: + kind: HelmRepository + name: longhorn-repo + version: 1.6.2 + interval: 1m0s + targetNamespace: longhorn + values: + defaultSettings: + defaultReplicaCount: 1 + defaultDataPath: /usr/local/longhorn/ + longhornUI: + replicas: 1 + persistence: + defaultClassReplicaCount: 1 \ No newline at end of file diff --git a/clusters/kairos/longhorn/helmrepo.yaml b/clusters/kairos/longhorn/helmrepo.yaml new file mode 100644 index 0000000..5da584a --- /dev/null +++ b/clusters/kairos/longhorn/helmrepo.yaml @@ -0,0 +1,7 @@ +apiVersion: source.toolkit.fluxcd.io/v1 +kind: HelmRepository +metadata: + name: longhorn-repo +spec: + interval: 1m0s + url: https://charts.longhorn.io diff --git a/clusters/kairos/longhorn/ingress.yaml b/clusters/kairos/longhorn/ingress.yaml new file mode 100644 index 0000000..bd65ee5 --- /dev/null +++ b/clusters/kairos/longhorn/ingress.yaml @@ -0,0 +1,16 @@ +apiVersion: traefik.io/v1alpha1 +kind: IngressRoute +metadata: + name: longhorn +spec: + entryPoints: + - web + routes: + - match: Host(`longhorn.k3s`) + kind: Rule + services: + - name: longhorn-frontend + namespace: longhorn + nativeLB: true + kind: Service + port: 80 \ No newline at end of file diff --git a/clusters/kairos/longhorn/kustomization.yaml b/clusters/kairos/longhorn/kustomization.yaml new file mode 100644 index 0000000..8b1afaa --- /dev/null +++ b/clusters/kairos/longhorn/kustomization.yaml @@ -0,0 +1,8 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +namespace: longhorn +resources: +- namespace.yaml +- helmrepo.yaml +- helmrelease.yaml +- ingress.yaml diff --git a/clusters/kairos/longhorn/namespace.yaml b/clusters/kairos/longhorn/namespace.yaml new file mode 100644 index 0000000..d6fc633 --- /dev/null +++ b/clusters/kairos/longhorn/namespace.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: longhorn \ No newline at end of file diff --git a/clusters/kairos/monitoring/grafana/helmrelease.yaml b/clusters/kairos/monitoring/grafana/helmrelease.yaml index ef35fcc..f41ad15 100644 --- a/clusters/kairos/monitoring/grafana/helmrelease.yaml +++ b/clusters/kairos/monitoring/grafana/helmrelease.yaml @@ -16,4 +16,4 @@ spec: values: persistence: enabled: true - storageClassName: local-storage \ No newline at end of file + storageClassName: longhorn \ No newline at end of file diff --git a/clusters/kairos/monitoring/loki/helmrelease.yaml b/clusters/kairos/monitoring/loki/helmrelease.yaml index 96af506..f976928 100644 --- a/clusters/kairos/monitoring/loki/helmrelease.yaml +++ b/clusters/kairos/monitoring/loki/helmrelease.yaml @@ -45,7 +45,7 @@ spec: minio: enabled: true persistence: - storageClass: local-storage + storageClass: longhorn # Zero out replica counts of other deployment modes singleBinary: diff --git a/clusters/kairos/storage/kustomization.yaml b/clusters/kairos/storage/kustomization.yaml deleted file mode 100644 index 3cb9601..0000000 --- a/clusters/kairos/storage/kustomization.yaml +++ /dev/null @@ -1,5 +0,0 @@ -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -resources: -- localstorageconfigmap.yaml -- storageclass.yaml \ No newline at end of file diff --git a/clusters/kairos/storage/localstorageconfigmap.yaml b/clusters/kairos/storage/localstorageconfigmap.yaml deleted file mode 100644 index 01789c4..0000000 --- a/clusters/kairos/storage/localstorageconfigmap.yaml +++ /dev/null @@ -1,34 +0,0 @@ -kind: ConfigMap -apiVersion: v1 -metadata: - name: local-path-config - namespace: kube-system -data: - config.json: |- - { - "nodePathMap":[ - { - "node":"DEFAULT_PATH_FOR_NON_LISTED_NODES", - "paths":["/usr/local"] - } - ] - } - helperPod.yaml: |- - apiVersion: v1 - kind: Pod - metadata: - name: helper-pod - spec: - containers: - - name: helper-pod - image: "rancher/mirrored-library-busybox:1.36.1" - imagePullPolicy: IfNotPresent - setup: |- - #!/bin/sh - set -eu - mkdir -m 0777 -p "${VOL_DIR}" - chmod 700 "${VOL_DIR}/.." - teardown: |- - #!/bin/sh - set -eu - rm -rf "${VOL_DIR}" \ No newline at end of file diff --git a/clusters/kairos/storage/storageclass.yaml b/clusters/kairos/storage/storageclass.yaml deleted file mode 100644 index 24ad121..0000000 --- a/clusters/kairos/storage/storageclass.yaml +++ /dev/null @@ -1,11 +0,0 @@ -apiVersion: storage.k8s.io/v1 -kind: StorageClass -metadata: - name: local-storage - annotations: - storageclass.kubernetes.io/is-default-class: "true" -provisioner: rancher.io/local-path -parameters: - nodePath: /usr/local - pathPattern: "{{ .PVC.Namespace }}/{{ .PVC.Name }}" -reclaimPolicy: Retain \ No newline at end of file