Currently deployed via a helm manged GKE cluster at stephenrmason.net
Above currently non-functional due to cost of continuously running multiple pods in GKE.
- Basic tests are run via a github workflow Here
- Application is containerized with docker and pushed to ghcr Here
- Google resournces created via terraform files Here
- Docker image is pulled by Kubernetes deployment, traffic from stephenrmason.net is directed to the pods via a LoadBalancer, code Here and cluster Here
A demo of a GCP based CI/CD Pipeline. CI (Git Actions) CD (ArgoCD/Kubernetes/GKE)
This project is purely for example/educational purposes. For a production static web page I would just publish the container and use Google Cloud Run, which is much more cost effective
Add terraform scripts to generate a GKE clusterCreate K8's manifests files for Django Apuse Google Manged SSL to create a cert for [PLACEHOLDER DOMAIN NAME]NOTE: Did not need to do this yet, will implement laterAcquire domain name for project
Add DNS entry that points to the LoadBalancer of k8'S SERVICEPackages K8's manifest into a Helm chartRemove (currently) redundant k8's manifest filesAdd terraform code to generate bucket for static django app files- Generate static storage bucket
- set public ACL for static storage bucket.
Deploy ArgoCD via helm to my cluster- ON HOLD: argoCD testing will take place in local minikube cluster due to cost constraints.
- Setup and configure external DNS
- Setup and configure CertManager
- Setup HTTPS vis Istio Gateway
- Re-add cosign for docker image signing
- Per GitOps best practice, Seperate application code and configuration code into seperate repos