| .. | ||
| deployment.yaml | ||
| ingress.yaml | ||
| MIGRATION.md | ||
| pocket-id-secrets-sealed.yaml | ||
| pvc.yaml | ||
| README.md | ||
| service.yaml | ||
Pocket ID Deployment
This directory contains the Kubernetes manifests for the Pocket ID deployment at https://auth.basicstack.de
Components
-
deployment.yaml: Main Pocket ID application deployment
- Image:
ghcr.io/pocket-id/pocket-id:v2.9.0 - Resources: 100m CPU / 256Mi RAM (requests), 500m CPU / 512Mi RAM (limits)
- Healthchecks: liveness and readiness probes using built-in healthcheck command
- Image:
-
service.yaml: ClusterIP service exposing port 1411
-
pvc.yaml: PersistentVolumeClaim for application data
- CRITICAL: Has
argocd.argoproj.io/sync-options: Delete=falseannotation to prevent data loss - Storage: 5Gi on local-path storage class
- Contains all user accounts, OIDC clients, and application configuration
- CRITICAL: Has
-
ingress.yaml: Traefik ingress with TLS
- Host: auth.basicstack.de
- TLS certificate managed by cert-manager (letsencrypt-prod)
-
pocket-id-secrets-sealed.yaml: SealedSecret containing ENCRYPTION_KEY
- Managed by sealed-secrets controller
- Automatically unsealed to create
pocket-id-secretsSecret
Migration to Argo CD
This deployment was migrated from manual kubectl deployments to Argo CD GitOps on 2026-07-12.
Safety Measures
- PVC Protection: The PVC has
Delete=falsesync option to prevent accidental deletion - Resource Adoption: Existing resources are adopted by Argo CD without recreation
- Data Preservation: The existing PVC volume is reused, preserving all data
- Secret Management: Secrets are managed via SealedSecrets for secure GitOps
- TLS Certificate: Managed by cert-manager, automatically renewed
Verification Steps
After Argo CD sync:
- Verify all resources are healthy in Argo CD UI
- Check pod is running:
kubectl get pods -n pocket-id - Verify web UI is accessible: https://auth.basicstack.de
- Test OIDC login flow with an existing client
- Verify all existing OIDC clients are still present in admin UI
Important Notes
- DO NOT delete the PVC - it contains all application data
- The ENCRYPTION_KEY in the sealed secret must match the existing key to decrypt stored data
- All existing OIDC client IDs and secrets are preserved in the PVC data
- The TLS secret is managed by cert-manager and should NOT be committed to Git