Giter VIP home page Giter VIP logo

kubeterra's People

Contributors

kron4eg avatar scheeles avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

kubeterra's Issues

State management

The terraform state needs to be kept persistent and up-to-date as much as possible especially for long running terraform operations.

AWS Example

Create examples on how to use KubeTerra with AWS.

Make httpbackend optional

Not everyone will need/want to save state in TerraformState object so httpbackend should be optional.

Update phases on change

TerraformConfiguration and TerraformPlan have status.phase fields, implement updating it on phase change.

terraform http backend

A wrapper / launcher / image entrypoint for terraform worker pods, that will act as a proxy between terraform and TerraformState object.

CLI to export TerraformConfiguration

kubeterra export command to read from cluster when given TerraformConfiguration object name.

Dump contents of TerraformConfiguration:

  • spec.configuration -> main.tf
  • spec.values -> terraform.tfvars
  • if case when volumes reference secrets and/or configMaps and not references in env/envFrom, fetch their contents as files

Dump contents of TerraformState:

  • spec.state -> terraform.tfstate

Once created, print instructions on how to proceed next.

  • tell about ENV credentials that might be needed
  • tell about possible need to adjust paths to file if any

Deployment/Packaging

Figure out how to deploy KubeTerra on a Kubernetes cluster.
(Helm Chart/kustomize)

Integrate KMS systems

KMS systems should be used to retrieve secrets for terraform runs.

Example KMS: AWS KMS, Vault.

Approval Process

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.

CLI to import terraform config

kubeterra import command, when run inside the directory with terraform config should create TerraformConfuguration object.

Files to import:

  • contact all *.tf files -> goes to spec.configuration
  • contact terraform.tfvars + *.auto.tfvars if presented -> goes to spec.values
  • always spec.autoApprove=false
  • always spec.paused=true

Once created, print instructions on how to proceed next.

  • tell about spec.template.env and spec.template.envFrom (to configure credentials)
  • tell about spec.template.volumes and spec.template.volumeMounts to configure some additional files (like ssh keys)
  • tell about spec.paused to unpause the processing of TerraformConfuguration.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.