Extra Features β
Pre-installing and configuring every possible package would compromise a flexible workspace footprint. Instead, we developed an opt-in method to seamlessly install and configure features at your discretion.
Behind the scenes, we are simply running an Ansible playbook in order to install the desired feature.
Installing Features β
We provide two methods for installing additional features in the workspace. You can choose the method that best fits your needs.
Install at Boot β
During startup, the workspace evaluates the WS_EXTRA_FEATURES
environment variable to determine which features to install automatically.
docker run \
-e WS_EXTRA_FEATURES="dotnet jupyter" \
ghcr.io/kloudkit/workspace:latest
Manual Installation β
To manually install a feature, run the following command:
# Help information
ws feature install -h
# Example: installing PHP
ws feature install php
As mentioned above, all features are backed by Ansible playbooks. All playbooks are stored in the /features
root directory.
The directory location can be overridden using the --root
flag when installing. The example below will look for a playbook at /alternate/php.yaml
:
ws feature install php --root /alternate
Optional Variables β
As mentioned above, features are installed using playbooks. Certain playbooks support additional variables for customization.
To do this, use the --opt
flag (equivalent to Ansible's --extra-vars
), zero or more times, as shown in the example below:
ws feature install dagger --opt dagger_version=0.13.3
Custom Features β
You can create custom playbooks for specific needs. The template below offers a starting point. Ensure that hosts: workspace
remains unchanged, as this targets the active workspace session.
TIP
It may also help to explicitly mention that the custom playbook template can be saved as cool.yaml
in the /alternate
directory.
# /alternate/cool.yaml
- name: Install a cool new feature
gather_facts: false
hosts: workspace
tasks:
- name: Just saying hello
ansible.builtin.debug:
msg: Hello world! π
ws feature install custom --feature cool --root /alternate
Available Features β
INFO
Have a feature in mind that we havenβt covered? Feel free to suggest it or contribute directly.
For more information, visit our contribution guide.
Feature | Description |
---|---|
conan | Conan CLI and related tools |
cloudflared | Cloudflare tunnel CLI |
dagger | dagger.io CLI and SDK |
dotnet | .NET framework and related extensions |
gcloud | Google Cloud CLI for GCP |
gh | GitHub CLI |
jupyter | Jupyter packages and related extensions |
php | PHP and related extensions |
restic | Restic CLI |
rust | Rust and Cargo |