refactor: move embedded Kubernetes manifests to role templates
This commit is contained in:
@@ -173,56 +173,14 @@
|
||||
when: csi_smoke_test_enabled | bool
|
||||
|
||||
- name: Apply CSI smoke test resources
|
||||
shell: |
|
||||
kubectl apply -f - <<'EOF'
|
||||
apiVersion: storage.k8s.io/v1
|
||||
kind: StorageClass
|
||||
metadata:
|
||||
name: {{ csi_smoke_test_storage_class }}
|
||||
provisioner: csi.hetzner.cloud
|
||||
reclaimPolicy: Delete
|
||||
volumeBindingMode: Immediate
|
||||
allowVolumeExpansion: true
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: {{ csi_smoke_test_pvc_name }}
|
||||
namespace: kube-system
|
||||
labels:
|
||||
app.kubernetes.io/name: csi-smoke
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: {{ csi_smoke_test_size }}
|
||||
storageClassName: {{ csi_smoke_test_storage_class }}
|
||||
---
|
||||
apiVersion: batch/v1
|
||||
kind: Job
|
||||
metadata:
|
||||
name: {{ csi_smoke_test_job_name }}
|
||||
namespace: kube-system
|
||||
labels:
|
||||
app.kubernetes.io/name: csi-smoke
|
||||
spec:
|
||||
backoffLimit: 0
|
||||
template:
|
||||
spec:
|
||||
restartPolicy: Never
|
||||
containers:
|
||||
- name: write-and-read
|
||||
image: busybox:1.36
|
||||
command: ["/bin/sh", "-c", "echo csi-ok > /data/health && cat /data/health"]
|
||||
volumeMounts:
|
||||
- name: data
|
||||
mountPath: /data
|
||||
volumes:
|
||||
- name: data
|
||||
persistentVolumeClaim:
|
||||
claimName: {{ csi_smoke_test_pvc_name }}
|
||||
EOF
|
||||
template:
|
||||
src: csi-smoke.yaml.j2
|
||||
dest: /tmp/csi-smoke.yaml
|
||||
mode: "0644"
|
||||
when: csi_smoke_test_enabled | bool
|
||||
|
||||
- name: Apply CSI smoke test manifests
|
||||
command: kubectl apply -f /tmp/csi-smoke.yaml
|
||||
changed_when: true
|
||||
when: csi_smoke_test_enabled | bool
|
||||
|
||||
|
||||
47
ansible/roles/csi/templates/csi-smoke.yaml.j2
Normal file
47
ansible/roles/csi/templates/csi-smoke.yaml.j2
Normal file
@@ -0,0 +1,47 @@
|
||||
apiVersion: storage.k8s.io/v1
|
||||
kind: StorageClass
|
||||
metadata:
|
||||
name: {{ csi_smoke_test_storage_class }}
|
||||
provisioner: csi.hetzner.cloud
|
||||
reclaimPolicy: Delete
|
||||
volumeBindingMode: Immediate
|
||||
allowVolumeExpansion: true
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: {{ csi_smoke_test_pvc_name }}
|
||||
namespace: kube-system
|
||||
labels:
|
||||
app.kubernetes.io/name: csi-smoke
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: {{ csi_smoke_test_size }}
|
||||
storageClassName: {{ csi_smoke_test_storage_class }}
|
||||
---
|
||||
apiVersion: batch/v1
|
||||
kind: Job
|
||||
metadata:
|
||||
name: {{ csi_smoke_test_job_name }}
|
||||
namespace: kube-system
|
||||
labels:
|
||||
app.kubernetes.io/name: csi-smoke
|
||||
spec:
|
||||
backoffLimit: 0
|
||||
template:
|
||||
spec:
|
||||
restartPolicy: Never
|
||||
containers:
|
||||
- name: write-and-read
|
||||
image: busybox:1.36
|
||||
command: ["/bin/sh", "-c", "echo csi-ok > /data/health && cat /data/health"]
|
||||
volumeMounts:
|
||||
- name: data
|
||||
mountPath: /data
|
||||
volumes:
|
||||
- name: data
|
||||
persistentVolumeClaim:
|
||||
claimName: {{ csi_smoke_test_pvc_name }}
|
||||
@@ -21,38 +21,10 @@
|
||||
grafana_password_effective: "{{ grafana_admin_password if grafana_admin_password | length > 0 else lookup('password', '/dev/null length=32 chars=ascii_letters,digits') }}"
|
||||
|
||||
- name: Write kube-prometheus-stack values
|
||||
copy:
|
||||
template:
|
||||
src: kube-prometheus-stack-values.yaml.j2
|
||||
dest: /tmp/kube-prometheus-stack-values.yaml
|
||||
mode: "0644"
|
||||
content: |
|
||||
grafana:
|
||||
enabled: true
|
||||
adminPassword: {{ grafana_password_effective }}
|
||||
persistence:
|
||||
enabled: true
|
||||
storageClassName: {{ grafana_storage_class }}
|
||||
size: {{ grafana_storage_size }}
|
||||
service:
|
||||
type: ClusterIP
|
||||
prometheus:
|
||||
prometheusSpec:
|
||||
retention: 7d
|
||||
storageSpec:
|
||||
volumeClaimTemplate:
|
||||
spec:
|
||||
storageClassName: {{ prometheus_storage_class }}
|
||||
accessModes: ["ReadWriteOnce"]
|
||||
resources:
|
||||
requests:
|
||||
storage: {{ prometheus_storage_size }}
|
||||
alertmanager:
|
||||
enabled: false
|
||||
kubeEtcd:
|
||||
enabled: false
|
||||
kubeControllerManager:
|
||||
enabled: false
|
||||
kubeScheduler:
|
||||
enabled: false
|
||||
|
||||
- name: Add Prometheus Helm repo
|
||||
command: helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
|
||||
@@ -81,29 +53,10 @@
|
||||
changed_when: true
|
||||
|
||||
- name: Write Loki values
|
||||
copy:
|
||||
template:
|
||||
src: loki-values.yaml.j2
|
||||
dest: /tmp/loki-values.yaml
|
||||
mode: "0644"
|
||||
content: |
|
||||
loki:
|
||||
auth_enabled: false
|
||||
commonConfig:
|
||||
replication_factor: 1
|
||||
storage:
|
||||
type: filesystem
|
||||
singleBinary:
|
||||
replicas: 1
|
||||
persistence:
|
||||
enabled: true
|
||||
storageClass: {{ loki_storage_class }}
|
||||
size: {{ loki_storage_size }}
|
||||
test:
|
||||
enabled: false
|
||||
monitoring:
|
||||
selfMonitoring:
|
||||
enabled: false
|
||||
lokiCanary:
|
||||
enabled: false
|
||||
|
||||
- name: Install Loki
|
||||
command: >-
|
||||
@@ -116,13 +69,10 @@
|
||||
changed_when: true
|
||||
|
||||
- name: Write Promtail values
|
||||
copy:
|
||||
template:
|
||||
src: promtail-values.yaml.j2
|
||||
dest: /tmp/promtail-values.yaml
|
||||
mode: "0644"
|
||||
content: |
|
||||
config:
|
||||
clients:
|
||||
- url: http://loki-gateway.{{ observability_namespace }}.svc.cluster.local/loki/api/v1/push
|
||||
|
||||
- name: Install Promtail
|
||||
command: >-
|
||||
@@ -134,26 +84,14 @@
|
||||
--timeout 10m
|
||||
changed_when: true
|
||||
|
||||
- name: Write Grafana Loki datasource manifest
|
||||
template:
|
||||
src: grafana-datasource-loki.yaml.j2
|
||||
dest: /tmp/grafana-datasource-loki.yaml
|
||||
mode: "0644"
|
||||
|
||||
- name: Create Grafana Loki datasource
|
||||
command: kubectl apply -f -
|
||||
args:
|
||||
stdin: |
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: grafana-datasource-loki
|
||||
namespace: {{ observability_namespace }}
|
||||
labels:
|
||||
grafana_datasource: "1"
|
||||
data:
|
||||
loki-datasource.yaml: |
|
||||
apiVersion: 1
|
||||
datasources:
|
||||
- name: Loki
|
||||
type: loki
|
||||
access: proxy
|
||||
url: http://loki-gateway.{{ observability_namespace }}.svc.cluster.local
|
||||
isDefault: false
|
||||
command: kubectl apply -f /tmp/grafana-datasource-loki.yaml
|
||||
changed_when: true
|
||||
|
||||
- name: Show observability access details
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: grafana-datasource-loki
|
||||
namespace: {{ observability_namespace }}
|
||||
labels:
|
||||
grafana_datasource: "1"
|
||||
data:
|
||||
loki-datasource.yaml: |
|
||||
apiVersion: 1
|
||||
datasources:
|
||||
- name: Loki
|
||||
type: loki
|
||||
access: proxy
|
||||
url: http://loki-gateway.{{ observability_namespace }}.svc.cluster.local
|
||||
isDefault: false
|
||||
@@ -0,0 +1,28 @@
|
||||
grafana:
|
||||
enabled: true
|
||||
adminPassword: {{ grafana_password_effective }}
|
||||
persistence:
|
||||
enabled: true
|
||||
storageClassName: {{ grafana_storage_class }}
|
||||
size: {{ grafana_storage_size }}
|
||||
service:
|
||||
type: ClusterIP
|
||||
prometheus:
|
||||
prometheusSpec:
|
||||
retention: 7d
|
||||
storageSpec:
|
||||
volumeClaimTemplate:
|
||||
spec:
|
||||
storageClassName: {{ prometheus_storage_class }}
|
||||
accessModes: ["ReadWriteOnce"]
|
||||
resources:
|
||||
requests:
|
||||
storage: {{ prometheus_storage_size }}
|
||||
alertmanager:
|
||||
enabled: false
|
||||
kubeEtcd:
|
||||
enabled: false
|
||||
kubeControllerManager:
|
||||
enabled: false
|
||||
kubeScheduler:
|
||||
enabled: false
|
||||
19
ansible/roles/observability/templates/loki-values.yaml.j2
Normal file
19
ansible/roles/observability/templates/loki-values.yaml.j2
Normal file
@@ -0,0 +1,19 @@
|
||||
loki:
|
||||
auth_enabled: false
|
||||
commonConfig:
|
||||
replication_factor: 1
|
||||
storage:
|
||||
type: filesystem
|
||||
singleBinary:
|
||||
replicas: 1
|
||||
persistence:
|
||||
enabled: true
|
||||
storageClass: {{ loki_storage_class }}
|
||||
size: {{ loki_storage_size }}
|
||||
test:
|
||||
enabled: false
|
||||
monitoring:
|
||||
selfMonitoring:
|
||||
enabled: false
|
||||
lokiCanary:
|
||||
enabled: false
|
||||
@@ -0,0 +1,3 @@
|
||||
config:
|
||||
clients:
|
||||
- url: http://loki-gateway.{{ observability_namespace }}.svc.cluster.local/loki/api/v1/push
|
||||
Reference in New Issue
Block a user