This repo houses my Digital Ocean managed kubernetes configuration for the following projects:
- thecodeboss.dev
- Includes redirect from thesocietea.org
- simpleslides.dev
- labs.thecodeboss.dev
- Includes redirect from labs.thesocietea.org
- cyruskrauss.com
- api.cyruskrauss.com
- lucaskrauss.dev
- growlerfriday.com
- mothercodesbest.dev
- nicu.mothercodesbest.dev
- websockets.thecodeboss.dev
This repo does not include my continuous deployment configuration. That is housed in https://github.com/alkrauss48/fleet-infra, which uses the flux GitOps tool to scan images for updates based on semver tags, and deploy those updated images.
The deployment manifests in this repo will all refer to latest
, while the
actual live deployments will refer to specific image tags specified in the
fleet-infra repo.
Note: This repo is configured to work with Digital Ocean's managed kubernetes. Other implementations may also work, but YMMV.
You will need helm
installed. On MacOS, you can do this with:
brew install helm
Next, run:
make init # Adds and installs key helm repos
kubectl apply -f namespaces.yaml # Adds namespaces
kubectl apply -f production_issuer.yaml # Adds LetsEncrypt TLS cert issuer
kubectl apply -f volumes.yaml # Adds PersistentVolumeClaims and PersistentVolumes
# Optional - update volumes' reclaim policies to 'Retain'
make retain pv=$PV_NAME # Run this for each volume
For rolling deployments:
kubectl rollout restart deployment/<deployment> -n <namespace>
Services: 1 (frontend) Includes: Deployment, Service, Ingresses
To Deploy:
kubectl apply -f thecodeboss
Services: 3 (app, db, redis) Includes: Deployments, Services, Ingresses, Secrets, and Volume
To Deploy:
cp simple-slides/secrets.yaml.example simple-slides/secrets.yaml
# Add in your secrets to simple-slides/secrets.yaml
kubectl apply -f simple-slides
Services: 2 (frontend & backend) Includes: Deployments, Services, and Ingresses
To Deploy:
kubectl apply -f labs
Services: 1 (frontend) Includes: Deployment, Service, and Ingress
To Deploy:
kubectl apply -f cyrus-lyrics-web
Services: 1 (app) Includes: Deployment, Service, Ingress, and Secrets
To Deploy:
kubectl apply -f cyrus-lyrics-api
Services: 1 (frontend) Includes: Deployment, Service, and Ingress
To Deploy:
kubectl apply -f lucas-hints-web
Services: 1 (frontend) Includes: Deployment, Service, and Ingress
To Deploy:
kubectl apply -f growler-friday
Services: 1 (frontend) Includes: Deployment, Service, and Ingress
To Deploy:
kubectl apply -f mothercodesbest
Services: 1 (app) Includes: Deployment, Service, Ingress
To Deploy:
kubectl apply -f nicu-calculations
Services: 2 (frontend & backend) Includes: Deployment, Service, and Ingress
To Deploy:
kubectl apply -f websockets