Commit Graph

  • 35bef19e0c feat(agent-pod): persistent per-role agent pool, concurrency moves to repo level Story Crater Bot 2026-08-18 21:30:49 -07:00
  • 5a8fc1885a fix(llm-serving): use hermes tool-call parser, not deepseek_v3 Story Crater Bot 2026-08-18 20:56:40 -07:00
  • 9774dea895 fix(llm-serving): enable tool calling on homelab-reasoning Story Crater Bot 2026-08-18 20:50:21 -07:00
  • 1a4160b3de fix(agent-pod): use process.exitCode not process.exit() in coordinator.js Story Crater Bot 2026-08-18 19:13:07 -07:00
  • 67e55ec868 fix(agent-pod): clone deterministically, not through a headless LLM call Story Crater Bot 2026-08-18 18:57:18 -07:00
  • e204f0c050 fix(agent-pod): sync coordinator.js ConfigMap, was stale since auto-discovery landed Story Crater Bot 2026-08-18 18:42:45 -07:00
  • fd0aa901fb feat(agent-pod): implementer and judge learn Playwright for UI verification Story Crater Bot 2026-08-18 18:37:46 -07:00
  • 5d7b9acd43 feat(llm-serving): scale ornith to 2 replicas instead of a dedicated grm GPU Story Crater Bot 2026-08-18 18:25:12 -07:00
  • 50d00ae350 feat(llm-serving): retire verifier-predictor, add grm (qwen2.5:3b) Story Crater Bot 2026-08-18 18:18:31 -07:00
  • e6ada95b39 fix(api): retire Kong key-auth on model routes; agent-pod builds agent-manager fork + ships coordinator.js Story Crater Bot 2026-08-18 15:36:18 -07:00
  • afb9b35292 fix(agent-pod): remote tui session for multi-agent Story Crater Bot 2026-08-18 14:23:55 -07:00
  • 0fe3d25936 fix(ci): make the hardcoded-secret scan blocking and close the .gitignore/.sops.yaml gaps that let a plaintext deploy key through — also untracks tfplan binaries and skills-lock.json Story Crater Bot 2026-08-13 18:02:59 -07:00
  • 5f16f16f0f fix(argocd): clone the public GitHub seed anonymously over HTTPS and delete the SSH deploy-key Secret — its private half had been committed in plaintext to a public remote, and a public repo needs no credential at all Story Crater Bot 2026-08-13 18:02:52 -07:00
  • ee1bbed921 fix(forgejo): strategy Recreate for RWO data PVC — RollingUpdate deadlocked (new pod Multi-Attach error on the RWO gitea PVC held by the old pod, stuck Init forever) Story Crater Bot 2026-08-13 10:47:57 -07:00
  • 1ad52bf89c fix(authentik): label argocd oidc-secret part-of=argocd — argocd's $secret substitution only reads labelled Secrets; without it OIDC login failed with oauth2 invalid_client (empty client_secret to IdP) Story Crater Bot 2026-08-13 08:56:37 -07:00
  • 78d2c18a3c feat(argocd): wire Authentik OIDC + local rock/cicd accounts + RBAC — adds oidc.config (homelab-admins->admin SSO), url, accounts.rock (login+apiKey) and accounts.cicd (apiKey for CD pipeline token), all role:admin Story Crater Bot 2026-08-13 08:45:20 -07:00
  • 2f6698edbe fix(homarr): raise CPU limit 500m->2 + disable analytics cron — Next.js aborted with exit 134 (SIGABRT) under CPU throttle during icon-updater/analytics, self-restarting in a loop and 502ing at the ingress Story Crater Bot 2026-08-13 08:03:22 -07:00
  • 2866a2aa93 fix(cilium): restrict L2 announcement to control-plane nodes — GPU worker lacks eno1 (Mellanox enp28s0f*), so when it won the .160 lease it couldn't ARP the VIP, black-holing all ingress (flapped on reboots) Story Crater Bot 2026-08-13 07:58:12 -07:00
  • 5467d2ff6a fix(api): label Kong pods llm-client=true so llm-serving NetworkPolicy admits them — chat/embeddings/rerank/score routes silently hung until the client timeout because Cilium dropped Kong's packets Story Crater Bot 2026-08-13 07:55:21 -07:00
  • b7809cb58b feat(api): add DeepSeek-shaped LLM API on Kong — /v1/models, per-model chat completions, embeddings, rerank, score; disable Kong response buffering so stream:true actually streams Story Crater Bot 2026-08-13 07:47:45 -07:00
  • 5c63cac46e fix(ingress): remove stale ingress-nginx-controller-alias Service — its selfHeal kept clobbering the helm LoadBalancer Service (same name, dead ingress-nginx-bootstrap selector, 0 endpoints), unannouncing LB IP .160 and taking down all ingress Story Crater Bot 2026-08-13 07:40:23 -07:00
  • c3ffc611f4 fix(homarr): add AUTH_OIDC_URI + email account linking — homarr hides the Authentik sign-in button unless AUTH_OIDC_URI (authorize endpoint) is set alongside AUTH_OIDC_ISSUER (per authentik/homarr SSO docs); was the missing var Story Crater Bot 2026-08-13 07:26:59 -07:00
  • fc10a9871a refactor(ingress): drop redundant ArgoCD ingress-nginx app — chart 4.15.1 was double-managed by both the helm-bootstrap release and this ArgoCD app (same chart), fighting over the controller/LB service (ingress-config drift). ingress-nginx is bootstrap-critical (ArgoCD's own reachability path), so helm-bootstrap is the single owner Story Crater Bot 2026-08-13 07:20:06 -07:00
  • 71fb7e9826 feat(sms): add BlueBubbles iMessage delivery (Docker-OSX macOS VM pinned to worker-2) + ArgoCD app + dedicated longhorn-imessage-local SC — default longhorn SC can't schedule a 3-replica 200Gi volume (only worker-1 has 200Gi free at 100% over-provisioning) and Immediate binding would pin the qcow2 to the wrong node Story Crater Bot 2026-08-13 07:15:02 -07:00
  • 61b906cce1 feat(monitoring): enable Alertmanager (null receiver, longhorn PVC, az-a) + fix forgejo-rules ns forgejo->cicd — alerting delivery was disabled; forgejo PrometheusRule targeted a nonexistent namespace Story Crater Bot 2026-08-13 07:10:03 -07:00
  • 9e0a83f8ca fix(prometheus): use longhorn StorageClass, drop nonexistent longhorn-wffc — Prometheus CR requested storageClass longhorn-wffc which doesn't exist (deprecated), so operator never created the StatefulSet (Reconciled=False, no metrics server) Story Crater Bot 2026-08-13 06:37:53 -07:00
  • 8c6e0800c3 fix(homarr): tune probes via chart values, drop fragile fix-probes-job — first-boot icon updater blocks health endpoint ~50s; default 10s×3 liveness SIGTERMs the pod (247 restarts, 503); chart exposes probes so the PostSync patch-job was unnecessary and reverted on every rollout Story Crater Bot 2026-08-13 06:33:34 -07:00
  • d4d51bf5b4 fix(authentik): add minio policy scope mapping (homelab-admins->consoleAdmin else readonly) + set rock email — MinIO CLAIM_NAME=policy got no claim (no MinIO access); empty rock email broke Grafana OIDC (GitHub-style /emails 404) Story Crater Bot 2026-08-12 20:31:13 -07:00
  • 72f24165cc fix(grafana): add email/login/name_attribute_path for Authentik OIDC — Grafana was falling back to GitHub-style <api_url>/emails (404 'Error getting email address'), breaking OAuth login; read identity from userinfo claims instead Story Crater Bot 2026-08-12 16:46:57 -07:00
  • b863b6974e fix(forgejo-runner): cicd ns PSS privileged (dind needs it) + mount homelab-ca as ConfigMap not Secret — runner RS created 0 pods under baseline PSS, then FailedMount because homelab-ca is a ConfigMap trust bundle, not a Secret Story Crater Bot 2026-08-12 16:25:18 -07:00
  • 6401652aa8 feat(forgejo): add runner-token Secret via ksops — forgejo-runner register initContainer needs the registration token (from gitea actions generate-runner-token); was missing so runner deploy stuck 0/1 Story Crater Bot 2026-08-12 16:19:38 -07:00
  • 650fcf1b61 fix(coredns): own Corefile+hostname rewrites via Talos inlineManifest (single-source terraform/files/coredns/Corefile), drop ArgoCD coredns-config app — in-cluster *.riotpiao.com now resolves to nginx ingress so MinIO/OIDC discovery works; update cp-2 IP .213->.214 Story Crater Bot 2026-08-12 16:16:44 -07:00
  • 78c9946cf6 feat(reloader): enable autoReloadAll + reloadOnCreate — watch all workloads without per-Deployment annotations (charts like homarr don't expose them); auto-restart pods when ksops secrets are created/rotated Story Crater Bot 2026-08-12 14:15:42 -07:00
  • 1a1edcfc27 fix(homarr): add auth-oidc-secret + db-encryption Secrets via ksops — homarr chart's envSecrets expect these exact names (oidc-client-id/secret, db-encryption-key); were never created so homarr CreateContainerConfigError Story Crater Bot 2026-08-12 14:08:18 -07:00
  • 51d938d13a chore(duckdns): remove duckdns updater entirely — superseded by cloudflared tunnel; drop app-def, manifests, kube-system Deployment Story Crater Bot 2026-08-12 14:01:01 -07:00
  • 6057b64509 fix(cert-manager): regenerate homelab-ca cert with basicConstraints CA:TRUE — old self-signed cert lacked CA:TRUE so the homelab-ca ClusterIssuer rejected it ('certificate is not a CA'); regen keypair Secret + trust-bundle ConfigMaps (4 ns) with matching CA cert Story Crater Bot 2026-08-12 13:56:37 -07:00
  • b66c5f4916 fix: deploy authentik/loki/vault Secrets via ksops (were dead helm-values fragments, causing CreateContainerConfigError) Story Crater Bot 2026-08-18 15:08:04 -07:00
  • 13ebfe158a fix(cert-manager): cert-manager-issuers directory.include renders empty — switch to explicit resources list, restore automated sync Story Crater Bot 2026-08-18 15:08:04 -07:00
  • 8ff3060ff0 refactor(argocd): replace SOPS CMP with ksops kustomize generator, rotate age key — CMP discover glob silently shadowed kustomize rendering of any app whose path held a .enc.yaml (MinIO Tenant/cloudflared/authentik jobs never applied); centralize 8 Secret manifests under k8s/argocd/secrets, defer 4 helm-values fragments Story Crater Bot 2026-08-12 13:16:15 -07:00
  • e650bf792c fix(cert-manager): add homelab-ca.crt key to homelab-ca ConfigMaps — authentik init merge-ca-certs cats /homelab-ca/homelab-ca.crt which was missing, causing Init:Error and 503 Story Crater Bot 2026-08-12 09:13:15 -07:00
  • 4cc08a05eb fix(argocd): resolve 502 on argocd.riotpiao.com, dedupe Ingress and TLS mode mismatch Story Crater Bot 2026-08-11 21:03:59 -07:00
  • b99eeac0e8 fix(argocd): use comma-separated include list, not brace expansion Story Crater Bot 2026-08-11 20:51:05 -07:00
  • 9257525b38 feat(cert-manager): add self-signed homelab-ca ClusterIssuer + trust bundle, fix grafana-oidc secret Story Crater Bot 2026-08-11 20:49:38 -07:00
  • 773c5ddf4f fix(portainer): pin to az-b (talos-cp-2), the real Longhorn storage node Story Crater Bot 2026-08-11 16:12:13 -07:00
  • a8edb93196 fix(vault): add vault-minio-creds secret, was created by deleted helmfile presync hook Story Crater Bot 2026-08-11 16:03:46 -07:00
  • d2b30b05b7 fix(portainer): correct storageClass name, longhorn-wffc never existed as a class Story Crater Bot 2026-08-11 14:50:39 -07:00
  • 4753e8510e fix(argocd): wire SOPS CMP sidecar + grafana-admin secret on repo-server Story Crater Bot 2026-08-18 15:08:04 -07:00
  • cdf1cdeb18 feat(terraform): GPU worker node support (schematic, interface/diskSelector/swap tuning, gpu-node label, NVIDIA LTS extensions) Story Crater Bot 2026-08-18 15:08:04 -07:00
  • efb9389093 feat(argocd): migrate all applications from Forgejo to GitHub Story Crater Bot 2026-07-25 13:10:40 -07:00
  • 820702c748 feat(argocd): migrate ingress-nginx to full GitOps management Story Crater Bot 2026-07-25 13:05:49 -07:00
  • 285151bd18 feat(bootstrap): add Phase 1c nginx ingress controller Story Crater Bot 2026-08-18 15:08:03 -07:00
  • 5b3307ffee fix(bootstrap): correct cluster config + complete Phase4 ArgoCD bootstrap permanent fixes Story Crater Bot 2026-08-18 15:08:03 -07:00
  • aea48deb99 feat(bootstrap): Phase-0 GitHub-seed bootstrap — root-app-github (SSH seed), deploy-key Secret template, cutover URL, bootstrap.sh runner (cilium→longhorn→cnpg→forgejo-db→argocd→cutover) Story Crater Bot 2026-07-23 21:01:12 -07:00
  • f4e3564adf chore: untrack docs/ and keep as local design notes (not part of the GitOps tree) Story Crater Bot 2026-07-23 20:54:55 -07:00
  • 41f5b05395 refactor(k8s): consolidate to infra/+apps/ single-source tree, dedicated per-app CNPG (authentik-db/temporal-db), wire monitoring-config, forgejo→cicd ns, drop orphan/stale (data-schemas, ollama, story-crater, sqs/argocd, key-rotation) Story Crater Bot 2026-07-23 20:54:02 -07:00
  • 54fa540b33 feat:Fix the bootstrap to be deploy key application Story Crater Bot 2026-07-23 19:07:02 -07:00
  • eac3a2a227 fix(forgejo-runner): use unified longhorn StorageClass Story Crater Bot 2026-07-23 11:00:09 -07:00
  • 20bd4dcf5e refactor(temporal): adopt unified CNPG pattern - use 'app' user Story Crater Bot 2026-07-23 10:57:53 -07:00
  • fef07c058a refactor(argocd): remove orphaned infrastructure Applications - bootstrap is source of truth Story Crater Bot 2026-07-23 10:29:10 -07:00
  • 966b07758e docs(CLAUDE.md): document CNPG unified pattern and fix storage topology Story Crater Bot 2026-07-23 10:15:25 -07:00
  • 766555453e refactor(cnpg): unify all apps on 'app' database user/credentials pattern Story Crater Bot 2026-08-18 15:08:03 -07:00
  • 562ffcfc10 fix(authentik): increase startup probe timeout for migrations Story Crater Bot 2026-07-23 09:47:50 -07:00
  • fd4f48c2cb fix(ddb): add database-level CREATE privilege for schema creation Story Crater Bot 2026-07-23 09:36:23 -07:00
  • a9e062790c fix(storage): consolidate longhorn-kafka → unified longhorn StorageClass Story Crater Bot 2026-07-23 09:09:44 -07:00
  • a07babe2bf fix(ddb): PostSync Job grants per-app-user schema/database permissions Story Crater Bot 2026-08-18 15:08:03 -07:00
  • ae8d86242d fix(storage): add PodSecurity privileged labels for minio Story Crater Bot 2026-07-23 07:54:20 -07:00
  • ba115c87e2 fix(ingress): add service alias for CoreDNS compatibility Story Crater Bot 2026-07-23 07:44:52 -07:00
  • e5209e3794 refactor(argocd): consolidate Applications (39→35) Story Crater Bot 2026-08-18 15:08:03 -07:00
  • 8df78be298 fix(ingress): add TLS configuration for Forgejo Ingress Story Crater Bot 2026-07-23 07:20:51 -07:00
  • d16203b79d fix(ingress) patch the wrong ingress port during bootstrap Story Crater Bot 2026-07-23 00:14:12 -07:00
  • f656338a15 feat: complete GitOps migration, storage HA verification, and cluster fixes Story Crater Bot 2026-07-22 23:56:34 -07:00
  • e2dcd7b5d0 fix(forgejo): rebuild with local storage (single pod, no Longhorn) Story Crater Bot 2026-07-22 13:26:55 -07:00
  • d76caf2b5a fix(longhorn): add spec.name field to talos-cp-2/cp-3 Node CRDs Story Crater Bot 2026-07-22 12:02:44 -07:00
  • bc8ffb70e5 feat(homarr): add Authentik SSO configuration Story Crater Bot 2026-07-22 11:17:22 -07:00
  • d70993a6bd fix(homarr): correct ingress port from 3000 to 7575 Story Crater Bot 2026-07-22 11:16:17 -07:00
  • b0b6ac3bb3 fix(homarr): use python:3.12-alpine + wget kubectl in probe patch Job Story Crater Bot 2026-07-22 11:00:20 -07:00
  • 2f564f02f8 fix(homarr): remove encrypted secret from kustomization Story Crater Bot 2026-07-22 10:57:08 -07:00
  • d394efc78a fix(homarr): probe tuning via dedicated PostSync patch-job Application (chart-values/Kustomize-patch/controller.probes attempts superseded) Story Crater Bot 2026-08-18 15:08:03 -07:00
  • ab2f1eeeb3 feat(homarr): bring up chart (repo/sourceRepos, image tag, minimal values schema) Story Crater Bot 2026-08-18 15:08:03 -07:00
  • 85f6984fbd fix(argocd): add insecureSkipVerify for Authentik OIDC Story Crater Bot 2026-07-22 09:42:24 -07:00
  • 1f97d744f6 feat(dns): add git.riotpiao.com subdomain for Forgejo SSH access Story Crater Bot 2026-07-22 09:33:07 -07:00
  • 8b4a5ad129 fix(forgejo): register Authentik OAuth source via CLI Story Crater Bot 2026-07-22 09:20:08 -07:00
  • 86f94f96fd feat(homarr): complete wiring for landing page deployment Story Crater Bot 2026-07-22 09:04:27 -07:00
  • 06978047a2 chore: remove markdown docs (violates hard rule - only CLAUDE.example.md/README.md/ARCHITECTURE.md allowed) Story Crater Bot 2026-07-22 09:03:21 -07:00
  • 7155ca38d1 docs: Homarr deployment next steps (remaining wiring needed) Story Crater Bot 2026-07-22 09:00:21 -07:00
  • ff8bc74f63 feat(sso): complete MinIO OIDC env + add Homarr landing page base config Story Crater Bot 2026-07-22 08:59:51 -07:00
  • bb3fa2a32b docs: SSO + Storage HA final status summary (supersedes SSO-FIX-STATUS.md) Story Crater Bot 2026-08-18 15:08:03 -07:00
  • 6b5c193b82 feat(longhorn): auto-expand all volumes to 3 replicas via PostSync hook (jq query fix) Story Crater Bot 2026-08-18 15:08:03 -07:00
  • 31582b21c8 docs: SSO + Storage HA completion summary Story Crater Bot 2026-07-22 08:49:08 -07:00
  • 2458da8e91 fix(forgejo): remove nodeSelector now that Longhorn runs on all nodes Story Crater Bot 2026-07-22 08:48:08 -07:00
  • e2fcfe1fa8 feat(storage): enable Longhorn on all 3 control-plane nodes for true HA Story Crater Bot 2026-07-22 08:46:57 -07:00
  • 86f5603063 fix(sso): complete forgejo OAuth2 integration + force pods to storage node Story Crater Bot 2026-07-22 08:41:25 -07:00
  • 368e4a020a fix(iam): Authentik OAuth2 provisioning — grant_types/groups claim, idempotent script, skip PATCH on existing apps Story Crater Bot 2026-08-18 15:08:03 -07:00
  • a9800c7a3e fix(authentik): widen server probe timeouts (3s->15s) — slow-but-200 health checks under DB contention triggered a liveness kill loop, dropping the pod from Service endpoints and breaking OAuth provisioning Story Crater Bot 2026-07-21 22:31:48 -07:00
  • 51c07a845f fix(temporal): provision schema via CNPG temporal_visibility DB + drop mysql-only tx_isolation param Story Crater Bot 2026-08-18 15:08:03 -07:00
  • e2781c72e2 chore(terraform): remove leftover terraform state-backup script and env example — repo is pure GitOps, terraform fully retired Story Crater Bot 2026-07-21 21:03:45 -07:00
  • ae4f683850 fix(temporal): switch server to sprig configMapsToMount + setConfigFilePath — dockerize path removed in server 1.30.3, config was not loaded so it fell back to Cassandra and crashed Story Crater Bot 2026-07-21 21:03:45 -07:00
  • 4c9610f86f fix(minio): set HOME=/tmp in policy-setup PostSync hook — mc could not create /.mc as non-root, hanging the job in an endless wait loop Story Crater Bot 2026-07-21 21:03:44 -07:00
  • 5a8e5ae3fe docs: rewrite CLAUDE.md for ArgoCD GitOps, track in git Story Crater Bot 2026-08-18 15:08:03 -07:00
  • cf8c97864b fix(temporal): db-secret-sync image bitnami/kubectl:1.30 doesn't exist Story Crater Bot 2026-07-21 17:18:32 -07:00