commit e1cb2c141fae788a274c37f1967f0ccf39746269 Author: guipguia Date: Fri Jan 16 19:46:25 2026 +0000 feat: 🎸 initial commit 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