1
+ # ################################
2
+ # # Stackguardian Workflow Group
3
+ # ################################
4
+ module "stackguardian_workflow_group" {
5
+ source = " ../terraform-stackguardian-modules/stackguardian_workflow_group"
6
+ api_key = var. api_key
7
+ org_name = var. org_name
8
+ workflow_group_name = var. workflow_group_name
9
+ }
10
+
11
+ # ################################
12
+ # # Stackguardian aws oidc
13
+ # ################################
14
+ module "aws_oidc" {
15
+ source = " ../terraform-stackguardian-modules/aws_oidc"
16
+ account_number = var. account_number
17
+ client_id = var. client_id
18
+ region = var. region
19
+ aws_policy = var. aws_policy
20
+ role_name = var. role_name
21
+ url = var. url
22
+ org_name = var. org_name
23
+ }
24
+
25
+ # ################################
26
+ # # Stackguardian cloud connector
27
+ # ################################
28
+ module "stackguardian_connector_cloud" {
29
+ source = " ../terraform-stackguardian-modules/stackguardian_connector_cloud"
30
+ cloud_connector_name = var. cloud_connector_name
31
+ connector_type = var. connector_type
32
+ api_key = var. api_key
33
+ org_name = var. org_name
34
+
35
+ role_arn = module. aws_oidc . oidc_role_arn
36
+
37
+ aws_access_key_id = var. aws_access_key_id
38
+ aws_secret_access_key = var. aws_secret_access_key
39
+ aws_default_region = var. aws_default_region
40
+
41
+ armTenantId = var. armTenantId
42
+ armSubscriptionId = var. armSubscriptionId
43
+ armClientId = var. client_id
44
+ armClientSecret = var. armClientSecret
45
+ }
46
+
47
+ # ###############################
48
+ # Stackguardian vcs
49
+ # ###############################
50
+ locals {
51
+ # Determine which VCS connector to create based on non-empty credentials
52
+ selected_connector = merge (
53
+ # If GitLab creds are provided, use GitLab connector
54
+ length (var. gitlab_creds ) > 0 ? {
55
+ vcs_gitlab = {
56
+ kind = " GITLAB_COM"
57
+ config = [{
58
+ gitlab_creds = var.gitlab_creds
59
+ }]
60
+ }
61
+ } : {},
62
+
63
+ # If GitHub creds are provided, use GitHub connector
64
+ length (var. github_creds ) > 0 ? {
65
+ vcs_github = {
66
+ kind = " GITHUB_COM"
67
+ config = [{
68
+ github_creds = var.github_creds
69
+ }]
70
+ }
71
+ } : {},
72
+
73
+ # If Bitbucket creds are provided, use Bitbucket connector
74
+ length (var. bitbucket_creds ) > 0 ? {
75
+ vcs_bitbucket = {
76
+ kind = " BITBUCKET_COM"
77
+ config = [{
78
+ bitbucket_creds = var.bitbucket_creds
79
+ }]
80
+ }
81
+ } : {}
82
+ )
83
+ }
84
+
85
+ module "stackguardian_connector_vcs" {
86
+ source = " ../terraform-stackguardian-modules/stackguardian_connector_vcs"
87
+ stackguardian_connector_vcs_name = var. stackguardian_connector_vcs_name
88
+ api_key = var. api_key
89
+ org_name = var. org_name
90
+ stackguardian_connector_kinds = local. selected_connector
91
+ }
92
+
93
+ # ###############################
94
+ # Stackguardian role
95
+ # ###############################
96
+ module "stackguardian_role" {
97
+ source = " ../terraform-stackguardian-modules/stackguardian_role"
98
+ api_key = var. api_key
99
+ org_name = var. org_name
100
+ role_name = var. role_name
101
+ cloud_connector = var. cloud_connector
102
+ stackguardian_connector_vcs = var. stackguardian_connector_vcs
103
+ workflow_group = var. workflow_group
104
+ template_list = var. template_list
105
+ # depends_on = [ module.stackguardian_workflow_group, module.stackguardian_connector_cloud, module.stackguardian_connector_vcs ]
106
+ }
107
+
108
+ # ################################
109
+ # # Stackguardian role assignment
110
+ # ################################
111
+ module "stackguardian_role_assignment" {
112
+ source = " ../terraform-stackguardian-modules/stackguardian_role_assignment"
113
+ api_key = var. api_key
114
+ org_name = var. org_name
115
+ role_name = var. role_name
116
+ user_or_group = var. user_or_group
117
+ entity_type = var. entity_type
118
+ }
0 commit comments