Cloudflare KV Namespace
Deploys a Workers KV namespace on Cloudflare. Workers KV is a globally distributed, low-latency key-value store designed for read-heavy workloads at the edge. This component creates a single KV namespace that can be bound to Cloudflare Workers for storing configuration, session data, feature flags, or any other data your edge logic needs.
What Gets Created
When you deploy a CloudflareKvNamespace resource, OpenMCF provisions:
- Workers KV Namespace — a
cloudflare_workers_kv_namespaceresource with the title set to the configurednamespaceName
The namespace ID is exported as a stack output so that other components (such as CloudflareWorker) can reference it at deploy time.
Prerequisites
- Cloudflare credentials configured via environment variables or OpenMCF provider config
- A Cloudflare account with Workers KV enabled on the plan
- Appropriate permissions — the API token must have
Workers KV Storage:Editaccess
Quick Start
Create a file kv-namespace.yaml:
apiVersion: cloudflare.openmcf.org/v1
kind: CloudflareKvNamespace
metadata:
name: my-kv
labels:
openmcf.org/provisioner: pulumi
pulumi.openmcf.org/organization: my-org
pulumi.openmcf.org/project: my-project
pulumi.openmcf.org/stack.name: dev.CloudflareKvNamespace.my-kv
spec:
namespaceName: my-kv-store
accountId: 0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d
Deploy:
openmcf apply -f kv-namespace.yaml
This creates a KV namespace titled my-kv-store in your Cloudflare account. Bind it to a Worker using the namespace ID from status.outputs.namespaceId.
Configuration Reference
Required Fields
| Field | Type | Description | Validation |
|---|---|---|---|
namespaceName | string | A human-readable name for the KV namespace. Must be unique within the Cloudflare account. | Required, max 64 characters |
accountId | string | The Cloudflare account ID that owns the namespace. | Required, 32 hex characters |
A KV namespace carries only an account and a title; there are no per-namespace
TTL or description settings (TTL is set per write). Seed entries with
CloudflareWorkersKvPair, or have the Worker write them at runtime.
Examples
Basic KV Namespace
A minimal KV namespace suitable for development or testing:
apiVersion: cloudflare.openmcf.org/v1
kind: CloudflareKvNamespace
metadata:
name: dev-cache
labels:
openmcf.org/provisioner: pulumi
pulumi.openmcf.org/organization: my-org
pulumi.openmcf.org/project: my-project
pulumi.openmcf.org/stack.name: dev.CloudflareKvNamespace.dev-cache
spec:
namespaceName: dev-cache
accountId: 0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d
Session Store
A KV namespace intended for session data (TTL is applied per write by the Worker):
apiVersion: cloudflare.openmcf.org/v1
kind: CloudflareKvNamespace
metadata:
name: session-store
labels:
openmcf.org/provisioner: pulumi
pulumi.openmcf.org/organization: my-org
pulumi.openmcf.org/project: my-project
pulumi.openmcf.org/stack.name: prod.CloudflareKvNamespace.session-store
spec:
namespaceName: prod-session-store
accountId: 0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d
Feature Flags Namespace
A KV namespace dedicated to feature flag storage, referenced by multiple Workers.
Seed individual flags with CloudflareWorkersKvPair:
apiVersion: cloudflare.openmcf.org/v1
kind: CloudflareKvNamespace
metadata:
name: feature-flags
labels:
openmcf.org/provisioner: pulumi
pulumi.openmcf.org/organization: my-org
pulumi.openmcf.org/project: my-project
pulumi.openmcf.org/stack.name: prod.CloudflareKvNamespace.feature-flags
spec:
namespaceName: feature-flags-prod
accountId: 0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d
Stack Outputs
After deployment, the following outputs are available in status.outputs:
| Output | Type | Description |
|---|---|---|
namespaceId | string | The unique identifier of the created KV namespace in Cloudflare |
supportsUrlEncoding | bool | Whether keys in this namespace support URL encoding |
Related Components
- CloudflareWorkersKvPair — seed individual key-value entries into this namespace as managed, composable resources
- CloudflareWorker — Workers consume KV namespaces via bindings; use the
namespaceIdoutput to wire a KV store to your Worker - CloudflareR2Bucket — object storage for larger or binary data, complementary to KV for small-value, read-heavy access patterns
- CloudflareD1Database — relational SQL storage at the edge; use when you need structured queries rather than simple key-value lookups
- CloudflareDnsZone — manages DNS zones that front the Workers consuming this KV namespace
Next article