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
Create or select the project SSH key
Project-level SSH keys help standardize access inputs across multiple VM creation requests.
- 2
Create the network resource
Use a stable name and CIDR so your client can reason about internal addressing over time.
- 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
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
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.
Related endpoints
/projects/{projectId}/ssh-keysCreate a project SSH key.
/projects/{projectId}/networksCreate a network resource.
/projects/{projectId}/networks/{networkId}/vmsAttach the VM to that network.
/projects/{projectId}/networks/{networkId}/vms/{vmId}Update internal IP or attachment settings.
/projects/{projectId}/public-ipsInspect project public IP resources.
/projects/{projectId}/public-ips/{publicIpId}/port-forwardsCreate an external forwarding rule.