From 8265c80909918193dbef82658d7bacdd0d7aa621 Mon Sep 17 00:00:00 2001 From: Benjamin Runnels Date: Sun, 21 Jan 2024 16:34:34 -0600 Subject: [PATCH] fix: updated csi-drivers for k0s and simplified smb (#1220) * updated csi-drivers for k0s and simplified smb * Update addons.yaml * fixed spegel variable typos * Removed extra line ending --- .github/tests/addons.yaml | 31 +++---------------- .../apps/kube-system/kustomization.yaml.j2 | 2 +- .../spegel/app/helmrelease.yaml.j2 | 2 +- .../spegel/app/kustomization.yaml.j2 | 2 +- .../apps/kube-system/spegel/ks.yaml.j2 | 2 +- .../csi-driver-nfs/app/helmrelease.yaml.j2 | 3 ++ .../csi-driver-smb/app/helmrelease.yaml.j2 | 8 ++++- .../csi-driver-smb/app/kustomization.yaml.j2 | 2 ++ .../csi-driver-smb/app/secrets.sops.yaml.j2 | 2 +- .../csi-driver-smb/app/storageclass.yaml.j2 | 10 ++---- .../apps/storage/kustomization.yaml.j2 | 1 - bootstrap/vars/addons.sample.yaml | 5 +-- 12 files changed, 27 insertions(+), 43 deletions(-) diff --git a/.github/tests/addons.yaml b/.github/tests/addons.yaml index 9b3aaa8d..7dfa7c2a 100644 --- a/.github/tests/addons.yaml +++ b/.github/tests/addons.yaml @@ -26,8 +26,9 @@ addon_csi_driver_nfs: addon_csi_driver_smb: enabled: true + create_secrets: true storage_class: - - name: fake1 + - name: fake source: //localhost/fake username: fake password: fake @@ -35,32 +36,8 @@ addon_csi_driver_smb: dir_mode: 0644 uid: 100 gid: 100 - - name: fake2 - source: //localhost/fake - file_mode: 0755 - dir_mode: 0644 - uid: 100 - gid: 100 - existing_secret_name: fake - existing_secret_namespace: fake - - name: fake3 - source: //localhost/fake - username: fake - password: fake - file_mode: 0755 - dir_mode: 0644 - uid: 100 - gid: 100 - existing_secret_name: fake - - name: fake4 - source: //localhost/fake - username: fake - password: fake - file_mode: 0755 - dir_mode: 0644 - uid: 100 - gid: 100 - existing_secret_namespace: fake + secret_name: fake + secret_namespace: fake addon_system_upgrade_controller: enabled: true diff --git a/bootstrap/templates/kubernetes/apps/kube-system/kustomization.yaml.j2 b/bootstrap/templates/kubernetes/apps/kube-system/kustomization.yaml.j2 index f57d4645..efa54f97 100644 --- a/bootstrap/templates/kubernetes/apps/kube-system/kustomization.yaml.j2 +++ b/bootstrap/templates/kubernetes/apps/kube-system/kustomization.yaml.j2 @@ -8,6 +8,6 @@ resources: - ./kubelet-csr-approver/ks.yaml #% endif %# - ./metrics-server/ks.yaml - #% if bootstrap_distribution in ['k0s', 'talos'] and spegel.enabled %# + #% if bootstrap_distribution in ['k0s', 'talos'] and addon_spegel.enabled %# - ./spegel/ks.yaml #% endif %# diff --git a/bootstrap/templates/kubernetes/apps/kube-system/spegel/app/helmrelease.yaml.j2 b/bootstrap/templates/kubernetes/apps/kube-system/spegel/app/helmrelease.yaml.j2 index 15e1021f..81d9cc04 100644 --- a/bootstrap/templates/kubernetes/apps/kube-system/spegel/app/helmrelease.yaml.j2 +++ b/bootstrap/templates/kubernetes/apps/kube-system/spegel/app/helmrelease.yaml.j2 @@ -1,4 +1,4 @@ -#% if bootstrap_distribution in ['k0s', 'talos'] and spegel.enabled %# +#% if bootstrap_distribution in ['k0s', 'talos'] and addon_spegel.enabled %# --- apiVersion: helm.toolkit.fluxcd.io/v2beta2 kind: HelmRelease diff --git a/bootstrap/templates/kubernetes/apps/kube-system/spegel/app/kustomization.yaml.j2 b/bootstrap/templates/kubernetes/apps/kube-system/spegel/app/kustomization.yaml.j2 index 2f07a61f..7ac08540 100644 --- a/bootstrap/templates/kubernetes/apps/kube-system/spegel/app/kustomization.yaml.j2 +++ b/bootstrap/templates/kubernetes/apps/kube-system/spegel/app/kustomization.yaml.j2 @@ -1,4 +1,4 @@ -#% if bootstrap_distribution in ['k0s', 'talos'] and spegel.enabled %# +#% if bootstrap_distribution in ['k0s', 'talos'] and addon_spegel.enabled %# --- apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization diff --git a/bootstrap/templates/kubernetes/apps/kube-system/spegel/ks.yaml.j2 b/bootstrap/templates/kubernetes/apps/kube-system/spegel/ks.yaml.j2 index 0f15d88d..03bb80de 100644 --- a/bootstrap/templates/kubernetes/apps/kube-system/spegel/ks.yaml.j2 +++ b/bootstrap/templates/kubernetes/apps/kube-system/spegel/ks.yaml.j2 @@ -1,4 +1,4 @@ -#% if bootstrap_distribution in ['k0s', 'talos'] and spegel.enabled %# +#% if bootstrap_distribution in ['k0s', 'talos'] and addon_spegel.enabled %# --- apiVersion: kustomize.toolkit.fluxcd.io/v1 kind: Kustomization diff --git a/bootstrap/templates/kubernetes/apps/storage/csi-driver-nfs/app/helmrelease.yaml.j2 b/bootstrap/templates/kubernetes/apps/storage/csi-driver-nfs/app/helmrelease.yaml.j2 index e9ca48ff..9b52509b 100644 --- a/bootstrap/templates/kubernetes/apps/storage/csi-driver-nfs/app/helmrelease.yaml.j2 +++ b/bootstrap/templates/kubernetes/apps/storage/csi-driver-nfs/app/helmrelease.yaml.j2 @@ -26,4 +26,7 @@ spec: values: externalSnapshotter: enabled: false + #% if bootstrap_distribution == "k0s" %# + kubeletDir: /var/lib/k0s/kubelet + #% endif %# #% endif %# diff --git a/bootstrap/templates/kubernetes/apps/storage/csi-driver-smb/app/helmrelease.yaml.j2 b/bootstrap/templates/kubernetes/apps/storage/csi-driver-smb/app/helmrelease.yaml.j2 index a51c7bd9..f1e599d8 100644 --- a/bootstrap/templates/kubernetes/apps/storage/csi-driver-smb/app/helmrelease.yaml.j2 +++ b/bootstrap/templates/kubernetes/apps/storage/csi-driver-smb/app/helmrelease.yaml.j2 @@ -23,5 +23,11 @@ spec: retries: 3 uninstall: keepHistory: false - values: {} + values: + linux: + #% if bootstrap_distribution == "k0s" %# + kubelet: /var/lib/k0s/kubelet + #% else %# + kubelet: /var/lib/kubelet + #% endif %# #% endif %# diff --git a/bootstrap/templates/kubernetes/apps/storage/csi-driver-smb/app/kustomization.yaml.j2 b/bootstrap/templates/kubernetes/apps/storage/csi-driver-smb/app/kustomization.yaml.j2 index dc33d94b..1f47d206 100644 --- a/bootstrap/templates/kubernetes/apps/storage/csi-driver-smb/app/kustomization.yaml.j2 +++ b/bootstrap/templates/kubernetes/apps/storage/csi-driver-smb/app/kustomization.yaml.j2 @@ -5,5 +5,7 @@ kind: Kustomization resources: - ./helmrelease.yaml - ./storageclass.yaml + #% if addon_csi_driver_smb.create_secrets|default(true) %# - ./secrets.sops.yaml + #% endif %# #% endif %# diff --git a/bootstrap/templates/kubernetes/apps/storage/csi-driver-smb/app/secrets.sops.yaml.j2 b/bootstrap/templates/kubernetes/apps/storage/csi-driver-smb/app/secrets.sops.yaml.j2 index 91d35f71..c47de0f3 100644 --- a/bootstrap/templates/kubernetes/apps/storage/csi-driver-smb/app/secrets.sops.yaml.j2 +++ b/bootstrap/templates/kubernetes/apps/storage/csi-driver-smb/app/secrets.sops.yaml.j2 @@ -1,4 +1,4 @@ -#% if addon_csi_driver_smb.enabled %# +#% if addon_csi_driver_smb.enabled and addon_csi_driver_smb.create_secrets|default(true) %# #% for item in addon_csi_driver_smb.storage_class %# #% if not item.existing_secret_name %# --- diff --git a/bootstrap/templates/kubernetes/apps/storage/csi-driver-smb/app/storageclass.yaml.j2 b/bootstrap/templates/kubernetes/apps/storage/csi-driver-smb/app/storageclass.yaml.j2 index 70ceb5e7..57203568 100644 --- a/bootstrap/templates/kubernetes/apps/storage/csi-driver-smb/app/storageclass.yaml.j2 +++ b/bootstrap/templates/kubernetes/apps/storage/csi-driver-smb/app/storageclass.yaml.j2 @@ -8,13 +8,9 @@ metadata: provisioner: smb.csi.k8s.io parameters: source: "#{ item.source }#" - csi.storage.k8s.io/node-stage-secret-name: "#{ item.existing_secret_name|default(item.name + '-secret') }#" - #% if item.existing_secret_name and item.existing_secret_namespace %# - csi.storage.k8s.io/node-stage-secret-namespace: "#{ item.existing_secret_namespace }#" - #% else %# - csi.storage.k8s.io/node-stage-secret-namespace: "storage" - #% endif %# - createSubDir: "false" + csi.storage.k8s.io/node-stage-secret-name: "#{ item.secret_name|default(item.name + '-secret') }#" + csi.storage.k8s.io/node-stage-secret-namespace: "#{ item.secret_namespace|default("storage") }#" + onDelete: retain reclaimPolicy: Retain volumeBindingMode: Immediate mountOptions: diff --git a/bootstrap/templates/kubernetes/apps/storage/kustomization.yaml.j2 b/bootstrap/templates/kubernetes/apps/storage/kustomization.yaml.j2 index 928cec6e..417bcd67 100644 --- a/bootstrap/templates/kubernetes/apps/storage/kustomization.yaml.j2 +++ b/bootstrap/templates/kubernetes/apps/storage/kustomization.yaml.j2 @@ -13,4 +13,3 @@ resources: #% if addon_volsync.enabled %# - ./volsync/ks.yaml #% endif %# - diff --git a/bootstrap/vars/addons.sample.yaml b/bootstrap/vars/addons.sample.yaml index d24de92b..7bd6637d 100644 --- a/bootstrap/vars/addons.sample.yaml +++ b/bootstrap/vars/addons.sample.yaml @@ -39,6 +39,7 @@ addon_csi_driver_nfs: # https://github.com/kubernetes-csi/csi-driver-smb addon_csi_driver_smb: enabled: false + create_secrets: true # set to false to disable secret template rendering storage_class: # - name: # name of the storage class (must match [a-z0-9-]+) # source: # network path of the smb share ie: //192.168.0.5/downloads @@ -48,8 +49,8 @@ addon_csi_driver_smb: # file_mode: # default 0666 # uid: # default 1000 # gid: # default 1000 - # existing_secret_name: # If this is defined the username and password are ignored and the secret is not created - # existing_secret_namespace: # default storage. Ignored if existing_secret_name is not set + # secret_name: # default {name}-secret + # secret_namespace: # default storage # ... # https://github.com/rancher/system-upgrade-controller