## Summary - Migrate devpi PyPI caching proxy from indri LaunchAgent to Kubernetes - Custom container image with devpi-server + devpi-web + auto-init - StatefulSet with 50Gi PVC, Tailscale Ingress at pypi.tail8d86e.ts.net - Remove devpi from ansible playbooks and update CLAUDE.md with k8s workflow ## Key Changes - Add CRI-O registry mirror config for registry.tail8d86e.ts.net - Change ArgoCD apps to manual sync (was auto-sync causing issues) - 2Gi memory limit for Whoosh indexer (reclaimed after startup) ## Deployment and Testing - [x] devpi pod healthy in k8s - [x] pip install through proxy works - [x] mcquack 1.0.0 uploaded and installable - [x] Old devpi stopped on indri ## Post-Merge Reset ArgoCD to main: ``` argocd app set apps --revision main && argocd app sync apps argocd app set devpi --revision main && argocd app sync devpi ``` 🤖 Generated with [Claude Code](https://claude.com/claude-code) Reviewed-on: https://forge.tail8d86e.ts.net/eblume/blumeops/pulls/34
30 lines
937 B
YAML
30 lines
937 B
YAML
# devpi PyPI Caching Proxy
|
|
# Provides PyPI cache and private package hosting
|
|
#
|
|
# After first deployment, initialize devpi:
|
|
# kubectl -n devpi exec -it devpi-0 -- devpi-init --serverdir /devpi --root-passwd <password>
|
|
# kubectl -n devpi rollout restart statefulset devpi
|
|
#
|
|
# Then create user/index:
|
|
# uvx devpi use https://pypi.tail8d86e.ts.net
|
|
# uvx devpi login root
|
|
# uvx devpi user -c eblume email=blume.erich@gmail.com
|
|
# uvx devpi index -c eblume/dev bases=root/pypi
|
|
apiVersion: argoproj.io/v1alpha1
|
|
kind: Application
|
|
metadata:
|
|
name: devpi
|
|
namespace: argocd
|
|
spec:
|
|
project: default
|
|
source:
|
|
repoURL: ssh://forgejo@indri.tail8d86e.ts.net:2200/eblume/blumeops.git
|
|
targetRevision: main
|
|
path: argocd/manifests/devpi
|
|
destination:
|
|
server: https://kubernetes.default.svc
|
|
namespace: devpi
|
|
syncPolicy:
|
|
syncOptions:
|
|
- CreateNamespace=true
|
|
# Manual sync only - no automated sync on git push
|