Localize authentik-redis container #309

Merged
eblume merged 3 commits from localize-redis into main 2026-03-24 13:27:37 -07:00
Owner

Summary

  • Replace upstream docker.io/library/redis:7-alpine (Redis 7.4.8) with a nix-built container using Redis 8.2.3 from nixpkgs
  • Introduce attached service pattern: parent field in service-versions.yaml, <parent>-<component> naming convention, and assert pkgs.redis.version == version in default.nix to prevent silent version drift on flake.lock updates
  • Document the pattern in review-services so future attached services slot in cleanly
  • Backfill parent: grafana on existing grafana-sidecar entry

Version drift protection

  1. flake.lock update bumps nixpkgs redis → assert in default.nix breaks nix-build
  2. Developer updates version in default.nix → prek's container-version-check demands matching service-versions.yaml update
  3. Both must agree before commit succeeds

Test plan

  • Build container from branch on ringtail (mise run container-build-and-release authentik-redis)
  • Update kustomization newTag to branch-built image tag
  • Sync authentik ArgoCD app from branch (argocd app set authentik --revision localize-redis && argocd app sync authentik)
  • Verify Authentik login, session persistence, and task queue still work
  • After merge: C0 follow-up to update newTag to the main-built image tag

🤖 Generated with Claude Code

## Summary - Replace upstream `docker.io/library/redis:7-alpine` (Redis 7.4.8) with a nix-built container using Redis 8.2.3 from nixpkgs - Introduce **attached service pattern**: `parent` field in service-versions.yaml, `<parent>-<component>` naming convention, and `assert pkgs.redis.version == version` in default.nix to prevent silent version drift on `flake.lock` updates - Document the pattern in [[review-services]] so future attached services slot in cleanly - Backfill `parent: grafana` on existing `grafana-sidecar` entry ## Version drift protection 1. `flake.lock` update bumps nixpkgs redis → `assert` in `default.nix` breaks `nix-build` 2. Developer updates `version` in `default.nix` → prek's `container-version-check` demands matching `service-versions.yaml` update 3. Both must agree before commit succeeds ## Test plan - [ ] Build container from branch on ringtail (`mise run container-build-and-release authentik-redis`) - [ ] Update kustomization `newTag` to branch-built image tag - [ ] Sync authentik ArgoCD app from branch (`argocd app set authentik --revision localize-redis && argocd app sync authentik`) - [ ] Verify Authentik login, session persistence, and task queue still work - [ ] After merge: C0 follow-up to update `newTag` to the main-built image tag 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Replace upstream docker.io/library/redis:7-alpine with a nix-built
container using Redis 8.2.3 from nixpkgs. Introduces the attached
service pattern: parent field in service-versions.yaml, naming
convention (<parent>-<component>), and version assertion in default.nix
to prevent silent version drift on flake.lock updates.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The tag field in buildLayeredImage is optional and only affects the
local docker-archive output. The CI workflow tags with immutable
SHA-based tags via skopeo, so "latest" is misleading noise.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The detect job was checking out main instead of the dispatched ref,
so it couldn't find build files that only exist on feature branches.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
eblume merged commit fd0bebb0fc into main 2026-03-24 13:27:37 -07:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
eblume/blumeops!309
No description provided.