Configuration
werkr uses Workstation Configurations to define what tools, runtimes, and settings should be applied to workstations. Configurations use label selectors to target specific workstations, enabling centralized management with local flexibility.
How It Works
A WorkstationConfig defines a set of provisioning steps (tools to install,
files to create, scripts to run). It uses a selector to match workstations
by their labels. When a workstation matches, the configuration is applied during provisioning.
Example
# config-k8s.yaml
apiVersion: werkr.dev/v1alpha1
kind: WorkstationConfig
metadata:
name: k8s-tools
spec:
selector:
matchLabels:
devtype: k8s
devtools:
asdf:
plugins:
- name: kubectl
version: 1.31.4
- name: helm
version: 3.16.4
- name: k9s
version: 0.32.7
This configuration will be applied to any workstation with the label devtype: k8s.
Configuration Hierarchy
Multiple configurations can match a single workstation. werkr merges them in order, allowing you to layer organizational defaults with team-specific and project-specific customizations:
- Org-level — Base tools and policies for everyone
- Team-level — Additional tools for specific teams
- Project-level — Project-specific dependencies
CLI Configuration
werkr stores its own settings locally. Use wer configure to manage them:
# Set the path to a binary used by werkr
wer configure path <tool> <path> Next Steps
Explore the full WorkstationConfig reference for all available configuration options.