WorkerRoute
Routes allow users to map a URL pattern to a Worker script to enable Workers to run on custom domains.
A kind: WorkerRoute
resource will manage one or more Worker Routes
in a managed zone.
Each resource contains a single WorkerRoute record.
For more information on this type, see the Cloudflare documentation.
Attributes
Zone
Each kind: WorkerRoute
must contain a spec.zone
string attribute.
The value of this attribute must match a Zone name managed by Kubeflare.
The API token to call Cloudflare API will be read from the associated Zone resource.
Pattern
Route pattern for URL matching. (string)
Pattern rules:
- Route patterns must include your zone. If your zone is
example.com
, then the simplest possible route pattern you can have isexample.com
, which would matchhttp://example.com/
andhttps://example.com/
, and nothing else. As with a URL, there is an implied path of / if you do not specify one. - Route patterns may not contain any query parameters. For example, https://example.com/?anything is not a valid route pattern.
- If you omit a scheme in your route pattern, it will match both
http://
andhttps://
URLs. If you includehttp://
orhttps://
, it will only match HTTP or HTTPS requests, respectively. - If a route pattern hostname begins with
*
, then it matches the host and all subhosts. If a route pattern hostname begins with*.
, then it matches only all subhosts. - If a route pattern path ends with
*
, then it matches all suffixes of that path.
Script
The name of a worker script to execute on matched requests. (string)
Importing
To import existing worker routes run check the Importing guide.
YAML spec created by kubeflare import
command contains a special annotation crds.kubeflare.io/imported-id
.
When kubeflare operator detects a new resource with this annotation, it checks if a worker route with given ID exists.
If the worker route found, operator updates status.id
, otherwise operator creates a new worker route.
Examples
Execute a worker-script
on http(s)://example.com/images/*
The following WorkerRoute
manifest will execute a images-script
on URLs matching http(s)://example.com/images/*
apiVersion: crds.kubeflare.io/v1alpha1
kind: WorkerRoute
metadata:
name: images-script
spec:
pattern: example.com/images/*
script: "images-script"
zone: example-com