Wave 1 indri→ringtail migration: paperless, teslamate, mealie (#363)
Migrate paperless, teslamate, and mealie off the OOM-saturated minikube-indri node onto ringtail k3s, shedding ~1.1 GiB of resident load. Second chain in the indri-k8s decommission after immich.
**Containers ported to Nix (default.nix), build-verified on ringtail:**
- paperless → wraps nixpkgs paperless-ngx 2.20.15 (pinned unstable); runs as web/worker/beat/consumer
- mealie → wraps nixpkgs mealie 3.16.0 (forward 4-minor bump, breaking-change reviewed); single gunicorn, SQLite
- teslamate → from-scratch beamPackages mixRelease (not in nixpkgs); erlang_27+elixir_1_18, npm assets, ex_cldr locales pre-fetched
**Data:** cold downtime-tolerant cutover. paperless+teslamate postgres dump/restore from quiesced source into a new ringtail blumeops-pg CNPG cluster; mealie SQLite PVC copied. Source DBs untouched until verified (rollback = repoint).
**Also:** ringtail blumeops-pg cluster + ExternalSecrets scaffold; fixes pre-existing shower version-check drift.
Runbook: docs/how-to/ringtail/migrate-wave1-ringtail.md. Deploy-from-branch + cutover happens before merge; container images rebuilt from main after merge.
Reviewed-on: https://forge.eblu.me/eblume/blumeops/pulls/363
2026-06-03 10:34:00 -07:00
|
|
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
|
|
|
|
kind: Kustomization
|
|
|
|
|
|
|
|
|
|
namespace: paperless
|
|
|
|
|
|
|
|
|
|
resources:
|
|
|
|
|
- deployment.yaml
|
|
|
|
|
- service.yaml
|
|
|
|
|
- pv-nfs.yaml
|
|
|
|
|
- pvc.yaml
|
|
|
|
|
- ingress-tailscale.yaml
|
|
|
|
|
- external-secret.yaml
|
|
|
|
|
|
|
|
|
|
images:
|
|
|
|
|
- name: registry.ops.eblu.me/blumeops/paperless
|
2026-06-03 10:36:15 -07:00
|
|
|
newTag: v2.20.15-fcac8e5-nix
|
Wave 1 indri→ringtail migration: paperless, teslamate, mealie (#363)
Migrate paperless, teslamate, and mealie off the OOM-saturated minikube-indri node onto ringtail k3s, shedding ~1.1 GiB of resident load. Second chain in the indri-k8s decommission after immich.
**Containers ported to Nix (default.nix), build-verified on ringtail:**
- paperless → wraps nixpkgs paperless-ngx 2.20.15 (pinned unstable); runs as web/worker/beat/consumer
- mealie → wraps nixpkgs mealie 3.16.0 (forward 4-minor bump, breaking-change reviewed); single gunicorn, SQLite
- teslamate → from-scratch beamPackages mixRelease (not in nixpkgs); erlang_27+elixir_1_18, npm assets, ex_cldr locales pre-fetched
**Data:** cold downtime-tolerant cutover. paperless+teslamate postgres dump/restore from quiesced source into a new ringtail blumeops-pg CNPG cluster; mealie SQLite PVC copied. Source DBs untouched until verified (rollback = repoint).
**Also:** ringtail blumeops-pg cluster + ExternalSecrets scaffold; fixes pre-existing shower version-check drift.
Runbook: docs/how-to/ringtail/migrate-wave1-ringtail.md. Deploy-from-branch + cutover happens before merge; container images rebuilt from main after merge.
Reviewed-on: https://forge.eblu.me/eblume/blumeops/pulls/363
2026-06-03 10:34:00 -07:00
|
|
|
# amd64 valkey built via nix (the v8.1.7-ecded30 tag without -nix is the
|
|
|
|
|
# arm64 Alpine build for indri and fails on ringtail with exec format error)
|
|
|
|
|
- name: docker.io/library/redis
|
|
|
|
|
newName: registry.ops.eblu.me/blumeops/valkey
|
|
|
|
|
newTag: v8.1.7-ecded30-nix
|