diff --git a/apps/observability/helm-dashboard-values.yaml b/apps/observability/helm-dashboard-values.yaml new file mode 100644 index 0000000..f913b80 --- /dev/null +++ b/apps/observability/helm-dashboard-values.yaml @@ -0,0 +1,14 @@ +dashboard: + persistence: + size: 100M + storageClassName: ceph-rbd + +ingress: + enabled: true + className: public + annotations: {} + hosts: + - host: helm.alexandre-vazquez.cloud + paths: + - path: / + pathType: ImplementationSpecific diff --git a/apps/observability/kube-prom-stack-values.yaml b/apps/observability/kube-prom-stack-values.yaml new file mode 100644 index 0000000..d66b204 --- /dev/null +++ b/apps/observability/kube-prom-stack-values.yaml @@ -0,0 +1,72 @@ +grafana: + additionalDataSources: + - name: loki + type: loki + url: http://loki.observability.svc.cluster.local:3100 + ingress: + enabled: true + ingressClassName: public + hosts: + - grafana.alexandre-vazquez.cloud + annotations: + external-dns.alpha.kubernetes.io/hostname: grafana.alexandre-vazquez.internal + additionalIngresses: + - name: grafana-ingress-internal + ingressClassName: public + hosts: + - grafana.alexandre-vazquez.internal + annotations: + external-dns.alpha.kubernetes.io/hostname: grafana.alexandre-vazquez.internal + +kubeApiServer: + serviceMonitor: + metricRelabelings: + - action: drop + sourceLabels: [__name__] + regex: apiserver_request_duration_seconds_bucket|apiserver_request_sli_duration_seconds_bucket|apiserver_request_body_size_bytes_bucket|apiserver_response_sizes_bucket|apiserver_watch_list_duration_seconds_bucket|apiserver_watch_cache_read_wait_seconds_bucket|apiserver_watch_events_sizes_bucket|apiserver_admission_controller_admission_duration_seconds_bucket|apiserver_admission_webhook_admission_duration_seconds_bucket|apiserver_flowcontrol_request_execution_seconds_bucket|apiserver_flowcontrol_request_wait_duration_seconds_bucket + +kubeControllerManager: + endpoints: + - 192.168.1.40 + serviceMonitor: + metricRelabelings: + - action: drop + sourceLabels: [__name__] + regex: workqueue_queue_duration_seconds_bucket|workqueue_work_duration_seconds_bucket|storage_operation_duration_seconds_bucket|rest_client_request_duration_seconds_bucket + +kubeEtcd: + serviceMonitor: + metricRelabelings: + - action: drop + sourceLabels: [__name__] + regex: etcd_request_duration_seconds_bucket|etcd_disk_backend_commit_duration_seconds_bucket|etcd_disk_wal_fsync_duration_seconds_bucket|etcd_network_peer_round_trip_time_seconds_bucket + +kubeScheduler: + endpoints: + - 192.168.1.40 + serviceMonitor: + metricRelabelings: + - action: drop + sourceLabels: [__name__] + regex: scheduler_plugin_execution_duration_seconds_bucket|scheduler_scheduling_algorithm_duration_seconds_bucket|scheduler_pod_scheduling_duration_seconds_bucket|scheduler_framework_extension_point_duration_seconds_bucket + +kubelet: + serviceMonitor: + metricRelabelings: + - action: drop + sourceLabels: [__name__] + regex: storage_operation_duration_seconds_bucket|rest_client_request_duration_seconds_bucket|kubelet_runtime_operations_duration_seconds_bucket|kubelet_cgroup_manager_duration_seconds_bucket|kubelet_pod_start_duration_seconds_bucket|kubelet_pod_worker_duration_seconds_bucket + +prometheus: + prometheusSpec: + evaluationInterval: 60s + scrapeInterval: 60s + storageSpec: + volumeClaimTemplate: + spec: + accessModes: + - ReadWriteOnce + storageClassName: ceph-rbd + resources: + requests: + storage: 20Gi diff --git a/apps/observability/loki-values.yaml b/apps/observability/loki-values.yaml new file mode 100644 index 0000000..50a32a4 --- /dev/null +++ b/apps/observability/loki-values.yaml @@ -0,0 +1,10 @@ +grafana: + sidecar: + datasources: + enabled: false + +loki: + persistence: + enabled: true + size: 10Gi + storageClassName: ceph-rbd diff --git a/argocd/applications/blackbox-exporter.yaml b/argocd/applications/blackbox-exporter.yaml new file mode 100644 index 0000000..46638fa --- /dev/null +++ b/argocd/applications/blackbox-exporter.yaml @@ -0,0 +1,20 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: blackbox-exporter + namespace: argocd +spec: + project: default + source: + repoURL: https://prometheus-community.github.io/helm-charts + chart: prometheus-blackbox-exporter + targetRevision: 11.0.0 + helm: + releaseName: blackbox-exporter + destination: + server: https://kubernetes.default.svc + namespace: observability + syncPolicy: + syncOptions: + - CreateNamespace=true + - ServerSideApply=true diff --git a/argocd/applications/helm-dashboard.yaml b/argocd/applications/helm-dashboard.yaml new file mode 100644 index 0000000..2393165 --- /dev/null +++ b/argocd/applications/helm-dashboard.yaml @@ -0,0 +1,25 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: helm-dashboard + namespace: argocd +spec: + project: default + sources: + - repoURL: https://helm-charts.komodor.io + chart: helm-dashboard + targetRevision: 2.0.6 + helm: + releaseName: helm-dashboard + valueFiles: + - $values/apps/observability/helm-dashboard-values.yaml + - repoURL: https://gitea.alexandre-vazquez.cloud/baphemot/gitops.git + targetRevision: HEAD + ref: values + destination: + server: https://kubernetes.default.svc + namespace: observability + syncPolicy: + syncOptions: + - CreateNamespace=true + - ServerSideApply=true diff --git a/argocd/applications/kube-prom-stack.yaml b/argocd/applications/kube-prom-stack.yaml new file mode 100644 index 0000000..7e52d94 --- /dev/null +++ b/argocd/applications/kube-prom-stack.yaml @@ -0,0 +1,41 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: kube-prom-stack + namespace: argocd + annotations: + argocd.argoproj.io/sync-wave: "1" +spec: + project: default + sources: + - repoURL: https://prometheus-community.github.io/helm-charts + chart: kube-prometheus-stack + targetRevision: 45.5.0 + helm: + releaseName: kube-prom-stack + valueFiles: + - $values/apps/observability/kube-prom-stack-values.yaml + - repoURL: https://gitea.alexandre-vazquez.cloud/baphemot/gitops.git + targetRevision: HEAD + ref: values + destination: + server: https://kubernetes.default.svc + namespace: observability + ignoreDifferences: + - group: admissionregistration.k8s.io + kind: MutatingWebhookConfiguration + jqPathExpressions: + - .webhooks[].clientConfig.caBundle + - group: admissionregistration.k8s.io + kind: ValidatingWebhookConfiguration + jqPathExpressions: + - .webhooks[].clientConfig.caBundle + - group: apiextensions.k8s.io + kind: CustomResourceDefinition + jqPathExpressions: + - .spec.conversion.webhook.clientConfig.caBundle + syncPolicy: + syncOptions: + - CreateNamespace=true + - ServerSideApply=true + - RespectIgnoreDifferences=true diff --git a/argocd/applications/loki.yaml b/argocd/applications/loki.yaml new file mode 100644 index 0000000..05ffbeb --- /dev/null +++ b/argocd/applications/loki.yaml @@ -0,0 +1,27 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: loki + namespace: argocd + annotations: + argocd.argoproj.io/sync-wave: "2" +spec: + project: default + sources: + - repoURL: https://grafana.github.io/helm-charts + chart: loki-stack + targetRevision: 2.9.9 + helm: + releaseName: loki + valueFiles: + - $values/apps/observability/loki-values.yaml + - repoURL: https://gitea.alexandre-vazquez.cloud/baphemot/gitops.git + targetRevision: HEAD + ref: values + destination: + server: https://kubernetes.default.svc + namespace: observability + syncPolicy: + syncOptions: + - CreateNamespace=true + - ServerSideApply=true