mirror of
https://github.com/FoggedLens/id-tagging-schema.git
synced 2026-02-12 16:52:45 +00:00
add terraform
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -4,6 +4,8 @@
|
||||
/node_modules/
|
||||
/.tx/tmp/
|
||||
npm-debug.log
|
||||
target/
|
||||
.terraform*
|
||||
|
||||
transifex.auth
|
||||
interim
|
||||
|
||||
67
terraform/main.tf
Normal file
67
terraform/main.tf
Normal file
@@ -0,0 +1,67 @@
|
||||
provider "aws" {
|
||||
region = "us-east-1"
|
||||
}
|
||||
|
||||
resource "aws_s3_bucket" "static_website" {
|
||||
bucket = "id-tagging-schema.deflock.me"
|
||||
|
||||
tags = {
|
||||
Name = "id-tagging-schema.deflock.me"
|
||||
Environment = "Production"
|
||||
}
|
||||
}
|
||||
|
||||
resource "aws_s3_bucket_website_configuration" "static_website_website_configuration" {
|
||||
bucket = aws_s3_bucket.static_website.id
|
||||
|
||||
index_document {
|
||||
suffix = "index.html"
|
||||
}
|
||||
}
|
||||
|
||||
resource "aws_s3_bucket_public_access_block" "static_website_public_access_block" {
|
||||
bucket = aws_s3_bucket.static_website.id
|
||||
|
||||
block_public_acls = false
|
||||
block_public_policy = false
|
||||
ignore_public_acls = false
|
||||
restrict_public_buckets = false
|
||||
}
|
||||
|
||||
resource "null_resource" "sync_dist_to_s3" {
|
||||
triggers = {
|
||||
always_run = timestamp()
|
||||
}
|
||||
|
||||
provisioner "local-exec" {
|
||||
command = "aws s3 sync ../dist s3://${aws_s3_bucket.static_website.bucket}/dist"
|
||||
}
|
||||
}
|
||||
|
||||
resource "aws_s3_bucket_policy" "static_website_policy" {
|
||||
bucket = aws_s3_bucket.static_website.id
|
||||
|
||||
policy = jsonencode({
|
||||
Version = "2012-10-17",
|
||||
Statement = [
|
||||
{
|
||||
Effect = "Allow",
|
||||
Principal = "*",
|
||||
Action = "s3:GetObject",
|
||||
Resource = "${aws_s3_bucket.static_website.arn}/*"
|
||||
}
|
||||
]
|
||||
})
|
||||
}
|
||||
|
||||
resource "aws_s3_bucket_cors_configuration" "static_website_cors" {
|
||||
bucket = aws_s3_bucket.static_website.id
|
||||
|
||||
cors_rule {
|
||||
allowed_headers = ["*"]
|
||||
allowed_methods = ["GET"]
|
||||
allowed_origins = ["*"]
|
||||
expose_headers = ["ETag"]
|
||||
max_age_seconds = 3000
|
||||
}
|
||||
}
|
||||
215
terraform/terraform.tfstate
Normal file
215
terraform/terraform.tfstate
Normal file
@@ -0,0 +1,215 @@
|
||||
{
|
||||
"version": 4,
|
||||
"terraform_version": "1.9.2",
|
||||
"serial": 25,
|
||||
"lineage": "cf04ad7f-ea29-d2e3-80c6-14fc4ab44b37",
|
||||
"outputs": {},
|
||||
"resources": [
|
||||
{
|
||||
"mode": "managed",
|
||||
"type": "aws_s3_bucket",
|
||||
"name": "static_website",
|
||||
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
|
||||
"instances": [
|
||||
{
|
||||
"schema_version": 0,
|
||||
"attributes": {
|
||||
"acceleration_status": "",
|
||||
"acl": null,
|
||||
"arn": "arn:aws:s3:::id-tagging-schema.deflock.me",
|
||||
"bucket": "id-tagging-schema.deflock.me",
|
||||
"bucket_domain_name": "id-tagging-schema.deflock.me.s3.amazonaws.com",
|
||||
"bucket_prefix": "",
|
||||
"bucket_regional_domain_name": "id-tagging-schema.deflock.me.s3.us-east-1.amazonaws.com",
|
||||
"cors_rule": [
|
||||
{
|
||||
"allowed_headers": [
|
||||
"*"
|
||||
],
|
||||
"allowed_methods": [
|
||||
"GET"
|
||||
],
|
||||
"allowed_origins": [
|
||||
"*"
|
||||
],
|
||||
"expose_headers": [
|
||||
"ETag"
|
||||
],
|
||||
"max_age_seconds": 3000
|
||||
}
|
||||
],
|
||||
"force_destroy": false,
|
||||
"grant": [
|
||||
{
|
||||
"id": "f84c6ddbd25d207206bab0897ee1a1e4419f396282e256f36898c01604a56191",
|
||||
"permissions": [
|
||||
"FULL_CONTROL"
|
||||
],
|
||||
"type": "CanonicalUser",
|
||||
"uri": ""
|
||||
}
|
||||
],
|
||||
"hosted_zone_id": "Z3AQBSTGFYJSTF",
|
||||
"id": "id-tagging-schema.deflock.me",
|
||||
"lifecycle_rule": [],
|
||||
"logging": [],
|
||||
"object_lock_configuration": [],
|
||||
"object_lock_enabled": false,
|
||||
"policy": "{\"Statement\":[{\"Action\":\"s3:GetObject\",\"Effect\":\"Allow\",\"Principal\":\"*\",\"Resource\":\"arn:aws:s3:::id-tagging-schema.deflock.me/*\"},{\"Action\":\"s3:GetBucketCors\",\"Effect\":\"Allow\",\"Principal\":\"*\",\"Resource\":\"arn:aws:s3:::id-tagging-schema.deflock.me\"}],\"Version\":\"2012-10-17\"}",
|
||||
"region": "us-east-1",
|
||||
"replication_configuration": [],
|
||||
"request_payer": "BucketOwner",
|
||||
"server_side_encryption_configuration": [
|
||||
{
|
||||
"rule": [
|
||||
{
|
||||
"apply_server_side_encryption_by_default": [
|
||||
{
|
||||
"kms_master_key_id": "",
|
||||
"sse_algorithm": "AES256"
|
||||
}
|
||||
],
|
||||
"bucket_key_enabled": false
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"tags": {
|
||||
"Environment": "Production",
|
||||
"Name": "id-tagging-schema.deflock.me"
|
||||
},
|
||||
"tags_all": {
|
||||
"Environment": "Production",
|
||||
"Name": "id-tagging-schema.deflock.me"
|
||||
},
|
||||
"timeouts": null,
|
||||
"versioning": [
|
||||
{
|
||||
"enabled": false,
|
||||
"mfa_delete": false
|
||||
}
|
||||
],
|
||||
"website": [
|
||||
{
|
||||
"error_document": "error.html",
|
||||
"index_document": "index.html",
|
||||
"redirect_all_requests_to": "",
|
||||
"routing_rules": ""
|
||||
}
|
||||
],
|
||||
"website_domain": "s3-website-us-east-1.amazonaws.com",
|
||||
"website_endpoint": "id-tagging-schema.deflock.me.s3-website-us-east-1.amazonaws.com"
|
||||
},
|
||||
"sensitive_attributes": [],
|
||||
"private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjM2MDAwMDAwMDAwMDAsInJlYWQiOjEyMDAwMDAwMDAwMDAsInVwZGF0ZSI6MTIwMDAwMDAwMDAwMH19"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"mode": "managed",
|
||||
"type": "aws_s3_bucket_cors_configuration",
|
||||
"name": "static_website_cors",
|
||||
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
|
||||
"instances": [
|
||||
{
|
||||
"schema_version": 0,
|
||||
"attributes": {
|
||||
"bucket": "id-tagging-schema.deflock.me",
|
||||
"cors_rule": [
|
||||
{
|
||||
"allowed_headers": [
|
||||
"*"
|
||||
],
|
||||
"allowed_methods": [
|
||||
"GET"
|
||||
],
|
||||
"allowed_origins": [
|
||||
"*"
|
||||
],
|
||||
"expose_headers": [
|
||||
"ETag"
|
||||
],
|
||||
"id": "",
|
||||
"max_age_seconds": 3000
|
||||
}
|
||||
],
|
||||
"expected_bucket_owner": "",
|
||||
"id": "id-tagging-schema.deflock.me"
|
||||
},
|
||||
"sensitive_attributes": [],
|
||||
"private": "bnVsbA==",
|
||||
"dependencies": [
|
||||
"aws_s3_bucket.static_website"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"mode": "managed",
|
||||
"type": "aws_s3_bucket_policy",
|
||||
"name": "static_website_policy",
|
||||
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
|
||||
"instances": [
|
||||
{
|
||||
"schema_version": 0,
|
||||
"attributes": {
|
||||
"bucket": "id-tagging-schema.deflock.me",
|
||||
"id": "id-tagging-schema.deflock.me",
|
||||
"policy": "{\"Statement\":[{\"Action\":\"s3:GetObject\",\"Effect\":\"Allow\",\"Principal\":\"*\",\"Resource\":\"arn:aws:s3:::id-tagging-schema.deflock.me/*\"}],\"Version\":\"2012-10-17\"}"
|
||||
},
|
||||
"sensitive_attributes": [],
|
||||
"private": "bnVsbA==",
|
||||
"dependencies": [
|
||||
"aws_s3_bucket.static_website"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"mode": "managed",
|
||||
"type": "aws_s3_bucket_public_access_block",
|
||||
"name": "static_website_public_access_block",
|
||||
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
|
||||
"instances": [
|
||||
{
|
||||
"schema_version": 0,
|
||||
"attributes": {
|
||||
"block_public_acls": false,
|
||||
"block_public_policy": false,
|
||||
"bucket": "id-tagging-schema.deflock.me",
|
||||
"id": "id-tagging-schema.deflock.me",
|
||||
"ignore_public_acls": false,
|
||||
"restrict_public_buckets": false
|
||||
},
|
||||
"sensitive_attributes": [],
|
||||
"private": "bnVsbA==",
|
||||
"dependencies": [
|
||||
"aws_s3_bucket.static_website"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"mode": "managed",
|
||||
"type": "null_resource",
|
||||
"name": "sync_dist_to_s3",
|
||||
"provider": "provider[\"registry.terraform.io/hashicorp/null\"]",
|
||||
"instances": [
|
||||
{
|
||||
"schema_version": 0,
|
||||
"attributes": {
|
||||
"id": "1203062013005394770",
|
||||
"triggers": {
|
||||
"always_run": "2025-06-12T22:41:29Z"
|
||||
}
|
||||
},
|
||||
"sensitive_attributes": [],
|
||||
"dependencies": [
|
||||
"aws_s3_bucket.static_website"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"check_results": null
|
||||
}
|
||||
235
terraform/terraform.tfstate.backup
Normal file
235
terraform/terraform.tfstate.backup
Normal file
@@ -0,0 +1,235 @@
|
||||
{
|
||||
"version": 4,
|
||||
"terraform_version": "1.9.2",
|
||||
"serial": 20,
|
||||
"lineage": "cf04ad7f-ea29-d2e3-80c6-14fc4ab44b37",
|
||||
"outputs": {},
|
||||
"resources": [
|
||||
{
|
||||
"mode": "managed",
|
||||
"type": "aws_s3_bucket",
|
||||
"name": "static_website",
|
||||
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
|
||||
"instances": [
|
||||
{
|
||||
"schema_version": 0,
|
||||
"attributes": {
|
||||
"acceleration_status": "",
|
||||
"acl": null,
|
||||
"arn": "arn:aws:s3:::id-tagging-schema.deflock.me",
|
||||
"bucket": "id-tagging-schema.deflock.me",
|
||||
"bucket_domain_name": "id-tagging-schema.deflock.me.s3.amazonaws.com",
|
||||
"bucket_prefix": "",
|
||||
"bucket_regional_domain_name": "id-tagging-schema.deflock.me.s3.us-east-1.amazonaws.com",
|
||||
"cors_rule": [],
|
||||
"force_destroy": false,
|
||||
"grant": [
|
||||
{
|
||||
"id": "f84c6ddbd25d207206bab0897ee1a1e4419f396282e256f36898c01604a56191",
|
||||
"permissions": [
|
||||
"FULL_CONTROL"
|
||||
],
|
||||
"type": "CanonicalUser",
|
||||
"uri": ""
|
||||
}
|
||||
],
|
||||
"hosted_zone_id": "Z3AQBSTGFYJSTF",
|
||||
"id": "id-tagging-schema.deflock.me",
|
||||
"lifecycle_rule": [],
|
||||
"logging": [],
|
||||
"object_lock_configuration": [],
|
||||
"object_lock_enabled": false,
|
||||
"policy": "{\"Statement\":[{\"Action\":\"s3:GetObject\",\"Effect\":\"Allow\",\"Principal\":\"*\",\"Resource\":\"arn:aws:s3:::id-tagging-schema.deflock.me/*\"}],\"Version\":\"2012-10-17\"}",
|
||||
"region": "us-east-1",
|
||||
"replication_configuration": [],
|
||||
"request_payer": "BucketOwner",
|
||||
"server_side_encryption_configuration": [
|
||||
{
|
||||
"rule": [
|
||||
{
|
||||
"apply_server_side_encryption_by_default": [
|
||||
{
|
||||
"kms_master_key_id": "",
|
||||
"sse_algorithm": "AES256"
|
||||
}
|
||||
],
|
||||
"bucket_key_enabled": false
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"tags": {
|
||||
"Environment": "Production",
|
||||
"Name": "id-tagging-schema.deflock.me"
|
||||
},
|
||||
"tags_all": {
|
||||
"Environment": "Production",
|
||||
"Name": "id-tagging-schema.deflock.me"
|
||||
},
|
||||
"timeouts": null,
|
||||
"versioning": [
|
||||
{
|
||||
"enabled": false,
|
||||
"mfa_delete": false
|
||||
}
|
||||
],
|
||||
"website": [
|
||||
{
|
||||
"error_document": "error.html",
|
||||
"index_document": "index.html",
|
||||
"redirect_all_requests_to": "",
|
||||
"routing_rules": ""
|
||||
}
|
||||
],
|
||||
"website_domain": "s3-website-us-east-1.amazonaws.com",
|
||||
"website_endpoint": "id-tagging-schema.deflock.me.s3-website-us-east-1.amazonaws.com"
|
||||
},
|
||||
"sensitive_attributes": [],
|
||||
"private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjM2MDAwMDAwMDAwMDAsInJlYWQiOjEyMDAwMDAwMDAwMDAsInVwZGF0ZSI6MTIwMDAwMDAwMDAwMH19"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"mode": "managed",
|
||||
"type": "aws_s3_bucket_cors_configuration",
|
||||
"name": "static_website_cors",
|
||||
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
|
||||
"instances": [
|
||||
{
|
||||
"schema_version": 0,
|
||||
"attributes": {
|
||||
"bucket": "id-tagging-schema.deflock.me",
|
||||
"cors_rule": [
|
||||
{
|
||||
"allowed_headers": [
|
||||
"*"
|
||||
],
|
||||
"allowed_methods": [
|
||||
"GET"
|
||||
],
|
||||
"allowed_origins": [
|
||||
"*"
|
||||
],
|
||||
"expose_headers": [
|
||||
"ETag"
|
||||
],
|
||||
"id": "",
|
||||
"max_age_seconds": 3000
|
||||
}
|
||||
],
|
||||
"expected_bucket_owner": "",
|
||||
"id": "id-tagging-schema.deflock.me"
|
||||
},
|
||||
"sensitive_attributes": [],
|
||||
"private": "bnVsbA==",
|
||||
"dependencies": [
|
||||
"aws_s3_bucket.static_website"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"mode": "managed",
|
||||
"type": "aws_s3_bucket_policy",
|
||||
"name": "static_website_policy",
|
||||
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
|
||||
"instances": [
|
||||
{
|
||||
"schema_version": 0,
|
||||
"attributes": {
|
||||
"bucket": "id-tagging-schema.deflock.me",
|
||||
"id": "id-tagging-schema.deflock.me",
|
||||
"policy": "{\"Statement\":[{\"Action\":\"s3:GetObject\",\"Effect\":\"Allow\",\"Principal\":\"*\",\"Resource\":\"arn:aws:s3:::id-tagging-schema.deflock.me/*\"},{\"Action\":\"s3:GetBucketCors\",\"Effect\":\"Allow\",\"Principal\":\"*\",\"Resource\":\"arn:aws:s3:::id-tagging-schema.deflock.me\"}],\"Version\":\"2012-10-17\"}"
|
||||
},
|
||||
"sensitive_attributes": [],
|
||||
"private": "bnVsbA==",
|
||||
"dependencies": [
|
||||
"aws_s3_bucket.static_website"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"mode": "managed",
|
||||
"type": "aws_s3_bucket_public_access_block",
|
||||
"name": "static_website_public_access_block",
|
||||
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
|
||||
"instances": [
|
||||
{
|
||||
"schema_version": 0,
|
||||
"attributes": {
|
||||
"block_public_acls": false,
|
||||
"block_public_policy": false,
|
||||
"bucket": "id-tagging-schema.deflock.me",
|
||||
"id": "id-tagging-schema.deflock.me",
|
||||
"ignore_public_acls": false,
|
||||
"restrict_public_buckets": false
|
||||
},
|
||||
"sensitive_attributes": [],
|
||||
"private": "bnVsbA==",
|
||||
"dependencies": [
|
||||
"aws_s3_bucket.static_website"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"mode": "managed",
|
||||
"type": "aws_s3_bucket_website_configuration",
|
||||
"name": "static_website_config",
|
||||
"provider": "provider[\"registry.terraform.io/hashicorp/aws\"]",
|
||||
"instances": [
|
||||
{
|
||||
"schema_version": 0,
|
||||
"attributes": {
|
||||
"bucket": "id-tagging-schema.deflock.me",
|
||||
"error_document": [
|
||||
{
|
||||
"key": "error.html"
|
||||
}
|
||||
],
|
||||
"expected_bucket_owner": "",
|
||||
"id": "id-tagging-schema.deflock.me",
|
||||
"index_document": [
|
||||
{
|
||||
"suffix": "index.html"
|
||||
}
|
||||
],
|
||||
"redirect_all_requests_to": [],
|
||||
"routing_rule": [],
|
||||
"routing_rules": "",
|
||||
"website_domain": "s3-website-us-east-1.amazonaws.com",
|
||||
"website_endpoint": "id-tagging-schema.deflock.me.s3-website-us-east-1.amazonaws.com"
|
||||
},
|
||||
"sensitive_attributes": [],
|
||||
"private": "bnVsbA==",
|
||||
"dependencies": [
|
||||
"aws_s3_bucket.static_website"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"mode": "managed",
|
||||
"type": "null_resource",
|
||||
"name": "sync_dist_to_s3",
|
||||
"provider": "provider[\"registry.terraform.io/hashicorp/null\"]",
|
||||
"instances": [
|
||||
{
|
||||
"schema_version": 0,
|
||||
"attributes": {
|
||||
"id": "4758897972960695945",
|
||||
"triggers": {
|
||||
"always_run": "2025-06-12T22:30:50Z"
|
||||
}
|
||||
},
|
||||
"sensitive_attributes": [],
|
||||
"dependencies": [
|
||||
"aws_s3_bucket.static_website"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"check_results": null
|
||||
}
|
||||
Reference in New Issue
Block a user