-
Notifications
You must be signed in to change notification settings - Fork 0
Open
4 / 44 of 4 issues completedDescription
Overview
Implement a GitOps-driven pipeline that manages source images (ISOs, raw, qcow2) and distributes them to the lab via NAS/NFS.
Design Document: docs/design/image-pipeline.md
Goals
- Input: Declarative YAML configuration defining image sources, validation rules, and optional file updates
- Output: Validated images in iDrive e2 (S3-compatible), synced to Synology NAS via Cloud Sync
- Key Constraint: Downstream builds (Packer) are triggered via Git changes, not direct invocation
Architecture
Source Images → labctl images sync → iDrive e2 → Synology Cloud Sync → NAS
↓
updateFile changes → PR → Mergify auto-merge
↓
Packer workflow triggered
↓
Built image → e2 → NAS
Components
- labctl images CLI - Go CLI tool for image management (sync, validate, list, prune, upload)
- GitHub Actions workflows - CI/CD for sync and Packer builds
- Mergify configuration - Auto-merge bot PRs after CI passes
- SOPS-encrypted credentials - Secure storage for e2 and SSH credentials
Sub-issues
This epic is broken into 4 sequential issues:
- CLI foundation - Go module, config parsing, credentials, S3 store
- Command implementations - sync, validate, list, prune, upload commands
- Bootstrap files - SOPS config, encrypted credentials, initial manifest
- GitHub Actions + Mergify - CI/CD workflows
Reactions are currently unavailable
Sub-issues
Metadata
Metadata
Assignees
Labels
No labels