Skip to main content

Bootstrap Configuration

This page lists the bootstrap configuration that is common to all components in Furiko.

Component-specific configuration can be found in other children pages in the Configuration section.

Configuration Options

There are no default values for bootstrap configuration options (for the most part), so every field must be specified.

defaultResync

Specifies the default resync duration for all informers. Accepts a Golang duration string (e.g. 10m).

defaultResync: 10m

dynamicConfigs

Specifies how to load the Dynamic Configuration.

# Default value differs depending the actual component.
dynamicConfigs:
configMap:
namespace: furiko-system
name: execution-dynamic-config

secret:
namespace: furiko-system
name: execution-dynamic-config

http

Specifies how to set up HTTP handlers, including Prometheus metrics, readiness and liveness probes.

All HTTP endpoints are currently served on a single HTTP endpoint, as such there is only one bindAddress specified.

http:
bindAddress: ":8080"
metrics:
enabled: true
health:
enabled: true
readinessProbePath: "/readyz"
livenessProbePath: "/healthz"

leaderElection

Specifies whether and how to set up leader election. Applies only to Controller components (i.e. does not apply to Webhook components).

leaderElection:
enabled: true
leaseName: execution-controller
leaseNamespace: furiko-system
leaseDuration: 30s
renewDeadline: 15s
retryPeriod: 5s

controllerConcurrency

Specifies the concurrency values for individual controllers. Applies only to Controller components (i.e. does not apply to Webhook components).

controllerConcurrency:
<controller name>:
factorOfCPUs: 4
tip

Concurrency can be specified either as an absolute number of worker goroutines (using workers), or as a factor of the number of CPUs allocated to the container (using factorOfCPUs).

Using factorOfCPUs allows you to scale a controller vertically by changing a single CPU limit knob, rather than having to individually tune each knob when increasing the resources allocated to the container. This is useful because most controllers should be CPU-bound.