Skip to content

Commit d638ec5

Browse files
Merge pull request #24 from clouddrove/fix/variables
Fix/variables
2 parents 26278b7 + e2ac6e3 commit d638ec5

File tree

4 files changed

+89
-25
lines changed

4 files changed

+89
-25
lines changed

README.md

Lines changed: 40 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -66,22 +66,51 @@ This module has a few dependencies:
6666

6767

6868
### Simple Example
69+
### Public
6970
Here is an example of how you can use this module in your inventory structure:
7071
```hcl
71-
module "sftp" {
72-
source = "clouddrove/sftp/aws"
73-
version = "1.3.0"
74-
name = "sftp"
75-
environment = "test"
76-
label_order = ["name", "environment"]
77-
public_key = ""
78-
user_name = "ftp-user"
79-
enable_sftp = true
80-
s3_bucket_id = clouddrove_dev_s3_bucket
81-
endpoint_type = "PUBLIC"
72+
module "sftp" {
73+
source = "clouddrove/sftp/aws"
74+
version = "1.3.1"
75+
name = "sftp"
76+
environment = "test"
77+
label_order = ["environment", "name"]
78+
enable_sftp = true
79+
s3_bucket_name = module.s3_bucket.id
80+
endpoint_type = "PUBLIC"
81+
workflow_details = {
82+
on_upload = {
83+
execution_role = "arn:aws:iam::1234567890:role/test-sftp-transfer-role"
84+
workflow_id = "w-12345XXXX6da"
8285
}
86+
}
87+
}
8388
```
8489

90+
### VPC
91+
Here is an example of how you can use this module in your inventory structure:
92+
```hcl
93+
module "sftp" {
94+
source = "clouddrove/sftp/aws"
95+
version = "1.3.1"
96+
name = "sftp"
97+
environment = "test"
98+
label_order = ["environment", "name"]
99+
eip_enabled = false
100+
s3_bucket_name = module.s3_bucket.id
101+
sftp_users = var.sftp_users
102+
subnet_ids = module.subnets.private_subnet_id
103+
vpc_id = module.vpc.vpc_id
104+
restricted_home = true
105+
vpc_security_group_ids = [module.security_group_sftp.security_group_id]
106+
workflow_details = {
107+
on_upload = {
108+
execution_role = "arn:aws:iam::1234567890:role/test-sftp-transfer-role"
109+
workflow_id = "w-12345XXXX6da"
110+
}
111+
}
112+
}
113+
```
85114

86115

87116

README.yaml

Lines changed: 40 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -37,18 +37,47 @@ include:
3737
# How to use this project
3838
usage : |-
3939
### Simple Example
40+
### PUBLIC
4041
Here is an example of how you can use this module in your inventory structure:
4142
```hcl
4243
module "sftp" {
43-
source = "clouddrove/sftp/aws"
44-
version = "1.3.0"
45-
name = "sftp"
46-
environment = "test"
47-
label_order = ["name", "environment"]
48-
public_key = ""
49-
user_name = "ftp-user"
50-
enable_sftp = true
51-
s3_bucket_id = clouddrove_dev_s3_bucket
52-
endpoint_type = "PUBLIC"
53-
}
44+
source = "clouddrove/sftp/aws"
45+
version = "1.3.1"
46+
name = "sftp"
47+
environment = "test"
48+
label_order = ["environment", "name"]
49+
enable_sftp = true
50+
s3_bucket_name = module.s3_bucket.id
51+
endpoint_type = "PUBLIC"
52+
workflow_details = {
53+
on_upload = {
54+
execution_role = "arn:aws:iam::1234567890:role/test-sftp-transfer-role"
55+
workflow_id = "w-12345XXXX6da"
56+
}
57+
}
58+
}
5459
```
60+
61+
### VPC
62+
```hcl
63+
module "sftp" {
64+
source = "clouddrove/sftp/aws"
65+
version = "1.3.1"
66+
name = "sftp"
67+
environment = "test"
68+
label_order = ["environment", "name"]
69+
eip_enabled = false
70+
s3_bucket_name = module.s3_bucket.id
71+
sftp_users = var.sftp_users
72+
subnet_ids = module.subnets.private_subnet_id
73+
vpc_id = module.vpc.vpc_id
74+
restricted_home = true
75+
vpc_security_group_ids = [module.security_group_sftp.security_group_id]
76+
workflow_details = {
77+
on_upload = {
78+
execution_role = "arn:aws:iam::1234567890:role/test-sftp-transfer-role"
79+
workflow_id = "w-12345XXXX6da"
80+
}
81+
}
82+
}
83+
```

main.tf

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,11 @@ locals {
2626
s3_arn_prefix = "arn:${one(data.aws_partition.default[*].partition)}:s3:::"
2727
is_vpc = var.vpc_id != null
2828

29-
user_names = length(var.sftp_users) > 0 ? [for user in var.sftp_users : user.username] : []
29+
user_names = length(var.sftp_users) > 0 ? [for user in var.sftp_users : user.user_name] : []
3030

3131
user_names_map = length(var.sftp_users) > 0 ? {
3232
for user in var.sftp_users :
33-
user.username => merge(user, {
33+
user.user_name => merge(user, {
3434
s3_bucket_arn = lookup(user, "s3_bucket_name", null) != null ? "${local.s3_arn_prefix}${lookup(user, "s3_bucket_name")}" : one(data.aws_s3_bucket.landing[*].arn)
3535
})
3636
} : {}
@@ -232,7 +232,7 @@ resource "aws_transfer_server" "transfer_server" {
232232
##----------------------------------------------------------------------------------
233233

234234
resource "aws_transfer_user" "transfer_server_user" {
235-
for_each = var.enabled ? { for user in var.sftp_users : user.username => user } : {}
235+
for_each = var.enabled ? { for user in var.sftp_users : user.user_name => user } : {}
236236

237237
server_id = join("", aws_transfer_server.transfer_server[*].id)
238238
role = aws_iam_role.s3_access_for_sftp_users[each.value.user_name].arn

variables.tf

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,4 +155,10 @@ variable "workflow_details" {
155155
variable "enable_workflow" {
156156
type = bool
157157
default = false
158+
}
159+
160+
variable "endpoint_type" {
161+
type = string
162+
default = "PUBLIC"
163+
description = "The type of endpoint that you want your SFTP server connect to. If you connect to a VPC (or VPC_ENDPOINT), your SFTP server isn't accessible over the public internet. If you want to connect your SFTP server via public internet, set PUBLIC. Defaults to PUBLIC"
158164
}

0 commit comments

Comments
 (0)