diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 92a32d6e2ff47da7572cc8c2af2f233ec9f59d60..043839c2b28ab31d62724c8496acd58325994256 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -15,30 +15,6 @@ cache: paths: - ${TF_ROOT_MAGENTO}/.terraform -check-elastic: - stage: test - tags: - - docker - image: - name: registry.gitlab.com/gitlab-org/terraform-images/stable:latest - entrypoint: [""] - variables: - TF_ADDRESS: ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/terraform/state/elastic - TF_VAR_ec_apikey: $EC_API_KEY - script: |- - cd $TF_ROOT_ELASTIC - gitlab-terraform init - gitlab-terraform validate - gitlab-terraform fmt -check - gitlab-terraform plan - gitlab-terraform plan-json - artifacts: - name: plan - paths: - - ${TF_ROOT_ELASTIC}/plan.cache - reports: - terraform: ${TF_ROOT_ELASTIC}/plan.json - check-magento: stage: test tags: @@ -69,23 +45,6 @@ check-magento: reports: terraform: ${TF_ROOT_MAGENTO}/plan.json -apply-elastic: - stage: deploy - needs: - - check-elastic - tags: - - docker - image: - name: registry.gitlab.com/gitlab-org/terraform-images/stable:latest - entrypoint: [""] - variables: - TF_ADDRESS: ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/terraform/state/elastic - TF_VAR_ec_apikey: $EC_API_KEY - script: |- - cd $TF_ROOT_ELASTIC - gitlab-terraform init - gitlab-terraform apply -auto-approve - apply-magento: stage: deploy needs: @@ -112,7 +71,6 @@ apply-magento: gcloud-psc: stage: deploy needs: - - apply-elastic - apply-magento tags: - docker @@ -143,12 +101,47 @@ gcloud-psc: paths: - ${CI_PROJECT_DIR}/pscConnectionId.env +check-elastic: + stage: test + tags: + - docker + needs: + - gcloud-psc + image: + name: registry.gitlab.com/gitlab-org/terraform-images/stable:latest + entrypoint: [""] + variables: + TF_ADDRESS: ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/terraform/state/elastic + TF_VAR_ec_apikey: $EC_API_KEY + script: |- + export TF_VAR_psc_connection_id=$(cat ${CI_PROJECT_DIR}/pscConnectionId.env | grep GCP_PSC_CONNECTION_ID | cut -d = -f2) + cd $TF_ROOT_ELASTIC + gitlab-terraform init + gitlab-terraform validate + gitlab-terraform fmt -check + gitlab-terraform plan + gitlab-terraform plan-json + artifacts: + name: plan + paths: + - ${TF_ROOT_ELASTIC}/plan.cache + reports: + terraform: ${TF_ROOT_ELASTIC}/plan.json -elastic-traffic-filter: +apply-elastic: stage: deploy needs: - - gcloud-psc + - check-elastic tags: - docker + image: + name: registry.gitlab.com/gitlab-org/terraform-images/stable:latest + entrypoint: [""] + variables: + TF_ADDRESS: ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/terraform/state/elastic + TF_VAR_ec_apikey: $EC_API_KEY script: |- - cat ${CI_PROJECT_DIR}/pscConnectionId.env + export TF_VAR_psc_connection_id=$(cat ${CI_PROJECT_DIR}/pscConnectionId.env | grep GCP_PSC_CONNECTION_ID | cut -d = -f2) + cd $TF_ROOT_ELASTIC + gitlab-terraform init + gitlab-terraform apply -auto-approve diff --git a/manifests/elastic/main.tf b/manifests/elastic/main.tf index 80c25abf2a60bcdbfa62113759563ce148ce11fb..0174d527bec9f81bc56e89540abe55f8c9cb6fdd 100644 --- a/manifests/elastic/main.tf +++ b/manifests/elastic/main.tf @@ -19,6 +19,16 @@ data "ec_stack" "stack" { region = var.region } +resource "ec_deployment_traffic_filter" "traffic-filter" { + name = "traffic-filter" + region = var.region + type = "gcp_private_service_connect_endpoint" + + rule { + source = var.psc_connection_id + } +} + resource "ec_deployment" "elasticsearch_cluster" { name = var.cluster_name region = data.ec_stack.stack.region @@ -43,4 +53,8 @@ resource "ec_deployment" "elasticsearch_cluster" { zone_count = 1 } } + + traffic_filter = [ + ec_deployment_traffic_filter.traffic-filter.id + ] } diff --git a/manifests/elastic/variables.tf b/manifests/elastic/variables.tf index 076bbdbc6b764731644630f6b296808d7bfaad56..6e6d6363e4e9d867599a674f8a24cff5a32e941c 100644 --- a/manifests/elastic/variables.tf +++ b/manifests/elastic/variables.tf @@ -7,8 +7,12 @@ variable "region" { default = "gcp-europe-west1" } +variable "psc_connection_id" { + type = string +} + ### Cluster variable "cluster_name" { type = string default = "elastic-for-gke-magento" -} \ No newline at end of file +}