> ## Documentation Index
> Fetch the complete documentation index at: https://docs.akua.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Local testing

> Test your applications locally with Multipass before deploying to production

<Frame>
  <img className="block dark:hidden" src="https://mintcdn.com/akua-1dce587a/3H5lVc027NQakOso/images/heros/local-testing-light.svg?fit=max&auto=format&n=3H5lVc027NQakOso&q=85&s=7f86412c53afa5d03d782fdeb29c0fff" alt="A local testing path from laptop environment through local cluster rehearsal to a production-ready installation." width="1536" height="864" data-path="images/heros/local-testing-light.svg" />

  <img className="hidden dark:block" src="https://mintcdn.com/akua-1dce587a/3H5lVc027NQakOso/images/heros/local-testing-dark.svg?fit=max&auto=format&n=3H5lVc027NQakOso&q=85&s=d6812a7a9ea6b48a2834a001a2066c41" alt="A local testing path from laptop environment through local cluster rehearsal to a production-ready installation." width="1536" height="864" data-path="images/heros/local-testing-dark.svg" />
</Frame>

<Tooltip headline="Multipass" tip="Multipass is a lightweight VM manager by Canonical that lets you quickly spin up Ubuntu VMs on your local machine. It's designed specifically for development and testing scenarios, allowing you to test configurations without cloud costs.">Multipass</Tooltip> is the perfect tool for testing worker configurations locally without any cloud costs. Built by Canonical specifically for testing scenarios, Multipass lets you quickly spin up Ubuntu VMs on your local machine to test worker setups before buying production machines. It provides free local testing, rapid iteration (quickly create, destroy, and recreate test workers), and production simulation (test exact worker setup procedures in a local environment).

<Warning>
  **Performance considerations**: Local testing with Multipass will be slower than production servers due to your home internet connection (typically much slower than datacenter 1–10+ Gbps links) and limited local resources. Ensure your VM has at least 1 CPU and 3 GB RAM for reliable testing.
</Warning>

<Note>
  Akua's managed <Tooltip headline="KaaS" tip="KaaS (Kubernetes as a Service) is Akua's fully managed Kubernetes infrastructure. Akua handles the control plane and all Kubernetes operations on your workers, while you maintain control over infrastructure choices and billing.">KaaS</Tooltip> architecture is designed so your workers don't need a public IP address. When a worker starts, it automatically creates an outbound <Tooltip headline="Konnectivity" tip="Konnectivity is a Kubernetes networking component that enables secure communication between the control plane and worker nodes through encrypted tunnels. It allows the control plane to reach worker nodes even when they don't have public IP addresses, working behind firewalls and NAT.">Konnectivity</Tooltip> tunnel to the <Tooltip headline="Control Plane" tip="The control plane is the management layer of a Kubernetes cluster. It manages the cluster's state, schedules workloads, and handles API requests. Akua manages the control plane for you in managed clusters.">control plane</Tooltip>, allowing the control plane to reach the <Tooltip headline="Kubelet" tip="The kubelet is an agent that runs on each worker node in a Kubernetes cluster. It communicates with the control plane and ensures containers are running in pods as specified.">kubelet</Tooltip> securely.
</Note>

## Prerequisites

Install Multipass on your development machine:

