Single VM Setup (POC Only)#
⚠️ NOT PRODUCTION READY - This setup uses a single VM with K3s (lightweight Kubernetes) and is intended for proof-of-concept and evaluation purposes only. It does not provide high availability, failover, or rolling maintenance capabilities. For production deployments, use the RKE2 multi-node cluster.
This guide walks through deploying Ametnes Platform services on a single Ubuntu VM with K3s. It is designed for DevOps engineers, system administrators, or technical teams evaluating the platform in their own environment.
Prerequisites#
| Requirement | Specification |
|---|---|
| OS | Ubuntu 20.04 LTS or later |
| CPU | 2 vCPUs minimum |
| RAM | 8 GB minimum |
| Storage | 100 GB minimum |
| Network | Open ports for SSH (22) and HTTPS (443) |
You also need:
- SSH access to the VM with sudo privileges
- A public IP address (or private IP for on-premise) reachable from the Ametnes control plane
- A static/reserved IP assigned to the VM (cloud VMs may get a new IP on reboot)
Step 1: Sign Up#
Create a free Ametnes Platform account at https://cloud.ametnes.com. No credit card required.
Step 2: Provision the VM#
Provision an Ubuntu 20.04 LTS (or later) VM meeting the specifications above. Ensure firewall rules allow SSH and HTTPS traffic.
Step 3: Install K3s and the Ametnes Cloud Agent#
3.1 SSH into the VM#
3.2 Get your Location UUID#
- Log in to your Ametnes Platform account
- Navigate to Service Locations in the left menu
- Copy the default location's UUID
3.3 Run the setup script#
Run the setup script as a single command, replacing <your.vm.ip.address> and <location-uuid> with your values:
curl -fsSL https://ametnes-assets.lon1.digitaloceanspaces.com/packages/setup-k3s.sh | bash -s -- --ip-address <your.vm.ip.address> --location-id <location-uuid>
Use the public IP for cloud VMs or private IP for on-premise environments.
After a short while, the location will appear online in your Ametnes Platform console.
Step 4: Deploy a Service#
- Navigate to the Services dashboard using the left menu
- Click New Service
- Filter for a service (e.g., Open WebUI) and select Create
- Fill in the form:
- Name: e.g.,
OpenWebUI-POC - Description: Optional description
- Version: Select a version from the list
- Location: Select your configured location
- Configure any service-specific settings
- Click Create
Step 5: Test Connectivity#
- Navigate to the Services dashboard
- Wait for the service status to change to ready
- Click the Admin button to view service details
- Copy the endpoint, username, and password
- Open the service URL in your browser and log in
Step 6: Clean Up#
When done testing, delete services from the Admin section of each service to free up resources.
Using an Existing Kubernetes Cluster#
If you already have a Kubernetes cluster (EKS, AKS, GKE, on-premise, etc.) instead of provisioning a new VM, skip the VM setup and run the Helm commands directly:
helm repo add ametnes https://ametnes.github.io/helm && helm repo update
helm upgrade --install --create-namespace --namespace ametnes-system ametnes-cloud-agent ametnes/cloud-agent --set agent.config.location="<location-uuid>"
Ensure kubectl is configured with cluster admin privileges and Helm 3.x is installed.