# README
k2tf - Kubernetes YAML to Terraform HCL converter
A tool for converting Kubernetes API Objects (in YAML format) into HashiCorp's Terraform configuration language.
The converted .tf
files are suitable for use with the Terraform Kubernetes Provider
Installation
Pre-built Binaries
Download Binary from GitHub releases page.
Build from source
See below
Homebrew
$ brew install k2tf
asdf
Use the asdf-k2tf plugin.
Example Usage
Convert a single YAML file and write generated Terraform config to Stdout
$ k2tf -f test-fixtures/service.yaml
Convert a single YAML file and write output to file
$ k2tf -f test-fixtures/service.yaml -o service.tf
Convert a directory of Kubernetes YAML files
$ k2tf -f test-fixtures/
Read & convert Kubernetes objects directly from a cluster
$ kubectl get deployments -o yaml | ./k2tf -o deployments.tf
Building
NOTE Requires a working Golang build environment.
This project uses Golang modules for dependency management, so it can be cloned outside of the $GOPATH
.
Clone the repository
$ git clone https://github.com/sl1pm4t/k2tf.git
Build
$ cd k2tf
$ make build
Run Tests
$ make test
# Packages
No description provided by the author
# Functions
IsInlineStruct looks at the json tag of the given StructField, to determine if it has been marked as "inline" e.g.
IsZero reports whether is considered the zero / empty / unset value fo the type.
NewObjectWalker returns a new ObjectWalker object dst is the hclwrite.Body where HCL blocks will be appended.
WriteObject converts a Kubernetes runtime.Object to HCL.
# Structs
ObjectWalker implements reflectwalk.Walker interfaces It's used to "walk" the Kubernetes API Objects structure and generate an HCL document based on the values defined.