Skip to content

Commit bd6a0fe

Browse files
cloud-vinyl-botclaude
andcommitted
docs: use Vinyl Cache as primary name (formerly Varnish Cache)
The FOSS project was renamed from Varnish Cache to Vinyl Cache in Sept 2025 (https://vinyl-cache.org/). Update README and all docs to use the new name while keeping "formerly Varnish Cache" for discoverability. Technical names (VCL, varnishadm, vmods) are unchanged as those are tool-level names. Also removes kube-httpcache reference from architecture.md. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent cced7de commit bd6a0fe

File tree

7 files changed

+26
-24
lines changed

7 files changed

+26
-24
lines changed

README.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
# cloud-vinyl
22

3-
Kubernetes operator for managing Varnish Cache clusters.
3+
Kubernetes operator for managing [Vinyl Cache](https://vinyl-cache.org/) clusters
4+
(the FOSS HTTP cache formerly known as Varnish Cache).
45

56
## Features
67

78
- **Operator pattern** — central controller with reconcile loop, no sidecar antipattern
89
- **Multiple backends** — first-class support for multiple backend services
9-
- **VCL lifecycle management** — generates and pushes VCL config to Varnish pods via vinyl-agent
10+
- **VCL lifecycle management** — generates and pushes VCL config to Vinyl Cache pods via vinyl-agent
1011
- **Invalidation** — integrated PURGE/BAN and xkey (surrogate key) support
11-
- **Clustering** — shard director for Varnish peer routing
12+
- **Clustering** — shard director for Vinyl Cache peer routing
1213
- **PROXY Protocol** — optional upstream PROXY protocol support
1314
- **Non-root by default** — all containers run as non-root
1415
- **Helm chart** — first-class Helm deployment

docs/sources/explanation/architecture.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# Architecture
22

3-
cloud-vinyl is a Kubernetes operator that manages Varnish Cache clusters as first-class Kubernetes resources.
4-
It is a clean-room reimplementation of [mittwald/kube-httpcache](https://github.com/mittwald/kube-httpcache),
5-
designed around the Kubernetes operator pattern with a central controller instead of per-pod sidecars.
3+
cloud-vinyl is a Kubernetes operator that manages [Vinyl Cache](https://vinyl-cache.org/) clusters
4+
(the FOSS HTTP cache formerly known as Varnish Cache) as first-class Kubernetes resources.
5+
It is designed around the Kubernetes operator pattern with a central controller instead of per-pod sidecars.
66

77
## Components
88

@@ -11,7 +11,7 @@ graph TD
1111
subgraph Kubernetes cluster
1212
OP[cloud-vinyl operator<br/>Deployment]
1313
VC[VinylCache CR]
14-
SS[StatefulSet<br/>Varnish pods]
14+
SS[StatefulSet<br/>Vinyl Cache pods]
1515
AG[vinyl-agent<br/>sidecar per pod]
1616
PX[Purge/BAN proxy<br/>port 8090]
1717
WH[Admission webhook<br/>port 9443]
@@ -20,7 +20,7 @@ graph TD
2020
OP -->|manages| SS
2121
SS -->|contains| AG
2222
OP -->|pushes VCL| AG
23-
AG -->|manages Varnish| VCL[Varnish process]
23+
AG -->|manages Vinyl Cache| VCL[Vinyl Cache process]
2424
PX -->|PURGE/BAN broadcast| SS
2525
WH -->|defaults + validates| VC
2626
```
@@ -38,33 +38,33 @@ The operator is a single Deployment that runs the reconcile loop. It:
3838

3939
### vinyl-agent
4040

41-
A lightweight HTTP server running as a sidecar in each Varnish pod.
42-
It wraps the Varnish admin interface (port 6082) and exposes:
41+
A lightweight HTTP server running as a sidecar in each Vinyl Cache pod.
42+
It wraps the Vinyl Cache admin interface (port 6082) and exposes:
4343

4444
- `POST /vcl/push` — compile and activate a new VCL.
4545
- `GET /vcl/active` — return the hash of the currently active VCL.
46-
- `POST /ban` — issue a Varnish `ban` command.
46+
- `POST /ban` — issue a ban command.
4747

4848
Communication between the operator and vinyl-agent is authenticated with a pod-scoped token stored in a Kubernetes Secret.
4949

5050
### Purge/BAN proxy
5151

5252
The operator exposes an HTTP endpoint on port `8090` that accepts:
5353

54-
- `PURGE /<path>` — HTTP PURGE broadcast to all Varnish pods.
54+
- `PURGE /<path>` — HTTP PURGE broadcast to all Vinyl Cache pods.
5555
- `POST /ban` or `BAN` method — validated ban expression, forwarded to vinyl-agent `/ban` on all pods.
5656
- `POST /purge/xkey` — xkey-based purge, one `PURGE` per key with `X-Xkey-Purge` header.
5757

5858
Upstream services send a single request; the operator fans it out to all pods in parallel.
5959

6060
## Why a central operator instead of sidecars?
6161

62-
The original kube-httpcache runs a per-pod signaller sidecar that watches the Kubernetes Endpoints
63-
API and triggers VCL reloads. This design has several problems:
62+
A per-pod signaller sidecar design that watches the Kubernetes Endpoints API and triggers VCL reloads
63+
has several structural problems:
6464

6565
1. **Chicken-and-egg at startup**: pods with readiness gates cannot become ready until the sidecar
6666
receives the first VCL push — but the sidecar needs other pods to be ready to build the peer list.
67-
2. **Silent drop on failure**: if a VCL push fails, kube-httpcache logs and continues.
67+
2. **Silent drop on failure**: if a VCL push fails, the sidecar logs and continues.
6868
Pods silently run stale VCL.
6969
3. **No debouncing**: rapid endpoint churn (rolling restarts) triggers many VCL regenerations back-to-back.
7070

docs/sources/explanation/invalidation.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ PURGE http://<operator-svc>:8090/path/to/resource
1919

2020
## BAN (expression-based)
2121

22-
Bans invalidate sets of objects matching a Varnish expression.
22+
Bans invalidate sets of objects matching a VCL expression.
2323
The most common pattern is banning by URL prefix or response header:
2424

2525
```

docs/sources/how-to/create-cache.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Create a VinylCache cluster
22

3-
This guide creates a minimal Varnish Cache cluster using a `VinylCache` custom resource.
3+
This guide creates a minimal Vinyl Cache cluster using a `VinylCache` custom resource.
44

55
## Minimal example
66

@@ -31,7 +31,7 @@ kubectl get vinylcache my-cache -w
3131
```
3232

3333
The operator creates:
34-
- A `StatefulSet` with 2 Varnish pods (+ vinyl-agent sidecar per pod).
34+
- A `StatefulSet` with 2 Vinyl Cache pods (+ vinyl-agent sidecar per pod).
3535
- A headless `Service` for pod-to-pod communication.
3636
- A traffic `Service` for upstream connections.
3737
- An invalidation `Service` + `EndpointSlice` for the operator's Purge/BAN proxy.

docs/sources/index.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# cloud-vinyl
22

3-
A Kubernetes Operator for managing Varnish Cache clusters as first-class Kubernetes resources.
3+
A Kubernetes Operator for managing [Vinyl Cache](https://vinyl-cache.org/) clusters
4+
(the FOSS HTTP cache formerly known as Varnish Cache) as first-class Kubernetes resources.
45

56
```{toctree}
67
:maxdepth: 2

docs/sources/reference/vinylcache-spec.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
| Field | Type | Required | Description |
1414
|-------|------|----------|-------------|
15-
| `replicas` | integer | yes | Number of Varnish pods in the StatefulSet. |
15+
| `replicas` | integer | yes | Number of Vinyl Cache pods in the StatefulSet. |
1616
| `backends` | list | yes | One or more backend services. |
1717
| `director` | object | no | Director configuration (defaults: `type: shard`). |
1818
| `cluster` | object | no | Clustering / peer-routing configuration. |
@@ -24,7 +24,7 @@
2424
| `proxyProtocol.enabled` | boolean | no | Enable PROXY protocol v2 on port 8081. |
2525
| `proxyProtocol.port` | integer | no | PROXY protocol port (default: `8081` when enabled). |
2626
| `service.annotations` | object | no | Annotations on the traffic Service. |
27-
| `pod.labels` | object | no | Extra labels on Varnish pods. |
27+
| `pod.labels` | object | no | Extra labels on Vinyl Cache pods. |
2828

2929
### backends
3030

docs/sources/tutorials/quickstart.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Quickstart
22

3-
This tutorial deploys a complete Varnish Cache cluster in a local kind cluster in under 10 minutes.
3+
This tutorial deploys a complete Vinyl Cache cluster in a local kind cluster in under 10 minutes.
44

55
## Prerequisites
66

@@ -78,10 +78,10 @@ kubectl get vinylcache quickstart -w
7878
# quickstart True 2/2 True Ready 45s
7979
```
8080

81-
## 7. Send a request through Varnish
81+
## 7. Send a request through Vinyl Cache
8282

8383
```bash
84-
# Port-forward the Varnish traffic service
84+
# Port-forward the Vinyl Cache traffic service
8585
kubectl port-forward svc/quickstart-traffic 8080:8080 &
8686

8787
# First request: cache MISS

0 commit comments

Comments
 (0)