Skip to main content
Live. This area is documented as current, user-reliable behavior.

Goal

Manage provider resources without bypassing StackShift ownership, idempotency, reconciliation, or deletion safety.

Prerequisites

  • A provisioned BYOCloud node
  • A provider that supports the resource type you want to use

Workflow

1
Open the Cloud resources section on a BYOCloud node.
2
Refresh provider state and inspect placement, addressing, and tracked cloud resources for that node.
3
Create, inspect, detach, or safely delete provider-backed volumes where supported.
4
Create and review volume snapshots where the provider supports snapshots.
5
Allocate or release a stable public IP where supported, and use retry, reboot, or delete node actions when needed.

Current provider support

  • AWS: EBS volumes, EBS volume snapshots, VPC/subnet/AZ metadata, Elastic IPs
  • DigitalOcean: block storage volumes, volume snapshots, region/network metadata, Reserved IPs
  • Hetzner: cloud volumes, location metadata, Floating IPs; attached-volume snapshots are intentionally unsupported
  • Azure: managed disks, disk snapshots, resource-group/VNet/subnet metadata, static Public IPs

Node-scoped inventory and refresh

  • Inventory records provider resource ID, region or placement, provider state, StackShift ownership, safe-to-delete state, last synchronization, and operation state.
  • Refresh queries only the selected node and never triggers global reconciliation.
  • Use refresh after a provider incident, quota change, or emergency provider-console action.

Volumes

  • Create after the node is active with a name, positive size, mount path, and filesystem; the default filesystem is ext4.
  • Hetzner volumes must be at least 10 GB.
  • Detach preserves the provider volume and its snapshots.
  • Delete is refused while dependent snapshots exist or the volume is not safe to delete.

Snapshots

  • DigitalOcean, AWS, and Azure support volume snapshots; Hetzner attached-volume snapshots are not advertised.
  • Wait for available before relying on a snapshot for recovery.
  • Deleting a volume never silently deletes dependent snapshots.

Stable public IP and reboot

  • Allocate one supported provider-native stable address and inspect provider ID, address, assignment, and last sync.
  • A stable workload IP never exposes agent TCP 8443; agent access remains WireGuard-only.
  • Reboot makes the node unschedulable until overlay, certificate, heartbeat, runtime, Node Guard, and Caddy recover.

Safe deletion saga

  • Deletion returns 409 with structured blockers for projects, stacks, databases, volumes, and snapshots.
  • After blockers are cleared, StackShift removes add-ons and networks in dependency order.
  • The provider instance must be confirmed absent before identity revocation and node soft deletion.
  • Provider failures remain persisted and retryable; resources are never marked deleted optimistically.

Terraform contract

  • Resources: stackshift_byoc_provider_connection, stackshift_byoc_node, stackshift_byoc_volume, stackshift_byoc_snapshot, and stackshift_byoc_static_ip.
  • Terraform derives mutation idempotency keys from immutable resource identity and persists them when omitted, so process recovery repeats the same provider request.
  • Node, volume, snapshot, and stable-IP resources wait for provider-confirmed terminal state.
  • Import volumes and snapshots with NODE_ID:RESOURCE_ID.

Expected result

Operators can provision and operate BYOCloud nodes and their supported provider-backed resources directly from StackShift.

Common failures

  • Dependent snapshots block volume deletion
  • Snapshot or volume remains in a provider transition
  • Stable IP quota is exhausted
  • Provider placement or address metadata drifted
  • Node deletion returns explicit workload or add-on blockers

BYOCloud overview

Provision nodes in your own cloud account with scoped or federated access, durable operations, signed enrollment, private agent networking, and provider-confirmed cleanup.

Connect a BYOCloud node

Configure scoped or federated cloud access, validate exact permissions, provision idempotently, and follow bootstrap through schedulable health.

Nodes view

Use the node-focused operations surface when you need to think about capacity, health, and runtime readiness across hosts.