Skip to main content
The VMS master is the central control plane for Vero Monitor Service.
Operating System Requirement: The VMS Master runs on Kubernetes (K3s) and only supports the Linux operating system (Ubuntu, CentOS, RHEL, Debian). Trialling or installing the Master on Windows is not supported.

Master Architecture on K3s (Linux)

Below is the conceptual architecture of the VMS Master components running on a Linux K3s cluster: VMS Master Architecture on K3s

Prerequisites (Master)


Deployment Flow (Step - Check - Result)

The VMS Master stack is fully packaged and automated via Kustomize. You can deploy the whole stack in a single command or apply layers in sequence:
1

1. Initialize Namespace and Bootstrap Secrets

  • Step: Create the vms namespace and apply the bootstrap layer to automatically generate TLS certs, Influx tokens, and agent service keys.
  • Check: Monitor the bootstrap job and secrets status:
  • Result: The vms-bootstrap job ends with status Completed. Secrets vms-metrics-ingress-secret and influxdb3-secret are created.
2

2. Deploy Data Plane (PostgreSQL & InfluxDB 3)

  • Step: Deploy PostgreSQL and InfluxDB 3 databases. The system automatically launches schema initialization and database provisioning jobs (vms-pg-schema-load and influxdb3-create-db).
  • Check: Verify database pods are running and setup jobs completed:
  • Result: postgres-internal and influxdb3 pods show Running (1/1). Database setup and schema load jobs show Completed.
3

3. Deploy Core Services and Ingress Routes

  • Step: Apply core VMS services (Ingress, Dashboard, Checker, Synthetic, Alert). Pod migrations are executed automatically during start-up.
    (Or deploy the whole stack in one command: kubectl apply -k . from root)
  • Check: Verify service readiness and test the HTTPS Ingress endpoint:
  • Result: All pods display Running. The curl request returns 200 OK with JSON {"status":"healthy"}.
4

4. Retrieve Agent Ingest API Key

  • Step: Extract the auto-minted service API key from the secret:
    Note: If you need to generate separate custom keys for specific agents, configure and run services/metrics-ingress/create-key-job.yaml.
  • Check: Verify the printed string is a random key hash.
  • Result: The secure agent key vms_agent_... is printed. Save it to configure VMS Agent connections.

Acceptance Criteria

1. Success Criteria

  • All pods in the vms namespace show Running or Completed.
  • Ingress resolves with valid SSL Certs (no client certificate or x509 validation errors).
  • Dashboard is accessible and operators can log in.

2. Failure Signals & Troubleshooting

  • Pod is Pending: Indicates resource constraints or storage volume mounting failures.
    • Fix: Run kubectl describe pod <pod-name> -n vms to inspect.
  • Pod displays CrashLoopBackOff: Caused by bad configuration, missing secrets, or database connection refusals.
    • Fix: Check the previous logs with kubectl logs <pod-name> -n vms --previous.
  • 401 Unauthorized errors: Mismatched or non-existent API keys.
    • Fix: Re-run the key generator and ensure the database auth entries are correct.