kasmtech / workspaces-issues

18 stars 4 forks source link

Custom Agent, Kubernetes and other compute #605

Open LamaAni opened 3 weeks ago

LamaAni commented 3 weeks ago

Hi All,

First time here :)

For a project I am doing, I want to create and provision my own instances as a response to user selection. These instances need to be provisioned when the user selects the instance type - much like the behavior of the docker agent. In general, we would need to provision machines on,

  1. Cloud compute (AWS, GCP.. etc)
  2. Windows machines.
  3. Kubernetes pods.
  4. Docker containers.
  5. Podman (We are considering it).

I was wondering if there was a way to create a "custom" agent, one which accepts a webhook and would return a running machine and the container status to workspaces. In this project we require making custom provisioning. Agent would provide,

  1. Status
  2. Machine details.
  3. Actions (Delete, create, etc)
  4. Other requirements...

E.g. the workflow would be,

  1. User selects the container/machine type
  2. A webhook is sent to the agent to create the machine,
  3. Agent returns with status running
  4. User sees machine provisioned or error, and can start working.
j-travis commented 3 weeks ago

Hi, We don't have a generic interface to create your own custom agent role via webhooks.

However Kasm Workspaces can be deployed across multiple Deployment Zones ( https://kasmweb.com/docs/latest/guide/zones/deployment_zones.html#deployment-zones) which in your case might mean one Zone in AWS, another in GCP, another on prem.

We have AutoScale providers with can automatically provision our Docker Agent role and aribitrary VMs (E.g Windows machines) in various cloud providers and hypervisors like vSphere, OpenStack and coming in the next version Harvester HCI & Kubevirt. You can configure the system to create a standby pool of Agents/VMs, schedule them to scale up according to schedules or create machines fully on demand . https://kasmweb.com/docs/latest/guide/compute/pools.html