Skip to content

Capability Matrix

Which operations are available in each consumer surface — Dashboard, CLI (bnerd), Terraform Provider, and the REST API.

Legend: ✓ = supported · — = not applicable or not yet available


Ephemeral Workspaces

Operation Dashboard CLI Terraform API
List workspaces bnerd workspace list data.bnerd_workspaces GET /workspaces
Show workspace bnerd workspace get data.bnerd_workspace GET /workspaces/{id}
Launch workspace bnerd workspace launch POST /workspaces
Revoke workspace bnerd workspace revoke DELETE /workspaces/{id}

Compute — Servers

Operation Dashboard CLI Terraform API
List servers bnerd servers list data.bnerd_servers GET /cloud/servers
Show server bnerd servers get data.bnerd_server GET /cloud/servers/{id}
Create server bnerd servers create bnerd_server POST /cloud/servers
Delete server bnerd servers delete bnerd_server (destroy) DELETE /cloud/servers/{id}
List images bnerd images list data.bnerd_images GET /cloud/images
List flavors bnerd flavors list data.bnerd_flavors GET /cloud/flavors
List SSH keypairs bnerd ssh-keypairs list data.bnerd_ssh_keypairs GET /cloud/ssh-keypairs
Create SSH keypair POST /cloud/ssh-keypairs
Delete SSH keypair DELETE /cloud/ssh-keypairs/{id}

Compute — Volumes

Operation Dashboard CLI Terraform API
List volumes bnerd volumes list data.bnerd_volumes GET /cloud/volumes
Show volume bnerd volumes get data.bnerd_volume GET /cloud/volumes/{id}

Compute — Security Groups

Operation Dashboard CLI Terraform API
List groups bnerd security-groups list data.bnerd_security_groups GET /cloud/security-groups
Show group bnerd security-groups get data.bnerd_security_group GET /cloud/security-groups/{id}
Create group bnerd security-groups create bnerd_security_group POST /cloud/security-groups
Update group bnerd security-groups update bnerd_security_group PUT /cloud/security-groups/{id}
Delete group bnerd security-groups delete bnerd_security_group (destroy) DELETE /cloud/security-groups/{id}
List rules bnerd security-groups rules data.bnerd_security_group_rules GET /cloud/security-groups/{id}/rules
Add rule bnerd security-groups rule-add bnerd_security_group_rule POST /cloud/security-groups/{id}/rules
Remove rule bnerd security-groups rule-delete bnerd_security_group_rule (destroy) DELETE /cloud/security-groups/{id}/rules/{rule_id}

Compute — Networking

Operation Dashboard CLI Terraform API
List networks bnerd networks list data.bnerd_networks GET /cloud/networks
Show network bnerd networks get data.bnerd_network GET /cloud/networks/{id}
Create network bnerd networks create bnerd_network POST /cloud/networks
Delete network bnerd networks delete bnerd_network (destroy) DELETE /cloud/networks/{id}
List subnets bnerd subnets list data.bnerd_subnets GET /cloud/subnets
Show subnet bnerd subnets get data.bnerd_subnet GET /cloud/subnets/{id}
Create subnet bnerd subnets create bnerd_subnet POST /cloud/subnets
Delete subnet bnerd subnets delete bnerd_subnet (destroy) DELETE /cloud/subnets/{id}
List routers bnerd routers list data.bnerd_routers GET /cloud/routers
Show router bnerd routers get data.bnerd_router GET /cloud/routers/{id}
Create router bnerd routers create bnerd_router POST /cloud/routers
Update router bnerd routers update bnerd_router PATCH /cloud/routers/{id}
Delete router bnerd routers delete bnerd_router (destroy) DELETE /cloud/routers/{id}
Attach router interface bnerd routers attach-subnet bnerd_router_interface POST /cloud/routers/{id}/interfaces
Detach router interface bnerd routers detach-subnet bnerd_router_interface (destroy) DELETE /cloud/routers/{id}/interfaces/{port_id}
List ports data.bnerd_ports GET /cloud/ports
Show port data.bnerd_port GET /cloud/ports/{id}
List floating IPs bnerd floating-ips list data.bnerd_floating_ips GET /cloud/floating-ips
Show floating IP bnerd floating-ips get data.bnerd_floating_ip GET /cloud/floating-ips/{id}
Allocate floating IP bnerd_floating_ip POST /cloud/floating-ips
Release floating IP bnerd_floating_ip (destroy) DELETE /cloud/floating-ips/{id}

Compute — Load Balancers

Operation Dashboard CLI Terraform API
List load balancers bnerd loadbalancers list data.bnerd_loadbalancers GET /cloud/loadbalancers
Show load balancer bnerd loadbalancers get data.bnerd_loadbalancer GET /cloud/loadbalancers/{id}
List listeners data.bnerd_lb_listeners GET /cloud/lb/listeners
List pools data.bnerd_lb_pools GET /cloud/lb/pools
List pool members data.bnerd_lb_pool_members GET /cloud/lb/pools/{id}/members
List health monitors data.bnerd_lb_health_monitors GET /cloud/lb/health-monitors

DNS

