From 6f19f44f912a373e542a7310e07445437a499961 Mon Sep 17 00:00:00 2001 From: dvirlabs <114520947+dvirlabs@users.noreply.github.com> Date: Sun, 4 May 2025 17:05:14 +0300 Subject: [PATCH] Create new structure files --- .woodpecker.yml | 37 +++++++++++++++++++ argocd-apps/grafana/grafana-int.yaml | 23 ++++++++++++ .../grafana-prod.yaml} | 6 +-- argocd-apps/{ => prometheus}/prometheus.yaml | 0 manifests/grafana/values-int.yaml | 31 ++++++++++++++++ .../grafana/{values.yaml => values-prod.yaml} | 0 manifests/prometheus/values-int.yaml | 0 .../{values.yaml => values-prod.yaml} | 0 8 files changed, 93 insertions(+), 4 deletions(-) create mode 100644 .woodpecker.yml create mode 100644 argocd-apps/grafana/grafana-int.yaml rename argocd-apps/{grafana.yaml => grafana/grafana-prod.yaml} (83%) rename argocd-apps/{ => prometheus}/prometheus.yaml (100%) create mode 100644 manifests/grafana/values-int.yaml rename manifests/grafana/{values.yaml => values-prod.yaml} (100%) create mode 100644 manifests/prometheus/values-int.yaml rename manifests/prometheus/{values.yaml => values-prod.yaml} (100%) diff --git a/.woodpecker.yml b/.woodpecker.yml new file mode 100644 index 0000000..944e81c --- /dev/null +++ b/.woodpecker.yml @@ -0,0 +1,37 @@ +pipeline: + helm-check: + image: alpine/helm:3.13.2 + commands: + - helm lint charts/grafana + - helm template charts/grafana -f manifest/grafana/values-int.yaml + + validate-manifest: + image: bitnami/kubectl:latest + commands: + - echo "🔍 Validating grafana-int ArgoCD app" + - kubectl apply -f argocd-apps/grafana/grafana-int.yaml --dry-run=client + + deploy-argocd-app: + image: bitnami/kubectl:latest + commands: + - echo "🚀 Applying grafana-int ArgoCD app" + - kubectl apply -f argocd-apps/grafana/grafana-int.yaml + + create-cloudflare-cname: + image: alpine:latest + environment: + - CLOUDFLARE_TOKEN + - CLOUDFLARE_ZONE_ID + commands: + - apk add curl jq + - echo "🌐 Creating CNAME for grafana-int.dvirlabs.com" + - curl -X POST "https://api.cloudflare.com/client/v4/zones/$CLOUDFLARE_ZONE_ID/dns_records" \ + -H "Authorization: Bearer $CLOUDFLARE_TOKEN" \ + -H "Content-Type: application/json" \ + --data '{ + "type":"CNAME", + "name":"grafana-int", + "content":"", + "ttl":120, + "proxied":true + }' diff --git a/argocd-apps/grafana/grafana-int.yaml b/argocd-apps/grafana/grafana-int.yaml new file mode 100644 index 0000000..79eccca --- /dev/null +++ b/argocd-apps/grafana/grafana-int.yaml @@ -0,0 +1,23 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: grafana-int + namespace: argocd +spec: + project: observability + source: + repoURL: 'https://git.dvirlabs.com/dvirlabs/observability-stack.git' + targetRevision: HEAD # אפשר לשנות לפי הצורך (למשל לשם של branch preview) + path: charts/grafana + helm: + valueFiles: + - ../../manifest/grafana/values-int.yaml + destination: + server: https://kubernetes.default.svc + namespace: monitoring + syncPolicy: + automated: + prune: true + selfHeal: true + syncOptions: + - CreateNamespace=true diff --git a/argocd-apps/grafana.yaml b/argocd-apps/grafana/grafana-prod.yaml similarity index 83% rename from argocd-apps/grafana.yaml rename to argocd-apps/grafana/grafana-prod.yaml index 31a607a..2334f11 100644 --- a/argocd-apps/grafana.yaml +++ b/argocd-apps/grafana/grafana-prod.yaml @@ -1,9 +1,7 @@ -# argocd-apps/grafana.yaml - apiVersion: argoproj.io/v1alpha1 kind: Application metadata: - name: grafana + name: grafana-prod namespace: argocd spec: project: observability @@ -13,7 +11,7 @@ spec: path: charts/grafana helm: valueFiles: - - ../../manifests/grafana/values.yaml + - ../../manifest/grafana/values-prod.yaml destination: server: https://kubernetes.default.svc namespace: monitoring diff --git a/argocd-apps/prometheus.yaml b/argocd-apps/prometheus/prometheus.yaml similarity index 100% rename from argocd-apps/prometheus.yaml rename to argocd-apps/prometheus/prometheus.yaml diff --git a/manifests/grafana/values-int.yaml b/manifests/grafana/values-int.yaml new file mode 100644 index 0000000..7ec0c99 --- /dev/null +++ b/manifests/grafana/values-int.yaml @@ -0,0 +1,31 @@ +adminUser: admin +adminPassword: test1234 + +service: + type: ClusterIP + +ingress: + enabled: true + ingressClassName: traefik + annotations: + traefik.ingress.kubernetes.io/router.entrypoints: websecure + traefik.ingress.kubernetes.io/router.tls: "true" + hosts: + - grafana-int.dvirlabs.com + +persistence: + enabled: true + storageClassName: nfs-client + size: 1Gi + accessModes: + - ReadWriteOnce + +datasources: + datasources.yaml: + apiVersion: 1 + datasources: + - name: Prometheus + type: prometheus + access: proxy + url: http://prometheus-server + isDefault: true diff --git a/manifests/grafana/values.yaml b/manifests/grafana/values-prod.yaml similarity index 100% rename from manifests/grafana/values.yaml rename to manifests/grafana/values-prod.yaml diff --git a/manifests/prometheus/values-int.yaml b/manifests/prometheus/values-int.yaml new file mode 100644 index 0000000..e69de29 diff --git a/manifests/prometheus/values.yaml b/manifests/prometheus/values-prod.yaml similarity index 100% rename from manifests/prometheus/values.yaml rename to manifests/prometheus/values-prod.yaml