VinylCache Spec Reference¶
VinylCache is the central custom resource managed by cloud-vinyl.
API group: vinyl.bluedynamics.eu/v1alpha1
Kind: VinylCache
Scope: Namespaced
Spec fields¶
Top-level¶
Field |
Type |
Required |
Description |
|---|---|---|---|
|
integer |
yes |
Number of Vinyl Cache pods in the StatefulSet. |
|
list |
yes |
One or more backend services. |
|
object |
no |
Director configuration (defaults: |
|
object |
no |
Clustering / peer-routing configuration. |
|
object |
no |
Cache invalidation configuration. |
|
duration |
no |
Wait after last change before VCL push (default: |
|
integer |
no |
Maximum VCL push retry attempts (default: |
|
duration |
no |
Initial retry backoff (default: |
|
duration |
no |
Maximum retry backoff (default: |
|
boolean |
no |
Enable PROXY protocol v2 on port 8081. |
|
integer |
no |
PROXY protocol port (default: |
|
object |
no |
Annotations on the traffic Service. |
|
object |
no |
Extra labels on Vinyl Cache pods. |
backends¶
Each entry in spec.backends defines an upstream service:
Field |
Type |
Required |
Description |
|---|---|---|---|
|
string |
yes |
Unique backend identifier (used in VCL). |
|
string |
yes |
Backend hostname or cluster-internal DNS name. |
|
integer |
yes |
Backend port. |
|
duration |
no |
Connection timeout (default: |
|
duration |
no |
Time-to-first-byte timeout (default: |
|
duration |
no |
Between-bytes timeout (default: |
|
integer |
no |
Maximum concurrent connections to this backend. |
|
string |
no |
Health probe URL (e.g. |
|
duration |
no |
Health probe interval (default: |
|
duration |
no |
Health probe timeout (default: |
|
integer |
no |
Consecutive successes required to mark healthy. |
|
integer |
no |
Rolling window for health evaluation. |
director¶
Field |
Type |
Default |
Description |
|---|---|---|---|
|
string |
|
Director type. Currently only |
|
float |
|
Fraction of requests sent to alternate backend to pre-populate its cache. |
|
duration |
|
Traffic throttle duration for newly healthy backends. |
|
string |
|
Shard key source ( |
|
string |
|
Health evaluation strategy ( |
cluster¶
Field |
Type |
Default |
Description |
|---|---|---|---|
|
boolean |
|
Enable cluster peer routing between pods. |
|
string |
|
Director type for peer-to-peer routing. |
invalidation¶
Field |
Type |
Default |
Description |
|---|---|---|---|
|
boolean |
|
Use soft purge (stale-while-revalidate). |
|
object |
nil |
Xkey (surrogate key) configuration. When set, |
|
boolean |
|
Use soft purge for xkey invalidation. |
Status fields¶
Field |
Type |
Description |
|---|---|---|
|
string |
|
|
string |
|
|
string |
SHA-256 hash of the currently active VCL. |
|
list |
Standard Kubernetes conditions ( |
Example¶
apiVersion: vinyl.bluedynamics.eu/v1alpha1
kind: VinylCache
metadata:
name: my-cache
namespace: production
spec:
replicas: 3
backends:
- name: api
host: api-service.production.svc.cluster.local
port: 8080
healthCheck:
url: /healthz
interval: 5s
threshold: 3
director:
type: shard
shard:
warmup: 0.1
rampup: 30s
cluster:
enabled: true
invalidation:
purge:
soft: true
xkey:
softPurge: true
debounce:
duration: 5s
retry:
maxAttempts: 3
backoffBase: 5s
backoffMax: 5m