From 5bddc30830882b67108bf9339b4c6fb5953c1cdb Mon Sep 17 00:00:00 2001 From: Amit Levy Date: Fri, 1 Nov 2019 16:37:03 +0200 Subject: [PATCH] Move terraform modules from ./build to ./install --- build/cluster.tf | 178 +-------------- build/helm.tf | 204 +----------------- build/includes/terraform.mk | 13 +- examples/terraform-submodules/aks/module.tf | 4 +- .../terraform-submodules/gke-local/main.tf | 4 +- examples/terraform-submodules/gke/module.tf | 2 +- install/terraform/cluster.tf | 177 +++++++++++++++ install/terraform/helm.tf | 203 +++++++++++++++++ .../terraform}/modules/aks/aks.tf | 0 .../terraform}/modules/aks/outputs.tf | 0 .../terraform}/modules/aks/variables.tf | 0 .../terraform}/modules/gke/cluster.tf | 0 .../terraform}/modules/gke/outputs.tf | 0 .../terraform}/modules/gke/variables.tf | 0 .../terraform}/modules/helm/helm.tf | 0 .../terraform}/modules/helm/variables.tf | 4 +- 16 files changed, 396 insertions(+), 393 deletions(-) mode change 100644 => 120000 build/cluster.tf mode change 100644 => 120000 build/helm.tf create mode 100644 install/terraform/cluster.tf create mode 100644 install/terraform/helm.tf rename {build => install/terraform}/modules/aks/aks.tf (100%) rename {build => install/terraform}/modules/aks/outputs.tf (100%) rename {build => install/terraform}/modules/aks/variables.tf (100%) rename {build => install/terraform}/modules/gke/cluster.tf (100%) rename {build => install/terraform}/modules/gke/outputs.tf (100%) rename {build => install/terraform}/modules/gke/variables.tf (100%) rename {build => install/terraform}/modules/helm/helm.tf (100%) rename {build => install/terraform}/modules/helm/variables.tf (93%) diff --git a/build/cluster.tf b/build/cluster.tf deleted file mode 100644 index c1e95d13af..0000000000 --- a/build/cluster.tf +++ /dev/null @@ -1,177 +0,0 @@ -# Copyright 2019 Google LLC All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -provider "google-beta" { - version = "~> 2.10" - zone = "${var.cluster["zone"]}" -} - -provider "google" { - version = "~> 2.10" -} - - -# Ports can be overriden using tfvars file -variable "ports" { - default = "7000-8000" -} - -# Set of GKE cluster parameters which defines its name, zone -# and primary node pool configuration. -# It is crucial to set valid ProjectID for "project". -variable "cluster" { - description = "Set of GKE cluster parameters." - type = "map" - - default = { - "zone" = "us-west1-c" - "name" = "test-cluster" - "machineType" = "n1-standard-4" - "initialNodeCount" = "4" - "project" = "agones" - } -} - -# echo command used for debugging purpose -# Run `terraform taint null_resource.test-setting-variables` before second execution -resource "null_resource" "test-setting-variables" { - provisioner "local-exec" { - command = "${"${format("echo Current variables set as following - name: %s, project: %s, machineType: %s, initialNodeCount: %s, zone: %s", - "${var.cluster["name"]}", "${var.cluster["project"]}", - "${var.cluster["machineType"]}", "${var.cluster["initialNodeCount"]}", - "${var.cluster["zone"]}")}"}" - } -} - -resource "google_container_cluster" "primary" { - name = "${var.cluster["name"]}" - location = "${var.cluster["zone"]}" - project = "${var.cluster["project"]}" - provider = "google-beta" - - node_pool { - name = "default" - node_count = "${var.cluster["initialNodeCount"]}" - - management { - auto_upgrade = false - } - - node_config { - machine_type = "${var.cluster["machineType"]}" - - oauth_scopes = [ - "https://www.googleapis.com/auth/devstorage.read_only", - "https://www.googleapis.com/auth/logging.write", - "https://www.googleapis.com/auth/monitoring", - "https://www.googleapis.com/auth/service.management.readonly", - "https://www.googleapis.com/auth/servicecontrol", - "https://www.googleapis.com/auth/trace.append", - ] - - tags = ["game-server"] - } - } - - node_pool { - name = "agones-system" - node_count = 1 - - management { - auto_upgrade = false - } - - node_config { - machine_type = "n1-standard-4" - - oauth_scopes = [ - "https://www.googleapis.com/auth/devstorage.read_only", - "https://www.googleapis.com/auth/logging.write", - "https://www.googleapis.com/auth/monitoring", - "https://www.googleapis.com/auth/service.management.readonly", - "https://www.googleapis.com/auth/servicecontrol", - "https://www.googleapis.com/auth/trace.append", - ] - - labels = { - "agones.dev/agones-system" = "true" - } - - taint { - key = "agones.dev/agones-system" - value = "true" - effect = "NO_EXECUTE" - } - } - } - - node_pool { - name = "agones-metrics" - node_count = 1 - - management { - auto_upgrade = false - } - - node_config { - machine_type = "n1-standard-4" - - oauth_scopes = [ - "https://www.googleapis.com/auth/devstorage.read_only", - "https://www.googleapis.com/auth/logging.write", - "https://www.googleapis.com/auth/monitoring", - "https://www.googleapis.com/auth/service.management.readonly", - "https://www.googleapis.com/auth/servicecontrol", - "https://www.googleapis.com/auth/trace.append", - ] - - labels = { - "agones.dev/agones-metrics" = "true" - } - - taint { - key = "agones.dev/agones-metrics" - value = "true" - effect = "NO_EXECUTE" - } - } - } - - timeouts { - create = "30m" - update = "40m" - } -} - -resource "google_compute_firewall" "default" { - name = "game-server-firewall-firewall-${var.cluster["name"]}" - project = "${var.cluster["project"]}" - network = "${google_compute_network.default.name}" - - allow { - protocol = "udp" - ports = ["${var.ports}"] - } - - source_tags = ["game-server"] -} - -resource "google_compute_network" "default" { - project = "${var.cluster["project"]}" - name = "agones-network-${var.cluster["name"]}" -} - -output "cluster_ca_certificate" { - value = "${google_container_cluster.primary.master_auth.0.cluster_ca_certificate}" -} diff --git a/build/cluster.tf b/build/cluster.tf new file mode 120000 index 0000000000..e94b52b833 --- /dev/null +++ b/build/cluster.tf @@ -0,0 +1 @@ +install/terraform/cluster.tf \ No newline at end of file diff --git a/build/helm.tf b/build/helm.tf deleted file mode 100644 index c126edf026..0000000000 --- a/build/helm.tf +++ /dev/null @@ -1,203 +0,0 @@ -# Copyright 2019 Google LLC All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -resource "kubernetes_service_account" "tiller" { - metadata { - name = "tiller" - namespace = "kube-system" - } - - depends_on = ["google_container_cluster.primary"] - - automount_service_account_token = true -} - -resource "kubernetes_cluster_role_binding" "tiller" { - depends_on = ["kubernetes_service_account.tiller"] - - metadata { - name = "tiller" - } - - role_ref { - kind = "ClusterRole" - name = "cluster-admin" - api_group = "rbac.authorization.k8s.io" - } - - subject { - kind = "ServiceAccount" - name = "tiller" - - api_group = "" - namespace = "kube-system" - } -} - -variable "chart" { - default = "../install/helm/agones/" -} - -variable "agones_version" { - default = "" -} - -variable "crd_cleanup" { - default = "true" -} - -variable "image_registry" { - default = "gcr.io/agones-images" -} - -variable "pull_policy" { - default = "Always" -} - -variable "always_pull_sidecar" { - default = "true" -} - -variable "image_pull_secret" { - default = "" -} - -variable "ping_service_type" { - default = "LoadBalancer" -} - -variable "allocator_service_type" { - default = "LoadBalancer" -} - -variable "values_file" { - default = "../install/helm/agones/values.yaml" -} - -data "google_client_config" "default" {} - -provider "kubernetes" { - version = "~> 1.5" - load_config_file = false - host = "https://${google_container_cluster.primary.endpoint}" - token = "${data.google_client_config.default.access_token}" - cluster_ca_certificate = "${base64decode(google_container_cluster.primary.master_auth.0.cluster_ca_certificate)}" -} - -provider "helm" { - version = "~> 0.9" - - debug = true - install_tiller = true - service_account = "${kubernetes_service_account.tiller.metadata.0.name}" - tiller_image = "gcr.io/kubernetes-helm/tiller:v2.14.2" - - kubernetes { - load_config_file = false - host = "https://${google_container_cluster.primary.endpoint}" - token = "${data.google_client_config.default.access_token}" - cluster_ca_certificate = "${base64decode(google_container_cluster.primary.master_auth.0.cluster_ca_certificate)}" - } -} - -data "google_client_config" "current" {} - -data "helm_repository" "agones" { - depends_on = ["kubernetes_cluster_role_binding.tiller"] - name = "agones" - url = "https://agones.dev/chart/stable" -} - -locals { - # Skip image tag if it is not needed - # for installing latest image it would use chart value - tag_name = "${var.agones_version != "" ? "agones.image.tag" : "skip"}" -} - -resource "helm_release" "agones" { - depends_on = ["null_resource.helm_init", "kubernetes_cluster_role_binding.tiller"] - name = "agones" - force_update = "true" - repository = "${data.helm_repository.agones.metadata.0.name}" - chart = "${var.chart}" - timeout = 420 - - values = [ - "${length(var.values_file) == 0 ? "" : file("${var.values_file}")}", - ] - - set { - name = "crds.CleanupOnDelete" - value = "${var.crd_cleanup}" - } - - set { - name = "${local.tag_name}" - value = "${var.agones_version}" - } - - set { - name = "agones.image.registry" - value = "${var.image_registry}" - } - - set { - name = "agones.image.controller.pullPolicy" - value = "${var.pull_policy}" - } - - set { - name = "agones.image.sdk.alwaysPull" - value = "${var.always_pull_sidecar}" - } - - set { - name = "agones.image.controller.pullSecret" - value = "${var.image_pull_secret}" - } - - set { - name = " agones.ping.http.serviceType" - value = "${var.ping_service_type}" - } - - set { - name = "agones.ping.udp.serviceType" - value = "${var.ping_service_type}" - } - - set { - name = " agones.allocator.http.serviceType" - value = "${var.allocator_service_type}" - } - - version = "${var.agones_version}" - namespace = "agones-system" - -} - -provider "null" { - version = "~> 2.1" -} - -# Creates folder with repositories so that helm provider would not fail -resource "null_resource" "helm_init" { - triggers = { - always_run = "${timestamp()}" - } - - provisioner "local-exec" { - command = "helm init --client-only" - } -} diff --git a/build/helm.tf b/build/helm.tf new file mode 120000 index 0000000000..b58dc11f66 --- /dev/null +++ b/build/helm.tf @@ -0,0 +1 @@ +install/terraform/helm.tf \ No newline at end of file diff --git a/build/includes/terraform.mk b/build/includes/terraform.mk index f27b316cb3..9b88e0d2e3 100644 --- a/build/includes/terraform.mk +++ b/build/includes/terraform.mk @@ -14,12 +14,13 @@ ### Deploy cluster with Terraform terraform-init: +terraform-init: $(ensure-build-image) docker run --rm -it $(common_mounts) $(DOCKER_RUN_ARGS) $(build_tag) bash -c '\ - cd $(mount_path)/build && terraform init && gcloud auth application-default login' + cd $(mount_path)/install/terraform && terraform init && gcloud auth application-default login' terraform-clean: - rm -r ./.terraform - rm ./terraform.tfstate* + rm -r ../install/terraform/.terraform + rm ../install/terraform/terraform.tfstate* # Creates a cluster and install release version of Agones controller # Version could be specified by AGONES_VERSION @@ -32,7 +33,7 @@ ifndef GCP_PROJECT $(eval GCP_PROJECT=$(shell sh -c "gcloud config get-value project 2> /dev/null")) endif $(DOCKER_RUN) bash -c 'export TF_VAR_agones_version=$(AGONES_VERSION) && \ - cd $(mount_path)/build && terraform apply -auto-approve -var values_file="" \ + cd $(mount_path)/install/terraform && terraform apply -auto-approve -var values_file="" \ -var chart="agones" \ -var "cluster={name=\"$(GCP_CLUSTER_NAME)\", machineType=\"$(GCP_CLUSTER_NODEPOOL_MACHINETYPE)\", \ zone=\"$(GCP_CLUSTER_ZONE)\", project=\"$(GCP_PROJECT)\", \ @@ -52,7 +53,7 @@ ifndef GCP_PROJECT $(eval GCP_PROJECT=$(shell sh -c "gcloud config get-value project 2> /dev/null")) endif $(DOCKER_RUN) bash -c ' \ - cd $(mount_path)/build && terraform apply -auto-approve -var agones_version="$(VERSION)" -var image_registry="$(REGISTRY)" \ + cd $(mount_path)/install/terraform && terraform apply -auto-approve -var agones_version="$(VERSION)" -var image_registry="$(REGISTRY)" \ -var pull_policy="$(IMAGE_PULL_POLICY)" \ -var always_pull_sidecar="$(ALWAYS_PULL_SIDECAR)" \ -var image_pull_secret="$(IMAGE_PULL_SECRET)" \ @@ -64,5 +65,5 @@ endif $(MAKE) gcloud-auth-cluster gcloud-terraform-destroy-cluster: - $(DOCKER_RUN) bash -c 'cd $(mount_path)/build && \ + $(DOCKER_RUN) bash -c 'cd $(mount_path)/install/terraform && \ terraform destroy -auto-approve' diff --git a/examples/terraform-submodules/aks/module.tf b/examples/terraform-submodules/aks/module.tf index 6c98fc72e5..83a692a0fa 100644 --- a/examples/terraform-submodules/aks/module.tf +++ b/examples/terraform-submodules/aks/module.tf @@ -27,14 +27,14 @@ variable "cluster_name" { variable "machine_type" {default = "Standard_D2_v2"} module "aks_cluster" { - source = "git::https://github.com/googleforgames/agones.git//build/modules/aks/?ref=master" + source = "git::https://github.com/googleforgames/agones.git//install/terraform/modules/aks/?ref=master" machine_type = "${var.machine_type}" cluster_name = "${var.cluster_name}" } module "helm_agones" { - source = "git::https://github.com/googleforgames/agones.git//build/modules/helm/?ref=master" + source = "git::https://github.com/googleforgames/agones.git//install/terraform/modules/helm/?ref=master" agones_version = "${var.agones_version}" values_file="" diff --git a/examples/terraform-submodules/gke-local/main.tf b/examples/terraform-submodules/gke-local/main.tf index a53bb385b9..eb97c95c2d 100644 --- a/examples/terraform-submodules/gke-local/main.tf +++ b/examples/terraform-submodules/gke-local/main.tf @@ -27,7 +27,7 @@ variable "project" { } module "gke_cluster" { - source = "../../../build/modules/gke" + source = "../../../install/terraform/modules/gke" cluster = { "project" = "${var.project}" @@ -40,7 +40,7 @@ module "gke_cluster" { module "helm_agones" { - source = "../../../build/modules/helm" + source = "../../../install/terraform/modules/helm" agones_version = "${var.agones_version}" values_file = "" diff --git a/examples/terraform-submodules/gke/module.tf b/examples/terraform-submodules/gke/module.tf index ab3d8764a0..82d79ab554 100644 --- a/examples/terraform-submodules/gke/module.tf +++ b/examples/terraform-submodules/gke/module.tf @@ -40,7 +40,7 @@ variable "node_count" { } module "agones" { - source = "git::https://github.com/googleforgames/agones.git//build/?ref=master" + source = "git::https://github.com/googleforgames/agones.git//install/terraform/?ref=master" cluster = { "zone" = "us-west1-c" diff --git a/install/terraform/cluster.tf b/install/terraform/cluster.tf new file mode 100644 index 0000000000..c1e95d13af --- /dev/null +++ b/install/terraform/cluster.tf @@ -0,0 +1,177 @@ +# Copyright 2019 Google LLC All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +provider "google-beta" { + version = "~> 2.10" + zone = "${var.cluster["zone"]}" +} + +provider "google" { + version = "~> 2.10" +} + + +# Ports can be overriden using tfvars file +variable "ports" { + default = "7000-8000" +} + +# Set of GKE cluster parameters which defines its name, zone +# and primary node pool configuration. +# It is crucial to set valid ProjectID for "project". +variable "cluster" { + description = "Set of GKE cluster parameters." + type = "map" + + default = { + "zone" = "us-west1-c" + "name" = "test-cluster" + "machineType" = "n1-standard-4" + "initialNodeCount" = "4" + "project" = "agones" + } +} + +# echo command used for debugging purpose +# Run `terraform taint null_resource.test-setting-variables` before second execution +resource "null_resource" "test-setting-variables" { + provisioner "local-exec" { + command = "${"${format("echo Current variables set as following - name: %s, project: %s, machineType: %s, initialNodeCount: %s, zone: %s", + "${var.cluster["name"]}", "${var.cluster["project"]}", + "${var.cluster["machineType"]}", "${var.cluster["initialNodeCount"]}", + "${var.cluster["zone"]}")}"}" + } +} + +resource "google_container_cluster" "primary" { + name = "${var.cluster["name"]}" + location = "${var.cluster["zone"]}" + project = "${var.cluster["project"]}" + provider = "google-beta" + + node_pool { + name = "default" + node_count = "${var.cluster["initialNodeCount"]}" + + management { + auto_upgrade = false + } + + node_config { + machine_type = "${var.cluster["machineType"]}" + + oauth_scopes = [ + "https://www.googleapis.com/auth/devstorage.read_only", + "https://www.googleapis.com/auth/logging.write", + "https://www.googleapis.com/auth/monitoring", + "https://www.googleapis.com/auth/service.management.readonly", + "https://www.googleapis.com/auth/servicecontrol", + "https://www.googleapis.com/auth/trace.append", + ] + + tags = ["game-server"] + } + } + + node_pool { + name = "agones-system" + node_count = 1 + + management { + auto_upgrade = false + } + + node_config { + machine_type = "n1-standard-4" + + oauth_scopes = [ + "https://www.googleapis.com/auth/devstorage.read_only", + "https://www.googleapis.com/auth/logging.write", + "https://www.googleapis.com/auth/monitoring", + "https://www.googleapis.com/auth/service.management.readonly", + "https://www.googleapis.com/auth/servicecontrol", + "https://www.googleapis.com/auth/trace.append", + ] + + labels = { + "agones.dev/agones-system" = "true" + } + + taint { + key = "agones.dev/agones-system" + value = "true" + effect = "NO_EXECUTE" + } + } + } + + node_pool { + name = "agones-metrics" + node_count = 1 + + management { + auto_upgrade = false + } + + node_config { + machine_type = "n1-standard-4" + + oauth_scopes = [ + "https://www.googleapis.com/auth/devstorage.read_only", + "https://www.googleapis.com/auth/logging.write", + "https://www.googleapis.com/auth/monitoring", + "https://www.googleapis.com/auth/service.management.readonly", + "https://www.googleapis.com/auth/servicecontrol", + "https://www.googleapis.com/auth/trace.append", + ] + + labels = { + "agones.dev/agones-metrics" = "true" + } + + taint { + key = "agones.dev/agones-metrics" + value = "true" + effect = "NO_EXECUTE" + } + } + } + + timeouts { + create = "30m" + update = "40m" + } +} + +resource "google_compute_firewall" "default" { + name = "game-server-firewall-firewall-${var.cluster["name"]}" + project = "${var.cluster["project"]}" + network = "${google_compute_network.default.name}" + + allow { + protocol = "udp" + ports = ["${var.ports}"] + } + + source_tags = ["game-server"] +} + +resource "google_compute_network" "default" { + project = "${var.cluster["project"]}" + name = "agones-network-${var.cluster["name"]}" +} + +output "cluster_ca_certificate" { + value = "${google_container_cluster.primary.master_auth.0.cluster_ca_certificate}" +} diff --git a/install/terraform/helm.tf b/install/terraform/helm.tf new file mode 100644 index 0000000000..75bfb0217e --- /dev/null +++ b/install/terraform/helm.tf @@ -0,0 +1,203 @@ +# Copyright 2019 Google LLC All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +resource "kubernetes_service_account" "tiller" { + metadata { + name = "tiller" + namespace = "kube-system" + } + + depends_on = ["google_container_cluster.primary"] + + automount_service_account_token = true +} + +resource "kubernetes_cluster_role_binding" "tiller" { + depends_on = ["kubernetes_service_account.tiller"] + + metadata { + name = "tiller" + } + + role_ref { + kind = "ClusterRole" + name = "cluster-admin" + api_group = "rbac.authorization.k8s.io" + } + + subject { + kind = "ServiceAccount" + name = "tiller" + + api_group = "" + namespace = "kube-system" + } +} + +variable "chart" { + default = "../helm/agones/" +} + +variable "agones_version" { + default = "" +} + +variable "crd_cleanup" { + default = "true" +} + +variable "image_registry" { + default = "gcr.io/agones-images" +} + +variable "pull_policy" { + default = "Always" +} + +variable "always_pull_sidecar" { + default = "true" +} + +variable "image_pull_secret" { + default = "" +} + +variable "ping_service_type" { + default = "LoadBalancer" +} + +variable "allocator_service_type" { + default = "LoadBalancer" +} + +variable "values_file" { + default = "../helm/agones/values.yaml" +} + +data "google_client_config" "default" {} + +provider "kubernetes" { + version = "~> 1.5" + load_config_file = false + host = "https://${google_container_cluster.primary.endpoint}" + token = "${data.google_client_config.default.access_token}" + cluster_ca_certificate = "${base64decode(google_container_cluster.primary.master_auth.0.cluster_ca_certificate)}" +} + +provider "helm" { + version = "~> 0.9" + + debug = true + install_tiller = true + service_account = "${kubernetes_service_account.tiller.metadata.0.name}" + tiller_image = "gcr.io/kubernetes-helm/tiller:v2.14.2" + + kubernetes { + load_config_file = false + host = "https://${google_container_cluster.primary.endpoint}" + token = "${data.google_client_config.default.access_token}" + cluster_ca_certificate = "${base64decode(google_container_cluster.primary.master_auth.0.cluster_ca_certificate)}" + } +} + +data "google_client_config" "current" {} + +data "helm_repository" "agones" { + depends_on = ["kubernetes_cluster_role_binding.tiller"] + name = "agones" + url = "https://agones.dev/chart/stable" +} + +locals { + # Skip image tag if it is not needed + # for installing latest image it would use chart value + tag_name = "${var.agones_version != "" ? "agones.image.tag" : "skip"}" +} + +resource "helm_release" "agones" { + depends_on = ["null_resource.helm_init", "kubernetes_cluster_role_binding.tiller"] + name = "agones" + force_update = "true" + repository = "${data.helm_repository.agones.metadata.0.name}" + chart = "${var.chart}" + timeout = 420 + + values = [ + "${length(var.values_file) == 0 ? "" : file("${var.values_file}")}", + ] + + set { + name = "crds.CleanupOnDelete" + value = "${var.crd_cleanup}" + } + + set { + name = "${local.tag_name}" + value = "${var.agones_version}" + } + + set { + name = "agones.image.registry" + value = "${var.image_registry}" + } + + set { + name = "agones.image.controller.pullPolicy" + value = "${var.pull_policy}" + } + + set { + name = "agones.image.sdk.alwaysPull" + value = "${var.always_pull_sidecar}" + } + + set { + name = "agones.image.controller.pullSecret" + value = "${var.image_pull_secret}" + } + + set { + name = " agones.ping.http.serviceType" + value = "${var.ping_service_type}" + } + + set { + name = "agones.ping.udp.serviceType" + value = "${var.ping_service_type}" + } + + set { + name = " agones.allocator.http.serviceType" + value = "${var.allocator_service_type}" + } + + version = "${var.agones_version}" + namespace = "agones-system" + +} + +provider "null" { + version = "~> 2.1" +} + +# Creates folder with repositories so that helm provider would not fail +resource "null_resource" "helm_init" { + triggers = { + always_run = "${timestamp()}" + } + + provisioner "local-exec" { + command = "helm init --client-only" + } +} diff --git a/build/modules/aks/aks.tf b/install/terraform/modules/aks/aks.tf similarity index 100% rename from build/modules/aks/aks.tf rename to install/terraform/modules/aks/aks.tf diff --git a/build/modules/aks/outputs.tf b/install/terraform/modules/aks/outputs.tf similarity index 100% rename from build/modules/aks/outputs.tf rename to install/terraform/modules/aks/outputs.tf diff --git a/build/modules/aks/variables.tf b/install/terraform/modules/aks/variables.tf similarity index 100% rename from build/modules/aks/variables.tf rename to install/terraform/modules/aks/variables.tf diff --git a/build/modules/gke/cluster.tf b/install/terraform/modules/gke/cluster.tf similarity index 100% rename from build/modules/gke/cluster.tf rename to install/terraform/modules/gke/cluster.tf diff --git a/build/modules/gke/outputs.tf b/install/terraform/modules/gke/outputs.tf similarity index 100% rename from build/modules/gke/outputs.tf rename to install/terraform/modules/gke/outputs.tf diff --git a/build/modules/gke/variables.tf b/install/terraform/modules/gke/variables.tf similarity index 100% rename from build/modules/gke/variables.tf rename to install/terraform/modules/gke/variables.tf diff --git a/build/modules/helm/helm.tf b/install/terraform/modules/helm/helm.tf similarity index 100% rename from build/modules/helm/helm.tf rename to install/terraform/modules/helm/helm.tf diff --git a/build/modules/helm/variables.tf b/install/terraform/modules/helm/variables.tf similarity index 93% rename from build/modules/helm/variables.tf rename to install/terraform/modules/helm/variables.tf index 9b0bb7bfc0..1f15b07e71 100644 --- a/build/modules/helm/variables.tf +++ b/install/terraform/modules/helm/variables.tf @@ -15,7 +15,7 @@ #Helm variables variable "chart" { - default = "../../../install/helm/agones/" + default = "../../../helm/agones/" } variable "agones_version" { @@ -58,5 +58,5 @@ variable "ping_service_type" { } variable "values_file" { - default = "../../../install/helm/agones/values.yaml" + default = "../../../helm/agones/values.yaml" }