From e1cb2c141fae788a274c37f1967f0ccf39746269 Mon Sep 17 00:00:00 2001 From: guipguia Date: Fri, 16 Jan 2026 19:46:25 +0000 Subject: [PATCH] =?UTF-8?q?feat:=20=F0=9F=8E=B8=20initial=20commit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 27 ++++++++++++++++ apps/monitoring/monitoring.yaml | 27 ++++++++++++++++ charts/monitoring/values.yaml | 57 +++++++++++++++++++++++++++++++++ 3 files changed, 111 insertions(+) create mode 100644 README.md create mode 100644 apps/monitoring/monitoring.yaml create mode 100644 charts/monitoring/values.yaml diff --git a/README.md b/README.md new file mode 100644 index 0000000..9f06bab --- /dev/null +++ b/README.md @@ -0,0 +1,27 @@ +# ArgoCD GitOps Repository + +This repository contains ArgoCD Application definitions and Helm values for deploying applications to the home-server Kubernetes cluster. + +## Structure + +``` +argocd/ +├── apps/ # ArgoCD Application manifests +│ └── monitoring.yaml # Monitoring stack (Prometheus + Grafana) +├── charts/ # Helm chart values +│ └── monitoring/ +│ └── values.yaml # kube-prometheus-stack values +└── README.md +``` + +## Usage + +1. Push changes to this repo +2. ArgoCD will automatically sync and deploy + +## Applications + +### Monitoring +- **Prometheus**: Metrics collection and alerting +- **Grafana**: Dashboards and visualization +- **Alertmanager**: Alert routing and management diff --git a/apps/monitoring/monitoring.yaml b/apps/monitoring/monitoring.yaml new file mode 100644 index 0000000..18ee73a --- /dev/null +++ b/apps/monitoring/monitoring.yaml @@ -0,0 +1,27 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: monitoring + namespace: argocd +spec: + project: default + sources: + - repoURL: https://prometheus-community.github.io/helm-charts + chart: kube-prometheus-stack + targetRevision: "72.6.2" + helm: + valueFiles: + - $values/argocd/charts/monitoring/values.yaml + - repoURL: https://git.svc.pguia.com/guipguia/iac.git + targetRevision: HEAD + ref: values + destination: + server: https://kubernetes.default.svc + namespace: monitoring + syncPolicy: + automated: + prune: true + selfHeal: true + syncOptions: + - CreateNamespace=true + - ServerSideApply=true diff --git a/charts/monitoring/values.yaml b/charts/monitoring/values.yaml new file mode 100644 index 0000000..b46cee6 --- /dev/null +++ b/charts/monitoring/values.yaml @@ -0,0 +1,57 @@ +# kube-prometheus-stack values +# https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack + +# Grafana configuration +grafana: + enabled: true + adminPassword: "2c11a0be99e0a6fc" + persistence: + enabled: true + existingClaim: grafana-data + ingress: + enabled: false # We'll use Gateway API + +# Prometheus configuration +prometheus: + prometheusSpec: + retention: 15d + storageSpec: + volumeClaimTemplate: + spec: + storageClassName: manual-monitoring + accessModes: ["ReadWriteOnce"] + resources: + requests: + storage: 50Gi + volumeName: prometheus-pv + +# Alertmanager configuration +alertmanager: + alertmanagerSpec: + storage: + volumeClaimTemplate: + spec: + storageClassName: manual-monitoring + accessModes: ["ReadWriteOnce"] + resources: + requests: + storage: 10Gi + volumeName: alertmanager-pv + +# Node exporter for host metrics +nodeExporter: + enabled: true + +# kube-state-metrics for Kubernetes object metrics +kubeStateMetrics: + enabled: true + +# Disable components not needed for single-node +kubeProxy: + enabled: false +kubeEtcd: + enabled: false +kubeControllerManager: + enabled: false +kubeScheduler: + enabled: false