This is a Terraform module for deploying the EFS refresh orchestrator on AWS.
Basic Example :
module "refresh_efs" {
source = "akirosit/efs-refresh-orchestrator/aws"
# Network informations
vpc_id = "vpc-XXX"
private_subnets_ids = [ "subnet-xxx", "subnet-yyy"] # used for lambda deployment
# Main informations
source_efs_id = "fs-xxxx"
efs_id = "fs-yyyy"
efs_sg_id = "sg-xxxx"
encrypted = false
kms_key_id = null
items_to_restore = [ "/path" ]
delete_old_efs = false
# Store EFS infos in SSM Parameter store
store_efs_metadata_in_ssm = true
efs_id_ssm_parameter_name = "/efs-1/efs-id"
efs_sub_path_ssm_parameter_name = "/efs-1/efs-sub-path"
# For refresh inputs
s3_bucket_name = "bucket-refresh-xxx"
put_step_function_input_json_files_on_s3 = true
# Tags
app_name = "refresh"
env_name = "preprod"
tags = {
Name = "efs-1"
CostCenter = "CCXXYYY"
}
}
Name | Version |
---|---|
terraform | >= 1.1.0 |
aws | >= 3.0.0 |
Name | Version |
---|---|
archive | n/a |
aws | >= 3.0.0 |
local | n/a |
null | n/a |
Name | Description | Type | Default | Required |
---|---|---|---|---|
app_name | Application name | string |
n/a | yes |
create_s3_bucket | Create S3 bucket to put step function input json files | bool |
false |
no |
delete_old_efs | Delete old EFS | bool |
false |
no |
efs_id | The EFS id to be refreshed | string |
n/a | yes |
efs_id_ssm_parameter_name | SSM parameter name to store the EFS ID | string |
n/a | yes |
efs_sg_id | The EFS security group ID | string |
n/a | yes |
efs_sub_path_ssm_parameter_name | SSM parameter name to store the EFS sub path | string |
n/a | yes |
encrypted | New/refresh cluster is encrypted | bool |
false |
no |
env_name | Environment name | string |
n/a | yes |
items_to_restore | Items to restore from source EFS | list(string) |
n/a | yes |
kms_key_id | KMS key to encrypt new/refresh cluster | string |
null |
no |
private_subnets_ids | The private subnets IDs (where lambda functions will be deployed) | list(string) |
n/a | yes |
put_step_function_input_json_files_on_s3 | Push or not step function input json files to S3 bucket | bool |
false |
no |
s3_bucket_name | Name of the bucket s3 created within this module or existing S3 name to put step function input json files | string |
null |
no |
sns_topic_arn | Existing SNS topic ARN to send notifications | string |
null |
no |
source_efs_id | The source EFS ID | string |
n/a | yes |
store_efs_metadata_in_ssm | Store EFS ID and sub path in SSM | bool |
false |
no |
tags | Additional tags (e.g. map('BusinessUnit ,XYZ ) |
map(string) |
{} |
no |
vpc_id | The VPC ID (where lambda functions will be deployed) | any |
n/a | yes |
Name | Description |
---|---|
iam_role_step_function | n/a |
state_machine_name | n/a |
step_function_dynamodb_arn | n/a |
step_function_json_files | n/a |
step_function_sns_arn | n/a |
vpc_security_group_for_lambda | n/a |