Kubernetes Deployment Governify-Falcon
This guide will help you deploy Governify-Falcon in a Kubernetes cluster.
Prerequisitesβ
- Kubernetes cluster with HELM installed
- A domain with the ability to modify DNS records.
- Ports 80, 443 open for the cluster.
Infrastructure setupβ
- Create Namespace
$ kubectl create namespace governify-falcon
- Install Contour
$ kubectl apply -f https://projectcontour.io/quickstart/contour.yaml
- Wait a few minutes and get the Load Balancer IP Address
$ (kubectl get -n projectcontour service envoy -o json) | jq -r '.status.loadBalancer.ingress[0].ip'
- Install CertManager
$ kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.1.0/cert-manager.yaml
- Create a values.yaml file with the following content
global:
node_env: production
gov_infrastructure: http://falcon-assets-manager/api/v1/public/infrastructure.yaml
services_prefix: .<infrastructure-prefix>
dns_suffix: .<your-DNS-zone>
login_user: governify-admin
login_password: governify-project
assets_manager:
private_key: somerandomkey
- Install charts
$ helm repo add governify https://governify.github.io/helm-charts
$ helm repo update
$ helm install -f values.yaml falcon governify/Governify-Falcon
More information about the configuration options available for Governify-Falcon HELM chart can be found at our HELM Charts repository.
Deploying the system in a Kubernetes cluster Governify-Bluejayβ
For development purposes it is more appropiate to use docker-compose due to its simplicity. Nevertheless, if the production environment is a Kubernetes cluster, it is recommended to test the system on this locally deployed cluster first.
Governify provides Helm charts for deploying Bluejay services inside a Kubernetes cluster. The following steps describe how to locally deploy the infrastructure inside a development cluster (or a single-node cluster like minikube):
Stepsβ
1. Create Namespace
$ kubectl create namespace governify-bluejay
2. Configure kubernetes for assigning NodePorts in range (3000-9000) by adding --service-node-port-range=3000-6000
to the kubernetes kube-apiserver config file. If using docker-desktop check this page.
3. Create a values.yaml file with the following content
global:
node_env: development
gov_infrastructure: <assets_call_to_infrastructure-local.yaml>
login_user: <username>
login_password: <password>
assets-manager:
gov_infrastructure: <local_path_to_infrastructure-local.yaml>
assets_repository: <repository_url> (defaults to current assets repository inside github governify organization)
assets_repository_branch: <branch> (default: main)
4. Install charts
$ helm repo add governify https://governify.github.io/helm-charts
$ helm repo update
$ helm install -f values.yaml <release_name> governify/<chart_name>
More information about the configuration options available for Governify-Bluejay HELM chart can be found at our HELM Charts repository.