diff --git a/infra/ansible/inventory/host_vars/nuc01.yaml b/infra/ansible/inventory/host_vars/nuc01.yaml deleted file mode 100644 index e2a8692..0000000 --- a/infra/ansible/inventory/host_vars/nuc01.yaml +++ /dev/null @@ -1,4 +0,0 @@ ---- -node_labels: - - topology.kubernetes.io/zone=rack1 - - node.kubernetes.io/instance-type=nuc diff --git a/infra/ansible/playbooks/bootstrap.yaml b/infra/ansible/playbooks/bootstrap.yaml index ea0b714..e5ba69f 100644 --- a/infra/ansible/playbooks/bootstrap.yaml +++ b/infra/ansible/playbooks/bootstrap.yaml @@ -5,3 +5,4 @@ roles: - common - hardening + - storage diff --git a/infra/kubernetes/observability/kube-prometheus-stack/application.yaml b/infra/kubernetes/observability/kube-prometheus-stack/application.yaml index 858b4b1..c12028e 100644 --- a/infra/kubernetes/observability/kube-prometheus-stack/application.yaml +++ b/infra/kubernetes/observability/kube-prometheus-stack/application.yaml @@ -23,7 +23,7 @@ spec: storageSpec: volumeClaimTemplate: spec: - storageClassName: longhorn + storageClassName: longhorn-nvme accessModes: ["ReadWriteOnce"] resources: requests: @@ -32,7 +32,10 @@ spec: podMonitorSelectorNilUsesHelmValues: false grafana: - adminPassword: "changeme" + admin: + existingSecret: grafana-admin + userKey: admin-user + passwordKey: admin-password ingress: enabled: true ingressClassName: traefik @@ -71,7 +74,7 @@ spec: storage: volumeClaimTemplate: spec: - storageClassName: longhorn + storageClassName: longhorn-nvme accessModes: ["ReadWriteOnce"] resources: requests: diff --git a/infra/kubernetes/observability/tempo/application.yaml b/infra/kubernetes/observability/tempo/application.yaml index 2c1d773..354202b 100644 --- a/infra/kubernetes/observability/tempo/application.yaml +++ b/infra/kubernetes/observability/tempo/application.yaml @@ -28,7 +28,7 @@ spec: memory: 1Gi persistence: enabled: true - storageClassName: longhorn + storageClassName: longhorn-nvme size: 10Gi destination: server: https://kubernetes.default.svc diff --git a/infra/kubernetes/platform/cloudnativepg-cluster/cluster.yaml b/infra/kubernetes/platform/cloudnativepg-cluster/cluster.yaml index 7e86409..9c9a617 100644 --- a/infra/kubernetes/platform/cloudnativepg-cluster/cluster.yaml +++ b/infra/kubernetes/platform/cloudnativepg-cluster/cluster.yaml @@ -11,7 +11,7 @@ spec: primaryUpdateStrategy: unsupervised storage: - storageClass: longhorn + storageClass: longhorn-nvme size: 10Gi postgresql: diff --git a/infra/kubernetes/platform/longhorn/application.yaml b/infra/kubernetes/platform/longhorn/application.yaml index a5bd0f3..b801df7 100644 --- a/infra/kubernetes/platform/longhorn/application.yaml +++ b/infra/kubernetes/platform/longhorn/application.yaml @@ -20,8 +20,9 @@ spec: defaultSettings: defaultReplicaCount: 1 defaultDataLocality: best-effort + createDefaultDiskLabeledNodes: false persistence: - defaultClassReplicaCount: 2 + defaultClassReplicaCount: 1 destination: server: https://kubernetes.default.svc namespace: longhorn-system diff --git a/infra/kubernetes/platform/longhorn/kustomization.yaml b/infra/kubernetes/platform/longhorn/kustomization.yaml index 8e836b3..8521a99 100644 --- a/infra/kubernetes/platform/longhorn/kustomization.yaml +++ b/infra/kubernetes/platform/longhorn/kustomization.yaml @@ -4,3 +4,4 @@ resources: - application.yaml - namespace.yaml - servicemonitor.yaml + - node-disks.yaml diff --git a/infra/kubernetes/platform/longhorn/storageclass.yaml b/infra/kubernetes/platform/longhorn/storageclass.yaml index 8d9b8fa..dc0e5b3 100644 --- a/infra/kubernetes/platform/longhorn/storageclass.yaml +++ b/infra/kubernetes/platform/longhorn/storageclass.yaml @@ -9,6 +9,21 @@ allowVolumeExpansion: true reclaimPolicy: Delete volumeBindingMode: Immediate parameters: - numberOfReplicas: "2" + numberOfReplicas: "1" staleReplicaTimeout: "2880" dataLocality: best-effort + diskSelector: hdd +--- +apiVersion: storage.k8s.io/v1 +kind: StorageClass +metadata: + name: longhorn-nvme +provisioner: driver.longhorn.io +allowVolumeExpansion: true +reclaimPolicy: Delete +volumeBindingMode: Immediate +parameters: + numberOfReplicas: "1" + staleReplicaTimeout: "2880" + dataLocality: best-effort + diskSelector: nvme