Skip to main content

Guide

Configure Access and Networking

This guide covers the control points you use after or around provisioning: project SSH keys, private network membership, internal addressing, and public port exposure through an existing public IP resource.

Create a reusable project SSH key

If your client manages SSH access centrally, create project-level keys once and reuse the resulting identifiers across VM creation flows.

curl --request POST \
  --url 'https://client-api.dc.dev.k8s.zenno.services/projects/{projectId}/ssh-keys' \
  --header 'X-API-Key: <api-key>' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data '{
"name": "workstation-key",
"publicKey": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAA..."
}'

Create a private network and attach a VM

Start with the project network resource, then attach the VM to that network with a chosen or automatically assigned internal address.

curl --request POST \
  --url 'https://client-api.dc.dev.k8s.zenno.services/projects/{projectId}/networks' \
  --header 'X-API-Key: <api-key>' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data '{
"name": "backend-private",
"cidr": "10.40.0.0/24"
}'
  1. 1

    Create or select the project SSH key

    Project-level SSH keys help standardize access inputs across multiple VM creation requests.

  2. 2

    Create the network resource

    Use a stable name and CIDR so your client can reason about internal addressing over time.

  3. 3

    Attach the VM to the network

    Use the attach call to place the VM into that network. Use the update call later if the internal address or attachment settings must change.

  4. 4

    Inspect project public IP resources

    Public exposure flows operate from an existing publicIpId. Query the project public IP list to locate the correct target resource.

  5. 5

    Create forwarding rules for external access

    Each forwarding rule maps a public port and protocol to the VM inside the project network.

Create a port forwarding rule

This rule binds a public port on an existing project public IP to the selected VM and internal service port.

curl --request POST \
  --url 'https://client-api.dc.dev.k8s.zenno.services/projects/{projectId}/public-ips/{publicIpId}/port-forwards' \
  --header 'X-API-Key: <api-key>' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data '{
"vmId": "00000000-0000-0000-0000-000000000000",
"mode": "SpecificPorts",
"protocol": "Tcp",
"externalPort": 8080,
"internalPort": 80
}'

Important constraint

The current API surface documents forwarding rules beneath an existing publicIpId. If your workflow depends on allocating public IPs separately, wait for the updated swagger or use the provisioning-time public IP options in the VM creation request.