62d143f4b17aa5b8f9892bda4ee38c982008a6f6
[csit.git] / terraform-ci-infra / 1n_nmd / minio / main.tf
1 locals {
2   datacenters              = join(",", var.nomad_datacenters)
3   minio_env_vars           = join("\n",
4     concat([
5     ], var.minio_envs)
6   )
7   mc_env_vars              = join("\n",
8     concat([
9     ], var.mc_envs)
10   )
11   mc_formatted_bucket_list = formatlist("LOCALMINIO/%s", var.minio_buckets)
12   mc_add_config_command    = concat(
13     [
14       "mc",
15       "config",
16       "host",
17       "add",
18       "LOCALMINIO",
19       "http://${var.minio_service_name}.service.consul:${var.minio_port}",
20       "$MINIO_ACCESS_KEY",
21       "$MINIO_SECRET_KEY",
22   ])
23   mc_create_bucket_command = concat(["mc", "mb", "-p"], local.mc_formatted_bucket_list)
24   command                  = join(" ", concat(local.mc_add_config_command, ["&&"], local.mc_create_bucket_command, [";"], concat(var.mc_extra_commands)))
25 }
26
27 data "template_file" "nomad_job_minio" {
28   template    = file("${path.module}/conf/nomad/minio.hcl")
29   vars        = {
30     job_name           = var.minio_job_name
31     datacenters        = local.datacenters
32     use_canary         = var.minio_use_canary
33     group_count        = var.minio_group_count
34     use_host_volume    = var.minio_use_host_volume
35     host_volume        = var.nomad_host_volume
36     service_name       = var.minio_service_name
37     host               = var.minio_host
38     port               = var.minio_port
39     upstreams          = jsonencode(var.minio_upstreams)
40     cpu_proxy          = var.minio_resource_proxy.cpu
41     memory_proxy       = var.minio_resource_proxy.memory
42     use_vault_provider = var.minio_vault_secret.use_vault_provider
43     image              = var.minio_container_image
44     access_key         = var.minio_access_key
45     secret_key         = var.minio_secret_key
46     data_dir           = var.minio_data_dir
47     envs               = local.minio_env_vars
48     cpu                = var.minio_cpu
49     memory             = var.minio_memory
50   }
51 }
52
53 data "template_file" "nomad_job_mc" {
54   template    = file("${path.module}/conf/nomad/mc.hcl")
55   vars        = {
56     job_name           = var.mc_job_name
57     service_name       = var.mc_service_name
58     datacenters        = local.datacenters
59     minio_service_name = var.minio_service_name
60     minio_port         = var.minio_port
61     image              = var.mc_container_image
62     access_key         = var.minio_access_key
63     secret_key         = var.minio_secret_key
64     use_vault_provider = var.minio_vault_secret.use_vault_provider
65     envs               = local.mc_env_vars
66     command            = local.command
67   }
68 }
69
70 resource "nomad_job" "nomad_job_minio" {
71   jobspec     = data.template_file.nomad_job_minio.rendered
72   detach      = false
73 }
74
75 #resource "nomad_job" "nomad_job_mc" {
76 #  jobspec     = data.template_file.nomad_job_mc.rendered
77 #  detach      = false
78 #
79 #  depends_on  = [
80 #    nomad_job.nomad_job_minio
81 #  ]
82 #}