Javascript to Elm artwork

Elixir Deployment

Javascript to Elm

English - June 28, 2019 10:00 - 30 minutes - 24.1 MB - ★★★★★ - 4 ratings
Technology elm javascript programming Homepage Download Apple Podcasts Google Podcasts Overcast Castro Pocket Casts RSS feed

Previous Episode: Elixir with Phoenix
Next Episode: Elixir with AppEngine

When we last checked in our our struggling hero, me, I was struggling with the Jungle that is AWS and it's layers and layers of AIM roles, services accounts, interwoven services, and endless dependencies.

Step one.

Oh snap. After a long hard slog, and what felt like death by a thousand tiny cuts, it's working. I now have a deployed Elixir Phoenix App, building, running, rolling updating, all by git commits.

Cuts

ipv6:

this was in the

When to set config

AWS is a jungle

So.. I guess I need docker 🙄

GCP cloud_sql connection

Creating docker image

Can I test this image?

Debug in prod?

SQL Admin API access

Where’d PORT go?

Docker build is gonna need more RAM

docker build -t gcr.io/post-it-243617/postit:v0.4.0 . Sending build context to Docker daemon 523.8kB Error response from daemon: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.

Docker Args

pass the arg declare the arg use the arg $DB_NAME NO CURLY BRACES ok working

GCP Secrets?

Google KMS (Cloud Key Management)

enable KMS. we learned that from the last API, cloud sql using the gcloud kms key XXXXX manual add keys one by one update txt file, get back encrypted file convert encrypted file to base64 and add as a variable to the cloudbuild.yaml args: [ '-c', 'docker build -t gcr.io/post-it-243617/postit:$REVISION_ID --build-arg DB_PASSWORD=$$db_password --build-arg DB_NAME=$$db_name --build-arg DB_SOCKET_DIR=$$db_socket_dir --build-arg DB_USERNAME=$$db_username --build-arg SECRET_KEY_BASE=$$secret_key_base .' ] secretEnv: ['db_password', 'db_name', 'db_socket_dir', 'db_username', 'secret_key_base'] "Unusable Erlang runtime system! This is likely due to being compiled for another system than the host is running" Building with alpine-elixir:1.7.1 and then serve with alpine:latest there is then a mismatch of erlang versions. checked the distillery examples and locked in the alpine-elixir:1.8.2 and alpine:3.9 Both having the erlang version ERLANG_VERSION=22.0.4

Loadbalance and HTTPS

kubectl expose deployment DEPLOYMENT --type=LoadBalancer

The key thing here is to specify the type and your deployment’s name. This will expose your deployment through a service and set up a Load Balancer on Google Cloud Platform.

OH??? Ingress is a kubernetes thing. I could figure out what “Ingress” was 🙄

Websockets for AppEngine

Resources

Distillery

Best Practices for deploying Elixir

PHX on kube gcp

win 10 docker more member

Docker ENV passed with -build-arg

how to KMS

Distillery with Docker

Using KMS with cloudbuild

kubectl cheetsheet

gcloud kube https

Follow JavaScript to Elm Twitter: @jstoelm
Email: [email protected]
Jesse Tomchak Twitter: @jtomchak

 

Twitter Mentions