infra: CI validations, delete Neo4j, drop dead Grafana password - #37
Open
spashii wants to merge 1 commit into
Open
infra: CI validations, delete Neo4j, drop dead Grafana password#37spashii wants to merge 1 commit into
spashii wants to merge 1 commit into
Conversation
Argo syncs main straight to the clusters with prune and selfHeal, so anything merged here deploys. Until now nothing checked that the charts even render. CI (.github/workflows/validate.yml) - helm lint + helm template for all five combinations in argo/*.yaml, so the matrix mirrors what Argo actually renders. Add an Application, add a row. - kubeconform against the rendered output, pinned to the DOKS 1.32.5 version in infra/main.tf. - terraform fmt -check and validate for infra, ai-infra/state, ai-infra/vertex. - every Argo Application must track main. A feature branch pinned in an Application is the exact drift in docs/triage-2026-05-14.md, where echo-monitoring-prod sat eight months behind. It found a real bug immediately: the monitoring ingress emitted cert-manager.io/cluster-issuer and nginx.ingress.kubernetes.io/ssl-redirect twice, once hardcoded and once from ingress.annotations. Annotations are now built as one dict, so values override defaults and no key repeats. Neo4j Deleted the deployment, service and PVC, plus the echo-critical PriorityClass that existed only for it and is referenced by nothing. Confirmed zero references across server/, agent/ and frontend/ before removing. Also removes a plaintext neo4j password that was committed in all three values files. Frees 2.7Gi memory and a 40Gi PVC per cluster. Grafana Removed adminPassword from both monitoring values files. No template read it; the live value comes from the monitoring-secrets SealedSecret. It rendered to nothing and only read like a live credential in a public repo. Docs AGENTS.md and .agents/architecture.md still described Neo4j as deployed. Corrected, and AGENTS.md now says what it is: a generated snapshot that goes stale, with the comment block in infra/main.tf as the deployment source of truth.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Three of the four things from today's review. The Argo consolidation is deliberately not here: it needs a topology decision first (see below).
What is in this PR
CI validations —
.github/workflows/validate.ymlArgo syncs
mainstraight to the clusters withprune: trueandselfHeal: true. Anything merged here deploys. Nothing checked that the charts render.helm lintandhelm templatefor all five combinations inargo/*.yaml. The matrix mirrors what Argo actually renders, so if you add an Application you add a row.kubeconformon the rendered output, pinned to the DOKS1.32.5ininfra/main.tf.terraform fmt -checkandterraform validateforinfra,ai-infra/state,ai-infra/vertex.main. A feature branch pinned in an Application CR is exactly the drift indocs/triage-2026-05-14.md, whereecho-monitoring-prodsat eight months behind.It caught a real bug on the first run. The monitoring ingress emitted
cert-manager.io/cluster-issuerandnginx.ingress.kubernetes.io/ssl-redirecttwice, once hardcoded in the template and once fromingress.annotations. Annotations are now built as a single dict, so values override defaults and no key can repeat. ThebasicAuth.enabled=truepath was smoke-tested too.Neo4j deleted. Deployment, service, PVC, and the
echo-criticalPriorityClass that existed only for it and is referenced by nothing. Verified zero references acrossserver/,agent/andfrontend/first. Also removes a plaintextneo4jpassword committed in all three values files. Frees 2.7Gi memory and a 40Gi PVC per cluster.Grafana
adminPassworddeleted from both monitoring values files. No template read it, the live value comes from the SealedSecret. It rendered to nothing and only read like a live credential in a public repo.Docs.
AGENTS.mdand.agents/architecture.mdstill described Neo4j as deployed. Corrected, andAGENTS.mdnow carries a note that it is a generated snapshot which goes stale, with the comment block ininfra/main.tfnamed as the deployment source of truth.Verification
All five renders were diffed against
main. The only resources removed are the four Neo4j ones. Monitoring resources are byte-identical apart from the neo4j regex alternations and the ingress fix.The skipped resource is the cert-manager
ClusterIssuerCRD, expected under-ignore-missing-schemas.Deploy note
Argo runs with
prune: true, so on sync it will delete the Neo4j Deployment, Service, PVC and theecho-criticalPriorityClass. The 40Gi PVC goes with it. Take aneo4j-admin database dumpfirst if you want the data, per the note indocs/migration-plan.md.Not in this PR
docs/migration-plan.mddecision 6 ("don't adopt app-of-apps") is void: it rested on this repo being deleted within 2-3 months from 2026-05-15, and the repo is staying with OVHcloud as the new target.main. A GitHub setting, not a file. Still unprotected.imagePullPolicy: Alwayswhile tags are immutable git SHAs.