mirror of
https://github.com/shadoll/helm-charts.git
synced 2026-08-28 03:27:08 +00:00
feat: Add AGENTS.md for guidance on Helm charts and automated version updates
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
# CLAUDE.md
|
||||
|
||||
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
||||
|
||||
## Overview
|
||||
|
||||
This is a collection of Helm charts for self-hosted applications on Kubernetes, designed for use with FluxCD GitOps. Charts: **jellyfin** (media server + PostgreSQL), **home-assistant** (home automation + PostgreSQL), **esphome** (IoT device dashboard).
|
||||
|
||||
## Common Commands
|
||||
|
||||
```bash
|
||||
# Lint a chart
|
||||
helm lint ./jellyfin
|
||||
|
||||
# Template a chart (render without installing)
|
||||
helm template my-release ./jellyfin -f my-values.yaml
|
||||
|
||||
# Install/upgrade a chart
|
||||
helm install <release> ./<chart> -f my-values.yaml
|
||||
helm upgrade <release> ./<chart> -f my-values.yaml
|
||||
|
||||
# Run the automated version update script (checks upstream for new image tags)
|
||||
./scripts/update-charts.sh
|
||||
```
|
||||
|
||||
## Architecture
|
||||
|
||||
Each chart follows the same structure: `Chart.yaml`, `values.yaml`, and `templates/` (deployment, service, ingress, plus chart-specific resources like PVCs or init jobs).
|
||||
|
||||
### Automated Version Updates
|
||||
|
||||
Charts use custom `Chart.yaml` annotations to enable automated upstream version tracking:
|
||||
- `version-source`: specifies where to check (e.g., `github-release:jellyfin/jellyfin` or `dockerhub-tags:...`)
|
||||
- `version-pattern`: sed pattern to clean the fetched tag (e.g., strip `v` prefix)
|
||||
|
||||
`scripts/update-charts.sh` iterates all charts, fetches the latest upstream version, and bumps `appVersion` and `version` (patch increment) in `Chart.yaml` when an update is found. This runs daily via GitHub Actions (`.github/workflows/update-charts.yml`) and optionally sends Signal notifications on updates.
|
||||
|
||||
### Chart Conventions
|
||||
|
||||
- Image tags default to `Chart.AppVersion` (set via `image.tag | default .Chart.AppVersion`)
|
||||
- Secrets are referenced via `existingSecret` — charts never create secrets directly
|
||||
- Persistence supports both `hostPath` and PVC modes
|
||||
- Jellyfin chart includes a `db-init-job` for PostgreSQL schema initialization
|
||||
- ESPHome uses `hostNetwork: true` for mDNS device discovery
|
||||
Reference in New Issue
Block a user