/terraform-helm-istio

Terraform module for Istio deployment on Kubernetes using Helm

Primary LanguageHCLMIT LicenseMIT

terraform-helm-istio

Terraform Version GitHub tag (latest SemVer) GitHub issues Open Source Helpers MIT Licensed

This terraform module will deploy istio on any kubernetes cluster, using the official helm charts.

Helm Chart Repo Default Values
base repo values
cni repo values
istiod repo values
gateway repo values

Usage

provider "kubernetes" {
  config_path    = "~/.kube/config"
}

provider "helm" {
  kubernetes {
    config_path    = "~/.kube/config"
  }
}

module "istio" {
  source  = "boeboe/istio/helm"
  version = "0.0.2"

  istio_version = "1.15.3"

  istio_istiod_settings = {
    "pilot.autoscaleMin" = 2
    "pilot.autoscaleMax" = 4
  }
  
  istio_gateway_settings = {
    "autoscaling.minReplicas" = 2
    "autoscaling.maxReplicas" = 4
  }
}

output "istio_istiod_helm_metadata" {
  description = "block status of the istio istiod helm release"
  value = module.istio.istio_istiod_helm_metadata[0]
}

Check the examples for more details.

Inputs

Name Description Type Default Required
istio_version istio version string - true
istio_helm_namespace istio helm namespace string "istio-system" false
istio_helm_repo istio helm repository string "https://istio-release.storage.googleapis.com/charts" false
istio_base_settings istio base settings map {} false
istio_base_enabled enable helm install of istio base bool true false
istio_cni_settings istio cni settings map {} false
istio_cni_enabled enable helm install of istio cni bool false false
istio_istiod_settings istio istiod settings map {} false
istio_istiod_enabled enable helm install of istio istiod bool true false
istio_gateway_settings istio gateway settings map {} false
istio_gateway_enabled enable helm install of istio gateway bool true false

Outputs

Name Description Type
istio_base_helm_metadata block status of the istio base helm release list
istio_cni_helm_metadata block status of the istio cni helm release list
istio_istiod_helm_metadata block status of the istio istiod helm release list
istio_gateway_helm_metadata block status of the istio gateway helm release list

Example output:

istio_istiod_helm_metadata = {
  "app_version" = "1.15.3"
  "chart" = "istiod"
  "name" = "istio-istiod"
  "namespace" = "istio-system"
  "revision" = 1
  "values" = "{\"pilot\":{\"autoscaleMax\":4,\"autoscaleMin\":2}}"
  "version" = "1.15.3"
}

More information

TBC

License

terraform-helm-istio is released under the MIT License. See the bundled LICENSE file for details.