loodse / kubeterra Goto Github PK
View Code? Open in Web Editor NEWK8s operator for Terraform - Manage your Terraform environment with Kubernetes!
License: Apache License 2.0
K8s operator for Terraform - Manage your Terraform environment with Kubernetes!
License: Apache License 2.0
Besides autoApprove workflow there should be "just" (without auto) approve possibility.
The terraform state needs to be kept persistent and up-to-date as much as possible especially for long running terraform operations.
Create examples on how to use KubeTerra with AWS.
Not everyone will need/want to save state in TerraformState object so httpbackend should be optional.
TerraformConfiguration and TerraformPlan have status.phase
fields, implement updating it on phase change.
This issue is a placeholder to show of diagram of information flow though the controllers
A wrapper / launcher / image entrypoint for terraform worker pods, that will act as a proxy between terraform and TerraformState object.
Once TerraformConfiguration is removed, terraform destroy
pod should be triggered.
kubeterra export
command to read from cluster when given TerraformConfiguration object name.
Dump contents of TerraformConfiguration:
spec.configuration
-> main.tf
spec.values
-> terraform.tfvars
Dump contents of TerraformState:
spec.state
-> terraform.tfstate
Once created, print instructions on how to proceed next.
Figure out how to deploy KubeTerra on a Kubernetes cluster.
(Helm Chart/kustomize)
KMS systems should be used to retrieve secrets for terraform runs.
Example KMS: AWS KMS, Vault.
Terraform may delete parts of the created infrastructure when inputs or references change, so a machanism to (automatically) review the changes and aprove them (similar to terraform plan
) with KubeTerra is needed.
Add ability to periodically schedule terraform runs.
API types kubeterra/v1alpha1
created after schema from #6
kubeterra import
command, when run inside the directory with terraform config should create TerraformConfuguration object.
Files to import:
*.tf
files -> goes to spec.configuration
terraform.tfvars
+ *.auto.tfvars
if presented -> goes to spec.values
spec.autoApprove=false
spec.paused=true
Once created, print instructions on how to proceed next.
spec.template.env
and spec.template.envFrom
(to configure credentials)spec.template.volumes
and spec.template.volumeMounts
to configure some additional files (like ssh keys)spec.paused
to unpause the processing of TerraformConfuguration.A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.