All Projects → kris-nova → terraformctl

kris-nova / terraformctl

Licence: Apache-2.0 license
Running Terraform in Kubernetes as a controller

Programming Languages

go
31211 projects - #10 most used programming language
Makefile
30231 projects
Protocol Buffer
295 projects
Smarty
1635 projects

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].