Commit Graph
15 Commits
Author SHA1 Message Date
chemavxandClaude Opus 4.8 5f6b491ed3 Add Infisical token-reviewer RBAC for Kubernetes Auth
Phase 2 Step 2: dedicated SA infisical-token-reviewer bound to
system:auth-delegator (TokenReview), explicit long-lived SA token Secret
(k8s 1.34 doesn't auto-create). ArgoCD ignores /data so selfHeal won't
strip the controller-populated token. Token value never committed.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 16:05:59 +00:00
chemavxandClaude Opus 4.8 2c81ab03a7 Add Infisical Kubernetes operator (secrets-operator v0.11.1)
Phase 2 Step 1: controller-only, dedicated infisical-operator namespace,
hostAPI -> self-hosted instance, cluster-scoped, ServerSideApply for CRDs.
No InfisicalSecret CRs yet — operator sits idle until later UI config.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 15:42:14 +00:00
chemavxandClaude Opus 4.8 c459eb3930 fix(infisical): single-source Helm with inline values
The multi-source variant ($values git ref) caused the infisical app to
prune its own Application object on first sync (controller pruned
Application/argocd/infisical, orphaning the workloads). Switch to a
single-source Helm app with inline valuesObject (same chart 1.9.0, same
DB/Redis passwords) and drop the hand-written tracking-id annotation.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 06:51:23 +00:00
chemavxandClaude Opus 4.8 e548a06ebc feat(infisical): add Infisical platform (Phase 1, chart-managed pg/redis)
Deploy infisical-standalone 1.9.0 (Infisical v0.158.0) in a dedicated
'infisical' namespace via a multi-source ArgoCD app (chart + values).
Bundled Postgres (dedicated local-path PVC, 8Gi) + Redis. Ingress via
Traefik + cert-manager (letsencrypt-prod) at infisical.chemavx.xyz.

Crown-jewel secrets (ENCRYPTION_KEY, AUTH_SECRET, SITE_URL) are injected
out-of-band via the 'infisical-secrets' Secret (kubectl, IgnoreExtraneous),
NOT in git. Postgres/Redis passwords guard ClusterIP-only in-cluster
services holding ciphertext; acceptable in values per design review.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 06:39:26 +00:00
chemavxandClaude Fable 5 e42896a8c1 feat(ollama): enable prune, guarded by Prune=false on the models PVC
Last app without prune; now consistent with the rest of the cluster.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-12 15:58:50 +00:00
chemavxandClaude Fable 5 0619a5caf7 feat(n8n): enable prune, guarded by Prune=false on the workflows PVC
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-12 15:50:21 +00:00
chemavxandClaude Fable 5 2afbb9559c chore(argocd): drop non-authoritative researchowl Application dump
The real manifest is researchowl/argocd-app.yaml, self-managed inside the
app's own synced path; edits to this copy get silently reverted by selfHeal.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-12 15:50:21 +00:00
chemavxandClaude Fable 5 23abc484c7 feat(argocd): recover Telegram notifications (failed/degraded) and prune for polymarket-bot
- Notifications via generic webhook to the Telegram Bot API: the engine's
  native telegram service only supports channels and negative group IDs,
  so a positive private chat_id never worked ("chat not found").
- Only on-sync-failed and on-health-degraded triggers; on-sync-succeeded
  dropped (CI already reports successful deploys).
- Subscribe annotations on polymarket-bot, researchowl and n8n.
- prune: true on polymarket-bot, guarded by Prune=false on the postgres
  PVC so removing the manifest from git can never destroy the data.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-12 15:31:07 +00:00
ChemaVXandClaude Fable 5 d99729a1f7 chore(argocd): sync Application manifests with live cluster state
- Update the 5 Applications that still pointed at the internal Gitea URL
  (gitea.gitea.svc.cluster.local) to https://git.chemavx.xyz, matching the
  live patch that made the Gitea->ArgoCD webhook effective for them.
- Add the 9 Applications that existed only in the cluster (filebrowser,
  ghost-en, k8s-manifests, ollama, renovate, researchowl, trilium, umami,
  zona-exclusion) so a cluster rebuild can restore all 14 from git.

Files are verbatim dumps of the live spec. Note: the old
application-polymarket-bot.yaml and application-n8n.yaml in git carried
telegram notification annotations and prune:true that were NOT live; this
snapshot replaces them with what actually runs.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-12 07:45:31 +00:00
chemavxandClaude Sonnet 4.6 cc8140760f argocd: configure Telegram notifications and add Application manifests
- Configure argocd-notifications-cm with Telegram service, templates and triggers
  for sync-succeeded, sync-failed, and app-degraded events
- Add application-polymarket-bot.yaml and application-n8n.yaml with notification
  subscription annotations (chat_id: 5138407666)

Note: requires kubectl patch of argocd-notifications-secret with telegram-token

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-25 09:56:35 +00:00
chemavxandClaude Sonnet 4.6 f465f190d8 openclaw: reinstall limpio con Claude API y ArgoCD
- Manifiestos limpios: namespace, rbac, pvc (5Gi local-path), deployment, service, ingress
- nodeSelector chemavx-k8 en deployment para fijar PVC en el nodo correcto
- Imagen fijada a ghcr.io/openclaw/openclaw:2026.4.12
- Sin initContainers ni secrets en el deployment (config post-arranque via exec)
- Elimina artefactos: configmap-kube-root-ca.crt.yaml, serviceaccount-default.yaml, pvc-openclaw-pvc.yaml, rbac-openclaw-agent.yaml
- Añade argocd/application-openclaw.yaml para gestión GitOps

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 10:40:08 +00:00
chemavxandClaude Sonnet 4.6 0bf2e746dd feat(registry-cache): add Docker Hub pull-through cache + dind mirror config
Deploy registry:2 as Docker Hub pull-through cache on chemavx-k8 (hostPort 5000,
ClusterIP 10.43.163.56:5000). Configures dind runner to use local mirror via
daemon.json to eliminate Docker Hub rate limit failures in CI/CD.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-22 11:35:43 +00:00
chemavx 72be7ebac8 feat(portfolio): add ChemaVX portfolio with Polymarket live metrics 2026-04-16 10:00:16 +00:00
chemavx f42cdee585 security: remove all REDACTED secrets from repo, add pre-commit guard
- Delete 26 secret manifests containing REDACTED placeholder values
  (15 cert-manager TLS + 11 app secrets across 8 namespaces)
- REDACTED is valid base64 that decodes to non-UTF-8 bytes — ArgoCD
  applying these manifests corrupts live secrets in the cluster
- Add .githooks/pre-commit that rejects any .yaml with REDACTED
- Add README.md documenting secret management policy and manual
  creation commands for each service
- n8n secret manifests already fixed in previous commits (618b1e8, db04fd2)
2026-04-14 20:02:51 +00:00
chemavx ff2e6cc985 feat: export all K8 Plus cluster manifests
Namespaces: argocd, authentik, backup-system, cloudflare-ddns,
gitea, homarr, monitoring, n8n, openclaw, polymarket-bot, vaultwarden
Cluster-wide: clusterissuers, namespaces
Secrets: redacted (structure only, data=REDACTED)
2026-04-10 08:57:02 +00:00