Architecture: Deployment — mcd-tracker

arch-deployment-mcd-tracker Architecture

architecture active

Architecture: Deployment — mcd-tracker

Purpose

Where does it live? Services, infrastructure, CI/CD pipelines, and how they connect. This diagram is also the development workflow — it shows how code moves from editor to production.

Infrastructure Diagram

Development Workflow

Service Inventory

Service Namespace Port Image Funnel URL
mcd-tracker-api mcd-tracker 8000 harbor.../mcd-tracker/api mcd-tracker.tail5b443a.ts.net
mcd-tracker-app mcd-tracker-app 3000 harbor.../mcd-tracker/app mcd-tracker-app.tail5b443a.ts.net
Postgres (sidecar) mcd-tracker 5432 postgres:16-alpine n/a (ClusterIP)
Keycloak keycloak (shared) 8080 quay.io/keycloak:26.0.7 keycloak.tail5b443a.ts.net

Mac Agent Details

Component Details
Hardware MacBook Air M1 (Apple Silicon, arm64)
Connectivity Tailscale — agent connects to Woodpecker server via tailnet
Backend Woodpecker local backend (shell executor, no Docker)
Label filter <code>platform=darwin</code> — only picks up iOS pipeline jobs
Auto-start launchd plist — survives reboot
Tools Xcode, Fastlane, xcodebuild, codesign

Key Observations

  • Dual-agent CI. Linux agent handles backend + frontend (Docker/kaniko). Mac agent handles iOS (local/shell). Pipeline label platform=darwin routes iOS jobs to the Mac.
  • All dev on archbox. Swift, Python, SvelteKit — all written on the Linux workstation. The Mac is infrastructure, not a workstation. It only executes builds.
  • Three delivery targets. Harbor (containers → ArgoCD → k3s), TestFlight (iOS beta), App Store (iOS production). Same Forgejo + Woodpecker pipeline orchestrates all three.
  • Keycloak is shared infrastructure. The mcd-tracker realm lives in the existing Keycloak deployment (keycloak namespace). No new Keycloak instance — just a new realm.
  • Two namespaces for two services. API and frontend each get their own k8s namespace (per service-onboarding-sop). Postgres is a sidecar in the API namespace.
  • arch-domain-mcd-tracker — entity model
  • arch-dataflow-mcd-tracker — runtime flows
  • project-mcd-tracker — project page
  • service-onboarding-sop — how services join the cluster
  • convention-kustomize-overlay — deployment manifest pattern