Search…
⌃K

Infrastructure Setup

In order to get started with using Velocity, you need to setup your infrastructure to enable Velocity to manage your Velocity Environments and resources.
Already, have your infrastructure setup? Click here to Setup Velocity!
Velocity Architecture

1. Requirements

Infrastructure requirements for deploying Velocity fit into the following domains:

Cluster Requirements

Cluster Provisioning

Velocity can be deployed with pre-existing application clusters, which can be an easier onboarding experience.

Cluster Setup

  • Configure your permissions to enable image pulling based on your current setup.
  • Install all the relevant components for your app, some common examples:
    • Ingress Class - For customizable Ingress Classes such as Amazon Load Balancer please refer to the ALB Documentation for setup.
    • Storage Class - To validate that you have all storage classes for your persistent volumes, please run the following kubectl command: kubectl get storageclasses.storage.k8s.io
    • Secrets Management (KubeD, KMS, etc.)- the most common ways to manage your secrets:
Please validate that you have all the controllers required for your application flow.

Domain and Certificates

Having your own domain allows Velocity to create a public URI for your Velocity Services, enabling you to access your Velocity Services via your own Velocity domain.
In order to have your own domain with Velocity, you must do the following:

2. Install the Velocity Operator

Velocity uses an operator installed in your Kubernetes cluster to spin up isolated, ephemeral environments. Once the operator is installed, your cluster is considered an active Velocity Context.
For easier onboarding, it is best to use a cluster with an instance of your application already deployed.
  • Open the "Account Settings" -> "Contexts" page and click "Add a Context".
  • Context name - Specify a name for your Velocity Context. Use a unique name that identifies your cluster. For example, dev-cluster.
  • Domain - (Optional) Specify a domain for your Velocity Context:
    • For internet-facing URLs, choose a domain that will point to your Ingress Controller used by your environments.
    • For local clusters (Minikube/kind) - The domain field must belocalhost.
    • To keep the environments private, do not supply a domain name.
The Velocity Context domain is being used to provide access to environments through public URIs.
$ kubectl config current-context
minikube
  • Copy the commands and run them in your terminal:
The API Token will disappear after clicking Done, so make sure to save it aside for further use.
  • The result should be:
$ helm upgrade --install velocity-operator velocity/velocity-operator -n velocity \
--create-namespace \
--set secrets.authToken="f00abfe3-432a-494e-bcc7-f5c4aca90897"
Release "velocity-operator" has been upgraded. Happy Helming!
NAME: velocity-operator
LAST DEPLOYED: Wed Feb 22 19:42:47 2023
NAMESPACE: velocity
STATUS: deployed
REVISION: 2
TEST SUITE: None
  • Confirm that the context has been added to your Velocity account and that the operator is "Active":
🎉
That's it! You've installed the Velocity Operator and you're ready to deploy your applications as isolated on-demand environments!

3. (Optional) Enable the Creation of Cloud Resources

Velocity allows you to leverage AWS resources in your Velocity Environments. To do this, you need to give the Velocity Operator permissions to create cloud resources on your behalf. You can start an interactive setup wizard by running the following:
veloctl operator enable-cloud-resources
For more information on enabling cloud resources please see our documentation here.
Before enabling cloud resources you must set the AWS cloud profile.

4. (Optional) Install the Env Sync Image Registry

Env Sync allows you to sync your local code to the remote environment. This allows you to work on a Velocity Service locally to test your changes and modifications before syncing the code to the remote environment.
For information on installing the Env Sync infrastructure requirements, please see our documentation here.

Next Steps