From 2ccc680abcfb3308d59e439dc691c134a348a20e Mon Sep 17 00:00:00 2001 From: Edward Cheng Date: Thu, 27 Jun 2024 01:25:57 +1000 Subject: [PATCH] add grafana-dashboards 16098 --- .../dashboards/16098-deployment.yaml | 77 +++++++++++++++++++ .../dashboards/16098-service.yaml | 35 +++++++++ .../grafana-dashboards.yaml | 48 ++++++++++++ 3 files changed, 160 insertions(+) create mode 100644 kubernetes/infrastructure/grafana-dashboards/dashboards/16098-deployment.yaml create mode 100644 kubernetes/infrastructure/grafana-dashboards/dashboards/16098-service.yaml create mode 100644 kubernetes/infrastructure/grafana-dashboards/grafana-dashboards.yaml diff --git a/kubernetes/infrastructure/grafana-dashboards/dashboards/16098-deployment.yaml b/kubernetes/infrastructure/grafana-dashboards/dashboards/16098-deployment.yaml new file mode 100644 index 0000000..8e5ff34 --- /dev/null +++ b/kubernetes/infrastructure/grafana-dashboards/dashboards/16098-deployment.yaml @@ -0,0 +1,77 @@ +kind: Deployment +apiVersion: apps/v1 +metadata: + name: flask-consul + namespace: consul + labels: + app: flask-consul +spec: + replicas: 1 + selector: + matchLabels: + app: flask-consul + template: + metadata: + labels: + app: flask-consul + spec: + initContainers: + - name: wait-for-consul + image: busybox + command: + - sh + - '-c' + - >- + for i in \$(seq 1 60); do nc -z -w3 consul 8500 && exit 0 || + sleep 5; done; exit 1 + imagePullPolicy: IfNotPresent + containers: + - name: flask-consul + image: 'swr.cn-south-1.myhuaweicloud.com/starsl.cn/flask-consul:latest' + ports: + - name: http-2026 + containerPort: 2026 + protocol: TCP + env: + - name: admin_passwd + value: ${16098_admin_passwd} + - name: consul_token + value: ${16098_consul_token} + - name: consul_url + value: 'http://consul:8500/v1' + - name: log_level + value: INFO + - name: TZ + value: Australia/Sydney + imagePullPolicy: Always + restartPolicy: Always +--- +kind: Deployment +apiVersion: apps/v1 +metadata: + name: nginx-consul + namespace: consul + labels: + app: nginx-consul +spec: + replicas: 1 + selector: + matchLabels: + app: nginx-consul + template: + metadata: + labels: + app: nginx-consul + spec: + containers: + - name: nginx-consul + image: 'swr.cn-south-1.myhuaweicloud.com/starsl.cn/nginx-consul:latest' + ports: + - name: http-1026 + containerPort: 1026 + protocol: TCP + env: + - name: TZ + value: Australia/Sydney + imagePullPolicy: Always + restartPolicy: Always \ No newline at end of file diff --git a/kubernetes/infrastructure/grafana-dashboards/dashboards/16098-service.yaml b/kubernetes/infrastructure/grafana-dashboards/dashboards/16098-service.yaml new file mode 100644 index 0000000..4f0f31c --- /dev/null +++ b/kubernetes/infrastructure/grafana-dashboards/dashboards/16098-service.yaml @@ -0,0 +1,35 @@ +kind: Service +apiVersion: v1 +metadata: + name: flask-consul + namespace: tensuns + labels: + app: flask-consul +spec: + ports: + - name: http-2026 + protocol: TCP + port: 2026 + targetPort: 2026 + selector: + app: flask-consul + type: ClusterIP +--- +kind: Service +apiVersion: v1 +metadata: + name: tensuns + namespace: tensuns + labels: + app: tensuns +spec: + ports: + - name: nginx-consul + protocol: TCP + port: 1026 + targetPort: 1026 + nodePort: 31026 + selector: + app: nginx-consul + type: NodePort + externalTrafficPolicy: Cluster \ No newline at end of file diff --git a/kubernetes/infrastructure/grafana-dashboards/grafana-dashboards.yaml b/kubernetes/infrastructure/grafana-dashboards/grafana-dashboards.yaml new file mode 100644 index 0000000..e246050 --- /dev/null +++ b/kubernetes/infrastructure/grafana-dashboards/grafana-dashboards.yaml @@ -0,0 +1,48 @@ +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: grafana-dashboard-secrets + namespace: flux-system +spec: + interval: 10m + timeout: 1m30s + retryInterval: 30s + targetNamespace: prometheus + path: ./grafana-dashboard + prune: true + sourceRef: + kind: GitRepository + namespace: flux-system + name: home-cluster-ops-secrets + dependsOn: + - name: repositories + namespace: flux-system + decryption: + provider: sops + secretRef: + name: sops-age +--- +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: grafana-dashboards + namespace: prometheus +spec: + interval: 10m + timeout: 1m30s + retryInterval: 30s + path: ./kubernetes/infrastructure/grafana-dashboards/dashboards + prune: true + sourceRef: + kind: GitRepository + namespace: flux-system + name: flux-system + dependsOn: + - name: namespaces + namespace: flux-system + - name: grafana-dashboards-secrets + namespace: flux-system + postBuild: + substituteFrom: + - kind: Secret + name: grafana-dashboards-secrets