diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 5a4222c..3b8a4d0 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -2,9 +2,7 @@ name: lint on: push: - branches: [main] pull_request: - branches: [main] jobs: code: @@ -13,7 +11,7 @@ jobs: - uses: actions/checkout@v3 - uses: CodeForPoznan/actions/setup-infrastructure@v2 with: - terraform-version: 1.5.3 + terraform-version: 1.12.0 - run: make check diff --git a/.terraform.lock.hcl b/.terraform.lock.hcl index 98e629a..586c80c 100644 --- a/.terraform.lock.hcl +++ b/.terraform.lock.hcl @@ -2,86 +2,86 @@ # Manual edits may be lost in future updates. provider "registry.terraform.io/cyrilgdn/postgresql" { - version = "1.19.0" - constraints = "1.19.0" + version = "1.25.0" + constraints = "1.25.0" hashes = [ - "h1:bjyu7Ry5HB+FosY5ZKWTNxWVTe0LwwDNbzpAYxPfdNU=", - "zh:00f946e9e657556234b1ab6b11ff94c1f67d2dec20a0643f5f70fd4b612167e4", - "zh:01cac73ff59c3ee3cc3716b006266a81d182f2622e944c08081551a2688ee5bb", - "zh:0e688a1c326baff9fb3e70bed4911b13220338045bfc77796f2468699e9f715b", - "zh:12f8bb65b891356705c7ece166611a6096ffe002a78af8254f946b1fd7f5aaef", - "zh:2f2a7099f50f14b4a6026a3db7e3de01c50efa855b497e0c03d291b72ee85e08", - "zh:8f41731313a56d04b01c730059b463df32e5cb8cc9eace8e579650a55dd9cfb1", - "zh:b04fe91735b24148aaa438cfdc33ac8e31b92b61ed2cb59ca62f3709396af619", - "zh:b09302fe09e385f277ac8ea1d70adc7acbea623f04e4c362f36599c287c1e92c", - "zh:b2fa7e8a135b69b5c204ce9e6be9a1219c3550c0e4f4bb59029f79e2a7639163", - "zh:c8d92e962da3a4f620aad86b8bd1f2f373670f0d3b62f8e7d8efb31b73014d35", - "zh:d2c3070a6ae03aa71156ed5ff8d68bf7c9cf402ff540d5baf5f5a9915c70a85d", - "zh:f39a3a9c3be75630b69efc5ee233abb89b5d8ffab36318074750d58da5aab612", - "zh:f8195be4222937ac15a3c4a4cfeacc87627a550bf257bc2430d2866b9784afb6", - "zh:ff2dcedfb3fb8f9df5cc35ac0388dae5d1fc0c5d90db81b67414a7ec179abd98", + "h1:4Hlupc8gYrPnFKisesXs9lypK6LXslU4L4tjBZOhmiE=", + "zh:0f9db6e1274603d642e96b58eaf6cc4223f7118f2d7ce909dc4812d332cc002a", + "zh:1819470f0304c6a60b2b51817cb43f6ff59a49e08cc9e50644b86b3a76c91601", + "zh:27bfb544983cac101a7c7c2e4cb9939a712dffcdd7ddcab83c2f8afc334e33c5", + "zh:46166f6f05771b0495df18459fdf3a63fae8b38e95a1b2754f03d006e17ea33d", + "zh:64d53afc52f26e8214990acc3e07f3b47bef628aa6b317595a8faec05b252209", + "zh:944d7ded418c022dd3ee513246677d601376fa38d76c9c4aecff2c2eefcaa35b", + "zh:9819551b61542a6d322d6a323bbb552ce02e769ce2222fd9bb1935473c7c4b3c", + "zh:c38bd73e208fe216efab48d099c85b8ad1e51ff102b3892443febc9778e7236e", + "zh:c73de133274dcc7a03e95f598550facc59315538f355e57e14b36e222b298826", + "zh:c7af02f5338bfe7f1976e01d3fcf82e05b3551893e732539a84c568d25571a84", + "zh:d1aa3d7432c7de883873f8f70e9a6207c7b536d874486d37aee0ca8c8853a890", + "zh:e17e9809fc7cc2d6f89078b8bfe6308930117b2270be8081820da40029b04828", + "zh:e1b21b7b7022e0d468d72f4534d226d57a7bfd8c96a4c7dc2c2fa0bb0b99298d", + "zh:f24b73645d8bc225f692bdf9c035411099ef57138569f45f3605ec79ac872e3b", ] } provider "registry.terraform.io/hashicorp/aws" { - version = "5.61.0" - constraints = "5.61.0" + version = "5.98.0" + constraints = "5.98.0" hashes = [ - "h1:qYXhPfMOxgOYuSjfe7+P2wdqx4oMkPYgH4XUN3fJb54=", - "zh:1a0a150b6adaeacc8f56763182e76c6219ac67de1217b269d24b770067b7bab0", - "zh:1d9c3a8ac3934a147569254d6e2e6ea5293974d0595c02c9e1aa31499a8f0042", - "zh:1f4d1d5e2e02fd5cccafa28dade8735a3059ed1ca3284fb40116cdb67d0e7ee4", - "zh:26be6f759bded469de477f54c7eb7a9ca9f137a3b52f9fd26cbd864f16973912", - "zh:276e308ae7aa281fe24f7275673aa05f00cb830b83c2b9797f9aa55f10769c52", - "zh:45c09beeadb4269d518de0bd341cbe9f061157ab54c543d39168ecefff40bbe2", - "zh:58fb5ef076dc63e284ce28b47b7cc35a17d2596f11e2373fe568c6140277e9d8", - "zh:64d51cc1ad412379f64b75883a881a5d682a8e9737ad14479f6a2d62e77f7dbe", - "zh:71e2e332317cf095288d65a801e95b65fd696204997b2db5250862d6c5669518", - "zh:9864014aa4716b5bfb3b27d009f158dd6a67c215fd0dfbe3a5d1a7cee72c5677", + "h1:KgOCdSG6euSc2lquuFlISJU/CzQTRhAO7WoaASxLZRc=", + "zh:23377bd90204b6203b904f48f53edcae3294eb072d8fc18a4531c0cde531a3a1", + "zh:2e55a6ea14cc43b08cf82d43063e96c5c2f58ee953c2628523d0ee918fe3b609", + "zh:4885a817c16fdaaeddc5031edc9594c1f300db0e5b23be7cd76a473e7dcc7b4f", + "zh:6ca7177ad4e5c9d93dee4be1ac0792b37107df04657fddfe0c976f36abdd18b5", + "zh:78bf8eb0a67bae5dede09666676c7a38c9fb8d1b80a90ba06cf36ae268257d6f", + "zh:874b5a99457a3f88e2915df8773120846b63d820868a8f43082193f3dc84adcb", + "zh:95e1e4cf587cde4537ac9dfee9e94270652c812ab31fce3a431778c053abf354", "zh:9b12af85486a96aedd8d7984b0ff811a4b42e3d88dad1a3fb4c0b580d04fa425", - "zh:d8bf9ba43bd938faab37d8fb515c32a905d6dace60f5ff2663b06ffdc89a62e9", - "zh:e654be9d3980e7cc70f9825fe0d0205e254edd87832f18b2d7f9c72b09b776cd", - "zh:ee5ce6fbe75be3e90cabba3fad76fcfde50ab795e523b4ee917cfe8ba8ad42fe", - "zh:ef12098e7b3ddf9ab286bb209de87dfa8e52106049ced0841e3e6487dbff3659", + "zh:a75145b58b241d64570803e6565c72467cd664633df32678755b51871f553e50", + "zh:aa31b13d0b0e8432940d6892a48b6268721fa54a02ed62ee42745186ee32f58d", + "zh:ae4565770f76672ce8e96528cbb66afdade1f91383123c079c7fdeafcb3d2877", + "zh:b99f042c45bf6aa69dd73f3f6d9cbe0b495b30442c526e0b3810089c059ba724", + "zh:bbb38e86d926ef101cefafe8fe090c57f2b1356eac9fc5ec81af310c50375897", + "zh:d03c89988ba4a0bd3cfc8659f951183ae7027aa8018a7ca1e53a300944af59cb", + "zh:d179ef28843fe663fc63169291a211898199009f0d3f63f0a6f65349e77727ec", ] } provider "registry.terraform.io/hashicorp/cloudinit" { - version = "2.3.2" - constraints = "2.3.2" + version = "2.3.7" + constraints = "2.3.7" hashes = [ - "h1:ocyv0lvfyvzW4krenxV5CL4Jq5DiA3EUfoy8DR6zFMw=", - "zh:2487e498736ed90f53de8f66fe2b8c05665b9f8ff1506f751c5ee227c7f457d1", - "zh:3d8627d142942336cf65eea6eb6403692f47e9072ff3fa11c3f774a3b93130b3", - "zh:434b643054aeafb5df28d5529b72acc20c6f5ded24decad73b98657af2b53f4f", - "zh:436aa6c2b07d82aa6a9dd746a3e3a627f72787c27c80552ceda6dc52d01f4b6f", - "zh:458274c5aabe65ef4dbd61d43ce759287788e35a2da004e796373f88edcaa422", - "zh:54bc70fa6fb7da33292ae4d9ceef5398d637c7373e729ed4fce59bd7b8d67372", + "h1:iZ27qylcH/2bs685LJTKOKcQ+g7cF3VwN3kHMrzm4Ow=", + "zh:06f1c54e919425c3139f8aeb8fcf9bceca7e560d48c9f0c1e3bb0a8ad9d9da1e", + "zh:0e1e4cf6fd98b019e764c28586a386dc136129fef50af8c7165a067e7e4a31d5", + "zh:1871f4337c7c57287d4d67396f633d224b8938708b772abfc664d1f80bd67edd", + "zh:2b9269d91b742a71b2248439d5e9824f0447e6d261bfb86a8a88528609b136d1", + "zh:3d8ae039af21426072c66d6a59a467d51f2d9189b8198616888c1b7fc42addc7", + "zh:3ef4e2db5bcf3e2d915921adced43929214e0946a6fb11793085d9a48995ae01", + "zh:42ae54381147437c83cbb8790cc68935d71b6357728a154109d3220b1beb4dc9", + "zh:4496b362605ae4cbc9ef7995d102351e2fe311897586ffc7a4a262ccca0c782a", + "zh:652a2401257a12706d32842f66dac05a735693abcb3e6517d6b5e2573729ba13", + "zh:7406c30806f5979eaed5f50c548eced2ea18ea121e01801d2f0d4d87a04f6a14", + "zh:7848429fd5a5bcf35f6fee8487df0fb64b09ec071330f3ff240c0343fe2a5224", "zh:78d5eefdd9e494defcb3c68d282b8f96630502cac21d1ea161f53cfe9bb483b3", - "zh:893ba267e18749c1a956b69be569f0d7bc043a49c3a0eb4d0d09a8e8b2ca3136", - "zh:95493b7517bce116f75cdd4c63b7c82a9d0d48ec2ef2f5eb836d262ef96d0aa7", - "zh:9ae21ab393be52e3e84e5cce0ef20e690d21f6c10ade7d9d9d22b39851bfeddc", - "zh:cc3b01ac2472e6d59358d54d5e4945032efbc8008739a6d4946ca1b621a16040", - "zh:f23bfe9758f06a1ec10ea3a81c9deedf3a7b42963568997d84a5153f35c5839a", ] } provider "registry.terraform.io/hashicorp/random" { - version = "3.5.1" - constraints = "3.5.1" + version = "3.7.2" + constraints = "3.7.2" hashes = [ - "h1:IL9mSatmwov+e0+++YX2V6uel+dV6bn+fC/cnGDK3Ck=", - "zh:04e3fbd610cb52c1017d282531364b9c53ef72b6bc533acb2a90671957324a64", - "zh:119197103301ebaf7efb91df8f0b6e0dd31e6ff943d231af35ee1831c599188d", - "zh:4d2b219d09abf3b1bb4df93d399ed156cadd61f44ad3baf5cf2954df2fba0831", - "zh:6130bdde527587bbe2dcaa7150363e96dbc5250ea20154176d82bc69df5d4ce3", - "zh:6cc326cd4000f724d3086ee05587e7710f032f94fc9af35e96a386a1c6f2214f", + "h1:356j/3XnXEKr9nyicLUufzoF4Yr6hRy481KIxRVpK0c=", + "zh:14829603a32e4bc4d05062f059e545a91e27ff033756b48afbae6b3c835f508f", + "zh:1527fb07d9fea400d70e9e6eb4a2b918d5060d604749b6f1c361518e7da546dc", + "zh:1e86bcd7ebec85ba336b423ba1db046aeaa3c0e5f921039b3f1a6fc2f978feab", + "zh:24536dec8bde66753f4b4030b8f3ef43c196d69cccbea1c382d01b222478c7a3", + "zh:29f1786486759fad9b0ce4fdfbbfece9343ad47cd50119045075e05afe49d212", + "zh:4d701e978c2dd8604ba1ce962b047607701e65c078cb22e97171513e9e57491f", "zh:78d5eefdd9e494defcb3c68d282b8f96630502cac21d1ea161f53cfe9bb483b3", - "zh:b6d88e1d28cf2dfa24e9fdcc3efc77adcdc1c3c3b5c7ce503a423efbdd6de57b", - "zh:ba74c592622ecbcef9dc2a4d81ed321c4e44cddf7da799faa324da9bf52a22b2", - "zh:c7c5cde98fe4ef1143bd1b3ec5dc04baf0d4cc3ca2c5c7d40d17c0e9b2076865", - "zh:dac4bad52c940cd0dfc27893507c1e92393846b024c5a9db159a93c534a3da03", - "zh:de8febe2a2acd9ac454b844a4106ed295ae9520ef54dc8ed2faf29f12716b602", - "zh:eab0d0495e7e711cca367f7d4df6e322e6c562fc52151ec931176115b83ed014", + "zh:7b8434212eef0f8c83f5a90c6d76feaf850f6502b61b53c329e85b3b281cba34", + "zh:ac8a23c212258b7976e1621275e3af7099e7e4a3d4478cf8d5d2a27f3bc3e967", + "zh:b516ca74431f3df4c6cf90ddcdb4042c626e026317a33c53f0b445a3d93b720d", + "zh:dc76e4326aec2490c1600d6871a95e78f9050f9ce427c71707ea412a2f2f1a62", + "zh:eac7b63e86c749c7d48f527671c7aee5b4e26c10be6ad7232d6860167f99dbb0", ] } diff --git a/README.md b/README.md index a916fa1..54b09b7 100644 --- a/README.md +++ b/README.md @@ -4,19 +4,6 @@ Repository contains description of Code for PoznaƄ infrastructure. You'll need AWS credentials into our organization and a tunnel to our bastion server in order to work with this code. This can't be done unless you've been added by one of admins (see ./admins.tf file). -#### version used - -```shell -terraform version -Terraform v1.5.2 -on darwin_arm64 -+ provider registry.terraform.io/cyrilgdn/postgresql v1.19.0 -+ provider registry.terraform.io/hashicorp/aws v5.7.0 -+ provider registry.terraform.io/hashicorp/cloudinit v2.3.2 -+ provider registry.terraform.io/hashicorp/random v3.5.1 -``` - - #### Initialize project ``` diff --git a/codeforpoznan_pl_v3.tf b/codeforpoznan_pl_v3.tf index 0f994a2..cdb6d24 100644 --- a/codeforpoznan_pl_v3.tf +++ b/codeforpoznan_pl_v3.tf @@ -112,8 +112,8 @@ module "codeforpoznan_pl_v3_cloudfront_distribution" { origin_path = "/codeforpoznan_pl_v3" } api_gateway = { - domain_name = regex("https://(?P[^/?#]*)(?P[^?#]*)", module.codeforpoznan_pl_v3_serverless_api.deployment.invoke_url).hostname - origin_path = regex("https://(?P[^/?#]*)(?P[^?#]*)", module.codeforpoznan_pl_v3_serverless_api.deployment.invoke_url).path + domain_name = regex("https://(?P[^/?#]*)(?P[^?#]*)", module.codeforpoznan_pl_v3_serverless_api.stage.invoke_url).hostname + origin_path = regex("https://(?P[^/?#]*)(?P[^?#]*)", module.codeforpoznan_pl_v3_serverless_api.stage.invoke_url).path custom_origin = true } } @@ -137,6 +137,11 @@ module "codeforpoznan_pl_v3_cloudfront_distribution" { ] } +import { + to = module.codeforpoznan_pl_v3_serverless_api.aws_api_gateway_stage.stage + id = "q4ih7hkyl4/devel" +} + module "codeforpoznan_pl_v3_serverless_api" { source = "./serverless_api" diff --git a/db.tf b/db.tf index 4bb9fe7..8b92465 100644 --- a/db.tf +++ b/db.tf @@ -16,7 +16,7 @@ resource "aws_db_instance" "db" { identifier = "main-postgres" engine = "postgres" - engine_version = "12.17" + engine_version = "12.19" instance_class = "db.t3.micro" allocated_storage = 8 diff --git a/dev_codeforpoznan_pl_v3.tf b/dev_codeforpoznan_pl_v3.tf index 7fb314e..c20593f 100644 --- a/dev_codeforpoznan_pl_v3.tf +++ b/dev_codeforpoznan_pl_v3.tf @@ -113,6 +113,11 @@ resource "aws_iam_user_policy_attachment" "dev_codeforpoznan_pl_v3_ses_policy_at user = module.dev_codeforpoznan_pl_v3_user.user.name } +import { + to = module.dev_codeforpoznan_pl_v3_serverless_api.aws_api_gateway_stage.stage + id = "z00svsc3od/devel" +} + module "dev_codeforpoznan_pl_v3_serverless_api" { source = "./serverless_api" @@ -153,8 +158,8 @@ module "dev_codeforpoznan_pl_v3_cloudfront_distribution" { origin_path = "/dev_codeforpoznan_pl_v3" } api_gateway = { - domain_name = regex("https://(?P[^/?#]*)(?P[^?#]*)", module.dev_codeforpoznan_pl_v3_serverless_api.deployment.invoke_url).hostname - origin_path = regex("https://(?P[^/?#]*)(?P[^?#]*)", module.dev_codeforpoznan_pl_v3_serverless_api.deployment.invoke_url).path + domain_name = regex("https://(?P[^/?#]*)(?P[^?#]*)", module.dev_codeforpoznan_pl_v3_serverless_api.stage.invoke_url).hostname + origin_path = regex("https://(?P[^/?#]*)(?P[^?#]*)", module.dev_codeforpoznan_pl_v3_serverless_api.stage.invoke_url).path custom_origin = true } } diff --git a/dev_pah_fm.tf b/dev_pah_fm.tf index f92bf6c..0bd8c97 100644 --- a/dev_pah_fm.tf +++ b/dev_pah_fm.tf @@ -65,6 +65,11 @@ module "dev_pah_fm_frontend_assets" { iam_user = module.dev_pah_fm_user.user } +import { + to = module.dev_pah_fm_serverless_api.aws_api_gateway_stage.stage + id = "8sbwf5qbi1/devel" +} + module "dev_pah_fm_serverless_api" { source = "./serverless_api" @@ -112,8 +117,8 @@ module "dev_pah_fm_cloudfront_distribution" { origin_path = "/dev_pah_fm" } api_gateway = { - domain_name = regex("https://(?P[^/?#]*)(?P[^?#]*)", module.dev_pah_fm_serverless_api.deployment.invoke_url).hostname - origin_path = regex("https://(?P[^/?#]*)(?P[^?#]*)", module.dev_pah_fm_serverless_api.deployment.invoke_url).path + domain_name = regex("https://(?P[^/?#]*)(?P[^?#]*)", module.dev_pah_fm_serverless_api.stage.invoke_url).hostname + origin_path = regex("https://(?P[^/?#]*)(?P[^?#]*)", module.dev_pah_fm_serverless_api.stage.invoke_url).path custom_origin = true } } diff --git a/providers.tf b/providers.tf index b1f464a..f96c28c 100644 --- a/providers.tf +++ b/providers.tf @@ -1,5 +1,5 @@ terraform { - required_version = ">= 1.5.0" + required_version = "~> 1.12.0" backend "s3" { bucket = "codeforpoznan-tfstate" @@ -11,20 +11,20 @@ terraform { required_providers { aws = { source = "hashicorp/aws" - version = "5.61.0" + version = "5.98.0" configuration_aliases = [aws.north_virginia] } random = { source = "hashicorp/random" - version = "3.6.2" + version = "3.7.2" } cloudinit = { source = "hashicorp/cloudinit" - version = "2.3.4" + version = "2.3.7" } postgresql = { source = "cyrilgdn/postgresql" - version = "1.19.0" + version = "1.25.0" } } } diff --git a/serverless_api/main.tf b/serverless_api/main.tf index 604fbe4..4e285df 100644 --- a/serverless_api/main.tf +++ b/serverless_api/main.tf @@ -105,7 +105,6 @@ resource "aws_api_gateway_integration" "proxy_integration" { resource "aws_api_gateway_deployment" "deployment" { rest_api_id = aws_api_gateway_rest_api.rest_api.id - stage_name = "devel" depends_on = [ aws_api_gateway_integration.root_integration, @@ -113,14 +112,20 @@ resource "aws_api_gateway_deployment" "deployment" { ] } +resource "aws_api_gateway_stage" "stage" { + deployment_id = aws_api_gateway_deployment.deployment.id + rest_api_id = aws_api_gateway_rest_api.rest_api.id + stage_name = "devel" +} + resource "aws_lambda_permission" "permission" { function_name = module.lambda.function.function_name statement_id = "${replace(title(replace(var.name, "/[\\._]/", " ")), " ", "")}Invoke" action = "lambda:InvokeFunction" principal = "apigateway.amazonaws.com" - source_arn = "${replace(aws_api_gateway_deployment.deployment.execution_arn, "devel", "")}*/*" + source_arn = "${replace(aws_api_gateway_stage.stage.execution_arn, "devel", "")}*/*" } -output "deployment" { - value = aws_api_gateway_deployment.deployment +output "stage" { + value = aws_api_gateway_stage.stage }