Skip to content

Commit 023b575

Browse files
ihnarayananDave Karwowski
authored and
Dave Karwowski
committed
Expand Terraform for Developer Connect (GoogleCloudPlatform#12391)
1 parent 6694e27 commit 023b575

17 files changed

+1039
-204
lines changed

mmv1/products/developerconnect/Connection.yaml

+334-151
Large diffs are not rendered by default.

mmv1/products/developerconnect/GitRepositoryLink.yaml

-16
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
---
1515
name: 'GitRepositoryLink'
1616
description: "A git repository link to a parent connection."
17-
min_version: 'beta'
1817
docs:
1918
id_format: 'projects/{{project}}/locations/{{location}}/connections/{{parent_connection}}/gitRepositoryLinks/{{git_repository_link_id}}'
2019
base_url: 'projects/{{project}}/locations/{{location}}/connections/{{parent_connection}}/gitRepositoryLinks'
@@ -41,13 +40,11 @@ examples:
4140
# to show them in the docs.
4241
- name: 'developer_connect_git_repository_link_github'
4342
primary_resource_id: 'primary'
44-
min_version: 'beta'
4543
vars:
4644
connection_name: 'my-connection'
4745
git_repository_link_name: 'my-repository'
4846
exclude_docs: true
4947
- name: 'developer_connect_git_repository_link_github_doc'
50-
min_version: 'beta'
5148
exclude_test: true
5249
parameters:
5350
- name: 'location'
@@ -56,7 +53,6 @@ parameters:
5653
"Resource ID segment making up resource `name`. It identifies the resource
5754
within its parent collection as described in https://google.aip.dev/122. See documentation
5855
for resource type `developerconnect.googleapis.com/GitRepositoryLink`. "
59-
min_version: 'beta'
6056
url_param_only: true
6157
required: true
6258
immutable: true
@@ -66,7 +62,6 @@ parameters:
6662
"Resource ID segment making up resource `name`. It identifies the resource
6763
within its parent collection as described in https://google.aip.dev/122. See documentation
6864
for resource type `developerconnect.googleapis.com/GitRepositoryLink`. "
69-
min_version: 'beta'
7065
url_param_only: true
7166
required: true
7267
immutable: true
@@ -76,60 +71,49 @@ parameters:
7671
"Required. The ID to use for the repository, which will become the
7772
final component of\nthe repository's resource name. This ID should be unique in
7873
the connection.\nAllows alphanumeric characters and any of -._~%!$&'()*+,;=@. "
79-
min_version: 'beta'
8074
url_param_only: true
8175
required: true
8276
immutable: true
8377
properties:
8478
- name: 'name'
8579
type: String
8680
description: "Identifier. Resource name of the repository, in the format\n`projects/*/locations/*/connections/*/gitRepositoryLinks/*`. "
87-
min_version: 'beta'
8881
output: true
8982
- name: 'cloneUri'
9083
type: String
9184
description: "Required. Git Clone URI. "
92-
min_version: 'beta'
9385
required: true
9486
- name: 'createTime'
9587
type: String
9688
description: "Output only. [Output only] Create timestamp "
97-
min_version: 'beta'
9889
output: true
9990
- name: 'updateTime'
10091
type: String
10192
description: "Output only. [Output only] Update timestamp "
102-
min_version: 'beta'
10393
output: true
10494
- name: 'deleteTime'
10595
type: String
10696
description: "Output only. [Output only] Delete timestamp "
107-
min_version: 'beta'
10897
output: true
10998
- name: 'labels'
11099
type: KeyValueLabels
111100
description: "Optional. Labels as key value pairs "
112-
min_version: 'beta'
113101
- name: 'etag'
114102
type: String
115103
description:
116104
"Optional. This checksum is computed by the server based on the value
117105
of other\nfields, and may be sent on update and delete requests to ensure the\nclient
118106
has an up-to-date value before proceeding. "
119-
min_version: 'beta'
120107
- name: 'reconciling'
121108
type: Boolean
122109
description:
123110
"Output only. Set to true when the connection is being set up or updated
124111
in the\nbackground. "
125-
min_version: 'beta'
126112
output: true
127113
- name: 'annotations'
128114
type: KeyValueAnnotations
129115
description: "Optional. Allows clients to store small amounts of arbitrary data. "
130-
min_version: 'beta'
131116
- name: 'uid'
132117
type: String
133118
description: "Output only. A system-assigned unique identifier for a the GitRepositoryLink. "
134-
min_version: 'beta'
135119
output: true

mmv1/products/developerconnect/product.yaml

+6-5
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,11 @@
1212
# limitations under the License.
1313

1414
---
15-
name: 'DeveloperConnect'
16-
display_name: 'Developer Connect'
17-
versions:
18-
- name: 'beta'
19-
base_url: 'https://developerconnect.googleapis.com/v1/'
15+
name: DeveloperConnect
16+
display_name: Developer Connect
2017
scopes:
2118
- 'https://www.googleapis.com/auth/cloud-platform'
19+
versions:
20+
- base_url: 'https://developerconnect.googleapis.com/v1/'
21+
name: ga
22+
caibaseurl: ""

mmv1/templates/terraform/examples/developer_connect_connection_existing_credentials.tf.tmpl

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
resource "google_developer_connect_connection" "{{$.PrimaryResourceId}}" {
2-
provider = google-beta
32
location = "us-central1"
43
connection_id = "{{index $.Vars "connection_name"}}"
54

@@ -15,4 +14,4 @@ resource "google_developer_connect_connection" "{{$.PrimaryResourceId}}" {
1514
output "next_steps" {
1615
description = "Follow the action_uri if present to continue setup"
1716
value = google_developer_connect_connection.{{$.PrimaryResourceId}}.installation_state
18-
}
17+
}

mmv1/templates/terraform/examples/developer_connect_connection_existing_installation.tf.tmpl

-7
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
resource "google_secret_manager_secret" "github-token-secret" {
22

3-
provider = google-beta
43
secret_id = "github-token-secret"
54

65
replication {
@@ -9,15 +8,11 @@ resource "google_secret_manager_secret" "github-token-secret" {
98
}
109

1110
resource "google_secret_manager_secret_version" "github-token-secret-version" {
12-
13-
provider = google-beta
1411
secret = google_secret_manager_secret.github-token-secret.id
1512
secret_data = file("my-github-token.txt")
1613
}
1714

1815
resource "google_project_service_identity" "devconnect-p4sa" {
19-
provider = google-beta
20-
2116
service = "developerconnect.googleapis.com"
2217
}
2318

@@ -31,14 +26,12 @@ data "google_iam_policy" "p4sa-secretAccessor" {
3126

3227
resource "google_secret_manager_secret_iam_policy" "policy" {
3328

34-
provider = google-beta
3529
secret_id = google_secret_manager_secret.github-token-secret.secret_id
3630
policy_data = data.google_iam_policy.p4sa-secretAccessor.policy_data
3731
}
3832

3933
resource "google_developer_connect_connection" "my-connection" {
4034

41-
provider = google-beta
4235
location = "us-central1"
4336
connection_id = "my-connection"
4437

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
resource "google_developer_connect_connection" "{{$.PrimaryResourceId}}" {
2+
location = "us-central1"
3+
connection_id = "{{index $.Vars "connection_name"}}"
4+
5+
github_config {
6+
github_app = "DEVELOPER_CONNECT"
7+
8+
authorizer_credential {
9+
oauth_token_secret_version = "projects/devconnect-terraform-creds/secrets/tf-test-do-not-change-github-oauthtoken-e0b9e7/versions/1"
10+
}
11+
}
12+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
resource "google_secret_manager_secret" "github-token-secret" {
2+
3+
secret_id = "github-token-secret"
4+
5+
replication {
6+
auto {}
7+
}
8+
}
9+
10+
resource "google_secret_manager_secret_version" "github-token-secret-version" {
11+
12+
secret = google_secret_manager_secret.github-token-secret.id
13+
secret_data = file("my-github-token.txt")
14+
}
15+
16+
data "google_iam_policy" "p4sa-secretAccessor" {
17+
binding {
18+
role = "roles/secretmanager.secretAccessor"
19+
// Here, 123456789 is the Google Cloud project number for the project that contains the connection.
20+
members = ["serviceAccount:[email protected]"]
21+
}
22+
}
23+
24+
resource "google_secret_manager_secret_iam_policy" "policy" {
25+
26+
secret_id = google_secret_manager_secret.github-token-secret.secret_id
27+
policy_data = data.google_iam_policy.p4sa-secretAccessor.policy_data
28+
}
29+
30+
resource "google_developer_connect_connection" "my-connection" {
31+
32+
location = "us-central1"
33+
connection_id = "my-connection"
34+
35+
github_config {
36+
github_app = "DEVELOPER_CONNECT"
37+
app_installation_id = 123123
38+
authorizer_credential {
39+
oauth_token_secret_version = google_secret_manager_secret_version.github-token-secret-version.id
40+
}
41+
}
42+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
resource "google_developer_connect_connection" "{{$.PrimaryResourceId}}" {
2+
location = "us-central1"
3+
connection_id = "{{index $.Vars "connection_name"}}"
4+
5+
github_enterprise_config {
6+
host_uri = "https://ghe.proctor-staging-test.com"
7+
app_id = 864434
8+
private_key_secret_version = "projects/devconnect-terraform-creds/secrets/tf-test-ghe-do-not-change-ghe-private-key-f522d2/versions/latest"
9+
webhook_secret_secret_version = "projects/devconnect-terraform-creds/secrets/tf-test-ghe-do-not-change-ghe-webhook-secret-3c806f/versions/latest"
10+
app_installation_id = 837537
11+
}
12+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
resource "google_secret_manager_secret" "private-key-secret" {
2+
secret_id = "ghe-pk-secret"
3+
4+
replication {
5+
auto {}
6+
}
7+
}
8+
9+
resource "google_secret_manager_secret_version" "private-key-secret-version" {
10+
secret = google_secret_manager_secret.private-key-secret.id
11+
secret_data = file("private-key.pem")
12+
}
13+
14+
resource "google_secret_manager_secret" "webhook-secret-secret" {
15+
secret_id = "ghe-token-secret"
16+
17+
replication {
18+
auto {}
19+
}
20+
}
21+
22+
resource "google_secret_manager_secret_version" "webhook-secret-secret-version" {
23+
secret = google_secret_manager_secret.webhook-secret-secret.id
24+
secret_data = "<webhook-secret-data>"
25+
}
26+
27+
data "google_iam_policy" "p4sa-secretAccessor" {
28+
binding {
29+
role = "roles/secretmanager.secretAccessor"
30+
// Here, 123456789 is the Google Cloud project number for the project that contains the connection.
31+
members = ["serviceAccount:[email protected]"]
32+
}
33+
}
34+
35+
resource "google_secret_manager_secret_iam_policy" "policy-pk" {
36+
secret_id = google_secret_manager_secret.private-key-secret.secret_id
37+
policy_data = data.google_iam_policy.p4sa-secretAccessor.policy_data
38+
}
39+
40+
resource "google_secret_manager_secret_iam_policy" "policy-whs" {
41+
secret_id = google_secret_manager_secret.webhook-secret-secret.secret_id
42+
policy_data = data.google_iam_policy.p4sa-secretAccessor.policy_data
43+
}
44+
45+
resource "google_developer_connect_connection" "my-connection" {
46+
location = "us-central1"
47+
connection_id = "my-connection"
48+
49+
github_enterprise_config {
50+
host_uri = "https://ghe.com"
51+
private_key_secret_version = google_secret_manager_secret_version.private-key-secret-version.id
52+
webhook_secret_secret_version = google_secret_manager_secret_version.webhook-secret-secret-version.id
53+
app_id = 100
54+
app_installation_id = 123123
55+
}
56+
57+
depends_on = [
58+
google_secret_manager_secret_iam_policy.policy-pk,
59+
google_secret_manager_secret_iam_policy.policy-whs
60+
]
61+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
resource "google_developer_connect_connection" "{{$.PrimaryResourceId}}" {
2+
location = "us-central1"
3+
connection_id = "{{index $.Vars "connection_name"}}"
4+
5+
gitlab_config {
6+
webhook_secret_secret_version = "projects/devconnect-terraform-creds/secrets/gitlab-webhook/versions/latest"
7+
8+
read_authorizer_credential {
9+
user_token_secret_version = "projects/devconnect-terraform-creds/secrets/gitlab-read-cred/versions/latest"
10+
}
11+
12+
authorizer_credential {
13+
user_token_secret_version = "projects/devconnect-terraform-creds/secrets/gitlab-auth-cred/versions/latest"
14+
}
15+
}
16+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
resource "google_secret_manager_secret" "gitlab-read-cred-secret" {
2+
secret_id = "gitlab-read-cred"
3+
replication {
4+
auto {}
5+
}
6+
}
7+
8+
resource "google_secret_manager_secret_version" "gitlab-read-cred-secret-version" {
9+
secret = google_secret_manager_secret.gitlab-read-cred-secret.id
10+
secret_data = file("my-gitlab-read-cred.txt")
11+
}
12+
13+
resource "google_secret_manager_secret" "gitlab-auth-cred-secret" {
14+
secret_id = "gitlab-auth-cred"
15+
replication {
16+
auto {}
17+
}
18+
}
19+
20+
resource "google_secret_manager_secret_version" "gitlab-auth-cred-secret-version" {
21+
secret = google_secret_manager_secret.gitlab-auth-cred-secret.id
22+
secret_data = file("my-gitlab-auth-cred.txt")
23+
}
24+
25+
resource "google_secret_manager_secret" "gitlab-webhook-secret-secret" {
26+
secret_id = "gitlab-webhook-secret"
27+
replication {
28+
auto {}
29+
}
30+
}
31+
32+
resource "google_secret_manager_secret_version" "gitlab-webhook-secret-secret-version" {
33+
secret = google_secret_manager_secret.gitlab-webhook-secret-secret.id
34+
secret_data = file("my-gitlab-webhook-secret.txt")
35+
36+
data "google_iam_policy" "p4sa-secretAccessor" {
37+
binding {
38+
role = "roles/secretmanager.secretAccessor"
39+
// Here, 123456789 is the Google Cloud project number for the project that contains the connection.
40+
members = ["serviceAccount:[email protected]"]
41+
}
42+
}
43+
44+
resource "google_secret_manager_secret_iam_policy" "policy-rc" {
45+
secret_id = google_secret_manager_secret.gitlab-read-cred-secret.secret_id
46+
policy_data = data.google_iam_policy.p4sa-secretAccessor.policy_data
47+
}
48+
49+
resource "google_secret_manager_secret_iam_policy" "policy-ac" {
50+
secret_id = google_secret_manager_secret.gitlab-auth-cred-secret.secret_id
51+
policy_data = data.google_iam_policy.p4sa-secretAccessor.policy_data
52+
}
53+
54+
resource "google_secret_manager_secret_iam_policy" "policy-wh" {
55+
secret_id = google_secret_manager_secret.gitlab-webhook-secret-secret.secret_id
56+
policy_data = data.google_iam_policy.p4sa-secretAccessor.policy_data
57+
}
58+
59+
resource "google_developer_connect_connection" "my-connection" {
60+
61+
location = "us-central1"
62+
connection_id = "my-connection"
63+
64+
gitlab_config {
65+
webhook_secret_secret_version = google_secret_manager_secret_version.gitlab-webhook-secret-secret-version.id
66+
67+
read_authorizer_credential {
68+
user_token_secret_version = google_secret_manager_secret_version.gitlab-read-cred-secret-version.id
69+
}
70+
71+
authorizer_credential {
72+
user_token_secret_version = google_secret_manager_secret_version.gitlab-auth-cred-secret-version.id
73+
}
74+
}
75+
76+
depends_on = [
77+
google_secret_manager_secret_iam_policy.policy-rc,
78+
google_secret_manager_secret_iam_policy.policy-ac,
79+
google_secret_manager_secret_iam_policy.policy-wh
80+
]
81+
}

0 commit comments

Comments
 (0)