3.2 Build Platform Binary

We’ve created an application - how do we get it into our Kubernetes cluster?

Developers often like to use command line tools to deploy applications. We’ll build a command line tool locally.

Step 1 — Clone the Repo

Our first step is to clone the Git repository containing the app locally.

git clone https://github.com/jaxxstorm/ploy.git

Change into this directory now ready to build our application:

cd ploy

Step 2 — Examine the Repo

This repo contains Pulumi code which uses the Automation API. A lot of the code is used to build a CLI application using popular the Go package Cobra

However, if you examine the code in pkg/program/program.go you’ll notice a Go function NewPloyDeployment.

This is a Pulumi component which encapulates a set of Pulumi resources.

In order to deploy our application to our Kubernetes cluster, we’ll need:

All of this is done via the command line tool.

We could also write a Pulumi program that uses the same logic, but this CLI tool can be used with no underlying knowledge of Pulumi.

Step 3 — Build the binary

It might be the case that you’re unable to build the binary on the Cloud9 instance. If you’re struggling to build it, you can download a pre-built binary from here: https://github.com/jaxxstorm/ploy/releases/download/v0.0.2-alpha/ploy-v0.0.2-alpha-linux-amd64.tar.gz

We’ll need to build the binary so we can use it. You can do this using the go build command:

go build -o ploy ./cmd/ploy/main.go

The EC2 Cloud9 instance comes with several Docker Images on it that might mean you run out of space. If this happens, clear out these images - you won’t need them:

docker rmi $(docker images -q)

You should be able to run the ploy command now locally:

Deploy your applications

  ploy [command]

Available Commands:
  destroy     Remove your application
  get         Get all ploy deployed applications
  help        Help about any command
  up          Deploy your application

      --debug           Enable debug logging
  -h, --help            help for ploy
  -o, --org string      Pulumi org to use for your stack
  -r, --region string   AWS Region to use (default "us-west-2")

Use "ploy [command] --help" for more information about a command.