Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@ apiVersion: v2
name: pgdog-control
description: PgDog Control
type: application
version: 0.3.4
version: 0.3.5
appVersion: "main-ent"
24 changes: 15 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -737,6 +737,9 @@ control:
refresh_interval_secs: 60
# Experimental: do not enable in production yet.
autodiscovery: false
tags:
environment: production
"company:team": payments
kube:
refresh_interval_secs: 15
dns:
Expand All @@ -747,15 +750,18 @@ control:
period_secs: 60
```

| Option | Description |
| ---------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `rds.refresh_interval_secs` | How often to poll AWS RDS for cluster and instance topology (int, default `60`). |
| `rds.autodiscovery` | **Experimental. Do not enable in production yet.** Automatically reconcile Helm-managed PgDog database entries from discovered RDS topology (bool, default `false`). |
| `kube.refresh_interval_secs` | How often to poll Kubernetes for PgDog workloads. Independent of the `watch` streams, which fire on events (int, default `15`). |
| `dns.refresh_interval_secs` | How often to re-resolve every known RDS hostname (int, default `30`). |
| `cloudwatch.refresh_interval_secs` | How often to poll CloudWatch for per-instance metrics (int, default `60`). |
| `cloudwatch.lookback_secs` | How far back each fetch reaches. A fresh deploy pulls the full window on its first tick (int, default `3600`). |
| `cloudwatch.period_secs` | CloudWatch aggregation period. The smallest bucket the metric API returns (int, default `60`). |
| Option | Description |
| ---------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `rds.tags` | Tag key/value map used to select resources before RDS detail and parameter-group requests. All entries must match exactly, including case. Omit or use `{}` to discover all databases. Requires `tag:GetResources` (default `{}`). |
| `rds.refresh_interval_secs` | How often to poll AWS RDS for cluster and instance topology (int, default `60`). |
| `rds.autodiscovery` | **Experimental. Do not enable in production yet.** Automatically reconcile Helm-managed PgDog database entries from discovered RDS topology (bool, default `false`). |
| `kube.refresh_interval_secs` | How often to poll Kubernetes for PgDog workloads. Independent of the `watch` streams, which fire on events (int, default `15`). |
| `dns.refresh_interval_secs` | How often to re-resolve every known RDS hostname (int, default `30`). |
| `cloudwatch.refresh_interval_secs` | How often to poll CloudWatch for per-instance metrics (int, default `60`). |
| `cloudwatch.lookback_secs` | How far back each fetch reaches. A fresh deploy pulls the full window on its first tick (int, default `3600`). |
| `cloudwatch.period_secs` | CloudWatch aggregation period. The smallest bucket the metric API returns (int, default `60`). |

Matching clusters include all their member instances; standalone instances match their own tags. When filters are configured, the AWS role also needs `tag:GetResources` with `Resource: "*"`. The control plane uses this API to find matching resources before making scoped RDS requests.

### Alerting

Expand Down
7 changes: 7 additions & 0 deletions templates/configmap.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,13 @@ data:
{{- if hasKey . "autodiscovery" }}
autodiscovery = {{ .autodiscovery }}
{{- end }}
{{- with .tags }}

[rds.tags]
{{- range $name, $value := . }}
{{ $name | quote }} = {{ $value | quote }}
{{- end }}
{{- end }}
{{- end }}

{{- with $config.kube }}
Expand Down
4 changes: 4 additions & 0 deletions test/values-full.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,10 @@ control:
rds:
refresh_interval_secs: 45
autodiscovery: true
tags:
environment: production
"company:team": payments
"app.kubernetes.io/name": postgres
kube:
refresh_interval_secs: 10
dns:
Expand Down
6 changes: 6 additions & 0 deletions values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,12 @@ control:
# refresh_interval_secs: 60
# Experimental: do not enable in production yet.
# autodiscovery: false
# Select RDS resources by tag before fetching their details.
# All keys and values must match exactly (case-sensitive).
# Omit or use tags: {} to discover all databases. Requires tag:GetResources.
# tags:
# environment: production
# "company:team": payments
kube: {}
# refresh_interval_secs: 15
dns: {}
Expand Down
Loading