Skip to main content

Templates

Selebrow templates use the Go text/template syntax. Additionally, all Sprig functions are freely available to use in templates.

Default template files are in the config/ directory. See also kube-templates-path parameter description

values.yaml

Must be a map with static values which will then be available as .Values.* in the Pod template. This is a very similar concept to Helm values files

pod-template.yaml

The result of rendering this template must be a valid Yaml/Json Pod manifest with at least one container representing the browser container.

Multiple variables are available in the Pod template:

.Values.*

Every value X defined in values.yaml is available in the template as .Values.X.

.Browser.*

These values are extracted from the Browser catalog for requested browser/version.

Image

String

Browser image reference including tag. See image

Cmd

Array of Strings

Container command line. See cmd

Ports

Map String → Integer

The map of container ports to be exposed. See ports

Path

String

HTTP request path prefix. See path

Env

Map String → String

Static environment variables. See env

Limits

Map String → Kubernetes quantity

Resource limits for browser container. See limits

.Options.*

These values are taken from Webdriver Capability or Playwright request parameters

Env

Map String → String

Requested additional environment variables. The variables below are always added with values parsed from capabilities:

ENABLE_VNC: "true"                 # corresponds to VNCEnabled 
SCREEN_RESOLUTION: "1920x1080x24" # corresponds to Resolution

VNCEnabled

Boolean

Indicates whether VNC was enabled in the browser request.

Resolution

String

Screen resolution for X Server (applies only to headed browser requests). Value format is WIDTHxHEIGHTxBPP. Example: 1920x1080x24

Labels

Map String → String

Pod metadata labels from request.

Hosts

Map String → Array of Strings

IP to host alias map to be used in Pod's hostAliases based on host aliases from the browser request.

"10.1.2.3":
- "foo.remote"
- "bar.remote"

.CIEnvironment.*

These variables are available when Selebrow is run as a Gitlab CI service:

See also: Predefined CI/CD variables reference

JobID

String

The value of CI_JOB_ID environment variable.

ProjectNamespace

String

The value of CI_PROJECT_NAMESPACE environment variable.

ProjectName

String

The value of CI_PROJECT_NAME environment variable.