rails_template_18f 0.8.0 → 0.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +13 -0
  3. data/Gemfile.lock +92 -70
  4. data/README.md +60 -63
  5. data/lib/generators/rails_template18f/circleci/templates/circleci/config.yml.tt +1 -1
  6. data/lib/generators/rails_template18f/github_actions/github_actions_generator.rb +2 -2
  7. data/lib/generators/rails_template18f/github_actions/templates/github/workflows/deploy-production.yml.tt +2 -4
  8. data/lib/generators/rails_template18f/github_actions/templates/github/workflows/deploy-staging.yml.tt +2 -4
  9. data/lib/generators/rails_template18f/terraform/templates/terraform/README.md.tt +39 -54
  10. data/lib/generators/rails_template18f/terraform/templates/terraform/bootstrap/import.sh +1 -0
  11. data/lib/generators/rails_template18f/terraform/templates/terraform/bootstrap/main.tf.tt +7 -10
  12. data/lib/generators/rails_template18f/terraform/templates/terraform/bootstrap/providers.tf +3 -3
  13. data/lib/generators/rails_template18f/terraform/templates/terraform/bootstrap/run.sh.tt +28 -1
  14. data/lib/generators/rails_template18f/terraform/templates/terraform/bootstrap/teardown_creds.sh.tt +1 -1
  15. data/lib/generators/rails_template18f/terraform/templates/terraform/production/main.tf.tt +30 -42
  16. data/lib/generators/rails_template18f/terraform/templates/terraform/production/providers.tf.tt +8 -1
  17. data/lib/generators/rails_template18f/terraform/templates/terraform/staging/main.tf.tt +23 -33
  18. data/lib/generators/rails_template18f/terraform/templates/terraform/staging/providers.tf.tt +8 -1
  19. data/lib/generators/rails_template18f/terraform/terraform_generator.rb +0 -10
  20. data/lib/rails_template18f/version.rb +1 -1
  21. data/template.rb +18 -1
  22. data/templates/Brewfile +3 -0
  23. data/templates/README.md.tt +1 -0
  24. data/templates/bin/ops/create_service_account.sh.tt +78 -0
  25. data/templates/bin/ops/destroy_service_account.sh.tt +53 -0
  26. data/{lib/generators/rails_template18f/terraform/templates/terraform → templates/bin/ops}/set_space_egress.sh.tt +1 -1
  27. data/templates/config/environments/ci.rb +1 -1
  28. data/templates/config/environments/staging.rb +1 -1
  29. data/templates/doc/compliance/TODO.md +37 -0
  30. metadata +7 -21
  31. data/lib/generators/rails_template18f/terraform/templates/terraform/create_space_deployer.sh +0 -33
  32. data/lib/generators/rails_template18f/terraform/templates/terraform/destroy_space_deployer.sh +0 -19
  33. data/lib/generators/rails_template18f/terraform/templates/terraform/shared/clamav/main.tf.tt +0 -50
  34. data/lib/generators/rails_template18f/terraform/templates/terraform/shared/clamav/providers.tf +0 -16
  35. data/lib/generators/rails_template18f/terraform/templates/terraform/shared/clamav/variables.tf +0 -47
  36. data/lib/generators/rails_template18f/terraform/templates/terraform/shared/database/main.tf.tt +0 -23
  37. data/lib/generators/rails_template18f/terraform/templates/terraform/shared/database/providers.tf +0 -16
  38. data/lib/generators/rails_template18f/terraform/templates/terraform/shared/database/variables.tf +0 -42
  39. data/lib/generators/rails_template18f/terraform/templates/terraform/shared/domain/main.tf.tt +0 -46
  40. data/lib/generators/rails_template18f/terraform/templates/terraform/shared/domain/providers.tf +0 -16
  41. data/lib/generators/rails_template18f/terraform/templates/terraform/shared/domain/variables.tf +0 -47
  42. data/lib/generators/rails_template18f/terraform/templates/terraform/shared/redis/main.tf.tt +0 -23
  43. data/lib/generators/rails_template18f/terraform/templates/terraform/shared/redis/providers.tf +0 -16
  44. data/lib/generators/rails_template18f/terraform/templates/terraform/shared/redis/variables.tf +0 -42
  45. data/lib/generators/rails_template18f/terraform/templates/terraform/shared/s3/main.tf +0 -27
  46. data/lib/generators/rails_template18f/terraform/templates/terraform/shared/s3/providers.tf +0 -16
  47. data/lib/generators/rails_template18f/terraform/templates/terraform/shared/s3/variables.tf +0 -43
