Deploy k8s Infra / Pulumi Preview (push) Has been skipped
Deploy k8s Infra / Pulumi Deploy (push) Successful in 58s
Deploy k8s Apps / Pulumi Preview (push) Has been skipped
Deploy k8s Apps / Pulumi Deploy (push) Successful in 48s
Deploy Monitoring / Pulumi Preview (push) Has been skipped
Deploy Monitoring / Pulumi Deploy (push) Successful in 59s
33 lines
1.1 KiB
Markdown
33 lines
1.1 KiB
Markdown
# k8s-apps
|
|
|
|
This file provides guidance to Claude Code when working in `04-k8s-apps`. See the [repo-root CLAUDE.md](../CLAUDE.md) for shared conventions, deployment order, and CI/CD.
|
|
|
|
Application workloads for the k3s homelab cluster. Reads `kubeconfig` from `k8s-bootstrap` via StackReference.
|
|
|
|
## Common Commands
|
|
|
|
```bash
|
|
npm install
|
|
pulumi up --yes
|
|
```
|
|
|
|
## Architecture
|
|
|
|
- **heimdall** — application dashboard (`lscr.io/linuxserver/heimdall`), namespace `heimdall`
|
|
- PVC `heimdall-config` (50Mi, `longhorn` StorageClass)
|
|
- Deployment + ClusterIP Service
|
|
- Ingress (`traefik` class, `cert-manager.io/cluster-issuer: letsencrypt-prod`) at `heimdall.<domain>`
|
|
- deployed with one replica because heimdall is not able to work with multiple replicas. Works with node failure detection and automatic rescheduling.
|
|
|
|
**Export**: `domain` (secret) — consumed by `monitoring` via StackReference for its own ingress hostnames.
|
|
|
|
## Required Pulumi config
|
|
|
|
```bash
|
|
pulumi config set --secret domain <your-domain>
|
|
```
|
|
|
|
## CI/CD
|
|
|
|
Workflow: `../.gitea/workflows/04-deploy-k8s-apps.yaml`. Secret: `K8S_APPS_PULUMI_DEV_YAML`.
|