In order to get started with using Velocity, you need to setup your infrastructure to enable Velocity to manage your Velocity Environments and resources.
Infrastructure requirements for deploying Velocity fit into the following domains:
Velocity can be deployed with pre-existing application clusters, which can be an easier onboarding experience.
- 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:
- KMS - When using KMS, please validate that you are able to access the KMS and that the CSI driver is located in the cluster. For more information on the AWS CSI Driver please see the CSI documentation.
- Kubernetes Secret Resources - When using Kubernetes Secret Resources, you will need to be able to copy over the secret resources. This can be accomplished using a Cluster Operator Daemon such as Kubed.
Please validate that you have all the controllers required for your application flow.
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:
- Create a new domain
- Create a certificate
- Assign the certificate to the domain
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,
- 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 be
- 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
- 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 \
Release "velocity-operator" has been upgraded. Happy Helming!
LAST DEPLOYED: Wed Feb 22 19:42:47 2023
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!
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
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.