This repo contains a collection of microservice code each hosted in their own dockerised containers. The entire collection is to be run on a Kubernetes cluster, using GitHub workflows for Prod and Skaffold for continuous deployment into local Docker and Kubernetes instances. Folder Structure:
- [.github] Github workflow scripts
- [infra] Kubernetes Service Container Build and Deploy Configuration
- [common] Common NPM module which contains Event, Publisher and Listener base components
- [client] NextJS User Interface
TODO
In order to run this container you'll need the following installed:
- Docker: Windows, OS X, Linux
- Kubernetes: Accessible via 'kubectl'. This can either be enabled in Docker Desktop / Settings, or access configured to a AWS EKS or Google Kubenetes Cluster. See Getting Started.
- Ingress NGINX: Provides access to docker containers running inside a clusters. Steps to enable for each platform can be found on the Kubernetes NGINX Installation Guide
For Continuous Test / Development:
- Skaffold: Skaffold handles the workflow for building, pushing and deploying your application. Install Guide. If using Mac OSX, I strgonly suggest using Homebrew package management to install Skaffold.
- Add Secrets to Kubernets Cluster by running (insert the key/text win the '$' placeholders) from a local terminal:
kubectl create secret generic jwt-secret --from-literal=JWT_KEY=$RANDOM_TEST
- Download this repo's source code and start a terminal from with the directory.
- Build and Deploy the your Dev environment by running:
skaffold dev