Files
apps/AGENTS.md
2026-01-19 04:57:59 +01:00

2.2 KiB

Application Helm Charts Guide

This document provides guidelines for creating and maintaining Helm charts in this homelab project.

Project Structure

apps/
├── charts/           # Individual application Helm charts
│   ├── app-name/
│   │   ├── Chart.yaml
│   │   ├── values.yaml
│   │   └── templates/
│   │       ├── deployment.yaml
│   │       ├── service.yaml
│   │       ├── pvc.yaml
│   │       ├── client.yaml      # OIDC client configuration
│   │       ├── database.yaml    # Database provisioning
│   │       ├── secret.yaml      # Secret generation
│   │       └── external-http-service.yaml
│   └── ...
└── root/            # ArgoCD ApplicationSet for auto-discovery
    ├── Chart.yaml
    ├── values.yaml
    └── templates/
        ├── applicationset.yaml
        └── project.yaml

foundation/
├── charts/          # Foundation service Helm charts
│   └── ...
└── root/            # ArgoCD ApplicationSet for foundation services

shared/
├── charts/          # Shared service Helm charts
│   └── ...
└── root/            # ArgoCD ApplicationSet for shared services

ArgoCD ApplicationSets

This project uses three separate ArgoCD ApplicationSets to manage different categories of services:

  1. apps/ - Individual applications (web apps, tools, services)
  2. foundation/ - Core infrastructure for the cluster (monitoring, certificates, operators)
  3. shared/ - Infrastructure shared between applications (databases, message queues, caches)

Each category has its own root/ chart containing an ApplicationSet that auto-discovers and deploys charts from its respective charts/ directory.

Creating a New Application Chart

1. Basic Chart Structure

Create a new directory under apps/charts/ with the following structure:

mkdir -p apps/charts/my-app/templates

Chart.yaml

apiVersion: v2
version: 1.0.0
name: my-app

values.yaml

image:
  repository: docker.io/org/my-app
  tag: v1.0.0
  pullPolicy: IfNotPresent
subdomain: my-app

See ./apps/common/README.md for guide on writing charts