Skip to content

Latest commit

 

History

History

stackcharts

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Observability Stack - Helm Umbrella Chart

This is the main Helm umbrella chart that bundles all observability components together.

Chart Structure

stackcharts/
├── Chart.yaml          # Chart metadata and dependencies
├── values.yaml         # Default configuration values
├── charts/             # Downloaded dependency packages (.tgz files)
└── README.md           # This file

Dependencies

This chart includes the following sub-charts (managed via Chart.yaml):

  • Grafana - Visualization and dashboards
  • Loki - Log aggregation system
  • Tempo - Distributed tracing backend
  • Prometheus - Metrics collection and storage
  • OpenTelemetry Collector - Telemetry data collection

Managing Dependencies

Update Dependencies

Download the latest versions specified in Chart.yaml:

cd helm/stackcharts
helm dependency update

This will:

  1. Read dependency specifications from Chart.yaml
  2. Download .tgz packages to charts/ directory
  3. Update Chart.lock with exact versions

List Current Dependencies

helm dependency list

charts/ Directory

The charts/ directory contains only .tgz files - the packaged Helm charts for each dependency. These files are:

  • Automatically downloaded by helm dependency update
  • Committed to version control for reproducibility
  • Should not contain any other files (no README.md, documentation, etc.)

⚠️ Important: Do not add any files to charts/ directory manually. Helm treats anything in that directory as a chart package.

Installation

This chart is deployed via ArgoCD, not directly with Helm. The installation script handles dependency updates:

./scripts/install_argo.sh

Manual Installation (Not Recommended)

If you need to install manually:

# Update dependencies first
cd helm/stackcharts
helm dependency update

# Install
helm install observability-stack . -n observability-lab --create-namespace

Configuration

All configuration is done in values.yaml. See that file for detailed options.

Key sections:

  • grafana: - Grafana configuration
  • loki: - Loki configuration
  • tempo: - Tempo configuration
  • prometheus: - Prometheus configuration
  • opentelemetry-collector: - OTel Collector configuration
  • garage: - Garage S3 object storage (disabled by default, see values/garage.yaml)

Storage

By default, Loki and Tempo use local filesystem storage via PersistentVolumeClaims.

To switch to S3-compatible object storage backed by Garage:

  1. Include values/garage.yaml in your deployment (uncomment it in argocd/observability-stack.yaml, or add -f helm/stackcharts/values/garage.yaml to your helm command). This enables the Garage chart and switches Loki and Tempo to S3 storage in one step.
  2. After the Garage pod is running, initialize it: ./scripts/setup_garage.sh (assigns the cluster layout, imports the S3 key and creates the loki-chunks, loki-ruler, loki-admin and tempo-traces buckets).

When values/garage.yaml is not included, Garage is not deployed and Loki/Tempo fall back to local filesystem storage.

S3 credentials live in the garage-credentials Kubernetes Secret (rendered from garageCredentials in values/garage.yaml). Loki and Tempo read them as environment variables via -config.expand-env=true, so the keys never appear in their ConfigMaps. Override garageCredentials for anything beyond a local lab.

Troubleshooting

Dependency Issues

If you see errors about missing charts:

cd helm/stackcharts
helm dependency update

Chart Version Conflicts

Check Chart.lock for the exact versions being used:

cat Chart.lock

To update to newer versions, modify Chart.yaml and run helm dependency update.

Version Control

All dependency .tgz files in charts/ are committed to the repository. This ensures:

  • Reproducible deployments
  • No runtime dependency on external Helm repositories
  • Faster installation (no downloads needed)

When updating dependencies, commit both:

  • Chart.lock (updated versions)
  • charts/*.tgz (new packages)