All Projects → sagikazarmark → terraform-tiller

sagikazarmark / terraform-tiller

Licence: MIT license
Install Tiller on a Kubernetes cluster using Terraform

Programming Languages

HCL
1544 projects
Makefile
30231 projects

Projects that are alternatives of or similar to terraform-tiller

terraform-aws-enforce-mfa
A terraform module to enforce MFA for AWS groups and users
Stars: ✭ 24 (+84.62%)
Mutual labels:  terraform-module
kubehelper
KubeHelper - simplifies many daily Kubernetes cluster tasks through a web interface. Search, analysis, run commands, cron jobs, reports, filters, git synchronization and many more.
Stars: ✭ 200 (+1438.46%)
Mutual labels:  terraform-module
terraform-aws-elasticsearch
Terraform module to create Amazon Elasticsearch Service clusters, following the Well-Architected Framework and best AWS practices.
Stars: ✭ 43 (+230.77%)
Mutual labels:  terraform-module
terraform-aws-iam-system-user
Terraform Module to Provision a Basic IAM System User Suitable for CI/CD Systems (E.g. TravisCI, CircleCI)
Stars: ✭ 71 (+446.15%)
Mutual labels:  terraform-module
terraform-aws-asg-dns-handler
Terraform module for dynamically setting hostnames following a pattern on instances in AWS Auto Scaling Groups
Stars: ✭ 60 (+361.54%)
Mutual labels:  terraform-module
terraform-aws-eks-node-group
Terraform module to provision EKS Managed Node Group
Stars: ✭ 14 (+7.69%)
Mutual labels:  terraform-module
terraform-azurerm-kubernetes
Terraform module to deploy a Kubernetes cluster on Azure, using AKS.
Stars: ✭ 16 (+23.08%)
Mutual labels:  terraform-module
terraform-aws-s3-object
Terraform module which creates S3 object resources on AWS
Stars: ✭ 15 (+15.38%)
Mutual labels:  terraform-module
terraform-aws-route53
Terraform module which creates Route53 resources on AWS 🇺🇦
Stars: ✭ 78 (+500%)
Mutual labels:  terraform-module
terraform-aws-pricing
Terraform module which calculates price of AWS infrastructure (from Terraform state and plan) 🇺🇦
Stars: ✭ 111 (+753.85%)
Mutual labels:  terraform-module
terraform-digitalocean-kubernetes
A terraform module for managing and creating a Kubernetes cluster on digital ocean
Stars: ✭ 11 (-15.38%)
Mutual labels:  terraform-module
terraform-aws-datadog-forwarders
Terraform module which creates resources on AWS to forward logs/metrics to Datadog 🇺🇦
Stars: ✭ 30 (+130.77%)
Mutual labels:  terraform-module
terraform-aws-ecs-alb-service-task
Terraform module which implements an ECS service which exposes a web service via ALB.
Stars: ✭ 108 (+730.77%)
Mutual labels:  terraform-module
terraform-aws-transit-gateway
Terraform module which creates Transit Gateway resources on AWS 🇺🇦
Stars: ✭ 98 (+653.85%)
Mutual labels:  terraform-module
terraform-aws-step-functions
Terraform module which creates Step Functions on AWS 🇺🇦
Stars: ✭ 29 (+123.08%)
Mutual labels:  terraform-module
terraform-aws-concourse
Terraform Module for a distributed concourse cluster on AWS
Stars: ✭ 12 (-7.69%)
Mutual labels:  terraform-module
terraform-kubernetes-dashboard
Terraform module for deploying Kubernetes Dashboard to k8s cluster
Stars: ✭ 13 (+0%)
Mutual labels:  terraform-module
terraform-aws-cloudfront
Terraform module which creates CloudFront resources on AWS 🇺🇦
Stars: ✭ 56 (+330.77%)
Mutual labels:  terraform-module
terraform-aws-secrets-manager
Terraform module to create Amazon Secrets Manager resources.
Stars: ✭ 37 (+184.62%)
Mutual labels:  terraform-module
terraform-gke
A set of terraform modules for building GKE clusters.
Stars: ✭ 17 (+30.77%)
Mutual labels:  terraform-module

Tiller Terraform Module

CircleCI

Install Tiller on a Kubernetes cluster using Terraform.

Installation / Usage

  1. Configure a kubernetes provider in the parent module
  2. Add the following snippet to your terraform config:
module "tiller" {
  source  = "github.com/sagikazarmark/terraform-tiller"
  version = "~> 0.1.0"
}

Configuration

Name Default Description
rbac_enabled false Whether to create role-based access control resources (service account and cluster role binding).
tiller_namespace kube-system The Kubernetes namespace to use to deploy Tiller.
tiller_service_account tiller The Kubernetes service account to add to Tiller.
tiller_replicas 1 The amount of Tiller instances to run on the cluster.
tiller_image gcr.io/kubernetes-helm/tiller The image used to install Tiller.
tiller_version v2.11.0 The Tiller image version to install.
tiller_max_history 0 (unlimited) Limit the maximum number of revisions saved per release. Use 0 for no limit.
tiller_net_host empty Install Tiller with net=host.
tiller_node_selector empty Determine which nodes Tiller can land on.

Initial Chart installation

You might want to preinstall your servers with Kubernetes plugins such as unsupported ingress controllers, right after Tiller is installed. Since Terraform still doesn't support depends_on feature on modules, such as this one, there's manual work that needs to be done. This is an example how you can make sure Helm Chart installation starts after the Tiller service is ready:

module "tiller" {
  ...
}

resource "null_resource" "install_voyager" {
  provisioner "local-exec" {
    command     = "./helm/voyager.sh ${local_file.kube_cluster_yaml.filename}"
    interpreter = ["bash", "-c"]
  }
}
#!/usr/bin/env bash

wait_for_tiller () {
	KUBECONFIG=$1 kubectl --namespace kube-system get pods \
		--field-selector=status.phase==Running | grep 'tiller-deploy' \
		| grep '1/1' \
		> /dev/null 2>&1
}

until wait_for_tiller $1; do
	echo "Waiting for tiller-deploy to get ready..."
	sleep 5
done

echo "Installing Voyager Ingress..."

helm repo add appscode https://charts.appscode.com/stable --kubeconfig $CWD/../kube_config_cluster.yml
helm repo update --kubeconfig $CWD/../kube_config_cluster.yml

helm install appscode/voyager --name voyager-operator --version 8.0.1 \
	--namespace kube-system --set cloudProvider=baremetal \
	--kubeconfig $1 > /dev/null 2>&1

echo "Voyager Ingress installed!"

Why

After a rather long development and review period Terraform accepted a Helm provider as an official plugin. It provides an option to automatically install Tiller on a cluster if necessary, but unfortunately it's a bit buggy and it usually comes with an older Helm/Tiller version (at the time of this writing the included version is 2.9.0 while the latest is 2.12.0). So I created this terraform module to install Tiller separately from the Helm provider.

License

The MIT License (MIT). Please see License File for more information.

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].