Skip to content

Commit bfd8034

Browse files
committed
feat: integrate observability into main eoapi chart
- Remove separate eoapi-support chart and integrate all observability features into main chart - Add optional monitoring dependencies: metrics-server, prometheus, prometheus-adapter, grafana - Add monitoring helper templates (_monitoring.yaml, _resources.yaml, observability.yaml) - Add comprehensive observability documentation with deployment examples - Add reusable monitoring configuration base (values/monitoring.yaml) - Add autoscaling test suite for HPA validation - Move Grafana dashboard from eoapi-support to main chart - Update main values.yaml with observability configuration options This consolidation simplifies deployment by eliminating the need for a separate observability chart while maintaining full flexibility for enabling monitoring features.
1 parent 35a6adb commit bfd8034

File tree

20 files changed

+1789
-573
lines changed

20 files changed

+1789
-573
lines changed

CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
3434

3535
### Changed
3636

37-
- Excluded renovate.json from CHANGELOG.md edits [#301](https://github.com/developmentseed/eoapi-k8s/pull/301)
37+
- Refactores eoapi-support into core eoapi chart [#262](https://github.com/developmentseed/eoapi-k8s/pull/262)
38+
3839

3940
## [0.7.8] - 2025-09-10
4041

charts/eoapi-support/.gitignore

Lines changed: 0 additions & 2 deletions
This file was deleted.

charts/eoapi-support/.helmignore

Lines changed: 0 additions & 30 deletions
This file was deleted.

charts/eoapi-support/Chart.yaml

Lines changed: 0 additions & 33 deletions
This file was deleted.

charts/eoapi-support/README.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

charts/eoapi-support/values.yaml

Lines changed: 0 additions & 178 deletions
This file was deleted.

charts/eoapi/Chart.yaml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,3 +57,27 @@ dependencies:
5757
version: 0.0.7
5858
repository: "oci://ghcr.io/developmentseed/charts"
5959
condition: eoapi-notifier.enabled
60+
61+
# Optional monitoring components for metrics collection and autoscaling
62+
# These are disabled by default to keep deployments lightweight
63+
# Enable via: monitoring.prometheus.enabled=true, monitoring.metricsServer.enabled=true
64+
- name: metrics-server
65+
version: 7.2.8
66+
repository: https://charts.bitnami.com/bitnami
67+
condition: monitoring.metricsServer.enabled
68+
69+
- name: prometheus
70+
version: 25.3.1
71+
repository: https://prometheus-community.github.io/helm-charts
72+
condition: monitoring.prometheus.enabled
73+
74+
- name: prometheus-adapter
75+
version: 4.7.1
76+
repository: https://prometheus-community.github.io/helm-charts
77+
condition: monitoring.prometheusAdapter.enabled
78+
79+
# Observability components - Grafana dashboards and visualization
80+
- name: grafana
81+
version: 7.3.3
82+
repository: https://grafana.github.io/helm-charts
83+
condition: observability.grafana.enabled

charts/eoapi/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ A Helm chart for deploying Earth Observation APIs with integrated STAC, raster,
1414
- Flexible database configuration
1515
- Real-time PostgreSQL notifications for STAC item changes
1616
- Unified ingress system
17+
- Autoscaling
18+
- Integrated observability (Prometheus & Grafana)
1719

1820
## TL;DR
1921

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
{{/*
2+
Common monitoring configurations to avoid duplication across values files
3+
*/}}
4+
5+
{{/*
6+
Basic monitoring stack configuration
7+
*/}}
8+
{{- define "eoapi.monitoring.basic" -}}
9+
metricsServer:
10+
enabled: true
11+
apiService:
12+
create: true
13+
prometheus:
14+
enabled: true
15+
alertmanager:
16+
enabled: false
17+
prometheus-pushgateway:
18+
enabled: false
19+
kube-state-metrics:
20+
enabled: true
21+
prometheus-node-exporter:
22+
enabled: true
23+
resources: {{- include "eoapi.resources.small" . | nindent 6 }}
24+
server:
25+
service:
26+
type: ClusterIP
27+
{{- end -}}
28+
29+
{{/*
30+
Production monitoring with persistence
31+
*/}}
32+
{{- define "eoapi.monitoring.production" -}}
33+
metricsServer:
34+
enabled: true
35+
apiService:
36+
create: true
37+
prometheus:
38+
enabled: true
39+
alertmanager:
40+
enabled: true
41+
prometheus-pushgateway:
42+
enabled: false
43+
kube-state-metrics:
44+
enabled: true
45+
prometheus-node-exporter:
46+
enabled: true
47+
resources: {{- include "eoapi.resources.small" . | nindent 6 }}
48+
server:
49+
service:
50+
type: ClusterIP
51+
persistentVolume:
52+
enabled: true
53+
size: 10Gi
54+
{{- end -}}
55+
56+
{{/*
57+
Testing monitoring with minimal resources
58+
*/}}
59+
{{- define "eoapi.monitoring.testing" -}}
60+
metricsServer:
61+
enabled: true
62+
apiService:
63+
create: true
64+
prometheus:
65+
enabled: true
66+
alertmanager:
67+
enabled: false
68+
prometheus-pushgateway:
69+
enabled: false
70+
kube-state-metrics:
71+
enabled: true
72+
prometheus-node-exporter:
73+
enabled: true
74+
resources: {{- include "eoapi.resources.small" . | nindent 6 }}
75+
server:
76+
service:
77+
type: ClusterIP
78+
persistentVolume:
79+
enabled: false
80+
{{- end -}}

0 commit comments

Comments
 (0)