Exercise: Deploying to Kubernetes

In this exercise, we ask you to containerize a Go appplication powered by MySQL and deploy the applications to the Kubernetes cluster you have been provided.

Submitting Code: Please see instructions here on how to submit your code. For this exercise we would expect to receive at least the following but encourage any other supplemental material that you feel is appropriate:

  • Dockerfile(s) for the containerized applications
  • Kubernetes YAML Manifests
  • Publicly accessible URL of the Go application

We realize that your time is valuable. Please try to limit this to ~2 hours. If you can't complete the exercise in this time, please share what you have as a basis for a discussion.

Your Heptio point of contact should have provided you with a kubeconfig file which gives you access to a Kubernetes cluster provisioned just for you.

Containerizing Applications

First, please download the source for a sample Go-based MVC note-taking web application. For this exercise, Go programming experience is not required. The code should compile and run as is.

We ask that you containerize the Go application and push it to an image registry (a public Dockerhub registry is fine).

Deploying to Kubernetes

Next, deploy the Go applicationa as well as its MySQL depenency to the Kubernetes cluster. Don't forget to load the MySQL schema file! Once running, please expose the Go application to the internet using an Elastic Load Balancer.

Other details

  • For simplicity, you do not need to worry about making this application highly-available
  • If you have any questions, please email your Heptio point of contact