Skip to content

Latest commit

 

History

History
140 lines (94 loc) · 3.29 KB

File metadata and controls

140 lines (94 loc) · 3.29 KB

PostgresAI monitoring helm chart

Kubernetes helm chart for deploying the PostgresAI monitoring stack, including PGWatch, VictoriaMetrics, Grafana, and automated reporting.

Quick start

# Install with default values
helm install postgres-ai-monitoring ./postgres_ai_helm

# Install with custom values
helm install postgres-ai-monitoring ./postgres_ai_helm -f custom-values.yaml

# Upgrade existing installation
helm upgrade postgres-ai-monitoring ./postgres_ai_helm

Documentation

Components

This helm chart deploys the following components:

  • PGWatch: Monitors Postgres databases and collects metrics
  • VictoriaMetrics: Time-series database for storing metrics
  • Grafana: Visualization and dashboards
  • Node exporter: System-level metrics
  • cAdvisor: Container metrics
  • Reporter: Automated health check reports

Configuration

The chart can be customized via values.yaml. Key configuration options:

# Enable/disable components
grafana:
  enabled: true

victoriametrics:
  enabled: true

# Configure database targets
pgwatch:
  databases:
    - host: postgres.example.com
      port: 5432
      dbname: mydb

# Resource limits
resources:
  limits:
    cpu: 2000m
    memory: 4Gi

See values.yaml for all available options.

Requirements

  • Kubernetes 1.19+
  • Helm 3.0+
  • PersistentVolume provisioner (for VictoriaMetrics and Grafana storage)

Installing from releases

Download a specific release from GitLab releases:

# Download the chart (replace <VERSION> with the desired release, e.g. 0.14.0)
curl -LO https://gitlab.com/postgres-ai/postgresai/-/releases/helm-v<VERSION>/downloads/postgres-ai-monitoring-chart.tgz

# Install
helm install postgres-ai-monitoring postgres-ai-monitoring-chart.tgz

Development

Testing locally

# Test release script logic (semver validation, sed injection, git operations)
./test-release-logic.sh

# Full helm chart validation (dependencies, linting, templates, packaging)
./test-release.sh

# Or test individual components:
# Update dependencies
helm dependency update

# Lint the chart
helm lint .

# Render templates
helm template test-release .

# Dry-run installation
helm install test-release . --dry-run --debug

Creating a release

To create a new release of the helm chart, see RELEASE.md.

Quick release:

./release.sh <VERSION>   # e.g.: ./release.sh 0.14.0

This will automatically:

  • Update Chart.yaml
  • Create a git tag
  • Trigger the release workflow
  • Package and publish the chart

Automated workflows

The chart includes GitLab CI/CD pipelines for:

  • validate-helm-chart: Runs test-release-logic.sh unit/integration tests then validates chart on merge requests
  • release-helm-chart: Automated releases when tags are pushed

Support

License

See LICENSE file for details.