C1: migrate cv + docs from minikube to indri-native #342
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "migrate-cv-docs-to-indri"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Replace the cv (
cv.eblu.me) and docs (docs.eblu.me) minikube Deployments with indri-native ansible roles. Caddy serves the extracted release tarballs directly via a newkind: staticservice-block — no daemon, no nginx pod, no ProxyGroup ingress on the request path. Mirrors the rationale of the recent devpi migration; part of the broader minikube wind-down.What's in this commit
ansible/roles/{cv,docs}— sentinel-gated tarball download + extract into~/{cv,docs}/content/ansible/roles/caddy/— newkind: staticbranch in the Caddyfile template (encoded gzip, immutable cache headers for fingerprinted assets, optionaltry_htmlfor Quartz-style clean URLs, optional per-pathdownload_pathsfor the resume PDF'sContent-Disposition)ansible/playbooks/indri.yml— wirescvanddocsroles beforecaddyservice-versions.yaml— both services flip totype: ansible.docs.current-versionstays at1.28.2for this commit socontainer-version-checkkeeps passing whilecontainers/quartz/Dockerfilestill exists; it moves to the docs release tag in the cleanup commit.forgejo/workflows/{cv-deploy,build-blumeops}.yaml— deploy step now bumpscv_version/docs_versionin the role defaults and pushes; running ansible + purging the Fly cache is manual from gilbert (matches devpi)docs/how-to/operations/{cv,docs}-on-indri.md, updateddocs/reference/services/{cv,docs}.md, changelog fragmentWhat is not in this commit
The dead artifacts. After PR review and successful cutover, a follow-up commit deletes:
argocd/apps/{cv,docs}.yamlandargocd/manifests/{cv,docs}/containers/cv/,containers/quartz/CONTAINER_TO_SERVICE['quartz']mapping inmise-tasks/container-version-checkdocs.current-versioninservice-versions.yamlto the release tagCutover plan (manual, from gilbert, after review)
argocd app delete cv --cascade && argocd app delete docs --cascadekubectl --context=minikube-indri get ns | grep -E '^(cv|docs)\\b'(should be empty)nslookup cv.tail8d86e.ts.netandnslookup docs.tail8d86e.ts.netshould both failmise run provision-indri -- --tags cv,docs,caddy --check --diff(already validated on branch)mise run provision-indri -- --tags cv,docs,caddyfly ssh console -a blumeops-proxy -C "sh -c 'rm -rf /tmp/cache && nginx -s reload'"mise run services-checkand the curl checks listed indocs/how-to/operations/{cv,docs}-on-indri.mdTotal expected downtime: minutes (not the few-hour budget you authorized).
Test plan
mise run provision-indri -- --tags cv,docs --check --diffcleanmise run provision-indri -- --tags caddy --check --diffshows only the cv + docs blocks changing as previewed in the PR threadcv.eblu.me,cv.ops.eblu.me,docs.eblu.me,docs.ops.eblu.meall return 200cv.eblu.me/resume.pdfincludesContent-Disposition: attachmentdocs.eblu.me/explanation/agent-change-process) resolves to the right pagemise run services-checkcleanmise run service-review --type ansibleshows cv and docs🤖 Generated with Claude Code
Replaces the cv and docs minikube Deployments with ansible roles that download release tarballs into ~/cv/content and ~/docs/content on indri. Caddy now serves those directories directly via a new kind=static service-block in the Caddy template; no daemon, no nginx pod, no ProxyGroup ingress on the request path. This commit adds the deploy-side artifacts only. Live cutover (delete argocd apps, run ansible, verify) is staged manually after PR review; the dead containers/{cv,quartz} and argocd manifests are removed in a follow-up commit so each commit is internally consistent. Workflows are simplified: the deploy step now bumps the role's pinned version and pushes; running ansible + purging the Fly cache is manual from gilbert (matches the devpi pattern). service-versions.yaml: cv and docs are type=ansible. docs current-version remains 1.28.2 for now to keep container-version-check passing while containers/quartz still exists; will move to the docs release tag in the cleanup commit. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>