Production and QA Deployments
In order to follow our "Service First" guiding principle, we deploy Nexodus continuously as a service using GitOps.
Kubernetes Manifests
Our project is deployed to Kubernetes using kustomize. This enables Nexodus to be easily adapted for different deployment scenarios.
The base Nexodus manifests live in ./deploy/nexodus/base
, and we offer a number of overlays:
- Local Development -
./deploy/nexodus/overlays/dev
- ROSA (QA) -
./deploy/nexodus/overlays/qa
- ROSA (Production) -
./deploy/nexodus/overlays/prod
Build Pipeline
We use GitHub Actions as our build pipeline.
Each Pull Request is gated by automated tests that are run in the build
workflow.
On each merge to the main
branch, the deploy
workflow is triggered.
This workflow:
- Builds container images and pushes them to quay.io
- Updates the image tags in
./deploy/nexodus/overlays/qa
and commits this change back to the repository
This ensures that the desired state of our deployments is checked into git.
Deployment Pipeline
Deployment of Nexodus on OperateFirst is managed by ArgoCD.
ArgoCD will watch this repository for changes and ensure that our deployment is up-to-date. It will prevent our application from deviating from the desired state.
Links
These resources are only accessible to those with access to the cluster hosting our deployments.