diff --git a/.changeset/sharp-bikes-cover.md b/.changeset/sharp-bikes-cover.md new file mode 100644 index 0000000000..a845151cc8 --- /dev/null +++ b/.changeset/sharp-bikes-cover.md @@ -0,0 +1,2 @@ +--- +--- diff --git a/.dockerignore b/.dockerignore index a68958f310..8ffbe5f3a7 100644 --- a/.dockerignore +++ b/.dockerignore @@ -2,7 +2,7 @@ .github/ **/node_modules/** **/dist/** -!docker/scripts/dist +!docker/scripts/dist/** **/build/** **/coverage/** diff --git a/package.json b/package.json index 6e2cf6a743..3df6164e71 100644 --- a/package.json +++ b/package.json @@ -50,7 +50,7 @@ "docker:build:latest": "yarn docker:build:packaging && yarn docker:build:images:latest", "docker:build:local": "yarn docker:build:packaging && yarn docker:build:images:local", "docker:build:packaging": "yarn docker:scripts:build && docker build --tag api3/airnode-packaging:latest --file docker/Dockerfile .", - "docker:scripts:build": "ncc build docker/scripts/cli.ts -o docker/scripts/dist --no-cache --minify --source-map --transpile-only", + "docker:scripts:build": "ncc build docker/scripts/cli.ts -o docker/scripts/dist --no-cache --source-map --transpile-only", "docker:scripts:docker:build": "docker run --rm -v /var/run/docker.sock:/var/run/docker.sock api3/airnode-packaging:latest docker build", "docker:scripts:docker:build:latest": "yarn docker:scripts:docker:build", "docker:scripts:docker:build:local": "yarn docker:scripts:docker:build --npm-registry local --npm-tag snapshot-local --docker-tags local", diff --git a/packages/airnode-deployer/docker/Dockerfile b/packages/airnode-deployer/docker/Dockerfile index 7eed1fd23e..2f92a54113 100644 --- a/packages/airnode-deployer/docker/Dockerfile +++ b/packages/airnode-deployer/docker/Dockerfile @@ -4,7 +4,7 @@ ARG npmRegistryUrl=https://registry.npmjs.org/ ARG npmTag=latest ENV name="airnode-deployer" \ - baseTerraformURL="https://releases.hashicorp.com/terraform/1.2.3/terraform_1.2.3_linux_" \ + baseTerraformURL="https://releases.hashicorp.com/terraform/1.3.9/terraform_1.3.9_linux_" \ appDir="/app" ENV packageName="@api3/${name}" diff --git a/packages/airnode-deployer/terraform/aws/backend.tf b/packages/airnode-deployer/terraform/aws/backend.tf index 334f8c7584..31983f0dfa 100644 --- a/packages/airnode-deployer/terraform/aws/backend.tf +++ b/packages/airnode-deployer/terraform/aws/backend.tf @@ -1,5 +1,5 @@ terraform { - required_version = "~> 1.2" + required_version = "~> 1.3" backend "s3" { key = "terraform.tfstate" diff --git a/packages/airnode-deployer/terraform/aws/providers.tf b/packages/airnode-deployer/terraform/aws/providers.tf index 5a8e14826a..3ad05fabb9 100644 --- a/packages/airnode-deployer/terraform/aws/providers.tf +++ b/packages/airnode-deployer/terraform/aws/providers.tf @@ -2,14 +2,13 @@ terraform { required_providers { aws = { source = "hashicorp/aws" - version = "~> 3.71" + version = "~> 4.56" } } - required_version = "~> 1.2" + required_version = "~> 1.3" } provider "aws" { - profile = "default" - region = var.aws_region + region = var.aws_region } diff --git a/packages/airnode-deployer/terraform/gcp/backend.tf b/packages/airnode-deployer/terraform/gcp/backend.tf index 39233694b9..b52c9e4f51 100644 --- a/packages/airnode-deployer/terraform/gcp/backend.tf +++ b/packages/airnode-deployer/terraform/gcp/backend.tf @@ -1,5 +1,5 @@ terraform { - required_version = "~> 1.2" + required_version = "~> 1.3" backend "gcs" { } diff --git a/packages/airnode-deployer/terraform/gcp/main.tf b/packages/airnode-deployer/terraform/gcp/main.tf index e2990495a0..8055124a8c 100644 --- a/packages/airnode-deployer/terraform/gcp/main.tf +++ b/packages/airnode-deployer/terraform/gcp/main.tf @@ -56,18 +56,20 @@ module "run" { module "startCoordinator" { source = "./modules/function" - name = "${local.name_prefix}-startCoordinator" - entry_point = "startCoordinator" - source_dir = var.handler_dir - memory_size = 512 - timeout = 65 - configuration_file = var.configuration_file - secrets_file = var.secrets_file - region = var.gcp_region - project = var.gcp_project - schedule_interval = 1 - max_instances = var.disable_concurrency_reservation ? null : 1 - invoke_targets = [module.run.function_name] + name = "${local.name_prefix}-startCoordinator" + entry_point = "startCoordinator" + source_dir = var.handler_dir + memory_size = 512 + timeout = 65 + configuration_file = var.configuration_file + secrets_file = var.secrets_file + region = var.gcp_region + project = var.gcp_project + schedule_interval = 1 + max_instances = var.disable_concurrency_reservation ? null : 1 + invoke_targets = { + run = module.run.function_name + } airnode_bucket = var.airnode_bucket deployment_bucket_dir = var.deployment_bucket_dir environment_variables = { @@ -144,9 +146,9 @@ module "httpGw" { } project = var.gcp_project - invoke_targets = [ - module.httpReq[0].function_name - ] + invoke_targets = { + httpReq = module.httpReq[0].function_name + } depends_on = [ google_project_service.apigateway_api, @@ -194,9 +196,9 @@ module "httpSignedGw" { } project = var.gcp_project - invoke_targets = [ - module.httpSignedReq[0].function_name - ] + invoke_targets = { + httpSignedReq = module.httpSignedReq[0].function_name + } depends_on = [ google_project_service.apigateway_api, diff --git a/packages/airnode-deployer/terraform/gcp/modules/apigateway/main.tf b/packages/airnode-deployer/terraform/gcp/modules/apigateway/main.tf index 1c42de4eec..19173b4fc1 100644 --- a/packages/airnode-deployer/terraform/gcp/modules/apigateway/main.tf +++ b/packages/airnode-deployer/terraform/gcp/modules/apigateway/main.tf @@ -24,9 +24,9 @@ resource "google_project_iam_member" "api_gateway_logging_writer_role" { } resource "google_cloudfunctions_function_iam_member" "invoker" { - for_each = toset(var.invoke_targets) + for_each = var.invoke_targets - cloud_function = each.key + cloud_function = each.value role = "roles/cloudfunctions.invoker" member = "serviceAccount:${google_service_account.api_gateway_service_account.email}" project = var.project diff --git a/packages/airnode-deployer/terraform/gcp/modules/apigateway/variables.tf b/packages/airnode-deployer/terraform/gcp/modules/apigateway/variables.tf index 9e71fc00ac..6affd92f5f 100644 --- a/packages/airnode-deployer/terraform/gcp/modules/apigateway/variables.tf +++ b/packages/airnode-deployer/terraform/gcp/modules/apigateway/variables.tf @@ -14,8 +14,8 @@ variable "template_variables" { variable "invoke_targets" { description = "Names of cloud functions that can be invoked from the APIGateway" - type = list(string) - default = [] + type = map(string) + default = {} } variable "project" { diff --git a/packages/airnode-deployer/terraform/gcp/modules/function/main.tf b/packages/airnode-deployer/terraform/gcp/modules/function/main.tf index 1800052d0d..a76d7291fa 100644 --- a/packages/airnode-deployer/terraform/gcp/modules/function/main.tf +++ b/packages/airnode-deployer/terraform/gcp/modules/function/main.tf @@ -39,9 +39,9 @@ resource "google_project_iam_member" "function_logging_writer_role" { } resource "google_cloudfunctions_function_iam_member" "invoker" { - for_each = toset(var.invoke_targets) + for_each = var.invoke_targets - cloud_function = each.key + cloud_function = each.value role = "roles/cloudfunctions.invoker" member = "serviceAccount:${google_service_account.function_service_account.email}" project = var.project diff --git a/packages/airnode-deployer/terraform/gcp/modules/function/variables.tf b/packages/airnode-deployer/terraform/gcp/modules/function/variables.tf index 04ab7fa13a..d96edbdea6 100644 --- a/packages/airnode-deployer/terraform/gcp/modules/function/variables.tf +++ b/packages/airnode-deployer/terraform/gcp/modules/function/variables.tf @@ -23,8 +23,8 @@ variable "timeout" { variable "invoke_targets" { description = "Names of other cloud functions that can be invoked from the cloud function" - type = list(string) - default = [] + type = map(string) + default = {} } variable "schedule_interval" { diff --git a/packages/airnode-deployer/terraform/gcp/providers.tf b/packages/airnode-deployer/terraform/gcp/providers.tf index 66d259b8e4..6415800a09 100644 --- a/packages/airnode-deployer/terraform/gcp/providers.tf +++ b/packages/airnode-deployer/terraform/gcp/providers.tf @@ -2,11 +2,11 @@ terraform { required_providers { google = { source = "hashicorp/google" - version = "~> 4.7" + version = "~> 4.54" } } - required_version = "~> 1.2" + required_version = "~> 1.3" } provider "google" {