This repository contains code to deploy and configure for infrastructure related to Flexi Soft.
We use Pulumi to manage infrastructure as code. Pulumi is a tool for creating, deploying, and managing cloud infrastructure. It is open source and supports multiple cloud providers.
We mainly use Kubernetes, currently deployed at Google Cloud Platform.
At the core, we have a Kubernetes cluster. This cluster has a namespace for each environment, along with a few system namespaces. We use Caddy to provide a reverse proxy for all services and handle automatic SSL certificates.
The portal service uses Redis to store session data.
flowchart TD
conf
conf-->github
conf-->gke-->k8s
github-->bot-secret["NPM secrets for bot"]
k8s-->caddy
namespace-->Deployment:portal-app
Deployment:portal-app-->Ingress:portal-app
caddy -->Ingress:portal-app
caddy -->Ingress:portal-api
k8s-->namespace
namespace-->Deployment:portal-api
Deployment:portal-api-->Ingress:portal-api
namespace-->Deployment:redis
Deployment:redis-->Deployment:portal-api
We utilize a 12-factor to manage most configuration.