Cloud-Vinyl Operator¶
Kubernetes Operator for Varnish Cache Clusters
Cloud-Vinyl provides declarative management of Varnish Cache clusters as first-class Kubernetes resources via the VinylCache CRD.
Overview¶
The cloud-vinyl deployment provides:
Cloud-Vinyl Operator (v0.1.0) - Varnish Cache cluster orchestration
VinylCache CRD - Declarative cache cluster definition
ArgoCD GitOps Management - Deployed from dp-infra/cloud-vinyl
CDK8S Infrastructure as Code - TypeScript-based manifest generation
Key Features¶
Varnish Cache Cluster Management¶
Declarative VinylCache custom resources
Agent-based VCL configuration delivery to cache pods
Multi-backend routing with shard director clustering
Automated health probing and self-healing
Cache Invalidation¶
PURGE, BAN, and surrogate key (xkey) invalidation
Built-in invalidation proxy in operator
Integration with Plone’s cachepurging via xkey
Monitoring¶
Prometheus metrics via vinyl-agent (port 9090)
Optional ServiceMonitor and PrometheusRule resources
Conditions-based status reporting on VinylCache resources
Quick Start¶
Check Operator Status¶
# Check cloud-vinyl operator pods
kubectl get pods -n cloud-vinyl-system
# Check ArgoCD sync status
kubectl get application cloud-vinyl-app-* -n argocd
List VinylCache Resources¶
# List all VinylCache clusters
kubectl get vinylcaches -A
# Check specific VinylCache details
kubectl describe vinylcache <name> -n <namespace>
Architecture¶
The cloud-vinyl deployment uses CDK8S (TypeScript) to generate Kubernetes manifests deployed via ArgoCD:
dp-infra/cloud-vinyl/
├── charts/constructs/
│ ├── namespace.ts # cloud-vinyl-system namespace (sync-wave 0)
│ └── operator.ts # Cloud-Vinyl operator HelmChart (sync-wave 1)
├── config.yaml # Operator version and configuration
└── manifests/
└── cloud-vinyl.k8s.yaml # Generated manifests (committed to git)