Operation Dashboard CLI Terraform API
List zones bnerd dns zones list data.bnerd_dns_zones GET /dns/zones
Create zone bnerd dns zones create bnerd_dns_zone POST /dns/zones
Delete zone bnerd dns zones delete bnerd_dns_zone (destroy) DELETE /dns/zones/{id}
List records bnerd dns records list data.bnerd_dns_records GET /dns/zones/{id}/records
Create record bnerd dns records create bnerd_dns_record POST /dns/zones/{id}/records
Update record bnerd dns records update bnerd_dns_record PATCH /dns/zones/{zone_id}/records/{name}/{type}
Delete record bnerd dns records delete bnerd_dns_record (destroy) DELETE /dns/zones/{zone_id}/records/{name}/{type}
Verify domain POST /dns/domains/{id}/verify

Object Storage (RGW)

Operation Dashboard CLI Terraform API
List RGW users bnerd rgw users list data.bnerd_rgw_users GET /rgw/users
Create RGW user bnerd rgw users create bnerd_rgw_user POST /rgw/users
Delete RGW user bnerd rgw users delete bnerd_rgw_user (destroy) DELETE /rgw/users/{id}
Rotate S3 key bnerd rgw users renew-key POST /rgw/users/{id}/renew_key
List buckets bnerd rgw buckets list data.bnerd_rgw_buckets GET /rgw/users/{id}/buckets
Create bucket bnerd rgw buckets create POST /rgw/users/{id}/buckets
Delete bucket bnerd rgw buckets delete DELETE /rgw/users/{id}/buckets/{name}

Kubernetes

Operation Dashboard CLI Terraform API
List clusters bnerd k8s list data.bnerd_k8s_clusters GET /k8s/clusters
Show cluster bnerd k8s get data.bnerd_k8s_cluster GET /k8s/clusters/{id}
Create cluster POST /k8s/clusters
Delete cluster DELETE /k8s/clusters/{id}
List cloud profiles bnerd cloud-profiles list data.bnerd_k8s_cloudprofiles GET /k8s/cloudprofiles
Show cloud profile bnerd cloud-profiles get GET /k8s/cloudprofiles/{name}

Account & Organization

Operation Dashboard CLI Terraform API
List organizations bnerd org list data.bnerd_organizations GET /organizations
Switch active organization ✓ (org-switcher) bnerd org switch ?organization_id=<uuid> query param
Current account + all memberships GET /accounts/mememberships[]
Active organization for request ✓ (auto-injected) ✓ (auto-injected) ?organization_id=<uuid>current_organization_id
List projects bnerd projects list data.bnerd_projects GET /organizations/{org_id}/projects
Show project bnerd projects get GET /organizations/{org_id}/projects/{id}
Create project bnerd_project POST /organizations/{org_id}/projects
List members bnerd members list GET /memberships
Show member bnerd members get GET /memberships/{id}
Remove member bnerd members delete DELETE /memberships/{id}
Invite member bnerd invitations create POST /invitations
Accept invitation ✓ (email link) bnerd invitations accept PATCH /invite/{token}/accept (unauthenticated)
Create API token POST /organizations/{org_id}/api_tokens

Apps / Service Catalog

Operation Dashboard CLI Terraform API
List apps bnerd apps list data.bnerd_apps GET /apps
Show app bnerd apps get data.bnerd_app GET /apps/{id}
Create app POST /apps
Update app PATCH /apps/{id}
Delete app DELETE /apps/{id}

Site-to-site VPN

The hosted VPN gateway service — see Site-to-site VPN. This is a separate product from the customer-installed WireGuard operator listed under Operators below: it is reconciled onto b'nerd's own shared VPN cluster, not your cluster, and is fully managed through the dashboard, CLI, and API.

Operation Dashboard CLI Terraform API
List gateways bnerd vpn gateways list GET /organizations/{id}/vpn_gateways
Show gateway bnerd vpn gateways get GET /organizations/{id}/vpn_gateways/{id}
Create gateway bnerd vpn gateways create POST /organizations/{id}/vpn_gateways
Delete gateway bnerd vpn gateways delete DELETE /organizations/{id}/vpn_gateways/{id}
Create peer bnerd vpn peers create POST /organizations/{id}/vpn_gateways/{gw}/vpn_peers
Update peer bnerd vpn peers update PATCH /organizations/{id}/vpn_gateways/{gw}/vpn_peers/{id}
Delete peer bnerd vpn peers delete DELETE /organizations/{id}/vpn_gateways/{gw}/vpn_peers/{id}

Operators

Operators are installed and configured via Helm, into your own cluster; the customer-facing operations are declarative (CRD apply/delete). There is no REST API surface for operator management — all interactions go through kubectl and the CRDs. (The WireGuard row below is this self-hosted operator, not the hosted VPN gateway service above — see the note on Site-to-site VPN.)

Managed service Dashboard kubectl / CRDs Terraform API
Object Storage (S3 Operator) ✓ (via Object Storage UI) S3User, S3Bucket CRDs bnerd_rgw_user POST /rgw/users
Managed Nextcloud NextcloudInstance CRD
Volume Backups BackupPolicy CRD
Log Aggregation (Loki) LokiStack CRD
WireGuard VPN Gateway (self-hosted operator) VPNGateway CRD

Notes

  • Terraform data sources are read-only — use them to reference existing resources without managing them.
  • Terraform managed resources support create, read, update (where applicable), and delete; all changes go through terraform plan / terraform apply.
  • CLI output can be switched to JSON or YAML with -o json / -o yaml on any list or show command.
  • Operations marked — are available via the API but do not yet have a dedicated CLI command or Terraform resource. Use the API directly or the Dashboard for those.

See Also