@@ -0,0 +1,78 @@
1
+ #!/usr/bin/env bash
2
+
3
+ org="<%= @cloud_gov_organization %>"
4
+
5
+ usage="
6
+ $0: Create a Service User Account for a given space
7
+
8
+ Usage:
9
+ $0 -h
10
+ $0 -s <SPACE NAME> -u <USER NAME> [-r <ROLE NAME>] [-o <ORG NAME>]
11
+
12
+ Options:
13
+ -h: show help and exit
14
+ -s <SPACE NAME>: configure the space to act on. Required
15
+ -u <USER NAME>: set the service user name. Required
16
+ -r <ROLE NAME>: set the service user's role to either space-deployer or space-auditor. Default: space-deployer
17
+ -o <ORG NAME>: configure the organization to act on. Default: $org
18
+ "
19
+
20
+ set -e
21
+ set -o pipefail
22
+
23
+ space=""
24
+ service=""
25
+ role="space-deployer"
26
+
27
+ while getopts ":hs:u:r:o:" opt; do
28
+ case "$opt" in
29
+ s)
30
+ space=${OPTARG}
31
+ ;;
32
+ u)
33
+ service=${OPTARG}
34
+ ;;
35
+ r)
36
+ role=${OPTARG}
37
+ ;;
38
+ o)
39
+ org=${OPTARG}
40
+ ;;
41
+ h)
42
+ echo "$usage"
43
+ exit 0
44
+ ;;
45
+ esac
46
+ done
47
+
48
+ if ! command -v jq &> /dev/null
49
+ then
50
+ echo "jq must be installed. Run 'brew bundle' to install everything in the Brewfile"
51
+ exit 1
52
+ fi
53
+
54
+ if [[ $space = "" || $service = "" ]]; then
55
+ echo "$usage"
56
+ exit 1
57
+ fi
58
+
59
+ cf target -o $org -s $space 1>&2
60
+
61
+ # create user account service
62
+ cf create-service cloud-gov-service-account $role $service 1>&2
63
+
64
+ # create service key
65
+ cf create-service-key $service service-account-key 1>&2
66
+
67
+ # output service key to stdout in secrets.auto.tfvars format
68
+ creds=`cf service-key $service service-account-key | tail -n +2 | jq '.credentials'`
69
+ username=`echo $creds | jq -r '.username'`
70
+ password=`echo $creds | jq -r '.password'`
71
+
72
+ cat << EOF
73
+ # generated with $0 -s $space -u $service -r $role -o $org
74
+ # revoke with $(dirname $0)/destroy_service_account.sh -s $space -u $service -o $org
75
+
76
+ cf_user = "$username"
77
+ cf_password = "$password"
78
+ EOF
@@ -0,0 +1,53 @@
1
+ #!/usr/bin/env bash
2
+
3
+ org="<%= @cloud_gov_organization %>"
4
+
5
+ usage="
6
+ $0: Destroy a Service User Account in a given space
7
+
8
+ Usage:
9
+ $0 -h
10
+ $0 -s <SPACE NAME> -u <USER NAME> [-o <ORG NAME>]
11
+
12
+ Options:
13
+ -h: show help and exit
14
+ -s <SPACE NAME>: configure the space to act on. Required
15
+ -u <USER NAME>: configure the service user name to destroy. Required
16
+ -o <ORG NAME>: configure the organization to act on. Default: $org
17
+ "
18
+
19
+ set -e
20
+
21
+ space=""
22
+ service=""
23
+
24
+ while getopts ":hs:u:o:" opt; do
25
+ case "$opt" in
26
+ s)
27
+ space=${OPTARG}
28
+ ;;
29
+ u)
30
+ service=${OPTARG}
31
+ ;;
32
+ o)
33
+ org=${OPTARG}
34
+ ;;
35
+ h)
36
+ echo "$usage"
37
+ exit 0
38
+ ;;
39
+ esac
40
+ done
41
+
42
+ if [[ $space = "" || $service = "" ]]; then
43
+ echo "$usage"
44
+ exit 1
45
+ fi
46
+
47
+ cf target -o $org -s $space
48
+
49
+ # destroy service key
50
+ cf delete-service-key $service service-account-key -f
51
+
52
+ # destroy service
53
+ cf delete-service $service -f
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env bash
2
2
 
