Giter Club home page Giter Club logo

terraform-ignition-kubernetes's Introduction

Terraform test GitHub license

Terraform Kubernetes Ignition module

A terraform Ignition modules to bootstrap a Kubernetes cluster with CoreOS Container Linux/Flatcar Container Linux/Fedora CoreOS.

This repo also contains the following submodules:

Features

  • Kubernetes v1.19.0+.
  • Supported AWS VPC CNI, or flannel networking.
  • RBAC-enabled, Audit log, and etcd data encryption.

Requirements

Usage example

The following block is show you how to use this module for bootstrapping a cluster:

resource "random_id" "bootstrap_token_id" {
 byte_length = 3
}

resource "random_id" "bootstrap_token_secret" {
 byte_length = 8
}

resource "random_password" "encryption_secret" {
 length  = 32
 special = true
}

module "ignition_kubernetes" {
 source = "git::ssh://[email protected]/getamis/terraform-ignition-kubernetes"

 service_network_cidr = "10.96.0.0/12"
 pod_network_cidr     = "10.244.0.0/16"
 network_plugin       = "flannel"
 internal_endpoint    = "https://127.0.0.1:6443"
 etcd_endpoints       = "https://127.0.0.1:2379"
 encryption_secret    = random_password.encryption_secret.result

 tls_bootstrap_token = {
   id     = random_id.bootstrap_token_id.hex
   secret = random_id.bootstrap_token_secret.hex
 }

 // Create certs through https://github.com/getamis/vishwakarma/tree/master/modules/tls.
 certs = {
   etcd_ca_cert = module.etcd_cert.cert_pem

   ca_cert                       = module.kubernetes_ca.cert_pem
   ca_key                        = module.kubernetes_ca.private_key_pem
   admin_cert                    = module.admin_cert.cert_pem
   admin_key                     = module.admin_cert.private_key_pem
   apiserver_cert                = module.apiserver_cert.cert_pem
   apiserver_key                 = module.apiserver_cert.private_key_pem
   apiserver_kubelet_client_cert = module.apiserver_kubelet_client_cert.cert_pem
   apiserver_kubelet_client_key  = module.apiserver_kubelet_client_cert.private_key_pem
   apiserver_etcd_client_cert    = module.apiserver_etcd_client_cert.cert_pem
   apiserver_etcd_client_key     = module.apiserver_etcd_client_cert.private_key_pem
   controller_manager_cert       = module.controller_manager_cert.cert_pem
   controller_manager_key        = module.controller_manager_cert.private_key_pem
   scheduler_cert                = module.scheduler_cert.cert_pem
   scheduler_key                 = module.scheduler_cert.private_key_pem
   front_proxy_ca_cert           = module.front_proxy_ca.cert_pem
   front_proxy_ca_key            = module.front_proxy_ca.private_key_pem
   front_proxy_client_cert       = module.front_proxy_client_cert.cert_pem
   front_proxy_client_key        = module.front_proxy_client_cert.private_key_pem
   sa_pub                        = module.service_account.public_key_pem
   sa_key                        = module.service_account.private_key_pem
 }
}

See variables/master.md for the detail variable inputs and outputs.

Contributing

There are several ways to contribute to this project:

  1. Find bug: create an issue in our Github issue tracker.
  2. Fix a bug: check our issue tracker, leave comments and send a pull request to us to fix a bug.
  3. Make new feature: leave your idea in the issue tracker and discuss with us then send a pull request!

License

This project is licensed under the Apache 2.0 License - see the LICENSE file for details.

terraform-ignition-kubernetes's People

Contributors

chechiachang avatar downager avatar imo-ininder avatar kairen avatar smalltown avatar soem avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

soem downager

terraform-ignition-kubernetes's Issues

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.