Skip to content

krisnova/terraformctl

Repository files navigation

Terraformctl

Manage and mutate infrastructure with Terraform by running it in Kubernetes as a controller!

About

This is an example of infrastructure as cloud native software. This repository is not intended to be used in production, but rather offers a starting point for people to start looking at what it would take to run infrastructure as software.

More information can be found on my blog here

Running

Environmental Variables

TERRAFORMCTL_HOSTNAME can be used to override the hostname to use to connect to a listening gRPC server. TERRAFORMCTL_PORT can be used to override the port to use to connect to a listening gRPC server.

Developing

Building and pushing

Sorry but I hard coded everything for a demo.. be ready to hack the Makefile (please open a PR if you want!)

make build push deploy

This also assumes you have Kubernetes up and running already.

Working with the gRPC definitions

You will need to have protoc and grpc installed.

go get google.golang.org/grpc
go get -u github.com/golang/protobuf/protoc-gen-go

Now you can make changes to service/terraformctl.proto and run the following command to update the plugin.

make proto

A change to the gRPC might be needed in service/server.go if the new gRPC expects new logic.

About

Running Terraform in Kubernetes as a controller

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published