3
- org="<%= cloud_gov_organization %>"
3
+ org="<%= @cloud_gov_organization %>"
4
4
 
5
5
  usage="
6
6
  $0: Set egress rules for given space
@@ -1,4 +1,4 @@
1
- require_relative "./production"
1
+ require_relative "production"
2
2
 
3
3
  Rails.application.configure do
4
4
  config.public_file_server.enabled = true
@@ -1,4 +1,4 @@
1
- require_relative "./production"
1
+ require_relative "production"
2
2
 
3
3
  Rails.application.configure do
4
4
  # insert any staging overrides here
@@ -0,0 +1,37 @@
1
+ Compliance Tasks
2
+ ================
3
+
4
+ This file contains a list of some tasks that can make your compliance journey a bit easier.
5
+
6
+ These instructions assume that your application is being hosted on cloud.gov.
7
+
8
+ Egress Spaces
9
+ -------------
10
+
11
+ If your application requires outbound communication to services outside of cloud.gov:
12
+
13
+ 1. Set up `<env>-egress` spaces for each environment.
14
+ 1. Set that space to public egress with `bin/ops/set_space_egress.sh -s <env>-egress -p`
15
+ 1. Run [cg-egress-proxy](https://github.com/GSA/cg-egress-proxy#deploying-proxies-for-a-bunch-of-apps-automatically) in that space
16
+ 1. Send all outbound traffic from your app through the proxy
17
+ 1. Document this use under the SC-7 security control
18
+
19
+ Log Drains
20
+ ----------
21
+
22
+ Follow these directions to send your logs to an external consumer, such an S3 bucket for GSA SOC to ingest or New Relic
23
+
24
+ 1. Deploy the [logstash-shipper](https://github.com/GSA/datagov-logstack#setup) app in a management space. The management space could be its own space, or `<env>-egress`
25
+ 1. Deploy a [space-drain](https://github.com/GSA/datagov-logstack/blob/main/create-space-drain.sh) so that any app deployed to that space automatically has its logs shipped
26
+
27
+ Drift Detection
28
+ ---------------
29
+
30
+ 1. Deploy [Watchtower](https://github.com/18F/watchtower) for drift detection
31
+
32
+ Future Good Ideas
33
+ -----------------
34
+
35
+ Other things that would be useful, but without decent implementations yet:
36
+
37
+ * For RA-5, deploy a Monit sidecar buildpack to restart app if any anomalys are detected
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_template_18f
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.8.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Ahearn
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-07-14 00:00:00.000000000 Z
11
+ date: 2024-06-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
@@ -178,27 +178,9 @@ files:
178
178
  - lib/generators/rails_template18f/terraform/templates/terraform/bootstrap/run.sh.tt
179
179
  - lib/generators/rails_template18f/terraform/templates/terraform/bootstrap/teardown_creds.sh.tt
180
180
  - lib/generators/rails_template18f/terraform/templates/terraform/bootstrap/variables.tf
181
- - lib/generators/rails_template18f/terraform/templates/terraform/create_space_deployer.sh
182
- - lib/generators/rails_template18f/terraform/templates/terraform/destroy_space_deployer.sh
183
181
  - lib/generators/rails_template18f/terraform/templates/terraform/production/main.tf.tt
184
182
  - lib/generators/rails_template18f/terraform/templates/terraform/production/providers.tf.tt
185
183
  - lib/generators/rails_template18f/terraform/templates/terraform/production/variables.tf
186
- - lib/generators/rails_template18f/terraform/templates/terraform/set_space_egress.sh.tt
187
- - lib/generators/rails_template18f/terraform/templates/terraform/shared/clamav/main.tf.tt
188
- - lib/generators/rails_template18f/terraform/templates/terraform/shared/clamav/providers.tf
189
- - lib/generators/rails_template18f/terraform/templates/terraform/shared/clamav/variables.tf
190
- - lib/generators/rails_template18f/terraform/templates/terraform/shared/database/main.tf.tt
191
- - lib/generators/rails_template18f/terraform/templates/terraform/shared/database/providers.tf
192
- - lib/generators/rails_template18f/terraform/templates/terraform/shared/database/variables.tf
193
- - lib/generators/rails_template18f/terraform/templates/terraform/shared/domain/main.tf.tt
194
- - lib/generators/rails_template18f/terraform/templates/terraform/shared/domain/providers.tf
195
- - lib/generators/rails_template18f/terraform/templates/terraform/shared/domain/variables.tf
196
- - lib/generators/rails_template18f/terraform/templates/terraform/shared/redis/main.tf.tt
197
- - lib/generators/rails_template18f/terraform/templates/terraform/shared/redis/providers.tf
198
- - lib/generators/rails_template18f/terraform/templates/terraform/shared/redis/variables.tf
199
- - lib/generators/rails_template18f/terraform/templates/terraform/shared/s3/main.tf
200
- - lib/generators/rails_template18f/terraform/templates/terraform/shared/s3/providers.tf
201
- - lib/generators/rails_template18f/terraform/templates/terraform/shared/s3/variables.tf
202
184
  - lib/generators/rails_template18f/terraform/templates/terraform/staging/main.tf.tt
203
185
  - lib/generators/rails_template18f/terraform/templates/terraform/staging/providers.tf.tt
204
186
  - lib/generators/rails_template18f/terraform/templates/terraform/staging/variables.tf
@@ -223,6 +205,9 @@ files:
223
205
  - templates/app/views/application/_demo_site_banner.html.erb
224
206
  - templates/app/views/application/_header.html.erb
225
207
  - templates/app/views/application/_usa_banner.html.erb
208
+ - templates/bin/ops/create_service_account.sh.tt
209
+ - templates/bin/ops/destroy_service_account.sh.tt
210
+ - templates/bin/ops/set_space_egress.sh.tt
226
211
  - templates/bin/owasp-scan
227
212
  - templates/bin/pa11y-scan
228
213
  - templates/bin/with-server
@@ -236,6 +221,7 @@ files:
236
221
  - templates/doc/adr/0003-security-scans.md.tt
237
222
  - templates/doc/adr/0004-rails-csp-compliant-script-tag-helpers.md.tt
238
223
  - templates/doc/compliance/README.md
224
+ - templates/doc/compliance/TODO.md
239
225
  - templates/doc/compliance/apps/application.boundary.md.tt
240
226
  - templates/doc/compliance/rendered/apps/.keep
241
227
  - templates/editorconfig
@@ -268,7 +254,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
268
254
  - !ruby/object:Gem::Version
269
255
  version: '0'
270
256
  requirements: []
271
- rubygems_version: 3.3.7
257
+ rubygems_version: 3.5.9
272
258
  signing_key:
273
259
  specification_version: 4
274
260
  summary: Generators for creating an 18F-flavored Rails app
@@ -1,33 +0,0 @@
1
- #!/usr/bin/env bash
2
-
3
- set -e
4
- set -o pipefail
5
-
6
- if [[ $# -lt 2 ]]; then
7
- echo "$0 <<SPACE_NAME>> <<ACCOUNT_NAME>>"
8
- exit 1;
9
- fi
10
-
11
- space=$1
12
- service=$2
13
-
14
- cf target -s $space 1>&2
15
-
16
- # create space deployer service
17
- cf create-service cloud-gov-service-account space-deployer $service 1>&2
18
-
19
- # create service key
20
- cf create-service-key $service space-deployer-key 1>&2
21
-
22
- # output service key to stdout in secrets.auto.tfvars format
23
- creds=`cf service-key $service space-deployer-key | tail -n 4`
24
- username=`echo $creds | jq '.username'`
25
- password=`echo $creds | jq '.password'`
26
-
27
- cat << EOF
28
- # generated with $0 $space $service
29
- # revoke with $(dirname $0)/destroy_space_deployer.sh $space $service
30
-
31
- cf_user = $username
32
- cf_password = $password
33
- EOF
@@ -1,19 +0,0 @@
1
- #!/usr/bin/env bash
2
-
3
- set -e
4
-
5
- if [[ $# -ne 2 ]]; then
6
- echo "$0 <<SPACE_NAME>> <<ACCOUNT_NAME>>"
7
- exit 1;
8
- fi
9
-
10
- space=$1
11
- service=$2
12
-
13
- cf target -s $space
14
-
15
- # destroy service key
16
- cf delete-service-key $service space-deployer-key -f
17
-
18
- # destroy service
19
- cf delete-service $service -f
@@ -1,50 +0,0 @@
1
- ###
2
- # Target space/org
3
- ###
4
-
5
- data "cloudfoundry_space" "space" {
6
- org_name = var.cf_org_name
7
- name = var.cf_space_name
8
- }
9
-
10
- data "cloudfoundry_domain" "internal" {
11
- name = "apps.internal"
12
- }
13
-
14
- data "cloudfoundry_app" "app" {
15
- name_or_id = "<%= app_name %>-${var.env}"
16
- space = data.cloudfoundry_space.space.id
17
- }
18
-
19
- ###
20
- # ClamAV API app
21
- ###
22
-
23
- resource "cloudfoundry_route" "clamav_route" {
24
- space = data.cloudfoundry_space.space.id
25
- domain = data.cloudfoundry_domain.internal.id
26
- hostname = "<%= app_name %>-clamapi-${var.env}"
27
- }
28
-
29
- resource "cloudfoundry_app" "clamav_api" {
30
- name = "<%= app_name %>-clamav-api-${var.env}"
31
- space = data.cloudfoundry_space.space.id
32
- memory = var.clamav_memory
33
- disk_quota = 2048
34
- timeout = 600
35
- docker_image = var.clamav_image
36
- routes {
37
- route = cloudfoundry_route.clamav_route.id
38
- }
39
- environment = {
40
- MAX_FILE_SIZE = var.max_file_size
41
- }
42
- }
43
-
44
- resource "cloudfoundry_network_policy" "clamav_routing" {
45
- policy {
46
- source_app = data.cloudfoundry_app.app.id
47
- destination_app = cloudfoundry_app.clamav_api.id
48
- port = "9443"
49
- }
50
- }
@@ -1,16 +0,0 @@
1
- terraform {
2
- required_version = "~> 1.0"
3
- required_providers {
4
- cloudfoundry = {
5
- source = "cloudfoundry-community/cloudfoundry"
6
- version = "0.15.0"
7
- }
8
- }
9
- }
10
-
11
- provider "cloudfoundry" {
12
- api_url = var.cf_api_url
13
- user = var.cf_user
14
- password = var.cf_password
15
- app_logs_max = 30
16
- }
@@ -1,47 +0,0 @@
1
- variable "cf_api_url" {
2
- type = string
3
- description = "cloud.gov api url"
4
- default = "https://api.fr.cloud.gov"
5
- }
6
-
7
- variable "cf_user" {
8
- type = string
9
- description = "cloud.gov deployer account user"
10
- }
11
-
12
- variable "cf_password" {
13
- type = string
14
- description = "secret; cloud.gov deployer account password"
15
- sensitive = true
16
- }
17
-
18
- variable "cf_org_name" {
19
- type = string
20
- description = "cloud.gov organization name"
21
- }
22
-
23
- variable "cf_space_name" {
24
- type = string
25
- description = "cloud.gov space name (staging or prod)"
26
- }
27
-
28
- variable "env" {
29
- type = string
30
- description = "deployment environment (staging, production)"
31
- }
32
-
33
- variable "clamav_image" {
34
- type = string
35
- description = "Docker image to deploy the clamav api app"
36
- }
37
-
38
- variable "clamav_memory" {
39
- type = number
40
- description = "Memory in MB to allocate to clamav app"
41
- default = 3072
42
- }
43
-
44
- variable "max_file_size" {
45
- type = string
46
- description = "Maximum file size the API will accept for scanning"
47
- }
@@ -1,23 +0,0 @@
1
- ###
2
- # Target space/org
3
- ###
4
-
5
- data "cloudfoundry_space" "space" {
6
- org_name = var.cf_org_name
7
- name = var.cf_space_name
8
- }
9
-
10
- ###
11
- # RDS instance
12
- ###
13
-
14
- data "cloudfoundry_service" "rds" {
15
- name = "aws-rds"
16
- }
17
-
18
- resource "cloudfoundry_service_instance" "rds" {
19
- name = "<%= app_name %>-rds-${var.env}"
20
- space = data.cloudfoundry_space.space.id
21
- service_plan = data.cloudfoundry_service.rds.service_plans[var.rds_plan_name]
22
- recursive_delete = var.recursive_delete
23
- }
@@ -1,16 +0,0 @@
1
- terraform {
2
- required_version = "~> 1.0"
3
- required_providers {
4
- cloudfoundry = {
5
- source = "cloudfoundry-community/cloudfoundry"
6
- version = "0.15.0"
7
- }
8
- }
9
- }
10
-
11
- provider "cloudfoundry" {
12
- api_url = var.cf_api_url
13
- user = var.cf_user
14
- password = var.cf_password
15
- app_logs_max = 30
16
- }
@@ -1,42 +0,0 @@
1
- variable "cf_api_url" {
2
- type = string
3
- description = "cloud.gov api url"
4
- default = "https://api.fr.cloud.gov"
5
- }
6
-
7
- variable "cf_user" {
8
- type = string
9
- description = "cloud.gov deployer account user"
10
- }
11
-
12
- variable "cf_password" {
13
- type = string
14
- description = "secret; cloud.gov deployer account password"
15
- sensitive = true
16
- }
17
-
18
- variable "cf_org_name" {
19
- type = string
20
- description = "cloud.gov organization name"
21
- }
22
-
23
- variable "cf_space_name" {
24
- type = string
25
- description = "cloud.gov space name (staging or prod)"
26
- }
27
-
28
- variable "env" {
29
- type = string
30
- description = "deployment environment (staging, production)"
31
- }
32
-
33
- variable "recursive_delete" {
34
- type = bool
35
- description = "when true, deletes service bindings attached to the resource (not recommended for production)"
36
- default = false
37
- }
38
-
39
- variable "rds_plan_name" {
40
- type = string
41
- description = "name of the service plan name to create"
42
- }
@@ -1,46 +0,0 @@
1
- ###
2
- # Target space/org
3
- ###
4
-
5
- data "cloudfoundry_space" "space" {
6
- org_name = var.cf_org_name
7
- name = var.cf_space_name
8
- }
9
-
10
- ###
11
- # Route mapping and CDN instance
12
- ###
13
-
14
- data "cloudfoundry_app" "app" {
15
- name_or_id = "<%= app_name %>-${var.env}"
16
- space = data.cloudfoundry_space.space.id
17
- }
18
-
19
- ###########################################################################
20
- # Route must be manually created by an OrgManager before terraform is run:
21
- #
22
- # cf create-domain <%= cloud_gov_organization %> TKTK-production-domain-name
23
- ###########################################################################
24
- data "cloudfoundry_domain" "origin_url" {
25
- name = var.domain_name
26
- }
27
-
28
- resource "cloudfoundry_route" "origin_route" {
29
- domain = data.cloudfoundry_domain.origin_url.id
30
- space = data.cloudfoundry_space.space.id
31
- target {
32
- app = data.cloudfoundry_app.app.id
33
- }
34
- }
35
-
36
- data "cloudfoundry_service" "external_domain" {
37
- name = "external-domain"
38
- }
39
-
40
- resource "cloudfoundry_service_instance" "external_domain_instance" {
41
- name = "<%= app_name %>-domain-${var.env}"
42
- space = data.cloudfoundry_space.space.id
43
- service_plan = data.cloudfoundry_service.external_domain.service_plans[var.cdn_plan_name]
44
- recursive_delete = var.recursive_delete
45
- json_params = "{\"domains\": \"${var.domain_name}\"}"
46
- }
@@ -1,16 +0,0 @@
1
- terraform {
2
- required_version = "~> 1.0"
3
- required_providers {
4
- cloudfoundry = {
5
- source = "cloudfoundry-community/cloudfoundry"
6
- version = "0.15.0"
7
- }
8
- }
9
- }
10
-
11
- provider "cloudfoundry" {
12
- api_url = var.cf_api_url
13
- user = var.cf_user
14
- password = var.cf_password
15
- app_logs_max = 30
16
- }
@@ -1,47 +0,0 @@
1
- variable "cf_api_url" {
2
- type = string
3
- description = "cloud.gov api url"
4
- default = "https://api.fr.cloud.gov"
5
- }
6
-
7
- variable "cf_user" {
8
- type = string
9
- description = "cloud.gov deployer account user"
10
- }
11
-
12
- variable "cf_password" {
13
- type = string
14
- description = "secret; cloud.gov deployer account password"
15
- sensitive = true
16
- }
17
-
18
- variable "cf_org_name" {
19
- type = string
20
- description = "cloud.gov organization name"
21
- }
22
-
23
- variable "cf_space_name" {
24
- type = string
25
- description = "cloud.gov space name (staging or prod)"
26
- }
27
-
28
- variable "env" {
29
- type = string
30
- description = "deployment environment (staging, production)"
31
- }
32
-
33
- variable "recursive_delete" {
34
- type = bool
35
- description = "when true, deletes service bindings attached to the resource (not recommended for production)"
36
- default = false
37
- }
38
-
39
- variable "cdn_plan_name" {
40
- type = string
41
- description = "name of the service plan name to create"
42
- }
43
-
44
- variable "domain_name" {
45
- type = string
46
- description = "DNS name users will be accessing site"
47
- }
@@ -1,23 +0,0 @@
1
- ###
2
- # Target space/org
3
- ###
4
-
5
- data "cloudfoundry_space" "space" {
6
- org_name = var.cf_org_name
7
- name = var.cf_space_name
8
- }
9
-
10
- ###
11
- # RDS instance
12
- ###
13
-
14
- data "cloudfoundry_service" "redis" {
15
- name = "aws-elasticache-redis"
16
- }
17
-
18
- resource "cloudfoundry_service_instance" "redis" {
19
- name = "<%= app_name %>-redis-${var.env}"
20
- space = data.cloudfoundry_space.space.id
21
- service_plan = data.cloudfoundry_service.redis.service_plans[var.redis_plan_name]
22
- recursive_delete = var.recursive_delete
23
- }
@@ -1,16 +0,0 @@
1
- terraform {
2
- required_version = "~> 1.0"
3
- required_providers {
4
- cloudfoundry = {
5
- source = "cloudfoundry-community/cloudfoundry"
6
- version = "0.15.0"
7
- }
8
- }
9
- }
10
-
11
- provider "cloudfoundry" {
12
- api_url = var.cf_api_url
13
- user = var.cf_user
14
- password = var.cf_password
15
- app_logs_max = 30
16
- }