Skip to main content

Add a Provider

The Devsy team maintains providers for popular services such as:

Install these providers with the Devsy CLI:

devsy provider add docker

You can get a list of available 1st party providers by using the command:

devsy provider list --available

Devsy Desktop

Open the Providers view and click Add. The provider wizard has four steps:

  1. Select — pick a built-in preset, or enter a GitHub link, provider.yaml URL, or local file path in the Provider Source field below the presets.
  2. Configure — fill in provider-specific options (the form is generated from the provider's schema).
  3. Initialize — Devsy runs the provider init and streams logs.
  4. Done — review the result. Failures show the underlying error.

The ProviderSheet (click any provider in the list) exposes edit settings, switch version, update, delete, rename, set as default, and re-initialize.

info

The Desktop Application calls devsy provider add PROVIDER under the hood.

Custom Providers

In the Select step, type one of the following into the Provider Source field below the preset grid:

  • A GitHub link to the provider's project
  • A URL to a provider.yaml
  • A file path to a provider.yaml

Devsy CLI

Install any provider from the list with:

devsy provider add docker
devsy provider add kubernetes
devsy provider add ssh
devsy provider add aws
devsy provider add azure
devsy provider add gcloud
devsy provider add digitalocean
Multiple providers at the same time

You can use the --name flag to add multiple providers of the same type with different options, for example devsy provider add aws --name aws-gpu -o AWS_INSTANCE_TYPE=p3.8xlarge

From GitHub

You can specify a custom provider, directly from GitHub, by using the format my-username/repo, so for example:

devsy provider add devsy-org/devsy-provider-terraform

Devsy will search the latest release for a provider.yaml and download that automatically. This should work for private GitHub repositories where Devsy will use the local https credentials to connect to the GitHub repository.

If you want to install the provider from a different release, you can do the following:

devsy provider add my-org/my-repo@v0.0.1

From Local Path

If you have locally downloaded providers, you can also add them directly to Devsy, by pointing to the file path of provider.yaml manifest:

devsy provider add ../devsy-provider-mock/provider.yaml

From URL

You can also specify the URL to the provider.yaml file, for example:

devsy provider add https://github.com/devsy-org/devsy-provider-ssh/releases/download/v0.0.3/provider.yaml

Set Provider Options

Each provider defines its own options, so they differ from provider to provider.

Desktop Options

To manage options from the app, head over the Providers section, and click Edit on the provider you want to configure.

CLI Options

Set options during the add or configure phase:

devsy provider add <provider-name> -o KEY=value

or

devsy provider init <provider-name> -o KEY=value

To manage options later, list the current values with:

devsy provider get <provider-name>

An example output for the AWS Provider is:

NAME | REQUIRED | DESCRIPTION | DEFAULT | VALUE
----------------------------+----------+--------------------------------+-------------------------+--------------------------
AGENT_PATH | false | The path where to inject the | /var/lib/toolbox/devsy | /var/lib/toolbox/devsy
| | Devsy agent to. | |
AWS_ACCESS_KEY_ID | false | The AWS access key id | |
AWS_AMI | false | The disk image to use. | |
AWS_DISK_SIZE | false | The disk size to use. | 40 | 40
AWS_INSTANCE_TYPE | false | The machine type to use. | c5.xlarge | c5.xlarge
AWS_REGION | true | The AWS cloud region to create | | us-west-2
| | the VM in, e.g. us-west-1 | |
AWS_SECRET_ACCESS_KEY | false | The AWS secret access key | |
AWS_VPC_ID | false | The vpc id to use. | |
INACTIVITY_TIMEOUT | false | If defined, will automatically | 10m | 10m
| | stop the VM after the | |
| | inactivity period. | |
INJECT_DOCKER_CREDENTIALS | false | If Devsy should inject docker | true | true
| | credentials into the remote | |
| | host. | |
INJECT_GIT_CREDENTIALS | false | If Devsy should inject git | true | true
| | credentials into the remote | |
| | host. | |

This table is an overview. Change any option with:

devsy provider set <provider-name> --option <KEY>=<VALUE>

For example, to change the disk size from 40GB to 120GB:

devsy provider set aws --option AWS_DISK_SIZE=120

Run devsy provider get aws again to confirm — the VALUE column for AWS_DISK_SIZE now reads 120.

Single Machine Provider

By default, Devsy will use a separate machine for each workspace using the same provider, you can enable Reuse machine in a provider in order to use a single machine for all workspaces.

In the desktop app the option is available in the option management interface for the provider (see section above)

In the CLI you can set this option using:

devsy provider init <provider-name> --single-machine

Default Provider

When you add a provider, you can mark it as the default provider. Devsy then uses it for any workspace you create without specifying another.

In the desktop app, you can set a provider to be default in the option management interface for the provider (see section above)

In the CLI you can set this option using:

devsy provider use <provider-name>

Community Providers

The community maintains providers for additional services.

Install these providers with the Devsy CLI:

devsy provider add <user/repository>