Providers are simple CLI programs that let DevPod create, manage and run the workspaces requested by the user. In the simplest form, a provider defines a command to create, delete and connect to a virtual machine in a cloud.
DevPod relies on the provider model in order to allow flexibility and adaptability for any backend of choice.
Providers in DevPod are defined through a
provider.yaml that defines the necessary options, configuration, binaries and commands needed to handle workspace creation.
Type of providers
There are two types of providers:
- Machine providers
- Non-machine providers
Machine providers are those who will create and manage a VM for the workspace selected. An example of a Machine provider is the AWS Provider, which uses EC2 instances to run the environment. These type of providers will also manage the lifecycle of the VM, starting/stopping and deleting it when needed.
Non-machine providers are those who will work directly with containers, instead of using VMs. An example of this can be the SSH, Kubernetes and Docker providers. Those providers will not create any VMs, but instead directly run the workspace container on the target.
You can head over the next sections on how to manage DevPod providers: