Skip to content

Reference

Fast lookups for this Project Loom instance: pinned versions, endpoints, namespaces, and secrets. Anything Penvoice-specific below is an example app, not the platform.

Chart / operatorVersion
cert-managerv1.20.2
argo-cd9.5.21
argo-rollouts2.41.0
argo-workflows1.0.15
argo-events2.4.21
CloudNativePG0.28.3 (operator v1.29.1)
Keycloak operator26.6.3
Infisical (server chart)1.10.0
Infisical Secrets Operator0.11.8
HostWhat
loom.webbies.devThis guide
control.webbies.devArgo CD (apps portal)
uat.auth.webbies.devKeycloak (UAT / staging overlay)
auth.webbies.devKeycloak (prod)
vault.webbies.devInfisical UI
test.penvoice.appPenvoice web (staging)
penvoice.appPenvoice web (prod)
test.api.penvoice.appPenvoice API (staging)
api.penvoice.appPenvoice API (prod)
test.mytalon.co.zwTalon web (staging)
mytalon.co.zwTalon web (prod)
test.api.mytalon.co.zwTalon API (staging)
api.mytalon.co.zwTalon API (prod)

Every app follows the same host pattern: web is the plain domain (domain.tld), API is api.domain.tld, and staging prefixes either with test. (test.domain.tld / test.api.domain.tld).

Run kubectl on the node, or locally once set up. See Access.

RepoContents
webb1es/loomManifests (app-of-apps). Private. Source of truth.
webb1es/penvoice-apiGo REST API. CI → GHCR, public package.
penvoice-webAngular SPA. Deploys on Vercel (branch-based).
webb1es/talon-coreGo REST API. CI → GHCR, private package, no imagePullSecret yet — see Troubleshooting.
talon-webAngular SPA. Deploys on Vercel (branch-based).

Images: ghcr.io/webb1es/penvoice-api:sha-<sha>, ghcr.io/webb1es/talon-core:bootstrap (still the pre-CI placeholder tag — Talon’s own Dockerfile/CI pipeline doesn’t exist yet).

NamespaceRuns
argocdArgo CD / Rollouts / Workflows / Events
cert-managercert-manager
cnpg-systemCloudNativePG operator
keycloakKeycloak operator only
keycloak-stagingStaging Keycloak + Postgres
keycloak-prodProd Keycloak + Postgres
infisicalInfisical server + secrets operator + its Postgres
penvoice-stagingPenvoice API + Postgres + Redis (staging)
penvoice-prodPenvoice API + Postgres + Redis (prod)
talon-stagingTalon API + Postgres + Redis (staging)
talon-prodTalon API + Postgres + Redis (prod)

Recreate these by hand — Provision. <app>-api-kc is not in this list: Infisical owns it. See Secrets.

SecretNamespace(s)What
infisical-secretsinfisicalInfisical server’s own AUTH_SECRET/ENCRYPTION_KEY/DB_CONNECTION_URI/REDIS_URL
infisical-pg-backup-credsinfisicalOracle Object Storage S3 keys
infisical-<app>-identity<app>-staging, <app>-prodMachine Identity per env
keycloak-config-cli-sakeycloak-staging, keycloak-prodconfig-cli service-account (master realm, admin)
<app>-pg-backup-credsmatching app/keycloak env nsOracle Object Storage S3 keys

Oracle S3 keys: access key = clean hex; secret key has +/= — don’t swap. The Keycloak realm config also lives out-of-band (in its DB, which is backed up).

SettingValue
Bucketpenvoice-pg-backups (per-cluster folders)
ScheduleNightly ScheduledBackup + continuous WAL archiving
PITR window30 days
Regionaf-johannesburg-1
Required S3 envAWS_REQUEST_CHECKSUM_CALCULATION=when_required, AWS_RESPONSE_CHECKSUM_VALIDATION=when_required, AWS_DEFAULT_REGION=af-johannesburg-1

No metrics stack. Prod overlays pause 60s at 25% / 50% / 75%. Staging is one replica and setWeight: 100.