Asutorufaのブログ

こんにちは

terraformのモジュール

WIP

- +  + project1 -+  |           +- main.tf  |           +- variables.tf  |           +- pro.tfvars  |           +- debug.tfvars  |  +- modules -+              +- module1 -+              |            +- main.tf              |            +- variables.tf              |            +- outputs.tf              |              +- module2 -+                           +- main.tf                           +- variables.tf                           +- outputs.tf

root-variable.tf

variable "storageClass" {  type    = string  default = "nfs-provisioner-sc"} variable "imageDockerhubRegistryPrefix" {  type    = string  default = "harborpro.secvision.local/dockerhub"} variable "imageQuayRegistryPrefix" {  type    = string  default = "harborpro.secvision.local/quay"} variable "minioReplicas" {  type    = number  default = 3}

redis.tf

resource "kubernetes_stateful_set" "redis" {  metadata {    name      = "redis"    namespace = var.namespace     labels = {      app = "redis"    }  }   spec {    replicas = 1     selector {      match_labels = {        app = "redis"      }    }     template {      metadata {        name = "redis"         labels = {          app = "redis"        }      }       spec {        container {          name  = "redis"          image = var.image           port {            name           = "redis"            container_port = 6379          }        }      }    }     service_name = "redis"  }} resource "kubernetes_service" "redis" {  metadata {    name      = "redis"    namespace = var.namespace  }   spec {    port {      name        = "redis"      port        = 6379      target_port = kubernetes_stateful_set.redis.spec.0.template.0.spec.0.container.0.port.0.container_port    }     selector = {      app = "redis"    }     type = "ClusterIP"  }}

outputs.tf

output "metricsAccessKey" {  value = var.metricsAccessKey} output "metricsSecretKey" {  value = var.metricsSecretKey} output "lokiBucket" {  value = var.lokiBucket} output "tempoBucket" {  value = var.tempoBucket} output "host" {  value = "minio.metrics.svc.cluster.local:9000"}

main.tf

provider "kubernetes" {  config_path = "${path.module}/../config.yaml"}  module "redis" {  source = "../modules/redis"}

apply

terraform initterraform apply --var-file=debug.tfvars 

再利用ダメ

module1.tf

resource "kubernetes_service" "module1" {  ...}

modules2.tf

module "module1" {  source = "../module1"}

modules3.tf

module "module1" {  source = "../module1"}

root-main.tf

module "module1" {  source = "../modules/module1"} module "module2" {  source = "../modules/module2"} module "module3" {  source = "../modules/module3"}

0 件のコメント

コメントを読み込んでいます...