Stay organized with collections
Save and categorize content based on your preferences.
You can create, deploy, and connect to your test virtual machines (VM)
workloads in GDC Sandbox (GDC Sandbox). To create and start a
test VM workload, follow the steps in
Create and start a VM.
To view a list of images GDC Sandbox provides, run:
Upload your key to the VM and create a Kubernetes resource (VirtualMachineAccessRequest) with your public key, username, and time to live (TTL) value for the key.
Initiate a secure tunnel. If you have a running instance of sshuttle as described in Connect to your instance, terminate that process.
sshuttle-rzone1-org-1-data@GDC_SANDBOX_INSTANCE_NAME--no-latency-control\--ssh-cmd'gcloud compute ssh --project PROJECT_NAME --zone ZONE --tunnel-through-iap'\10.200.0.0/16--dns
Replace the following with the values provided to you by the GDC Sandbox team:
GDC_SANDBOX_INSTANCE_NAME: the name of your GDC Sandbox instance.
PROJECT_NAME: the name of your project.
ZONE: the zone containing your GDC Sandbox environment.
While the command is running, run the ssh command to the VM instance in another terminal
ssh-iPATH_TO_PRIVATE_KEYUSERNAME@EXTERNAL_IP
Replace the following values:
PATH_TO_PRIVATE_KEY with the path to the private SSH key
file that corresponds to the public key you added to the VM.
USERNAME with the username that you specified when you
created the SSH key. For example, cloudysanfrancisco_example_com or
cloudysanfrancisco.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-04 UTC."],[],[],null,["# Deploy a VM workload\n\nYou can create, deploy, and connect to your test virtual machines (VM)\nworkloads in GDC Sandbox (GDC Sandbox). To create and start a\ntest VM workload, follow the steps in\n[Create and start a VM](/distributed-cloud/hosted/docs/latest/gdch/application/ao-user/vms/create-a-vm/create-and-start).\n\nTo view a list of images GDC Sandbox provides, run: \n\n kubectl --kubeconfig \u003cvar translate=\"no\"\u003eKUBECONFIG\u003c/var\u003e get\n virtualmachineimage.virtualmachine.gdc.goog -n gpc-system\n\nReplace \u003cvar translate=\"no\"\u003eKUBECONFIG\u003c/var\u003e with the path of your kubeconfig file for the Management API server.\n\nConnect to a VM\n---------------\n\n1. Follow the steps in [Connect to a VM](/distributed-cloud/hosted/docs/latest/gdch/application/ao-user/vms/connect-to-vm/connect-to-a-vm#api) to:\n\n 1. Create an SSH key pair and a username.\n 2. Upload your key to the VM and create a Kubernetes resource (VirtualMachineAccessRequest) with your public key, username, and time to live (TTL) value for the key.\n2. Initiate a secure tunnel. If you have a running instance of `sshuttle` as described in [Connect to your instance](/distributed-cloud/sandbox/latest/connect), terminate that process.\n\n sshuttle -r zone1-org-1-data@\u003cvar translate=\"no\"\u003eGDC_SANDBOX_INSTANCE_NAME\u003c/var\u003e --no-latency-control \\\n --ssh-cmd 'gcloud compute ssh --project \u003cvar translate=\"no\"\u003ePROJECT_NAME\u003c/var\u003e --zone \u003cvar translate=\"no\"\u003eZONE\u003c/var\u003e --tunnel-through-iap' \\\n 10.200.0.0/16 --dns\n\n Replace the following with the values provided to you by the GDC Sandbox team:\n - \u003cvar translate=\"no\"\u003eGDC_SANDBOX_INSTANCE_NAME\u003c/var\u003e: the name of your GDC Sandbox instance.\n - \u003cvar translate=\"no\"\u003ePROJECT_NAME\u003c/var\u003e: the name of your project.\n - \u003cvar translate=\"no\"\u003eZONE\u003c/var\u003e: the zone containing your GDC Sandbox environment.\n3. While the command is running, run the ssh command to the VM instance in another terminal\n\n ssh -i \u003cvar translate=\"no\"\u003ePATH_TO_PRIVATE_KEY\u003c/var\u003e \u003cvar translate=\"no\"\u003eUSERNAME\u003c/var\u003e@\u003cvar translate=\"no\"\u003eEXTERNAL_IP\u003c/var\u003e\n\n Replace the following values:\n - \u003cvar translate=\"no\"\u003e\u003ccode translate=\"no\" dir=\"ltr\"\u003ePATH_TO_PRIVATE_KEY\u003c/code\u003e\u003c/var\u003e with the path to the private SSH key file that corresponds to the public key you added to the VM.\n - \u003cvar translate=\"no\"\u003e\u003ccode translate=\"no\" dir=\"ltr\"\u003eUSERNAME\u003c/code\u003e\u003c/var\u003e with the username that you specified when you created the SSH key. For example, `cloudysanfrancisco_example_com` or `cloudysanfrancisco`.\n - \u003cvar translate=\"no\"\u003e\u003ccode translate=\"no\" dir=\"ltr\"\u003eEXTERNAL_IP\u003c/code\u003e\u003c/var\u003e with the external [ingress IP address](/distributed-cloud/hosted/docs/latest/gdch/application/ao-user/vms/connect-to-vm/ip-addresses#ingress) of the VM."]]