# ------------------------------------------------------------------------ # Copyright 2020 Amazon.com, Inc. or its affiliates. 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. # A copy of the License is located at # # http://www.apache.org/licenses/LICENSE-2.0 # # or in the "license" file accompanying this file. This file 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. # ------------------------------------------------------------------------- # this test assumes it's running on a ubuntu host module "common" { source = "../common" } # render otconfig locals { otconfig_template_path = fileexists("${var.testcase}/otconfig.tpl") ? "${var.testcase}/otconfig.tpl" : module.common.default_otconfig_path otconfig_file_path = "./otconfig.yml" docker_compose_path = "./docker_compose.yml" mock_endpoint = var.mock_endpoint sample_app_listen_address = "${module.common.sample_app_listen_address_ip}:${module.common.sample_app_listen_address_port}" } # generate otconfig data "template_file" "otconfig" { template = file(local.otconfig_template_path) vars = { region = var.region otel_service_namespace = module.common.otel_service_namespace otel_service_name = module.common.otel_service_name testing_id = module.common.testing_id grpc_port = module.common.grpc_port udp_port = module.common.udp_port http_port = module.common.http_port mock_endpoint = local.mock_endpoint sample_app_listen_address_host = "172.17.0.1" sample_app_listen_address_port = module.common.sample_app_listen_address_port log_level = var.debug ? "debug" : "info" } } resource "local_file" "write_otconfig_file" { content = data.template_file.otconfig.rendered filename = local.otconfig_file_path } # generate docker compose file data "template_file" "docker_compose" { template = var.sample_app_image != "" ? file("../templates/local/docker_compose.tpl") : file("../templates/local/docker_compose_from_source.tpl") vars = { collector_repo_path = var.collector_repo_path otconfig_path = local.otconfig_file_path grpc_port = module.common.grpc_port udp_port = module.common.udp_port http_port = module.common.http_port sample_app_external_port = module.common.sample_app_listen_address_port sample_app_listen_address_port = module.common.sample_app_listen_address_port sample_app_listen_address = local.sample_app_listen_address otel_resource_attributes = "service.namespace=${module.common.otel_service_namespace},service.name=${module.common.otel_service_name}" testing_id = module.common.testing_id region = var.region sample_app = var.sample_app sample_app_image = var.sample_app_image mocked_server = var.mocked_server } } resource "local_file" "write_docker_compose_file" { content = data.template_file.docker_compose.rendered filename = local.docker_compose_path } # launch docker compose resource "null_resource" "run_docker_compose" { provisioner "local-exec" { command = <<-EOT docker-compose -f ${local.docker_compose_path} down docker-compose -f ${local.docker_compose_path} build docker-compose -f ${local.docker_compose_path} up -d EOT } } module "validator" { source = "../validation" validation_config = var.validation_config region = var.region testing_id = module.common.testing_id sample_app_endpoint = "http://172.17.0.1:${module.common.sample_app_listen_address_port}" mocked_server_validating_url = "http://172.17.0.1/check-data" depends_on = [null_resource.run_docker_compose] }