No description
Find a file
david kiania 2b3ff85723 Revert "feat(forgejo): cut over to repo.rahamafresh.com"
This reverts 8b4d955. The cutover was stopped at the DNS step by choice:
repo.rahamafresh.com stays on the Coolify instance, and the cluster instance
keeps serving repoargo.rahamafresh.com.

Two things had to come back. ROOT_URL was pointing users of repoargo at the old
instance. And the forgejo-live Ingress held an ACME challenge that could never
complete while repo.rahamafresh.com resolves elsewhere -- left in place it would
have retried against Let's Encrypt's failed-authorization limit.

The data re-sync that run performed is kept: the cluster instance now holds a
copy from today rather than from 18:30.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HRo4UeD99WWR3H1dfB8FsZ
2026-09-08 21:54:57 +03:00
apps feat(forgejo): deploy Forgejo to the cluster on repoargo.rahamafresh.com 2026-09-08 21:27:47 +03:00
bootstrap fix(argo,bootstrap): server-side apply, and drop the no-op recurse field 2026-09-04 23:49:23 +03:00
cluster feat(cluster): expose the Argo CD UI at argo.rahamafresh.com 2026-09-05 00:42:36 +03:00
docs feat(forgejo): scripted cutover to repo.rahamafresh.com 2026-09-08 21:45:57 +03:00
scripts fix(cutover): stop ssh swallowing the confirmation prompt's input 2026-09-08 21:51:12 +03:00
workloads Revert "feat(forgejo): cut over to repo.rahamafresh.com" 2026-09-08 21:54:57 +03:00
.gitignore chore: GitOps root for the FleetNow k3s cluster 2026-09-04 21:49:32 +03:00
README.md docs: plans for migrating Forgejo and TimescaleDB to jogootano 2026-09-08 21:11:17 +03:00

14_fleetnow_argo — GitOps root for the FleetNow cluster

Cluster configuration for the k3s node at 187.7.20.166 (jogootano), which runs the FleetNow UI and the dashboard_api read-API under Argo CD.

The one rule

Cluster config is committed here, never applied by hand. Argo CD reconciles this repo into the cluster. The only exceptions are the three bootstrap installs (k3s, Argo CD, cert-manager) and apps/root-app.yaml — the seed that teaches Argo to watch this directory. Everything after that is a commit.

Layout

Path Contents
bootstrap/ One-time install scripts, run in order: k3s → Argo CD → cert-manager
cluster/ Cluster-scoped resources: namespaces, Let's Encrypt ClusterIssuer
apps/ Argo Applications. root-app.yaml is the app-of-apps that syncs this dir
docs/ PLAN.md (the FleetNow migration), PLAN_FORGEJO.md and PLAN_TIMESCALE.md (the two follow-on migrations), PROGRESS.md (what has actually been done), RUNBOOK.md (day-2 operations)

Where the app manifests live

Not here. Each app's manifests sit in the app's own repo, and an Application in apps/ points at it:

App Repo Path
fleetnow (UI) kianiadee/fleetnow . (repo root)
fleetapi (read-API) kianiadee/tracksolid_timescale_grafana_prod deploy/

The UI's manifests must live beside index.html because its ConfigMaps are generated from those files, and kustomize cannot read above its own directory.

Secrets

None are stored in this repo, and none should be. The database credentials are created out-of-band with kubectl create secret (see docs/RUNBOOK.md).

Quick start

export KUBECONFIG=~/.kube/fleet-k3s.yaml
ssh -fN -L 6443:127.0.0.1:6443 kianiadee@187.7.20.166   # if the tunnel is down
kubectl get applications -n argocd