Demo application exploring microservices and k8s.
- Docker
- Kubernetes
- Node JS (14.x)
Web traffic to the Kubernetes cluster requires an ingress controller to be configured, such as ingress-nginx. Other alternatives are available. Refer to first party documentation on setting up.
The application expects to route traffic based on an application.local domain/host. You can add an entry to your /etc/hosts file (or equivalent) to map application.local to localhost or 127.0.0.1. Alternatively, edit the host value in the infrastructure/k8s/ingress-srv.yml file.
Some services within the application are reliant upon API keys and/or other secrets; these are managed via Kubernetes secrets and should be provided/configured ahead of time:
kubectl create secret generic jwt-key --from-literal="JWT_KEY=<key>"
kubectl create secret generic stripe-key --from-literal="STRIPE_PUBLISHABLE_KEY=<key>"
kubectl create secret generic stripe-secret --from-literal="STRIPE_KEY=<key>"
For the sake of simplicity, this project uses Skaffold to manage building and deploying Docker images to a (local) Kubernetes cluster. To launch the application/services, navigate to the root of the project and execute:
skaffold dev
Once all of the services are bootstrapped, you should now be able to navigate a browser to https://applicaton.local to view the NextJS client. Note that your browser will/may present certificate errors/warnings.
See CHANGELOG.md
This project is licensed under the ISC License - see the LICENSE.md file for details