../../_images/kup6s-icon-deployment.svg

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)