@hiiretail/gcp-infra-cli 0.82.3 → 0.83.1
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.
- package/generators/docs/runbook/templates/docs/runbook.md +20 -0
- package/generators/init/clan-infra/index.js +18 -0
- package/generators/init/clan-infra/templates/infra/common.hcl +3 -0
- package/generators/resources/cloud-storage/templates/cloud-storage/storage.yaml +13 -13
- package/generators/resources/cloud-storage/templates/cloud-storage/terragrunt.hcl +5 -1
- package/generators/resources/cloudsql/templates/mssql/instance/terragrunt.hcl +5 -1
- package/generators/resources/cloudsql/templates/mssql/instance-secrets/terragrunt.hcl +6 -2
- package/generators/resources/cloudsql/templates/mysql/instance/terragrunt.hcl +5 -1
- package/generators/resources/cloudsql/templates/mysql/instance-secrets/terragrunt.hcl +6 -2
- package/generators/resources/cloudsql/templates/postgres/instance/terragrunt.hcl +5 -1
- package/generators/resources/cloudsql/templates/postgres/instance-secrets/terragrunt.hcl +6 -2
- package/generators/resources/kms/templates/kms/terragrunt.hcl +5 -1
- package/generators/resources/memorystore/templates/redis-instance/terragrunt.hcl +6 -2
- package/generators/resources/memorystore/templates/secrets/terragrunt.hcl +5 -1
- package/generators/resources/monitoring/templates/alerts/terragrunt.hcl +11 -7
- package/generators/resources/monitoring/templates/uptime-checks/terragrunt.hcl +12 -8
- package/generators/resources/pubsub/templates/pubsub/terragrunt.hcl +10 -2
- package/generators/resources/pubsub/templates/pubsub-dlq/terragrunt.hcl +10 -2
- package/generators/resources/spanner/templates/spanner/terragrunt.hcl +6 -2
- package/package.json +1 -1
|
@@ -2,6 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
## General
|
|
4
4
|
|
|
5
|
+
### Terms and abbreviations
|
|
6
|
+
|
|
7
|
+
<!--
|
|
8
|
+
Write any terms and/or abbreviations that might occur in the text below. Remember that the reader of this Runbook might be new to Hii Retail and how this system interacts with others.
|
|
9
|
+
|
|
10
|
+
Example:
|
|
11
|
+
|
|
12
|
+
GCP - Google Cloud Platform. Extenda Retail's choice of Cloud Platform for Hii Retail.
|
|
13
|
+
CE - Checkout Engine. A system where the thin POS clients connects to and perform their daily sales operations.
|
|
14
|
+
|
|
15
|
+
-->
|
|
16
|
+
|
|
17
|
+
### Purpose
|
|
18
|
+
|
|
5
19
|
<!-- Describe, in short, what the system does and the interactions with external and/or third party systems.
|
|
6
20
|
|
|
7
21
|
Example:
|
|
@@ -83,6 +97,12 @@ Add examples on how to use the Just-In-Time Access system (https://jit-access.re
|
|
|
83
97
|
|
|
84
98
|
## Contact & Escalation Matrix
|
|
85
99
|
|
|
100
|
+
### Slack
|
|
101
|
+
|
|
102
|
+
<!-- What is the public channel to contact the team responsible for the system? For example: For general questions, reach us on Slack in #our-channel -->
|
|
103
|
+
|
|
104
|
+
### Contact & Escalation Matrix
|
|
105
|
+
|
|
86
106
|
<!-- If the team is unable to resolve or need to escalate an incident, who is the first to contact?
|
|
87
107
|
|
|
88
108
|
| # | Name | Role | E-Mail | Phone number |
|
|
@@ -37,6 +37,24 @@ module.exports = class extends BaseGenerator {
|
|
|
37
37
|
message: 'Provide the cost center your tribe belongs to',
|
|
38
38
|
validate: required,
|
|
39
39
|
},
|
|
40
|
+
{
|
|
41
|
+
type: 'input',
|
|
42
|
+
name: 'product',
|
|
43
|
+
message: 'Provide the product your resources belongs to. Can be modified for a specific resource later on',
|
|
44
|
+
validate: required,
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
type: 'input',
|
|
48
|
+
name: 'component',
|
|
49
|
+
message: 'Provide the component your resources belongs to. Can be modified for a specific resource later on',
|
|
50
|
+
validate: required,
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
type: 'input',
|
|
54
|
+
name: 'tenantAlias',
|
|
55
|
+
message: 'Provide the tenant alias for the resources or use \'multi-tenant\'. Can be modified for a specific resource later on.',
|
|
56
|
+
validate: required,
|
|
57
|
+
},
|
|
40
58
|
{
|
|
41
59
|
type: 'input',
|
|
42
60
|
name: 'jiraProjectKey',
|
|
@@ -8,16 +8,16 @@ versioning:
|
|
|
8
8
|
"<%-bucketName%>": <%-versioning%>
|
|
9
9
|
set_viewer_roles: true <% if (lifecycleRules == 'true') { %>
|
|
10
10
|
lifecycle_rules:
|
|
11
|
-
action:
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
11
|
+
- action:
|
|
12
|
+
type: "<%-action%>" <% if (action == 'SetStorageClass') { %>
|
|
13
|
+
storage_class: "<%-storageClass%>" <% } else { %>
|
|
14
|
+
storage_class: null <% } %>
|
|
15
|
+
condition:
|
|
16
|
+
age: <%-age%> <% if (createdBefore != 'null') { %>
|
|
17
|
+
created_before: "<%-createdBefore%>" <% } else { %>
|
|
18
|
+
created_before: null <% } %> <% if (withState != 'null') { %>
|
|
19
|
+
with_state: "<%-withState%>" <% } else { %>
|
|
20
|
+
with_state: null <% } %> <% if (matchesStorageClass != 'null') { %>
|
|
21
|
+
matches_storage_class: "<%-matchesStorageClass%>" <% } else { %>
|
|
22
|
+
matches_storage_class: null <% } %>
|
|
23
|
+
num_newer_versions: <%-numNewerVersions%> <% } %>
|
|
@@ -23,7 +23,11 @@ inputs = merge(
|
|
|
23
23
|
# IAM-style members who will be granted roles/storage.objectViewer on all buckets.
|
|
24
24
|
viewers = ["group:${local.common_vars.locals.clan_group_email}"]
|
|
25
25
|
labels = {
|
|
26
|
-
cc
|
|
26
|
+
cc = local.common_vars.locals.cost_center
|
|
27
|
+
component = local.common_vars.locals.component
|
|
28
|
+
product = local.common_vars.locals.product
|
|
29
|
+
tenant-alias = local.common_vars.locals.tenant_alias
|
|
30
|
+
environment = local.project_vars.locals.project_env
|
|
27
31
|
}
|
|
28
32
|
}
|
|
29
33
|
)
|
|
@@ -29,7 +29,11 @@ inputs = merge(
|
|
|
29
29
|
## Uncomment and apply it before destroy in case of necessary to delete the instance
|
|
30
30
|
# deletion_protection = false
|
|
31
31
|
user_labels = {
|
|
32
|
-
cc
|
|
32
|
+
cc = local.common_vars.locals.cost_center
|
|
33
|
+
component = local.common_vars.locals.component
|
|
34
|
+
product = local.common_vars.locals.product
|
|
35
|
+
tenant-alias = local.common_vars.locals.tenant_alias
|
|
36
|
+
environment = local.project_vars.locals.project_env
|
|
33
37
|
}
|
|
34
38
|
}
|
|
35
39
|
)
|
|
@@ -30,8 +30,12 @@ inputs = merge(
|
|
|
30
30
|
mssql-common-address = dependency.mssql_address.outputs.private_address
|
|
31
31
|
}
|
|
32
32
|
labels = {
|
|
33
|
-
terraform
|
|
34
|
-
cc
|
|
33
|
+
terraform = ""
|
|
34
|
+
cc = local.common_vars.locals.cost_center
|
|
35
|
+
component = local.common_vars.locals.component
|
|
36
|
+
product = local.common_vars.locals.product
|
|
37
|
+
tenant-alias = local.common_vars.locals.tenant_alias
|
|
38
|
+
environment = local.project_vars.locals.project_env
|
|
35
39
|
}
|
|
36
40
|
}
|
|
37
41
|
)
|
|
@@ -30,7 +30,11 @@ inputs = merge(
|
|
|
30
30
|
## Uncomment and apply it before destroy in case of necessary to delete the instance
|
|
31
31
|
# deletion_protection = false
|
|
32
32
|
user_labels = {
|
|
33
|
-
cc
|
|
33
|
+
cc = local.common_vars.locals.cost_center
|
|
34
|
+
component = local.common_vars.locals.component
|
|
35
|
+
product = local.common_vars.locals.product
|
|
36
|
+
tenant-alias = local.common_vars.locals.tenant_alias
|
|
37
|
+
environment = local.project_vars.locals.project_env
|
|
34
38
|
}
|
|
35
39
|
}
|
|
36
40
|
)
|
|
@@ -30,8 +30,12 @@ inputs = merge(
|
|
|
30
30
|
mysql_private_address = dependency.instance.outputs.private_ip_address
|
|
31
31
|
}
|
|
32
32
|
labels = {
|
|
33
|
-
terraform
|
|
34
|
-
cc
|
|
33
|
+
terraform = ""
|
|
34
|
+
cc = local.common_vars.locals.cost_center
|
|
35
|
+
component = local.common_vars.locals.component
|
|
36
|
+
product = local.common_vars.locals.product
|
|
37
|
+
tenant-alias = local.common_vars.locals.tenant_alias
|
|
38
|
+
environment = local.project_vars.locals.project_env
|
|
35
39
|
}
|
|
36
40
|
}
|
|
37
41
|
)
|
|
@@ -29,7 +29,11 @@ inputs = merge(
|
|
|
29
29
|
## Uncomment and apply it before destroy in case of necessary to delete the instance
|
|
30
30
|
# deletion_protection = false
|
|
31
31
|
user_labels = {
|
|
32
|
-
cc
|
|
32
|
+
cc = local.common_vars.locals.cost_center
|
|
33
|
+
component = local.common_vars.locals.component
|
|
34
|
+
product = local.common_vars.locals.product
|
|
35
|
+
tenant-alias = local.common_vars.locals.tenant_alias
|
|
36
|
+
environment = local.project_vars.locals.project_env
|
|
33
37
|
}
|
|
34
38
|
}
|
|
35
39
|
)
|
|
@@ -30,8 +30,12 @@ inputs = merge(
|
|
|
30
30
|
postgresql_private_address = dependency.instance.outputs.private_ip_address
|
|
31
31
|
}
|
|
32
32
|
labels = {
|
|
33
|
-
terraform
|
|
34
|
-
cc
|
|
33
|
+
terraform = ""
|
|
34
|
+
cc = local.common_vars.locals.cost_center
|
|
35
|
+
component = local.common_vars.locals.component
|
|
36
|
+
product = local.common_vars.locals.product
|
|
37
|
+
tenant-alias = local.common_vars.locals.tenant_alias
|
|
38
|
+
environment = local.project_vars.locals.project_env
|
|
35
39
|
}
|
|
36
40
|
}
|
|
37
41
|
)
|
|
@@ -21,7 +21,11 @@ inputs = merge(
|
|
|
21
21
|
local.project_vars.locals,
|
|
22
22
|
{
|
|
23
23
|
labels = {
|
|
24
|
-
cc
|
|
24
|
+
cc = local.common_vars.locals.cost_center
|
|
25
|
+
component = local.common_vars.locals.component
|
|
26
|
+
product = local.common_vars.locals.product
|
|
27
|
+
tenant-alias = local.common_vars.locals.tenant_alias
|
|
28
|
+
environment = local.project_vars.locals.project_env
|
|
25
29
|
}
|
|
26
30
|
project_id = local.project_vars.locals.project_id
|
|
27
31
|
prevent_destroy = false
|
|
@@ -26,8 +26,12 @@ inputs = merge(
|
|
|
26
26
|
enable_apis = false
|
|
27
27
|
|
|
28
28
|
labels = {
|
|
29
|
-
project
|
|
30
|
-
cc
|
|
29
|
+
project = local.project_vars.locals.project_name
|
|
30
|
+
cc = local.common_vars.locals.cost_center
|
|
31
|
+
component = local.common_vars.locals.component
|
|
32
|
+
product = local.common_vars.locals.product
|
|
33
|
+
tenant-alias = local.common_vars.locals.tenant_alias
|
|
34
|
+
environment = local.project_vars.locals.project_env
|
|
31
35
|
}
|
|
32
36
|
}
|
|
33
37
|
)
|
|
@@ -25,7 +25,11 @@ inputs = merge(
|
|
|
25
25
|
}
|
|
26
26
|
labels = {
|
|
27
27
|
terraform = ""
|
|
28
|
-
cc
|
|
28
|
+
cc = local.common_vars.locals.cost_center
|
|
29
|
+
component = local.common_vars.locals.component
|
|
30
|
+
product = local.common_vars.locals.product
|
|
31
|
+
tenant-alias = local.common_vars.locals.tenant_alias
|
|
32
|
+
environment = local.project_vars.locals.project_env
|
|
29
33
|
}
|
|
30
34
|
}
|
|
31
35
|
)
|
|
@@ -23,12 +23,16 @@ locals {
|
|
|
23
23
|
|
|
24
24
|
# These are the variables we have to pass in to use the module specified in the terragrunt configuration above
|
|
25
25
|
inputs = {
|
|
26
|
-
monitoring_project_id
|
|
27
|
-
notification_channels
|
|
28
|
-
policies
|
|
29
|
-
user_labels
|
|
30
|
-
cc
|
|
31
|
-
clan
|
|
32
|
-
jira_project_key
|
|
26
|
+
monitoring_project_id = lookup(local.project_vars.locals, "monitoring_project_id", local.project_vars.locals.tribe_project_id),
|
|
27
|
+
notification_channels = dependency.notification_channels.outputs.notification_channels,
|
|
28
|
+
policies = yamldecode(file("${get_terragrunt_dir()}/alerts.yaml")),
|
|
29
|
+
user_labels = {
|
|
30
|
+
cc = local.common_vars.locals.cost_center
|
|
31
|
+
clan = local.common_vars.locals.clan_name
|
|
32
|
+
jira_project_key = lookup(local.common_vars.locals, "jira_project_key", null)
|
|
33
|
+
component = local.common_vars.locals.component
|
|
34
|
+
product = local.common_vars.locals.product
|
|
35
|
+
tenant-alias = local.common_vars.locals.tenant_alias
|
|
36
|
+
environment = local.project_vars.locals.project_env
|
|
33
37
|
},
|
|
34
38
|
}
|
|
@@ -23,14 +23,18 @@ locals {
|
|
|
23
23
|
|
|
24
24
|
# These are the variables we have to pass in to use the module specified in the terragrunt configuration above
|
|
25
25
|
inputs = merge({
|
|
26
|
-
project_id
|
|
27
|
-
project_id_alert
|
|
28
|
-
notification_channels
|
|
29
|
-
uptime_checks
|
|
30
|
-
labels
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
jira_project_key
|
|
26
|
+
project_id = local.project_vars.locals.project_id,
|
|
27
|
+
project_id_alert = local.project_vars.locals.tribe_project_id,
|
|
28
|
+
notification_channels = dependency.notification_channels.outputs.notification_channels,
|
|
29
|
+
uptime_checks = yamldecode(file("${get_terragrunt_dir()}/uptime-checks.yaml")),
|
|
30
|
+
labels = {
|
|
31
|
+
cc = local.common_vars.locals.cost_center
|
|
32
|
+
clan = local.common_vars.locals.clan_name
|
|
33
|
+
jira_project_key = lookup(local.common_vars.locals, "jira_project_key", null)
|
|
34
|
+
component = local.common_vars.locals.component
|
|
35
|
+
product = local.common_vars.locals.product
|
|
36
|
+
tenant-alias = local.common_vars.locals.tenant_alias
|
|
37
|
+
environment = local.project_vars.locals.project_env
|
|
34
38
|
}
|
|
35
39
|
}
|
|
36
40
|
)
|
|
@@ -23,10 +23,18 @@ inputs = merge(<% if (createResource == 'topic') { %><% } else { %>
|
|
|
23
23
|
local.project_vars.locals,
|
|
24
24
|
{
|
|
25
25
|
topic_labels = {
|
|
26
|
-
cc
|
|
26
|
+
cc = local.common_vars.locals.cost_center
|
|
27
|
+
component = local.common_vars.locals.component
|
|
28
|
+
product = local.common_vars.locals.product
|
|
29
|
+
tenant-alias = local.common_vars.locals.tenant_alias
|
|
30
|
+
environment = local.project_vars.locals.project_env
|
|
27
31
|
}<% if (createResource == 'topic') { %><% } else { %>
|
|
28
32
|
subscription_labels = {
|
|
29
|
-
cc
|
|
33
|
+
cc = local.common_vars.locals.cost_center
|
|
34
|
+
component = local.common_vars.locals.component
|
|
35
|
+
product = local.common_vars.locals.product
|
|
36
|
+
tenant-alias = local.common_vars.locals.tenant_alias
|
|
37
|
+
environment = local.project_vars.locals.project_env
|
|
30
38
|
}<% } %>
|
|
31
39
|
grant_token_creator = false
|
|
32
40
|
}
|
|
@@ -32,10 +32,18 @@ inputs = merge (
|
|
|
32
32
|
},
|
|
33
33
|
],
|
|
34
34
|
topic_labels = {
|
|
35
|
-
cc
|
|
35
|
+
cc = local.common_vars.locals.cost_center
|
|
36
|
+
component = local.common_vars.locals.component
|
|
37
|
+
product = local.common_vars.locals.product
|
|
38
|
+
tenant-alias = local.common_vars.locals.tenant_alias
|
|
39
|
+
environment = local.project_vars.locals.project_env
|
|
36
40
|
}
|
|
37
41
|
subscription_labels = {
|
|
38
|
-
cc
|
|
42
|
+
cc = local.common_vars.locals.cost_center
|
|
43
|
+
component = local.common_vars.locals.component
|
|
44
|
+
product = local.common_vars.locals.product
|
|
45
|
+
tenant-alias = local.common_vars.locals.tenant_alias
|
|
46
|
+
environment = local.project_vars.locals.project_env
|
|
39
47
|
}
|
|
40
48
|
grant_token_creator = false,
|
|
41
49
|
}
|
|
@@ -23,8 +23,12 @@ inputs = merge(
|
|
|
23
23
|
local.project_vars.locals,
|
|
24
24
|
{
|
|
25
25
|
instance_labels = {
|
|
26
|
-
cc
|
|
27
|
-
|
|
26
|
+
cc = local.common_vars.locals.cost_center
|
|
27
|
+
component = local.common_vars.locals.component
|
|
28
|
+
product = local.common_vars.locals.product
|
|
29
|
+
tenant-alias = local.common_vars.locals.tenant_alias
|
|
30
|
+
environment = local.project_vars.locals.project_env
|
|
31
|
+
"created" = "terraform"
|
|
28
32
|
}
|
|
29
33
|
}
|
|
30
34
|
)
|