terraform-aws-storage-file-gateway
A Terraform module to create an AWS Storage Gateway File Gateway
Usage
TODO
provider "aws" {
region = "us-east-1"
}
module "storage_file_gateway" {
source = "git::https://github.com/masterpointio/terraform-aws-storage-file-gateway.git?ref=tags/0.1.0"
namespace = var.namespace
stage = var.stage
name = "mattgowie"
}
Credits
Roadmap
- Support multiple buckets / file shares through the same root gateway.
- Support SMB (if anyone shows interest, reach out).
Requirements
No requirements.
Providers
Name | Version |
---|---|
aws | n/a |
Inputs
Name | Description | Type | Default | Required |
---|---|---|---|---|
ami | The AMI to use for the SSM Agent EC2 Instance. If not provided, the latest 'aws-storage-gateway-*' AMI will be used. Note: This will update periodically as AWS releases updates to their AMI. Pin to a specific AMI if you would like to avoid these updates. | string |
"" |
no |
attributes | Additional attributes (e.g. 1 ) |
list(string) |
[] |
no |
bucket_arn | The ARN of the Bucket that we're connecting to the Storage Gateway NFS File Share. | string |
n/a | yes |
client_list | The list of Clients who can connect to the Storage Gateway File Share. | list(string) |
[ |
no |
delimiter | Delimiter to be used between namespace , stage , name and attributes |
string |
"-" |
no |
environment | Environment, e.g. 'prod', 'staging', 'dev', 'pre-prod', 'UAT' | string |
"" |
no |
gateway_timezone | The Timezone of the File Gateway. | string |
"GMT" |
no |
ingress_cidr_blocks | The CIDR blocks to allow ingress into your File Gateway instance. NOTE: Not allowing 0.0.0.0/0 during initial File Gateway creation will cause issues. | list(string) |
[ |
no |
instance_type | The instance type to use for the Storage Gateway instance. An m5a.xlarge provides the recommended system reqs for a storage gateway host for the best cost point. | string |
"m5a.xlarge" |
no |
name | Solution name, e.g. 'app' or 'jenkins' | string |
"storage-gateway" |
no |
namespace | Namespace, which could be your organization name or abbreviation, e.g. 'eg' or 'cp' | string |
n/a | yes |
stage | The environment that this infrastructure is being deployed to e.g. dev, stage, or prod | string |
n/a | yes |
subnet_id | The ID of the Subnet which the EC2 Instance will be launched into. | string |
n/a | yes |
tags | Additional tags (e.g. map('BusinessUnit','XYZ') ) |
map(string) |
{} |
no |
volume_device_name | The device_name for the gateway cache volume. | string |
"/dev/xvdb" |
no |
volume_size | The size in GB of the gateway cache volume. | number |
200 |
no |
volume_type | The type of EBS volume to use for the gateway cache volume. | string |
"gp2" |
no |
vpc_id | The VPC ID of the VPC that the Storage Gateway Security Group will be created in. | string |
n/a | yes |
Outputs
Name | Description |
---|---|
eip_public_ip | The Public IP address of the created Elastic IP. |
instance_arn | The ARN of the created EC2 File Gateway instance. |
instance_id | The ID of the created EC2 File Gateway instance. |
nfs_arn | The ARN of the created NFS File Share. |
nfs_id | The ID of the created NFS File Share. |
nfs_path | The file share path used by the NFS client to identify the mount point. |
security_group_id | The ID of the created Security Group for the File Gateway's instance. |
storage_gateway_arn | The ARN of the created Storage Gateway File Gateway. |
storage_gateway_id | The ID of the created Storage Gateway File Gateway. |
Contributing
Contributions are welcome and appreciated!
Found an issue or want to request a feature? Open an issue
Want to fix a bug you found or add some functionality? Fork, clone, commit, push, and PR and we'll check it out.
If you have any issues or are waiting a long time for a PR to get merged then feel free to ping us at hello@masterpoint.io.