Running Dependencies deployment
A deployment to a staging environment is not permitted unless a production environment exists in the GitHub environment. Please ensure a production environment is configured before proceeding with any staging deployment.
Preparation steps
This section explains how to deploy OpenCRVS dependencies grouped in 2 helm charts:
Ingress controller: Traefik helm chart
Datastores (via the OpenCRVS dependencies Helm chart):
MongoDB
PostgreSQL
Elasticsearch
Redis
MinIO
InfluxDB
Environment configuration script (yarn environment:init) prepared configuration files (values.yaml) for deployment with default parameters. Navigate to environments folder inside infrastructure repository and review configuration files.
Here is an example directory structure for a development environment:
environments/
├── development
│ ├── dependencies
│ │ └── values.yaml
│ ├── opencrvs-services
│ │ └── values.yaml
│ └── traefik
│ └── values.yaml
└── README.mdA default configuration, created by the yarn environments:init script, is sufficient for inital deployments, but sometimes you may need to adjust TLS / SSL configuration in environments/traefik/values.yaml or tweak some properties here like static storage, etc.
Run dependencies deployment
Navigate to GitHub Actions within
infrastructurerepositorySelect "Deploy Dependencies" action
Select "Target environment" from dropdown menu, all environments created at step should be listed here.
Click "Run workflow" button
Verification steps
Verify workflow was completed successfully
Verify resources are up and running after deployment:
kubectl get namespaces: You should see 2 new namespaces created (traefik,opencrvs-deps-<env>). NOTE: Check how to runkubectlat Kubernetes cluster access.kubectl get pods -n traefik: Make sure traefik pod is up and runningkubectl get pods -n opencrvs-deps-<environment>: make sure datastores are up and running. Example output: If monitoring is enabled, you will also see filebeat, metricbeat, kibana pods.
Verify that MinIO and Kibana are available:
Kibana URL:
https://kibana.<your domain>Username and password are stored as Kubernetes secretelasticsearch-opencrvs-usersinopencrvs-deps-<environment>namespace.MinIO URL:
https://minio.<your domain>. Username and password are stored as Kubernetes secretminio-opencrvs-usersinopencrvs-deps-<environment>namespace.
NOTE: Credentials are stored at GitHub secrets or can be fetched namespace
opencrvs-deps-<env>.
Last updated