Postfacto on GCP

Standing up

Create a Cloud SQL Postgres instance and give it a private IP address.

Create a secret referencing the password you wish to use for the postgres user:

kubectl create secret generic postfacto-postgresql --from-literal postgres-password=<my-pass>

Create a config map with the Postgres instances IP address:

kubectl create configmap postgres --from-literal=ip=<postgres-private-ip>

Create a secret for the base key (this is a random thing they use for security):

kubectl create secret generic secret-key --from-literal secret-key-base=2asd123Ads

Create a Redis password

kubectl create secret generic postfacto-redis --from-literal redis-password=<my-pass>

Deploy Redis (this was generated by helm, you might prefer to just use helm):

kubectl apply -f redis-helm.yaml

Create OAuth2 App

In Google Cloud platform create an OAuth2 web app with the appropriate redirect domains - instructions here

Create a Kubernetes secret with the Client ID:

kubectl create secret generic oauth --from-literal client-id=<client-id>

Edit the deployment

  1. Edit the file cert.yaml to reflect your domain name
  2. Edit the file ingress.yaml to reflect your domain name and IP address

Deploy

kubectl apply -f service.yaml
kubectl apply -f deployment.yaml
kubectl apply -f cert.yaml
kubectl apply -f ingress.yaml

That's it!

Share and enjoy!