<AccordionGroup>
  <Accordion title="macOS installation" icon="apple" defaultOpen>
    **Using Homebrew (recommended)**

    ```bash Install Multipass theme={null}
    brew install multipass
    ```

    **Manual download**

    Download from [https://multipass.run](https://multipass.run)
    Install the .pkg file

    ```bash Verify installation (macOS) theme={null}
    multipass version
    ```
  </Accordion>

  <Accordion title="Linux installation" icon="linux">
    **Using Snap (recommended)**

    ```bash Install Multipass theme={null}
    # Ubuntu/Debian and most Linux distributions
    sudo snap install multipass
    ```

    **Manual download**

    Download from [https://multipass.run](https://multipass.run)
    Follow distribution-specific installation instructions

    ```bash Verify installation (Linux) theme={null}
    multipass version
    ```
  </Accordion>

  <Accordion title="Windows installation" icon="windows">
    **Using Chocolatey (recommended)**

    ```powershell Install Multipass theme={null}
    choco install multipass
    ```

    **Manual download**

    Download installer from [https://multipass.run](https://multipass.run)
    Run the .exe installer

    ```powershell Verify installation (Windows) theme={null}
    multipass version
    ```
  </Accordion>
</AccordionGroup>

## Setting up a test worker

<Steps>
  <Step title="Create your cluster">
    First, ensure you have an active cluster in your [Akua dashboard](https://akua.dev/clusters). You'll need the worker setup command from this cluster.
  </Step>

  <Step title="Launch Multipass VM">
    Create a new Ubuntu VM with adequate resources for testing:

    ```bash Create and verify VM theme={null}
    # Create VM with recommended specs for testing
    multipass launch --name akua-worker --cpus 2 --memory 4G --disk 20G

    # Verify VM is running
    multipass list
    ```

    <Tip>
      Use `--cpus 4 --memory 8G` for more realistic production testing scenarios.
    </Tip>
  </Step>

  <Step title="Connect to your test VM">
    ```bash Connect to VM theme={null}
    # SSH into the Multipass VM
    multipass shell akua-worker
    ```

    You're now inside the Ubuntu VM, ready to test the worker setup.
  </Step>

  <Step title="Get worker setup command and test">
    In your Akua dashboard, navigate to your [active cluster](https://akua.dev/clusters), click the **"Quick Actions"** <Icon icon="ellipsis-vertical" /> menu, select **"Add a worker"**, and copy the bootstrap command.

    Inside the Multipass VM, run the worker setup command:

    The setup will automatically:

    * Install Kubernetes components
    * Configure networking
    * Join the worker to your cluster
    * Establish outbound tunnel to control plane
  </Step>

  <Step title="Verify connection">
    Check your Akua dashboard — the worker should appear as "Active" within 1–2 minutes.

    <Success>
      Your test worker is now connected and ready for testing product installs.
    </Success>
  </Step>
</Steps>

## Testing product installs

With your Multipass worker connected, you can test complete product install workflows:

1. **Create test products** in your Akua dashboard
2. **Deploy to test cluster** using your Multipass worker
3. **Verify installs** work correctly
4. **Iterate configurations** without cloud costs

<Note>
  **Product ingress considerations**: If your product exposes services and expects a public IP, you'll need to use your local VM's IP address instead. Get it with `multipass info akua-worker`. This depends on each product's deployment — some products use cloudflared tunnels which work without extra configuration, while others may require manual IP configuration for local testing.
</Note>

## Cleanup and management

### VM management

```bash Manage VM lifecycle theme={null}
# Stop the VM when not testing
multipass stop akua-worker

# Start it again when needed
multipass start akua-worker

# Delete when done testing
multipass delete akua-worker
multipass purge
```

### Worker cleanup

When you're done testing, remove the worker from your cluster:

1. In the Akua dashboard, go to your cluster
2. Find the Multipass worker in the worker list
3. Remove it to keep your cluster clean

## Advanced testing scenarios

<Tabs>
  <Tab title="Multiple test workers">
    Test multi-worker scenarios by creating multiple VMs:

    ```bash Create multiple test workers theme={null}
    # Create additional test workers
    multipass launch --name akua-worker-2 --cpus 2 --memory 4G --disk 20G
    multipass launch --name akua-worker-3 --cpus 2 --memory 4G --disk 20G

    # Connect each one using the same worker setup command
    ```
  </Tab>

  <Tab title="Resource constraints testing">
    Test with minimal resources to simulate constrained environments:

    ```bash Create minimal test worker theme={null}
    # Minimal test worker
    multipass launch --name akua-minimal --cpus 1 --memory 2G --disk 10G
    ```
  </Tab>

  <Tab title="Network simulation">
    Test network scenarios by configuring Multipass networking:

    ```bash Create network test VM theme={null}
    # Custom network configuration
    multipass launch --name akua-network-test --network name=bridge
    ```
  </Tab>
</Tabs>

## Troubleshooting

<AccordionGroup>
  <Accordion title="VM won't start">
    * Check available system resources (CPU, RAM, disk)
    * Verify Multipass service is running: `multipass version`
    * Try with lower resource requirements: `--cpus 1 --memory 2G`
  </Accordion>

  <Accordion title="Worker setup fails">
    * Ensure VM has internet connectivity: `curl -I https://akua.dev/worker.sh`
    * Verify the worker token hasn't expired (30 minutes)
    * Try the setup command with `sudo` explicitly
  </Accordion>

  <Accordion title="Worker doesn't appear in dashboard">
    * Wait 2–3 minutes for registration to complete
    * Check VM system time is synchronized
    * Verify outbound HTTPS connections work
    * Check Akua dashboard shows cluster as "Active"
  </Accordion>
</AccordionGroup>

## Related topics

<CardGroup cols={2}>
  <Card title="Add workers" icon="server" href="/clusters/add-workers">
    Use the same commands on production servers.
  </Card>

  <Card title="Clusters overview" icon="circle-info" href="/clusters">
    Understand how clusters work in Akua.
  </Card>

  <Card title="Create a cluster" icon="plus" href="/clusters/create">
    Set up a managed cluster to test against.
  </Card>

  <Card title="Storage" icon="database" href="/clusters/storage">
    Add persistent storage to your test cluster.
  </Card>
</CardGroup>
