terraform-cdk-serverless-github-actions-runner-controller 0.0.2 → 0.0.3
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/.jsii +128 -5
- package/API.md +74 -1
- package/biome.jsonc +66 -0
- package/lib/lib/aws.d.ts +16 -1
- package/lib/lib/aws.js +275 -280
- package/lib/lib/azure.d.ts +1 -1
- package/lib/lib/azure.js +105 -130
- package/lib/lib/gcp.d.ts +1 -1
- package/lib/lib/gcp.js +46 -48
- package/lib/lib/variables.d.ts +3 -2
- package/lib/lib/variables.js +11 -5
- package/lib/tfModules.js +40 -10
- package/modules/azure-container-apps/README.md +2 -1
- package/modules/azure-container-apps/cdk.tf.json +10 -6
- package/modules/elastic-container-service/README.md +25 -24
- package/modules/elastic-container-service/cdk.tf.json +64 -74
- package/modules/google-cloud-run/README.md +18 -17
- package/modules/google-cloud-run/cdk.tf.json +10 -6
- package/package.json +16 -69
- package/renovate.json5 +42 -0
- package/vitest.config.ts +28 -0
- package/lib/__tests__/index-test.d.ts +0 -1
- package/lib/__tests__/index-test.js +0 -26
- package/main.tf +0 -26
- package/scripts/collect-variables.ts +0 -188
- package/variables.tf +0 -27
package/lib/lib/gcp.d.ts
CHANGED
package/lib/lib/gcp.js
CHANGED
|
@@ -3,18 +3,18 @@ var _a;
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.Gcp = void 0;
|
|
5
5
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
-
const cdktf_1 = require("cdktf");
|
|
7
|
-
const constructs_1 = require("constructs");
|
|
8
|
-
const provider_1 = require("@cdktf/provider-google/lib/provider");
|
|
9
6
|
const artifact_registry_repository_1 = require("@cdktf/provider-google/lib/artifact-registry-repository");
|
|
7
|
+
const cloud_run_service_1 = require("@cdktf/provider-google/lib/cloud-run-service");
|
|
10
8
|
const cloud_run_v2_job_1 = require("@cdktf/provider-google/lib/cloud-run-v2-job");
|
|
11
9
|
const project_iam_custom_role_1 = require("@cdktf/provider-google/lib/project-iam-custom-role");
|
|
12
|
-
const service_account_1 = require("@cdktf/provider-google/lib/service-account");
|
|
13
10
|
const project_iam_member_1 = require("@cdktf/provider-google/lib/project-iam-member");
|
|
14
|
-
const
|
|
15
|
-
const
|
|
11
|
+
const provider_1 = require("@cdktf/provider-google/lib/provider");
|
|
12
|
+
const service_account_1 = require("@cdktf/provider-google/lib/service-account");
|
|
16
13
|
const provider_2 = require("@cdktf/provider-null/lib/provider");
|
|
17
14
|
const resource_1 = require("@cdktf/provider-null/lib/resource");
|
|
15
|
+
const cdktf_1 = require("cdktf");
|
|
16
|
+
const constructs_1 = require("constructs");
|
|
17
|
+
const variables_1 = require("./variables");
|
|
18
18
|
class Gcp extends constructs_1.Construct {
|
|
19
19
|
constructor(scope, id) {
|
|
20
20
|
super(scope, id);
|
|
@@ -22,7 +22,7 @@ class Gcp extends constructs_1.Construct {
|
|
|
22
22
|
const project = 'gha-runner-example';
|
|
23
23
|
new provider_1.GoogleProvider(this, 'google', {
|
|
24
24
|
project,
|
|
25
|
-
region: location
|
|
25
|
+
region: location,
|
|
26
26
|
});
|
|
27
27
|
new provider_2.NullProvider(this, 'null');
|
|
28
28
|
const { pat, githubConfigUrl } = (0, variables_1.commonVariables)(this);
|
|
@@ -34,10 +34,10 @@ class Gcp extends constructs_1.Construct {
|
|
|
34
34
|
remoteRepositoryConfig: {
|
|
35
35
|
dockerRepository: {
|
|
36
36
|
customRepository: {
|
|
37
|
-
uri: 'https://ghcr.io'
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
}
|
|
37
|
+
uri: 'https://ghcr.io',
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
41
|
});
|
|
42
42
|
const jobSa = new service_account_1.ServiceAccount(this, 'jobServiceAccount', {
|
|
43
43
|
accountId: 'gha-runner-job-sa',
|
|
@@ -83,12 +83,12 @@ class Gcp extends constructs_1.Construct {
|
|
|
83
83
|
const bucketCreation = new resource_1.Resource(this, 'gcloud', {
|
|
84
84
|
provisioners: [
|
|
85
85
|
{
|
|
86
|
-
type:
|
|
87
|
-
command: createBucket.fqn
|
|
86
|
+
type: 'local-exec',
|
|
87
|
+
command: createBucket.fqn,
|
|
88
88
|
},
|
|
89
89
|
],
|
|
90
90
|
triggers: {
|
|
91
|
-
fqn: createBucket.fqn
|
|
91
|
+
fqn: createBucket.fqn,
|
|
92
92
|
},
|
|
93
93
|
});
|
|
94
94
|
// TODO: check caching https://cloud.google.com/artifact-registry/docs/pull-cached-dockerhub-images
|
|
@@ -117,39 +117,37 @@ class Gcp extends constructs_1.Construct {
|
|
|
117
117
|
// FUSE mounts directory as root with 777 fo directories and 555 for other files. As path is owned always by root, utime or permission change is not possible. These options prevent tar to try those
|
|
118
118
|
{
|
|
119
119
|
name: 'TAR_OPTIONS',
|
|
120
|
-
value: '--touch --no-overwrite-dir --no-same-owner'
|
|
121
|
-
}
|
|
120
|
+
value: '--touch --no-overwrite-dir --no-same-owner',
|
|
121
|
+
},
|
|
122
122
|
],
|
|
123
123
|
volumeMounts: [
|
|
124
124
|
{
|
|
125
125
|
name: 'externals',
|
|
126
|
-
mountPath: '/home/runner/_work/externals'
|
|
127
|
-
}
|
|
126
|
+
mountPath: '/home/runner/_work/externals',
|
|
127
|
+
},
|
|
128
128
|
],
|
|
129
129
|
command: ['/home/runner/ephemeral_runner.sh'],
|
|
130
130
|
resources: {
|
|
131
131
|
limits: {
|
|
132
132
|
cpu: '1',
|
|
133
|
-
memory: '2Gi'
|
|
134
|
-
}
|
|
133
|
+
memory: '2Gi',
|
|
134
|
+
},
|
|
135
135
|
},
|
|
136
|
-
}
|
|
136
|
+
},
|
|
137
137
|
],
|
|
138
138
|
volumes: [
|
|
139
139
|
{
|
|
140
140
|
name: 'externals',
|
|
141
141
|
gcs: {
|
|
142
|
-
bucket: storageName
|
|
143
|
-
}
|
|
144
|
-
}
|
|
142
|
+
bucket: storageName,
|
|
143
|
+
},
|
|
144
|
+
},
|
|
145
145
|
],
|
|
146
146
|
maxRetries: 0,
|
|
147
|
-
serviceAccount: jobSa.email
|
|
148
|
-
}
|
|
147
|
+
serviceAccount: jobSa.email,
|
|
148
|
+
},
|
|
149
149
|
},
|
|
150
|
-
dependsOn: [
|
|
151
|
-
bucketCreation
|
|
152
|
-
]
|
|
150
|
+
dependsOn: [bucketCreation],
|
|
153
151
|
});
|
|
154
152
|
const autoscalerSa = new service_account_1.ServiceAccount(this, 'autoscalerServiceAccount', {
|
|
155
153
|
accountId: 'autoscaler-sa',
|
|
@@ -188,7 +186,7 @@ class Gcp extends constructs_1.Construct {
|
|
|
188
186
|
metadata: {
|
|
189
187
|
annotations: {
|
|
190
188
|
'run.googleapis.com/ingress': 'internal',
|
|
191
|
-
}
|
|
189
|
+
},
|
|
192
190
|
},
|
|
193
191
|
template: {
|
|
194
192
|
metadata: {
|
|
@@ -196,8 +194,8 @@ class Gcp extends constructs_1.Construct {
|
|
|
196
194
|
'autoscaling.knative.dev/maxScale': '1',
|
|
197
195
|
'autoscaling.knative.dev/minScale': '1',
|
|
198
196
|
'run.googleapis.com/cpu-throttling': 'false',
|
|
199
|
-
'run.googleapis.com/startup-cpu-boost': 'false'
|
|
200
|
-
}
|
|
197
|
+
'run.googleapis.com/startup-cpu-boost': 'false',
|
|
198
|
+
},
|
|
201
199
|
},
|
|
202
200
|
spec: {
|
|
203
201
|
containerConcurrency: 1,
|
|
@@ -207,45 +205,45 @@ class Gcp extends constructs_1.Construct {
|
|
|
207
205
|
env: [
|
|
208
206
|
{
|
|
209
207
|
name: 'PAT',
|
|
210
|
-
value: pat.value
|
|
208
|
+
value: pat.value,
|
|
211
209
|
},
|
|
212
210
|
{
|
|
213
211
|
name: 'GITHUB_CONFIG_URL',
|
|
214
|
-
value: githubConfigUrl.value
|
|
212
|
+
value: githubConfigUrl.value,
|
|
215
213
|
},
|
|
216
214
|
{
|
|
217
215
|
name: 'JOB_NAME',
|
|
218
|
-
value: runnerJob.name
|
|
216
|
+
value: runnerJob.name,
|
|
219
217
|
},
|
|
220
218
|
{
|
|
221
219
|
name: 'SCALE_SET_NAME',
|
|
222
|
-
value: 'cr-runner-set'
|
|
220
|
+
value: 'cr-runner-set',
|
|
223
221
|
},
|
|
224
222
|
{
|
|
225
223
|
name: 'CLOUDSDK_RUN_REGION',
|
|
226
|
-
value: location
|
|
224
|
+
value: location,
|
|
227
225
|
},
|
|
228
226
|
{
|
|
229
227
|
name: 'GOOGLE_CLOUD_PROJECT',
|
|
230
|
-
value: project
|
|
231
|
-
}
|
|
228
|
+
value: project,
|
|
229
|
+
},
|
|
232
230
|
],
|
|
233
231
|
resources: {
|
|
234
232
|
// Service would work for much lower, but these are minimum values for "always on" mode
|
|
235
233
|
limits: {
|
|
236
234
|
cpu: '1000m',
|
|
237
|
-
memory: '512Mi'
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
}
|
|
235
|
+
memory: '512Mi',
|
|
236
|
+
},
|
|
237
|
+
},
|
|
238
|
+
},
|
|
241
239
|
],
|
|
242
|
-
serviceAccountName: autoscalerSa.email
|
|
243
|
-
}
|
|
244
|
-
}
|
|
240
|
+
serviceAccountName: autoscalerSa.email,
|
|
241
|
+
},
|
|
242
|
+
},
|
|
245
243
|
});
|
|
246
244
|
}
|
|
247
245
|
}
|
|
248
246
|
exports.Gcp = Gcp;
|
|
249
247
|
_a = JSII_RTTI_SYMBOL_1;
|
|
250
|
-
Gcp[_a] = { fqn: "terraform-cdk-serverless-github-actions-runner-controller.Gcp", version: "0.0.
|
|
251
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2NwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9nY3AudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxpQ0FBdUM7QUFDdkMsMkNBQXVDO0FBQ3ZDLGtFQUFvRTtBQUNwRSwwR0FBcUc7QUFDckcsa0ZBQTRFO0FBQzVFLGdHQUEwRjtBQUMxRixnRkFBNEU7QUFDNUUsc0ZBQWlGO0FBQ2pGLDJDQUE4QztBQUM5QyxvRkFBK0U7QUFDL0UsZ0VBQWlFO0FBQ2pFLGdFQUE0RDtBQUU1RCxNQUFhLEdBQUksU0FBUSxzQkFBUztJQUM5QixZQUFZLEtBQWdCLEVBQUUsRUFBVTtRQUNwQyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sUUFBUSxHQUFHLGVBQWUsQ0FBQztRQUNqQyxNQUFNLE9BQU8sR0FBRyxvQkFBb0IsQ0FBQztRQUVyQyxJQUFJLHlCQUFjLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRTtZQUMvQixPQUFPO1lBQ1AsTUFBTSxFQUFFLFFBQVE7U0FDbkIsQ0FBQyxDQUFDO1FBRUgsSUFBSSx1QkFBWSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQTtRQUU5QixNQUFNLEVBQUUsR0FBRyxFQUFFLGVBQWUsRUFBRSxHQUFHLElBQUEsMkJBQWUsRUFBQyxJQUFJLENBQUMsQ0FBQztRQUV2RCxNQUFNLFFBQVEsR0FBRyxJQUFJLHlEQUEwQixDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDOUQsTUFBTSxFQUFFLFFBQVE7WUFDaEIsSUFBSSxFQUFFLG1CQUFtQjtZQUN6QixZQUFZLEVBQUUsaUJBQWlCO1lBQy9CLFdBQVcsRUFBRSwyREFBMkQ7WUFDeEUsc0JBQXNCLEVBQUU7Z0JBQ3BCLGdCQUFnQixFQUFFO29CQUNkLGdCQUFnQixFQUFFO3dCQUNkLEdBQUcsRUFBRSxpQkFBaUI7cUJBQ3pCO2lCQUNKO2FBQ0o7U0FDSixDQUFDLENBQUM7UUFFSCxNQUFNLEtB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QixLQUFLLEVBQUUsZUFBZSxDQUFDLEtBQUs7aUNBQy9CO2dDQUNEO29DQUNJLElBQUksRUFBRSxVQUFVO29DQUNoQixLQUFLLEVBQUUsU0FBUyxDQUFDLElBQUk7aUNBQ3hCO2dDQUNEO29DQUNJLElBQUksRUFBRSxnQkFBZ0I7b0NBQ3RCLEtBQUssRUFBRSxlQUFlO2lDQUN6QjtnQ0FDRDtvQ0FDSSxJQUFJLEVBQUUscUJBQXFCO29DQUMzQixLQUFLLEVBQUUsUUFBUTtpQ0FDbEI7Z0NBQ0Q7b0NBQ0ksSUFBSSxFQUFFLHNCQUFzQjtvQ0FDNUIsS0FBSyxFQUFFLE9BQU87aUNBQ2pCOzZCQUVKOzRCQUNELFNBQVMsRUFBRTtnQ0FDUCx1RkFBdUY7Z0NBQ3ZGLE1BQU0sRUFBRTtvQ0FDSixHQUFHLEVBQUUsT0FBTztvQ0FDWixNQUFNLEVBQUUsT0FBTztpQ0FDbEI7NkJBQ0o7eUJBQ0o7cUJBQ0o7b0JBQ0Qsa0JBQWtCLEVBQUUsWUFBWSxDQUFDLEtBQUs7aUJBQ3pDO2FBQ0o7U0FDSixDQUFDLENBQUE7SUFDTixDQUFDOztBQTVQTCxrQkE2UEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUZXJyYWZvcm1Mb2NhbCB9IGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IEdvb2dsZVByb3ZpZGVyIH0gZnJvbSAnQGNka3RmL3Byb3ZpZGVyLWdvb2dsZS9saWIvcHJvdmlkZXInXG5pbXBvcnQgeyBBcnRpZmFjdFJlZ2lzdHJ5UmVwb3NpdG9yeSB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItZ29vZ2xlL2xpYi9hcnRpZmFjdC1yZWdpc3RyeS1yZXBvc2l0b3J5XCI7XG5pbXBvcnQgeyBDbG91ZFJ1blYySm9iIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1nb29nbGUvbGliL2Nsb3VkLXJ1bi12Mi1qb2JcIjtcbmltcG9ydCB7IFByb2plY3RJYW1DdXN0b21Sb2xlIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1nb29nbGUvbGliL3Byb2plY3QtaWFtLWN1c3RvbS1yb2xlXCI7XG5pbXBvcnQgeyBTZXJ2aWNlQWNjb3VudCB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItZ29vZ2xlL2xpYi9zZXJ2aWNlLWFjY291bnRcIjtcbmltcG9ydCB7IFByb2plY3RJYW1NZW1iZXIgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWdvb2dsZS9saWIvcHJvamVjdC1pYW0tbWVtYmVyXCI7XG5pbXBvcnQgeyBjb21tb25WYXJpYWJsZXMgfSBmcm9tIFwiLi92YXJpYWJsZXNcIjtcbmltcG9ydCB7IENsb3VkUnVuU2VydmljZSB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItZ29vZ2xlL2xpYi9jbG91ZC1ydW4tc2VydmljZVwiO1xuaW1wb3J0IHsgTnVsbFByb3ZpZGVyIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1udWxsL2xpYi9wcm92aWRlclwiO1xuaW1wb3J0IHsgUmVzb3VyY2UgfSBmcm9tICdAY2RrdGYvcHJvdmlkZXItbnVsbC9saWIvcmVzb3VyY2UnXG5cbmV4cG9ydCBjbGFzcyBHY3AgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICAgIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpIHtcbiAgICAgICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgICAgICBjb25zdCBsb2NhdGlvbiA9ICdldXJvcGUtbm9ydGgxJztcbiAgICAgICAgY29uc3QgcHJvamVjdCA9ICdnaGEtcnVubmVyLWV4YW1wbGUnO1xuICAgICAgICBcbiAgICAgICAgbmV3IEdvb2dsZVByb3ZpZGVyKHRoaXMsICdnb29nbGUnLCB7XG4gICAgICAgICAgICBwcm9qZWN0LFxuICAgICAgICAgICAgcmVnaW9uOiBsb2NhdGlvblxuICAgICAgICB9KTtcblxuICAgICAgICBuZXcgTnVsbFByb3ZpZGVyKHRoaXMsICdudWxsJylcblxuICAgICAgICBjb25zdCB7IHBhdCwgZ2l0aHViQ29uZmlnVXJsIH0gPSBjb21tb25WYXJpYWJsZXModGhpcyk7XG5cbiAgICAgICAgY29uc3QgcmVnaXN0cnkgPSBuZXcgQXJ0aWZhY3RSZWdpc3RyeVJlcG9zaXRvcnkodGhpcywgJ3JlZ2lzdHJ5Jywge1xuICAgICAgICAgICAgZm9ybWF0OiAnRE9DS0VSJyxcbiAgICAgICAgICAgIG1vZGU6ICdSRU1PVEVfUkVQT1NJVE9SWScsXG4gICAgICAgICAgICByZXBvc2l0b3J5SWQ6ICdnaGEtcnVubmVyLXRlc3QnLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246ICdSZXBvc2l0b3J5IHRvIGhvc3QgcnVuIGFuZCByZXN1bHRpbmcgaW1hZ2VzIGZyb20gR0hBIHJ1bnMnLFxuICAgICAgICAgICAgcmVtb3RlUmVwb3NpdG9yeUNvbmZpZzoge1xuICAgICAgICAgICAgICAgIGRvY2tlclJlcG9zaXRvcnk6IHtcbiAgICAgICAgICAgICAgICAgICAgY3VzdG9tUmVwb3NpdG9yeToge1xuICAgICAgICAgICAgICAgICAgICAgICAgdXJpOiAnaHR0cHM6Ly9naGNyLmlvJ1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBqb2JTYSA9IG5ldyBTZXJ2aWNlQWNjb3VudCh0aGlzLCAnam9iU2VydmljZUFjY291bnQnLCB7XG4gICAgICAgICAgICBhY2NvdW50SWQ6ICdnaGEtcnVubmVyLWpvYi1zYScsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IHJ1bm5lclJvbGUgPSBuZXcgUHJvamVjdElhbUN1c3RvbVJvbGUodGhpcywgJ3J1bm5lclJvbGUnLCB7XG4gICAgICAgICAgICByb2xlSWQ6ICdnaGFSdW5uZXJSb2xlJyxcbiAgICAgICAgICAgIHRpdGxlOiAnR0hBIFJ1bm5lciBSb2xlJyxcbiAgICAgICAgICAgIHBlcm1pc3Npb25zOiBbXG4gICAgICAgICAgICAgICAgJ2FydGlmYWN0cmVnaXN0cnkuZG9ja2VyaW1hZ2VzLmdldCcsXG4gICAgICAgICAgICAgICAgJ2FydGlmYWN0cmVnaXN0cnkuZG9ja2VyaW1hZ2VzLmxpc3QnLFxuICAgICAgICAgICAgICAgICdydW4uam9icy5ydW4nLFxuICAgICAgICAgICAgICAgICdydW4uam9icy5jcmVhdGUnLFxuICAgICAgICAgICAgICAgICdydW4uam9icy5kZWxldGUnLFxuICAgICAgICAgICAgICAgICdydW4uam9icy5saXN0JyxcbiAgICAgICAgICAgICAgICAvLyBOZWVkZWQgZm9yIHdhaXRpbmdcbiAgICAgICAgICAgICAgICAncnVuLmV4ZWN1dGlvbnMuZ2V0JyxcbiAgICAgICAgICAgIF0sXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IGpvYlBvbGljeU1lbWJlciA9IG5ldyBUZXJyYWZvcm1Mb2NhbCh0aGlzLCAnZ2hhTWVtYmVyJywgYHNlcnZpY2VBY2NvdW50OiR7am9iU2EuZW1haWx9YClcblxuICAgICAgICBuZXcgUHJvamVjdElhbU1lbWJlcih0aGlzLCAncnVubmVyUm9sZUJpbmRpbmcnLCB7XG4gICAgICAgICAgICBtZW1iZXI6IGpvYlBvbGljeU1lbWJlci50b1N0cmluZygpLFxuICAgICAgICAgICAgcHJvamVjdCxcbiAgICAgICAgICAgIHJvbGU6IHJ1bm5lclJvbGUuaWQsXG4gICAgICAgIH0pXG5cbiAgICAgICAgbmV3IFByb2plY3RJYW1NZW1iZXIodGhpcywgJ3J1bm5lclJvbGVCaW5kaW5nU3RvcmFnZScsIHtcbiAgICAgICAgICAgIG1lbWJlcjogam9iUG9saWN5TWVtYmVyLnRvU3RyaW5nKCksXG4gICAgICAgICAgICBwcm9qZWN0LFxuICAgICAgICAgICAgcm9sZTogJ3JvbGVzL3N0b3JhZ2UuYWRtaW4nLFxuICAgICAgICB9KVxuXG4gICAgICAgIG5ldyBQcm9qZWN0SWFtTWVtYmVyKHRoaXMsICdydW5uZXJSb2xlQmluZGluZ1J1blNlcnZpY2VBZ2VudCcsIHtcbiAgICAgICAgICAgIG1lbWJlcjogam9iUG9saWN5TWVtYmVyLnRvU3RyaW5nKCksXG4gICAgICAgICAgICBwcm9qZWN0LFxuICAgICAgICAgICAgcm9sZTogJ3JvbGVzL3J1bi5zZXJ2aWNlQWdlbnQnLFxuICAgICAgICB9KVxuXG4gICAgICAgIG5ldyBQcm9qZWN0SWFtTWVtYmVyKHRoaXMsICdydW5uZXJSb2xlQmluZGluZ1J1blZpZXdlcicsIHtcbiAgICAgICAgICAgIG1lbWJlcjogam9iUG9saWN5TWVtYmVyLnRvU3RyaW5nKCksXG4gICAgICAgICAgICBwcm9qZWN0LFxuICAgICAgICAgICAgcm9sZTogJ3JvbGVzL3J1bi52aWV3ZXInLFxuICAgICAgICB9KVxuXG4gICAgICAgIGNvbnN0IHN0b3JhZ2VOYW1lID0gJ2doYS1ydW5uZXItam9iLWV4dGVybmFscyc7XG4gICAgICAgIGNvbnN0IGNyZWF0ZUJ1Y2tldCA9IG5ldyBUZXJyYWZvcm1Mb2NhbCh0aGlzLCAnYnVja2V0TW9kaWZpY2F0aW9uJywgYENMT1VEU0RLX0NPUkVfRElTQUJMRV9QUk9NUFRTPTEgZ2Nsb3VkIGFscGhhIHN0b3JhZ2UgYnVja2V0cyBjcmVhdGUgZ3M6Ly8ke3N0b3JhZ2VOYW1lfSAtLXByb2plY3Q9JHtwcm9qZWN0fSAtLWxvY2F0aW9uPSR7bG9jYXRpb259IC0tdW5pZm9ybS1idWNrZXQtbGV2ZWwtYWNjZXNzIC0tZW5hYmxlLWhpZXJhcmNoaWNhbC1uYW1lc3BhY2VgKVxuXG4gICAgICAgIC8vIEhpZXJhcmNoaWFsIG5hbWVzcGFjZXMgY2FuJ3QgYmUgZW5hYmxlZCB3aXRoIFRlcnJhZm9ybS5cbiAgICAgICAgY29uc3QgYnVja2V0Q3JlYXRpb24gPSBuZXcgUmVzb3VyY2UodGhpcywgJ2djbG91ZCcsIHtcbiAgICAgICAgICAgIHByb3Zpc2lvbmVyczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJsb2NhbC1leGVjXCIsXG4gICAgICAgICAgICAgICAgICAgIGNvbW1hbmQ6IGNyZWF0ZUJ1Y2tldC5mcW5cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIHRyaWdnZXJzOiB7XG4gICAgICAgICAgICAgICAgZnFuOiBjcmVhdGVCdWNrZXQuZnFuXG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBUT0RPOiBjaGVjayBjYWNoaW5nIGh0dHBzOi8vY2xvdWQuZ29vZ2xlLmNvbS9hcnRpZmFjdC1yZWdpc3RyeS9kb2NzL3B1bGwtY2FjaGVkLWRvY2tlcmh1Yi1pbWFnZXNcbiAgICAgICAgY29uc3QgcnVubmVySm9iID0gbmV3IENsb3VkUnVuVjJKb2IodGhpcywgJ2doYUpvYicsIHtcbiAgICAgICAgICAgIGRlbGV0aW9uUHJvdGVjdGlvbjogZmFsc2UsXG4gICAgICAgICAgICBuYW1lOiAnZ2hhLXJ1bm5lci1qb2InLFxuICAgICAgICAgICAgbG9jYXRpb24sXG4gICAgICAgICAgICB0ZW1wbGF0ZToge1xuICAgICAgICAgICAgICAgIHRlbXBsYXRlOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcnM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbWFnZTogYCR7cmVnaXN0cnkubG9jYXRpb259LWRvY2tlci5wa2cuZGV2LyR7cHJvamVjdH0vJHtyZWdpc3RyeS5yZXBvc2l0b3J5SWR9L2hpLWZpL2FjdGlvbnMtcnVubmVyOmNyYCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnY6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ0NMT1VEU0RLX1JVTl9SRUdJT04nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGxvY2F0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnR09PR0xFX0NMT1VEX1BST0pFQ1QnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHByb2plY3QsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdFWFRFUk5BTF9TVE9SQUdFX05BTUUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHN0b3JhZ2VOYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGVVNFIG1vdW50cyBkaXJlY3RvcnkgYXMgcm9vdCB3aXRoIDc3NyBmbyBkaXJlY3RvcmllcyBhbmQgNTU1IGZvciBvdGhlciBmaWxlcy4gQXMgcGF0aCBpcyBvd25lZCBhbHdheXMgYnkgcm9vdCwgdXRpbWUgb3IgcGVybWlzc2lvbiBjaGFuZ2UgaXMgbm90IHBvc3NpYmxlLiBUaGVzZSBvcHRpb25zIHByZXZlbnQgdGFyIHRvIHRyeSB0aG9zZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnVEFSX09QVElPTlMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6ICctLXRvdWNoIC0tbm8tb3ZlcndyaXRlLWRpciAtLW5vLXNhbWUtb3duZXInXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvbHVtZU1vdW50czogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnZXh0ZXJuYWxzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vdW50UGF0aDogJy9ob21lL3J1bm5lci9fd29yay9leHRlcm5hbHMnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1hbmQ6IFsnL2hvbWUvcnVubmVyL2VwaGVtZXJhbF9ydW5uZXIuc2gnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGltaXRzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcHU6ICcxJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lbW9yeTogJzJHaSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIHZvbHVtZXM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnZXh0ZXJuYWxzJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnY3M6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVja2V0OiBzdG9yYWdlTmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgbWF4UmV0cmllczogMCxcbiAgICAgICAgICAgICAgICAgICAgc2VydmljZUFjY291bnQ6IGpvYlNhLmVtYWlsXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGRlcGVuZHNPbjogW1xuICAgICAgICAgICAgICAgIGJ1Y2tldENyZWF0aW9uXG4gICAgICAgICAgICBdXG4gICAgICAgIH0pXG5cbiAgICAgICAgY29uc3QgYXV0b3NjYWxlclNhID0gbmV3IFNlcnZpY2VBY2NvdW50KHRoaXMsICdhdXRvc2NhbGVyU2VydmljZUFjY291bnQnLCB7XG4gICAgICAgICAgICBhY2NvdW50SWQ6ICdhdXRvc2NhbGVyLXNhJyxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgbmV3IFByb2plY3RJYW1DdXN0b21Sb2xlKHRoaXMsICdhdXRvc2NhbGVyUm9sZScsIHtcbiAgICAgICAgICAgIHJvbGVJZDogJ2doYUF1dG9zY2FsZXJSb2xlJyxcbiAgICAgICAgICAgIHRpdGxlOiAnR0hBIEF1dG9zY2FsZXIgUm9sZScsXG4gICAgICAgICAgICBwZXJtaXNzaW9uczogW1xuICAgICAgICAgICAgICAgICdhcnRpZmFjdHJlZ2lzdHJ5LmRvY2tlcmltYWdlcy5nZXQnLFxuICAgICAgICAgICAgICAgICdhcnRpZmFjdHJlZ2lzdHJ5LmRvY2tlcmltYWdlcy5saXN0JyxcbiAgICAgICAgICAgICAgICAncnVuLmpvYnMucnVuJyxcbiAgICAgICAgICAgICAgICAncnVuLmpvYnMuY3JlYXRlJyxcbiAgICAgICAgICAgICAgICAncnVuLmpvYnMuZGVsZXRlJyxcbiAgICAgICAgICAgIF0sXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IGF1dG9zY2FsZXJQb2xpY3lNZW1iZXIgPSBuZXcgVGVycmFmb3JtTG9jYWwodGhpcywgJ2F1dG9zY2FsZXJNZW1iZXInLCBgc2VydmljZUFjY291bnQ6JHthdXRvc2NhbGVyU2EuZW1haWx9YClcblxuICAgICAgICAvLyBUT0RPOiByZXBsYWNlIDIgZm9sbG93aW5nIHdpdGggbW9yZSBzcGVjaWZpYyBvbmVzLlxuICAgICAgICBuZXcgUHJvamVjdElhbU1lbWJlcih0aGlzLCAnYXV0b3NjYWxlclJvbGVCaW5kaW5nUnVuJywge1xuICAgICAgICAgICAgbWVtYmVyOiBhdXRvc2NhbGVyUG9saWN5TWVtYmVyLnRvU3RyaW5nKCksXG4gICAgICAgICAgICBwcm9qZWN0LFxuICAgICAgICAgICAgcm9sZTogJ3JvbGVzL3J1bi5kZXZlbG9wZXInLFxuICAgICAgICB9KVxuXG5cbiAgICAgICAgbmV3IFByb2plY3RJYW1NZW1iZXIodGhpcywgJ2F1dG9zY2FsZXJSb2xlQmluZGluZ1N0b3JhZ2UnLCB7XG4gICAgICAgICAgICBtZW1iZXI6IGF1dG9zY2FsZXJQb2xpY3lNZW1iZXIudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIHByb2plY3QsXG4gICAgICAgICAgICByb2xlOiAncm9sZXMvc3RvcmFnZS5hZG1pbicsXG4gICAgICAgIH0pXG5cbiAgICAgICAgbmV3IFByb2plY3RJYW1NZW1iZXIodGhpcywgJ2F1dG9zY2FsZXJSb2xlQmluZGluZ1J1blNlcnZpY2VBZ2VudCcsIHtcbiAgICAgICAgICAgIG1lbWJlcjogYXV0b3NjYWxlclBvbGljeU1lbWJlci50b1N0cmluZygpLFxuICAgICAgICAgICAgcHJvamVjdCxcbiAgICAgICAgICAgIHJvbGU6ICdyb2xlcy9ydW4uc2VydmljZUFnZW50JyxcbiAgICAgICAgfSlcblxuICAgICAgICBuZXcgQ2xvdWRSdW5TZXJ2aWNlKHRoaXMsICdhdXRvc2NhbGVyU2VydmljZScsIHtcbiAgICAgICAgICAgIGxvY2F0aW9uLFxuICAgICAgICAgICAgbmFtZTogJ2doYS1hdXRvc2NhbGVyJyxcbiAgICAgICAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgICAgICAgICAgYW5ub3RhdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgJ3J1bi5nb29nbGVhcGlzLmNvbS9pbmdyZXNzJzogJ2ludGVybmFsJyxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdGVtcGxhdGU6IHtcbiAgICAgICAgICAgICAgICBtZXRhZGF0YToge1xuICAgICAgICAgICAgICAgICAgICBhbm5vdGF0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgJ2F1dG9zY2FsaW5nLmtuYXRpdmUuZGV2L21heFNjYWxlJzogJzEnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2F1dG9zY2FsaW5nLmtuYXRpdmUuZGV2L21pblNjYWxlJzogJzEnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3J1bi5nb29nbGVhcGlzLmNvbS9jcHUtdGhyb3R0bGluZyc6ICdmYWxzZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAncnVuLmdvb2dsZWFwaXMuY29tL3N0YXJ0dXAtY3B1LWJvb3N0JzogJ2ZhbHNlJ1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzcGVjOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lckNvbmN1cnJlbmN5OiAxLFxuICAgICAgICAgICAgICAgICAgICBjb250YWluZXJzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1hZ2U6IGAke3JlZ2lzdHJ5LmxvY2F0aW9ufS1kb2NrZXIucGtnLmRldi8ke3Byb2plY3R9LyR7cmVnaXN0cnkucmVwb3NpdG9yeUlkfS9oaS1maS9naGEtcnVubmVycy1vbi1tYW5hZ2VkLWVudjp0ZXN0YCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnY6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ1BBVCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcGF0LnZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdHSVRIVUJfQ09ORklHX1VSTCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogZ2l0aHViQ29uZmlnVXJsLnZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdKT0JfTkFNRScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcnVubmVySm9iLm5hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ1NDQUxFX1NFVF9OQU1FJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiAnY3ItcnVubmVyLXNldCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ0NMT1VEU0RLX1JVTl9SRUdJT04nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGxvY2F0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdHT09HTEVfQ0xPVURfUFJPSkVDVCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcHJvamVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTZXJ2aWNlIHdvdWxkIHdvcmsgZm9yIG11Y2ggbG93ZXIsIGJ1dCB0aGVzZSBhcmUgbWluaW11bSB2YWx1ZXMgZm9yIFwiYWx3YXlzIG9uXCIgbW9kZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW1pdHM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNwdTogJzEwMDBtJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lbW9yeTogJzUxMk1pJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICBzZXJ2aWNlQWNjb3VudE5hbWU6IGF1dG9zY2FsZXJTYS5lbWFpbFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICB9XG59XG4iXX0=
|
|
248
|
+
Gcp[_a] = { fqn: "terraform-cdk-serverless-github-actions-runner-controller.Gcp", version: "0.0.3" };
|
|
249
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2NwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9nY3AudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwwR0FBb0c7QUFDcEcsb0ZBQThFO0FBQzlFLGtGQUEyRTtBQUMzRSxnR0FBeUY7QUFDekYsc0ZBQWdGO0FBQ2hGLGtFQUFvRTtBQUNwRSxnRkFBMkU7QUFDM0UsZ0VBQWdFO0FBQ2hFLGdFQUE0RDtBQUM1RCxpQ0FBc0M7QUFDdEMsMkNBQXNDO0FBQ3RDLDJDQUE2QztBQUU3QyxNQUFhLEdBQUksU0FBUSxzQkFBUztJQUNoQyxZQUFZLEtBQWdCLEVBQUUsRUFBVTtRQUN0QyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBRWhCLE1BQU0sUUFBUSxHQUFHLGVBQWUsQ0FBQTtRQUNoQyxNQUFNLE9BQU8sR0FBRyxvQkFBb0IsQ0FBQTtRQUVwQyxJQUFJLHlCQUFjLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRTtZQUNqQyxPQUFPO1lBQ1AsTUFBTSxFQUFFLFFBQVE7U0FDakIsQ0FBQyxDQUFBO1FBRUYsSUFBSSx1QkFBWSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQTtRQUU5QixNQUFNLEVBQUUsR0FBRyxFQUFFLGVBQWUsRUFBRSxHQUFHLElBQUEsMkJBQWUsRUFBQyxJQUFJLENBQUMsQ0FBQTtRQUV0RCxNQUFNLFFBQVEsR0FBRyxJQUFJLHlEQUEwQixDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDaEUsTUFBTSxFQUFFLFFBQVE7WUFDaEIsSUFBSSxFQUFFLG1CQUFtQjtZQUN6QixZQUFZLEVBQUUsaUJBQWlCO1lBQy9CLFdBQVcsRUFBRSwyREFBMkQ7WUFDeEUsc0JBQXNCLEVBQUU7Z0JBQ3RCLGdCQUFnQixFQUFFO29CQUNoQixnQkFBZ0IsRUFBRTt3QkFDaEIsR0FBRyxFQUFFLGlCQUFpQjtxQkFDdkI7aUJBQ0Y7YUFDRjtTQUNGLENBQUMsQ0FBQTtRQUVGLE1BQU0s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Q0FDekIsS0FBSyxFQUFFLGVBQWUsQ0FBQyxLQUFLO2lDQUM3QjtnQ0FDRDtvQ0FDRSxJQUFJLEVBQUUsVUFBVTtvQ0FDaEIsS0FBSyxFQUFFLFNBQVMsQ0FBQyxJQUFJO2lDQUN0QjtnQ0FDRDtvQ0FDRSxJQUFJLEVBQUUsZ0JBQWdCO29DQUN0QixLQUFLLEVBQUUsZUFBZTtpQ0FDdkI7Z0NBQ0Q7b0NBQ0UsSUFBSSxFQUFFLHFCQUFxQjtvQ0FDM0IsS0FBSyxFQUFFLFFBQVE7aUNBQ2hCO2dDQUNEO29DQUNFLElBQUksRUFBRSxzQkFBc0I7b0NBQzVCLEtBQUssRUFBRSxPQUFPO2lDQUNmOzZCQUNGOzRCQUNELFNBQVMsRUFBRTtnQ0FDVCx1RkFBdUY7Z0NBQ3ZGLE1BQU0sRUFBRTtvQ0FDTixHQUFHLEVBQUUsT0FBTztvQ0FDWixNQUFNLEVBQUUsT0FBTztpQ0FDaEI7NkJBQ0Y7eUJBQ0Y7cUJBQ0Y7b0JBQ0Qsa0JBQWtCLEVBQUUsWUFBWSxDQUFDLEtBQUs7aUJBQ3ZDO2FBQ0Y7U0FDRixDQUFDLENBQUE7SUFDSixDQUFDOztBQXBRSCxrQkFxUUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcnRpZmFjdFJlZ2lzdHJ5UmVwb3NpdG9yeSB9IGZyb20gJ0BjZGt0Zi9wcm92aWRlci1nb29nbGUvbGliL2FydGlmYWN0LXJlZ2lzdHJ5LXJlcG9zaXRvcnknXG5pbXBvcnQgeyBDbG91ZFJ1blNlcnZpY2UgfSBmcm9tICdAY2RrdGYvcHJvdmlkZXItZ29vZ2xlL2xpYi9jbG91ZC1ydW4tc2VydmljZSdcbmltcG9ydCB7IENsb3VkUnVuVjJKb2IgfSBmcm9tICdAY2RrdGYvcHJvdmlkZXItZ29vZ2xlL2xpYi9jbG91ZC1ydW4tdjItam9iJ1xuaW1wb3J0IHsgUHJvamVjdElhbUN1c3RvbVJvbGUgfSBmcm9tICdAY2RrdGYvcHJvdmlkZXItZ29vZ2xlL2xpYi9wcm9qZWN0LWlhbS1jdXN0b20tcm9sZSdcbmltcG9ydCB7IFByb2plY3RJYW1NZW1iZXIgfSBmcm9tICdAY2RrdGYvcHJvdmlkZXItZ29vZ2xlL2xpYi9wcm9qZWN0LWlhbS1tZW1iZXInXG5pbXBvcnQgeyBHb29nbGVQcm92aWRlciB9IGZyb20gJ0BjZGt0Zi9wcm92aWRlci1nb29nbGUvbGliL3Byb3ZpZGVyJ1xuaW1wb3J0IHsgU2VydmljZUFjY291bnQgfSBmcm9tICdAY2RrdGYvcHJvdmlkZXItZ29vZ2xlL2xpYi9zZXJ2aWNlLWFjY291bnQnXG5pbXBvcnQgeyBOdWxsUHJvdmlkZXIgfSBmcm9tICdAY2RrdGYvcHJvdmlkZXItbnVsbC9saWIvcHJvdmlkZXInXG5pbXBvcnQgeyBSZXNvdXJjZSB9IGZyb20gJ0BjZGt0Zi9wcm92aWRlci1udWxsL2xpYi9yZXNvdXJjZSdcbmltcG9ydCB7IFRlcnJhZm9ybUxvY2FsIH0gZnJvbSAnY2RrdGYnXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJ1xuaW1wb3J0IHsgY29tbW9uVmFyaWFibGVzIH0gZnJvbSAnLi92YXJpYWJsZXMnXG5cbmV4cG9ydCBjbGFzcyBHY3AgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKVxuXG4gICAgY29uc3QgbG9jYXRpb24gPSAnZXVyb3BlLW5vcnRoMSdcbiAgICBjb25zdCBwcm9qZWN0ID0gJ2doYS1ydW5uZXItZXhhbXBsZSdcblxuICAgIG5ldyBHb29nbGVQcm92aWRlcih0aGlzLCAnZ29vZ2xlJywge1xuICAgICAgcHJvamVjdCxcbiAgICAgIHJlZ2lvbjogbG9jYXRpb24sXG4gICAgfSlcblxuICAgIG5ldyBOdWxsUHJvdmlkZXIodGhpcywgJ251bGwnKVxuXG4gICAgY29uc3QgeyBwYXQsIGdpdGh1YkNvbmZpZ1VybCB9ID0gY29tbW9uVmFyaWFibGVzKHRoaXMpXG5cbiAgICBjb25zdCByZWdpc3RyeSA9IG5ldyBBcnRpZmFjdFJlZ2lzdHJ5UmVwb3NpdG9yeSh0aGlzLCAncmVnaXN0cnknLCB7XG4gICAgICBmb3JtYXQ6ICdET0NLRVInLFxuICAgICAgbW9kZTogJ1JFTU9URV9SRVBPU0lUT1JZJyxcbiAgICAgIHJlcG9zaXRvcnlJZDogJ2doYS1ydW5uZXItdGVzdCcsXG4gICAgICBkZXNjcmlwdGlvbjogJ1JlcG9zaXRvcnkgdG8gaG9zdCBydW4gYW5kIHJlc3VsdGluZyBpbWFnZXMgZnJvbSBHSEEgcnVucycsXG4gICAgICByZW1vdGVSZXBvc2l0b3J5Q29uZmlnOiB7XG4gICAgICAgIGRvY2tlclJlcG9zaXRvcnk6IHtcbiAgICAgICAgICBjdXN0b21SZXBvc2l0b3J5OiB7XG4gICAgICAgICAgICB1cmk6ICdodHRwczovL2doY3IuaW8nLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pXG5cbiAgICBjb25zdCBqb2JTYSA9IG5ldyBTZXJ2aWNlQWNjb3VudCh0aGlzLCAnam9iU2VydmljZUFjY291bnQnLCB7XG4gICAgICBhY2NvdW50SWQ6ICdnaGEtcnVubmVyLWpvYi1zYScsXG4gICAgfSlcblxuICAgIGNvbnN0IHJ1bm5lclJvbGUgPSBuZXcgUHJvamVjdElhbUN1c3RvbVJvbGUodGhpcywgJ3J1bm5lclJvbGUnLCB7XG4gICAgICByb2xlSWQ6ICdnaGFSdW5uZXJSb2xlJyxcbiAgICAgIHRpdGxlOiAnR0hBIFJ1bm5lciBSb2xlJyxcbiAgICAgIHBlcm1pc3Npb25zOiBbXG4gICAgICAgICdhcnRpZmFjdHJlZ2lzdHJ5LmRvY2tlcmltYWdlcy5nZXQnLFxuICAgICAgICAnYXJ0aWZhY3RyZWdpc3RyeS5kb2NrZXJpbWFnZXMubGlzdCcsXG4gICAgICAgICdydW4uam9icy5ydW4nLFxuICAgICAgICAncnVuLmpvYnMuY3JlYXRlJyxcbiAgICAgICAgJ3J1bi5qb2JzLmRlbGV0ZScsXG4gICAgICAgICdydW4uam9icy5saXN0JyxcbiAgICAgICAgLy8gTmVlZGVkIGZvciB3YWl0aW5nXG4gICAgICAgICdydW4uZXhlY3V0aW9ucy5nZXQnLFxuICAgICAgXSxcbiAgICB9KVxuXG4gICAgY29uc3Qgam9iUG9saWN5TWVtYmVyID0gbmV3IFRlcnJhZm9ybUxvY2FsKFxuICAgICAgdGhpcyxcbiAgICAgICdnaGFNZW1iZXInLFxuICAgICAgYHNlcnZpY2VBY2NvdW50OiR7am9iU2EuZW1haWx9YCxcbiAgICApXG5cbiAgICBuZXcgUHJvamVjdElhbU1lbWJlcih0aGlzLCAncnVubmVyUm9sZUJpbmRpbmcnLCB7XG4gICAgICBtZW1iZXI6IGpvYlBvbGljeU1lbWJlci50b1N0cmluZygpLFxuICAgICAgcHJvamVjdCxcbiAgICAgIHJvbGU6IHJ1bm5lclJvbGUuaWQsXG4gICAgfSlcblxuICAgIG5ldyBQcm9qZWN0SWFtTWVtYmVyKHRoaXMsICdydW5uZXJSb2xlQmluZGluZ1N0b3JhZ2UnLCB7XG4gICAgICBtZW1iZXI6IGpvYlBvbGljeU1lbWJlci50b1N0cmluZygpLFxuICAgICAgcHJvamVjdCxcbiAgICAgIHJvbGU6ICdyb2xlcy9zdG9yYWdlLmFkbWluJyxcbiAgICB9KVxuXG4gICAgbmV3IFByb2plY3RJYW1NZW1iZXIodGhpcywgJ3J1bm5lclJvbGVCaW5kaW5nUnVuU2VydmljZUFnZW50Jywge1xuICAgICAgbWVtYmVyOiBqb2JQb2xpY3lNZW1iZXIudG9TdHJpbmcoKSxcbiAgICAgIHByb2plY3QsXG4gICAgICByb2xlOiAncm9sZXMvcnVuLnNlcnZpY2VBZ2VudCcsXG4gICAgfSlcblxuICAgIG5ldyBQcm9qZWN0SWFtTWVtYmVyKHRoaXMsICdydW5uZXJSb2xlQmluZGluZ1J1blZpZXdlcicsIHtcbiAgICAgIG1lbWJlcjogam9iUG9saWN5TWVtYmVyLnRvU3RyaW5nKCksXG4gICAgICBwcm9qZWN0LFxuICAgICAgcm9sZTogJ3JvbGVzL3J1bi52aWV3ZXInLFxuICAgIH0pXG5cbiAgICBjb25zdCBzdG9yYWdlTmFtZSA9ICdnaGEtcnVubmVyLWpvYi1leHRlcm5hbHMnXG4gICAgY29uc3QgY3JlYXRlQnVja2V0ID0gbmV3IFRlcnJhZm9ybUxvY2FsKFxuICAgICAgdGhpcyxcbiAgICAgICdidWNrZXRNb2RpZmljYXRpb24nLFxuICAgICAgYENMT1VEU0RLX0NPUkVfRElTQUJMRV9QUk9NUFRTPTEgZ2Nsb3VkIGFscGhhIHN0b3JhZ2UgYnVja2V0cyBjcmVhdGUgZ3M6Ly8ke3N0b3JhZ2VOYW1lfSAtLXByb2plY3Q9JHtwcm9qZWN0fSAtLWxvY2F0aW9uPSR7bG9jYXRpb259IC0tdW5pZm9ybS1idWNrZXQtbGV2ZWwtYWNjZXNzIC0tZW5hYmxlLWhpZXJhcmNoaWNhbC1uYW1lc3BhY2VgLFxuICAgIClcblxuICAgIC8vIEhpZXJhcmNoaWFsIG5hbWVzcGFjZXMgY2FuJ3QgYmUgZW5hYmxlZCB3aXRoIFRlcnJhZm9ybS5cbiAgICBjb25zdCBidWNrZXRDcmVhdGlvbiA9IG5ldyBSZXNvdXJjZSh0aGlzLCAnZ2Nsb3VkJywge1xuICAgICAgcHJvdmlzaW9uZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnbG9jYWwtZXhlYycsXG4gICAgICAgICAgY29tbWFuZDogY3JlYXRlQnVja2V0LmZxbixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICB0cmlnZ2Vyczoge1xuICAgICAgICBmcW46IGNyZWF0ZUJ1Y2tldC5mcW4sXG4gICAgICB9LFxuICAgIH0pXG5cbiAgICAvLyBUT0RPOiBjaGVjayBjYWNoaW5nIGh0dHBzOi8vY2xvdWQuZ29vZ2xlLmNvbS9hcnRpZmFjdC1yZWdpc3RyeS9kb2NzL3B1bGwtY2FjaGVkLWRvY2tlcmh1Yi1pbWFnZXNcbiAgICBjb25zdCBydW5uZXJKb2IgPSBuZXcgQ2xvdWRSdW5WMkpvYih0aGlzLCAnZ2hhSm9iJywge1xuICAgICAgZGVsZXRpb25Qcm90ZWN0aW9uOiBmYWxzZSxcbiAgICAgIG5hbWU6ICdnaGEtcnVubmVyLWpvYicsXG4gICAgICBsb2NhdGlvbixcbiAgICAgIHRlbXBsYXRlOiB7XG4gICAgICAgIHRlbXBsYXRlOiB7XG4gICAgICAgICAgY29udGFpbmVyczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBpbWFnZTogYCR7cmVnaXN0cnkubG9jYXRpb259LWRvY2tlci5wa2cuZGV2LyR7cHJvamVjdH0vJHtyZWdpc3RyeS5yZXBvc2l0b3J5SWR9L2hpLWZpL2FjdGlvbnMtcnVubmVyOmNyYCxcbiAgICAgICAgICAgICAgZW52OiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgbmFtZTogJ0NMT1VEU0RLX1JVTl9SRUdJT04nLFxuICAgICAgICAgICAgICAgICAgdmFsdWU6IGxvY2F0aW9uLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgbmFtZTogJ0dPT0dMRV9DTE9VRF9QUk9KRUNUJyxcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiBwcm9qZWN0LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgbmFtZTogJ0VYVEVSTkFMX1NUT1JBR0VfTkFNRScsXG4gICAgICAgICAgICAgICAgICB2YWx1ZTogc3RvcmFnZU5hbWUsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAvLyBGVVNFIG1vdW50cyBkaXJlY3RvcnkgYXMgcm9vdCB3aXRoIDc3NyBmbyBkaXJlY3RvcmllcyBhbmQgNTU1IGZvciBvdGhlciBmaWxlcy4gQXMgcGF0aCBpcyBvd25lZCBhbHdheXMgYnkgcm9vdCwgdXRpbWUgb3IgcGVybWlzc2lvbiBjaGFuZ2UgaXMgbm90IHBvc3NpYmxlLiBUaGVzZSBvcHRpb25zIHByZXZlbnQgdGFyIHRvIHRyeSB0aG9zZVxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIG5hbWU6ICdUQVJfT1BUSU9OUycsXG4gICAgICAgICAgICAgICAgICB2YWx1ZTogJy0tdG91Y2ggLS1uby1vdmVyd3JpdGUtZGlyIC0tbm8tc2FtZS1vd25lcicsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgdm9sdW1lTW91bnRzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgbmFtZTogJ2V4dGVybmFscycsXG4gICAgICAgICAgICAgICAgICBtb3VudFBhdGg6ICcvaG9tZS9ydW5uZXIvX3dvcmsvZXh0ZXJuYWxzJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBjb21tYW5kOiBbJy9ob21lL3J1bm5lci9lcGhlbWVyYWxfcnVubmVyLnNoJ10sXG4gICAgICAgICAgICAgIHJlc291cmNlczoge1xuICAgICAgICAgICAgICAgIGxpbWl0czoge1xuICAgICAgICAgICAgICAgICAgY3B1OiAnMScsXG4gICAgICAgICAgICAgICAgICBtZW1vcnk6ICcyR2knLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgdm9sdW1lczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAnZXh0ZXJuYWxzJyxcbiAgICAgICAgICAgICAgZ2NzOiB7XG4gICAgICAgICAgICAgICAgYnVja2V0OiBzdG9yYWdlTmFtZSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICBtYXhSZXRyaWVzOiAwLFxuICAgICAgICAgIHNlcnZpY2VBY2NvdW50OiBqb2JTYS5lbWFpbCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBkZXBlbmRzT246IFtidWNrZXRDcmVhdGlvbl0sXG4gICAgfSlcblxuICAgIGNvbnN0IGF1dG9zY2FsZXJTYSA9IG5ldyBTZXJ2aWNlQWNjb3VudCh0aGlzLCAnYXV0b3NjYWxlclNlcnZpY2VBY2NvdW50Jywge1xuICAgICAgYWNjb3VudElkOiAnYXV0b3NjYWxlci1zYScsXG4gICAgfSlcblxuICAgIG5ldyBQcm9qZWN0SWFtQ3VzdG9tUm9sZSh0aGlzLCAnYXV0b3NjYWxlclJvbGUnLCB7XG4gICAgICByb2xlSWQ6ICdnaGFBdXRvc2NhbGVyUm9sZScsXG4gICAgICB0aXRsZTogJ0dIQSBBdXRvc2NhbGVyIFJvbGUnLFxuICAgICAgcGVybWlzc2lvbnM6IFtcbiAgICAgICAgJ2FydGlmYWN0cmVnaXN0cnkuZG9ja2VyaW1hZ2VzLmdldCcsXG4gICAgICAgICdhcnRpZmFjdHJlZ2lzdHJ5LmRvY2tlcmltYWdlcy5saXN0JyxcbiAgICAgICAgJ3J1bi5qb2JzLnJ1bicsXG4gICAgICAgICdydW4uam9icy5jcmVhdGUnLFxuICAgICAgICAncnVuLmpvYnMuZGVsZXRlJyxcbiAgICAgIF0sXG4gICAgfSlcblxuICAgIGNvbnN0IGF1dG9zY2FsZXJQb2xpY3lNZW1iZXIgPSBuZXcgVGVycmFmb3JtTG9jYWwoXG4gICAgICB0aGlzLFxuICAgICAgJ2F1dG9zY2FsZXJNZW1iZXInLFxuICAgICAgYHNlcnZpY2VBY2NvdW50OiR7YXV0b3NjYWxlclNhLmVtYWlsfWAsXG4gICAgKVxuXG4gICAgLy8gVE9ETzogcmVwbGFjZSAyIGZvbGxvd2luZyB3aXRoIG1vcmUgc3BlY2lmaWMgb25lcy5cbiAgICBuZXcgUHJvamVjdElhbU1lbWJlcih0aGlzLCAnYXV0b3NjYWxlclJvbGVCaW5kaW5nUnVuJywge1xuICAgICAgbWVtYmVyOiBhdXRvc2NhbGVyUG9saWN5TWVtYmVyLnRvU3RyaW5nKCksXG4gICAgICBwcm9qZWN0LFxuICAgICAgcm9sZTogJ3JvbGVzL3J1bi5kZXZlbG9wZXInLFxuICAgIH0pXG5cbiAgICBuZXcgUHJvamVjdElhbU1lbWJlcih0aGlzLCAnYXV0b3NjYWxlclJvbGVCaW5kaW5nU3RvcmFnZScsIHtcbiAgICAgIG1lbWJlcjogYXV0b3NjYWxlclBvbGljeU1lbWJlci50b1N0cmluZygpLFxuICAgICAgcHJvamVjdCxcbiAgICAgIHJvbGU6ICdyb2xlcy9zdG9yYWdlLmFkbWluJyxcbiAgICB9KVxuXG4gICAgbmV3IFByb2plY3RJYW1NZW1iZXIodGhpcywgJ2F1dG9zY2FsZXJSb2xlQmluZGluZ1J1blNlcnZpY2VBZ2VudCcsIHtcbiAgICAgIG1lbWJlcjogYXV0b3NjYWxlclBvbGljeU1lbWJlci50b1N0cmluZygpLFxuICAgICAgcHJvamVjdCxcbiAgICAgIHJvbGU6ICdyb2xlcy9ydW4uc2VydmljZUFnZW50JyxcbiAgICB9KVxuXG4gICAgbmV3IENsb3VkUnVuU2VydmljZSh0aGlzLCAnYXV0b3NjYWxlclNlcnZpY2UnLCB7XG4gICAgICBsb2NhdGlvbixcbiAgICAgIG5hbWU6ICdnaGEtYXV0b3NjYWxlcicsXG4gICAgICBtZXRhZGF0YToge1xuICAgICAgICBhbm5vdGF0aW9uczoge1xuICAgICAgICAgICdydW4uZ29vZ2xlYXBpcy5jb20vaW5ncmVzcyc6ICdpbnRlcm5hbCcsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdGVtcGxhdGU6IHtcbiAgICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgICBhbm5vdGF0aW9uczoge1xuICAgICAgICAgICAgJ2F1dG9zY2FsaW5nLmtuYXRpdmUuZGV2L21heFNjYWxlJzogJzEnLFxuICAgICAgICAgICAgJ2F1dG9zY2FsaW5nLmtuYXRpdmUuZGV2L21pblNjYWxlJzogJzEnLFxuICAgICAgICAgICAgJ3J1bi5nb29nbGVhcGlzLmNvbS9jcHUtdGhyb3R0bGluZyc6ICdmYWxzZScsXG4gICAgICAgICAgICAncnVuLmdvb2dsZWFwaXMuY29tL3N0YXJ0dXAtY3B1LWJvb3N0JzogJ2ZhbHNlJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBzcGVjOiB7XG4gICAgICAgICAgY29udGFpbmVyQ29uY3VycmVuY3k6IDEsXG4gICAgICAgICAgY29udGFpbmVyczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBpbWFnZTogYCR7cmVnaXN0cnkubG9jYXRpb259LWRvY2tlci5wa2cuZGV2LyR7cHJvamVjdH0vJHtyZWdpc3RyeS5yZXBvc2l0b3J5SWR9L2hpLWZpL2doYS1ydW5uZXJzLW9uLW1hbmFnZWQtZW52OnRlc3RgLFxuICAgICAgICAgICAgICBlbnY6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBuYW1lOiAnUEFUJyxcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiBwYXQudmFsdWUsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBuYW1lOiAnR0lUSFVCX0NPTkZJR19VUkwnLFxuICAgICAgICAgICAgICAgICAgdmFsdWU6IGdpdGh1YkNvbmZpZ1VybC52YWx1ZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIG5hbWU6ICdKT0JfTkFNRScsXG4gICAgICAgICAgICAgICAgICB2YWx1ZTogcnVubmVySm9iLm5hbWUsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBuYW1lOiAnU0NBTEVfU0VUX05BTUUnLFxuICAgICAgICAgICAgICAgICAgdmFsdWU6ICdjci1ydW5uZXItc2V0JyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIG5hbWU6ICdDTE9VRFNES19SVU5fUkVHSU9OJyxcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiBsb2NhdGlvbixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIG5hbWU6ICdHT09HTEVfQ0xPVURfUFJPSkVDVCcsXG4gICAgICAgICAgICAgICAgICB2YWx1ZTogcHJvamVjdCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICByZXNvdXJjZXM6IHtcbiAgICAgICAgICAgICAgICAvLyBTZXJ2aWNlIHdvdWxkIHdvcmsgZm9yIG11Y2ggbG93ZXIsIGJ1dCB0aGVzZSBhcmUgbWluaW11bSB2YWx1ZXMgZm9yIFwiYWx3YXlzIG9uXCIgbW9kZVxuICAgICAgICAgICAgICAgIGxpbWl0czoge1xuICAgICAgICAgICAgICAgICAgY3B1OiAnMTAwMG0nLFxuICAgICAgICAgICAgICAgICAgbWVtb3J5OiAnNTEyTWknLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgc2VydmljZUFjY291bnROYW1lOiBhdXRvc2NhbGVyU2EuZW1haWwsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pXG4gIH1cbn1cbiJdfQ==
|
package/lib/lib/variables.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { TerraformVariable } from
|
|
2
|
-
import { Construct } from
|
|
1
|
+
import { TerraformVariable } from 'cdktf';
|
|
2
|
+
import { Construct } from 'constructs';
|
|
3
3
|
export interface Variables {
|
|
4
4
|
pat: TerraformVariable;
|
|
5
5
|
githubConfigUrl: TerraformVariable;
|
|
6
|
+
autoscalerImage: TerraformVariable;
|
|
6
7
|
}
|
|
7
8
|
export declare function commonVariables(scope: Construct): Variables;
|
package/lib/lib/variables.js
CHANGED
|
@@ -3,20 +3,26 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.commonVariables = commonVariables;
|
|
4
4
|
const cdktf_1 = require("cdktf");
|
|
5
5
|
function commonVariables(scope) {
|
|
6
|
-
const pat = new cdktf_1.TerraformVariable(scope, '
|
|
6
|
+
const pat = new cdktf_1.TerraformVariable(scope, 'personal_access_token', {
|
|
7
7
|
description: 'Github PAT with Actions:Read and Admin:Read+Write scopes',
|
|
8
8
|
nullable: false,
|
|
9
|
-
sensitive: true
|
|
9
|
+
sensitive: true,
|
|
10
10
|
});
|
|
11
|
-
pat.overrideLogicalId('
|
|
11
|
+
pat.overrideLogicalId('personal_access_token');
|
|
12
12
|
const githubConfigUrl = new cdktf_1.TerraformVariable(scope, 'github_config_url', {
|
|
13
13
|
description: 'Github URL where runners should register to. Format https://<GitHub host>/<your_enterprise/org/repo>',
|
|
14
14
|
nullable: false,
|
|
15
15
|
});
|
|
16
16
|
githubConfigUrl.overrideLogicalId('github_config_url');
|
|
17
|
+
const autoscalerImage = new cdktf_1.TerraformVariable(scope, 'autoscaler_image', {
|
|
18
|
+
description: 'Autoscaler image triggering runners',
|
|
19
|
+
default: 'ghcr.io/hi-fi/gha-runners-on-managed-env:ebe559da0d51e04eff903f0a04de09da93f4614f',
|
|
20
|
+
});
|
|
21
|
+
autoscalerImage.overrideLogicalId('autoscaler_image');
|
|
17
22
|
return {
|
|
18
23
|
pat,
|
|
19
|
-
githubConfigUrl
|
|
24
|
+
githubConfigUrl,
|
|
25
|
+
autoscalerImage,
|
|
20
26
|
};
|
|
21
27
|
}
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFyaWFibGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi92YXJpYWJsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFTQSwwQ0E4QkM7QUF2Q0QsaUNBQXlDO0FBU3pDLFNBQWdCLGVBQWUsQ0FBQyxLQUFnQjtJQUM5QyxNQUFNLEdBQUcsR0FBRyxJQUFJLHlCQUFpQixDQUFDLEtBQUssRUFBRSx1QkFBdUIsRUFBRTtRQUNoRSxXQUFXLEVBQUUsMERBQTBEO1FBQ3ZFLFFBQVEsRUFBRSxLQUFLO1FBQ2YsU0FBUyxFQUFFLElBQUk7S0FDaEIsQ0FBQyxDQUFBO0lBRUYsR0FBRyxDQUFDLGlCQUFpQixDQUFDLHVCQUF1QixDQUFDLENBQUE7SUFFOUMsTUFBTSxlQUFlLEdBQUcsSUFBSSx5QkFBaUIsQ0FBQyxLQUFLLEVBQUUsbUJBQW1CLEVBQUU7UUFDeEUsV0FBVyxFQUNULHNHQUFzRztRQUN4RyxRQUFRLEVBQUUsS0FBSztLQUNoQixDQUFDLENBQUE7SUFFRixlQUFlLENBQUMsaUJBQWlCLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtJQUV0RCxNQUFNLGVBQWUsR0FBRyxJQUFJLHlCQUFpQixDQUFDLEtBQUssRUFBRSxrQkFBa0IsRUFBRTtRQUN2RSxXQUFXLEVBQUUscUNBQXFDO1FBQ2xELE9BQU8sRUFDTCxtRkFBbUY7S0FDdEYsQ0FBQyxDQUFBO0lBRUYsZUFBZSxDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDLENBQUE7SUFFckQsT0FBTztRQUNMLEdBQUc7UUFDSCxlQUFlO1FBQ2YsZUFBZTtLQUNoQixDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRlcnJhZm9ybVZhcmlhYmxlIH0gZnJvbSAnY2RrdGYnXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJ1xuXG5leHBvcnQgaW50ZXJmYWNlIFZhcmlhYmxlcyB7XG4gIHBhdDogVGVycmFmb3JtVmFyaWFibGVcbiAgZ2l0aHViQ29uZmlnVXJsOiBUZXJyYWZvcm1WYXJpYWJsZVxuICBhdXRvc2NhbGVySW1hZ2U6IFRlcnJhZm9ybVZhcmlhYmxlXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21tb25WYXJpYWJsZXMoc2NvcGU6IENvbnN0cnVjdCk6IFZhcmlhYmxlcyB7XG4gIGNvbnN0IHBhdCA9IG5ldyBUZXJyYWZvcm1WYXJpYWJsZShzY29wZSwgJ3BlcnNvbmFsX2FjY2Vzc190b2tlbicsIHtcbiAgICBkZXNjcmlwdGlvbjogJ0dpdGh1YiBQQVQgd2l0aCBBY3Rpb25zOlJlYWQgYW5kIEFkbWluOlJlYWQrV3JpdGUgc2NvcGVzJyxcbiAgICBudWxsYWJsZTogZmFsc2UsXG4gICAgc2Vuc2l0aXZlOiB0cnVlLFxuICB9KVxuXG4gIHBhdC5vdmVycmlkZUxvZ2ljYWxJZCgncGVyc29uYWxfYWNjZXNzX3Rva2VuJylcblxuICBjb25zdCBnaXRodWJDb25maWdVcmwgPSBuZXcgVGVycmFmb3JtVmFyaWFibGUoc2NvcGUsICdnaXRodWJfY29uZmlnX3VybCcsIHtcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdHaXRodWIgVVJMIHdoZXJlIHJ1bm5lcnMgc2hvdWxkIHJlZ2lzdGVyIHRvLiBGb3JtYXQgaHR0cHM6Ly88R2l0SHViIGhvc3Q+Lzx5b3VyX2VudGVycHJpc2Uvb3JnL3JlcG8+JyxcbiAgICBudWxsYWJsZTogZmFsc2UsXG4gIH0pXG5cbiAgZ2l0aHViQ29uZmlnVXJsLm92ZXJyaWRlTG9naWNhbElkKCdnaXRodWJfY29uZmlnX3VybCcpXG5cbiAgY29uc3QgYXV0b3NjYWxlckltYWdlID0gbmV3IFRlcnJhZm9ybVZhcmlhYmxlKHNjb3BlLCAnYXV0b3NjYWxlcl9pbWFnZScsIHtcbiAgICBkZXNjcmlwdGlvbjogJ0F1dG9zY2FsZXIgaW1hZ2UgdHJpZ2dlcmluZyBydW5uZXJzJyxcbiAgICBkZWZhdWx0OlxuICAgICAgJ2doY3IuaW8vaGktZmkvZ2hhLXJ1bm5lcnMtb24tbWFuYWdlZC1lbnY6ZWJlNTU5ZGEwZDUxZTA0ZWZmOTAzZjBhMDRkZTA5ZGE5M2Y0NjE0ZicsXG4gIH0pXG5cbiAgYXV0b3NjYWxlckltYWdlLm92ZXJyaWRlTG9naWNhbElkKCdhdXRvc2NhbGVyX2ltYWdlJylcblxuICByZXR1cm4ge1xuICAgIHBhdCxcbiAgICBnaXRodWJDb25maWdVcmwsXG4gICAgYXV0b3NjYWxlckltYWdlLFxuICB9XG59XG4iXX0=
|
package/lib/tfModules.js
CHANGED
|
@@ -1,34 +1,64 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const cdktf_1 = require("cdktf");
|
|
4
3
|
const tf_module_stack_1 = require("@cdktf/tf-module-stack");
|
|
5
|
-
const
|
|
4
|
+
const cdktf_1 = require("cdktf");
|
|
6
5
|
const aws_1 = require("./lib/aws");
|
|
6
|
+
const azure_1 = require("./lib/azure");
|
|
7
7
|
const gcp_1 = require("./lib/gcp");
|
|
8
8
|
class AzureContainerAppsArc extends tf_module_stack_1.TFModuleStack {
|
|
9
9
|
constructor(scope, id) {
|
|
10
10
|
super(scope, id);
|
|
11
|
-
new azure_1.Azure(this,
|
|
11
|
+
new azure_1.Azure(this, 'aca');
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
14
|
class ElasticContainerServiceArc extends tf_module_stack_1.TFModuleStack {
|
|
15
15
|
constructor(scope, id) {
|
|
16
16
|
super(scope, id);
|
|
17
|
-
new
|
|
17
|
+
const clusterName = new tf_module_stack_1.TFModuleVariable(this, 'ecs_cluster_name', {
|
|
18
|
+
description: 'Name of the ECS cluster to create',
|
|
19
|
+
}).stringValue;
|
|
20
|
+
const filterType = cdktf_1.VariableType.list(cdktf_1.VariableType.object({
|
|
21
|
+
name: cdktf_1.VariableType.STRING,
|
|
22
|
+
values: cdktf_1.VariableType.list(cdktf_1.VariableType.STRING),
|
|
23
|
+
}));
|
|
24
|
+
const securityGroupFilters = new tf_module_stack_1.TFModuleVariable(this, 'ecs_security_group_filters', {
|
|
25
|
+
type: filterType,
|
|
26
|
+
description: 'Filters for security groups',
|
|
27
|
+
default: [],
|
|
28
|
+
}).value;
|
|
29
|
+
const subnetFilters = new tf_module_stack_1.TFModuleVariable(this, 'ecs_subnet_filters', {
|
|
30
|
+
type: filterType,
|
|
31
|
+
description: 'Filters for security groups',
|
|
32
|
+
default: [],
|
|
33
|
+
}).value;
|
|
34
|
+
const securityGroupFiltersIterator = cdktf_1.DynamicListTerraformIterator.fromList(securityGroupFilters);
|
|
35
|
+
const subnetFiltersIterator = cdktf_1.DynamicListTerraformIterator.fromList(subnetFilters);
|
|
36
|
+
new aws_1.Aws(this, 'aws', {
|
|
37
|
+
clusterName,
|
|
38
|
+
containerSupport: false,
|
|
39
|
+
securityGroupFilters: securityGroupFiltersIterator.dynamic({
|
|
40
|
+
name: securityGroupFiltersIterator.getString('name'),
|
|
41
|
+
values: securityGroupFiltersIterator.getList('values'),
|
|
42
|
+
}),
|
|
43
|
+
subnetFilters: subnetFiltersIterator.dynamic({
|
|
44
|
+
name: subnetFiltersIterator.getString('name'),
|
|
45
|
+
values: subnetFiltersIterator.getList('values'),
|
|
46
|
+
}),
|
|
47
|
+
});
|
|
18
48
|
}
|
|
19
49
|
}
|
|
20
50
|
class CloudRunArc extends tf_module_stack_1.TFModuleStack {
|
|
21
51
|
constructor(scope, id) {
|
|
22
52
|
super(scope, id);
|
|
23
|
-
new gcp_1.Gcp(this,
|
|
53
|
+
new gcp_1.Gcp(this, 'cr');
|
|
24
54
|
}
|
|
25
55
|
}
|
|
26
56
|
const app = new cdktf_1.App();
|
|
27
|
-
// This is the name the module can be found under.
|
|
57
|
+
// This is the name the module can be found under.
|
|
28
58
|
// We expect a "my-awesome-module.md" file in this directory.
|
|
29
59
|
// The README.md file will be generated from this file.
|
|
30
|
-
new AzureContainerAppsArc(app,
|
|
31
|
-
new ElasticContainerServiceArc(app,
|
|
32
|
-
new CloudRunArc(app,
|
|
60
|
+
new AzureContainerAppsArc(app, 'azure-container-apps');
|
|
61
|
+
new ElasticContainerServiceArc(app, 'elastic-container-service');
|
|
62
|
+
new CloudRunArc(app, 'google-cloud-run');
|
|
33
63
|
app.synth();
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGZNb2R1bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3RmTW9kdWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDREQUF3RTtBQUN4RSxpQ0FBdUU7QUFFdkUsbUNBQStCO0FBQy9CLHVDQUFtQztBQUNuQyxtQ0FBK0I7QUFFL0IsTUFBTSxxQkFBc0IsU0FBUSwrQkFBYTtJQUMvQyxZQUFZLEtBQWdCLEVBQUUsRUFBVTtRQUN0QyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBRWhCLElBQUksYUFBSyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQTtJQUN4QixDQUFDO0NBQ0Y7QUFFRCxNQUFNLDBCQUEyQixTQUFRLCtCQUFhO0lBQ3BELFlBQVksS0FBZ0IsRUFBRSxFQUFVO1FBQ3RDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUE7UUFFaEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxrQ0FBZ0IsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLEVBQUU7WUFDakUsV0FBVyxFQUFFLG1DQUFtQztTQUNqRCxDQUFDLENBQUMsV0FBVyxDQUFBO1FBRWQsTUFBTSxVQUFVLEdBQUcsb0JBQVksQ0FBQyxJQUFJLENBQ2xDLG9CQUFZLENBQUMsTUFBTSxDQUFDO1lBQ2xCLElBQUksRUFBRSxvQkFBWSxDQUFDLE1BQU07WUFDekIsTUFBTSxFQUFFLG9CQUFZLENBQUMsSUFBSSxDQUFDLG9CQUFZLENBQUMsTUFBTSxDQUFDO1NBQy9DLENBQUMsQ0FDSCxDQUFBO1FBRUQsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLGtDQUFnQixDQUMvQyxJQUFJLEVBQ0osNEJBQTRCLEVBQzVCO1lBQ0UsSUFBSSxFQUFFLFVBQVU7WUFDaEIsV0FBVyxFQUFFLDZCQUE2QjtZQUMxQyxPQUFPLEVBQUUsRUFBRTtTQUNaLENBQ0YsQ0FBQyxLQUFLLENBQUE7UUFFUCxNQUFNLGFBQWEsR0FBRyxJQUFJLGtDQUFnQixDQUFDLElBQUksRUFBRSxvQkFBb0IsRUFBRTtZQUNyRSxJQUFJLEVBQUUsVUFBVTtZQUNoQixXQUFXLEVBQUUsNkJBQTZCO1lBQzFDLE9BQU8sRUFBRSxFQUFFO1NBQ1osQ0FBQyxDQUFDLEtBQUssQ0FBQTtRQUVSLE1BQU0sNEJBQTRCLEdBQ2hDLG9DQUE0QixDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO1FBQzdELE1BQU0scUJBQXFCLEdBQ3pCLG9DQUE0QixDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUV0RCxJQUFJLFNBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFO1lBQ25CLFdBQVc7WUFDWCxnQkFBZ0IsRUFBRSxLQUFLO1lBQ3ZCLG9CQUFvQixFQUFFLDRCQUE0QixDQUFDLE9BQU8sQ0FBQztnQkFDekQsSUFBSSxFQUFFLDRCQUE0QixDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7Z0JBQ3BELE1BQU0sRUFBRSw0QkFBNEIsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO2FBQ3ZELENBQUM7WUFDRixhQUFhLEVBQUUscUJBQXFCLENBQUMsT0FBTyxDQUFDO2dCQUMzQyxJQUFJLEVBQUUscUJBQXFCLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztnQkFDN0MsTUFBTSxFQUFFLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7YUFDaEQsQ0FBQztTQUNILENBQUMsQ0FBQTtJQUNKLENBQUM7Q0FDRjtBQUVELE1BQU0sV0FBWSxTQUFRLCtCQUFhO0lBQ3JDLFlBQVksS0FBZ0IsRUFBRSxFQUFVO1FBQ3RDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUE7UUFFaEIsSUFBSSxTQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFBO0lBQ3JCLENBQUM7Q0FDRjtBQUVELE1BQU0sR0FBRyxHQUFHLElBQUksV0FBRyxFQUFFLENBQUE7QUFDckIsa0RBQWtEO0FBQ2xELDZEQUE2RDtBQUM3RCx1REFBdUQ7QUFDdkQsSUFBSSxxQkFBcUIsQ0FBQyxHQUFHLEVBQUUsc0JBQXNCLENBQUMsQ0FBQTtBQUN0RCxJQUFJLDBCQUEwQixDQUFDLEdBQUcsRUFBRSwyQkFBMkIsQ0FBQyxDQUFBO0FBQ2hFLElBQUksV0FBVyxDQUFDLEdBQUcsRUFBRSxrQkFBa0IsQ0FBQyxDQUFBO0FBRXhDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRGTW9kdWxlU3RhY2ssIFRGTW9kdWxlVmFyaWFibGUgfSBmcm9tICdAY2RrdGYvdGYtbW9kdWxlLXN0YWNrJ1xuaW1wb3J0IHsgQXBwLCBEeW5hbWljTGlzdFRlcnJhZm9ybUl0ZXJhdG9yLCBWYXJpYWJsZVR5cGUgfSBmcm9tICdjZGt0ZidcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnXG5pbXBvcnQgeyBBd3MgfSBmcm9tICcuL2xpYi9hd3MnXG5pbXBvcnQgeyBBenVyZSB9IGZyb20gJy4vbGliL2F6dXJlJ1xuaW1wb3J0IHsgR2NwIH0gZnJvbSAnLi9saWIvZ2NwJ1xuXG5jbGFzcyBBenVyZUNvbnRhaW5lckFwcHNBcmMgZXh0ZW5kcyBURk1vZHVsZVN0YWNrIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZykge1xuICAgIHN1cGVyKHNjb3BlLCBpZClcblxuICAgIG5ldyBBenVyZSh0aGlzLCAnYWNhJylcbiAgfVxufVxuXG5jbGFzcyBFbGFzdGljQ29udGFpbmVyU2VydmljZUFyYyBleHRlbmRzIFRGTW9kdWxlU3RhY2sge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKVxuXG4gICAgY29uc3QgY2x1c3Rlck5hbWUgPSBuZXcgVEZNb2R1bGVWYXJpYWJsZSh0aGlzLCAnZWNzX2NsdXN0ZXJfbmFtZScsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnTmFtZSBvZiB0aGUgRUNTIGNsdXN0ZXIgdG8gY3JlYXRlJyxcbiAgICB9KS5zdHJpbmdWYWx1ZVxuXG4gICAgY29uc3QgZmlsdGVyVHlwZSA9IFZhcmlhYmxlVHlwZS5saXN0KFxuICAgICAgVmFyaWFibGVUeXBlLm9iamVjdCh7XG4gICAgICAgIG5hbWU6IFZhcmlhYmxlVHlwZS5TVFJJTkcsXG4gICAgICAgIHZhbHVlczogVmFyaWFibGVUeXBlLmxpc3QoVmFyaWFibGVUeXBlLlNUUklORyksXG4gICAgICB9KSxcbiAgICApXG5cbiAgICBjb25zdCBzZWN1cml0eUdyb3VwRmlsdGVycyA9IG5ldyBURk1vZHVsZVZhcmlhYmxlKFxuICAgICAgdGhpcyxcbiAgICAgICdlY3Nfc2VjdXJpdHlfZ3JvdXBfZmlsdGVycycsXG4gICAgICB7XG4gICAgICAgIHR5cGU6IGZpbHRlclR5cGUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnRmlsdGVycyBmb3Igc2VjdXJpdHkgZ3JvdXBzJyxcbiAgICAgICAgZGVmYXVsdDogW10sXG4gICAgICB9LFxuICAgICkudmFsdWVcblxuICAgIGNvbnN0IHN1Ym5ldEZpbHRlcnMgPSBuZXcgVEZNb2R1bGVWYXJpYWJsZSh0aGlzLCAnZWNzX3N1Ym5ldF9maWx0ZXJzJywge1xuICAgICAgdHlwZTogZmlsdGVyVHlwZSxcbiAgICAgIGRlc2NyaXB0aW9uOiAnRmlsdGVycyBmb3Igc2VjdXJpdHkgZ3JvdXBzJyxcbiAgICAgIGRlZmF1bHQ6IFtdLFxuICAgIH0pLnZhbHVlXG5cbiAgICBjb25zdCBzZWN1cml0eUdyb3VwRmlsdGVyc0l0ZXJhdG9yID1cbiAgICAgIER5bmFtaWNMaXN0VGVycmFmb3JtSXRlcmF0b3IuZnJvbUxpc3Qoc2VjdXJpdHlHcm91cEZpbHRlcnMpXG4gICAgY29uc3Qgc3VibmV0RmlsdGVyc0l0ZXJhdG9yID1cbiAgICAgIER5bmFtaWNMaXN0VGVycmFmb3JtSXRlcmF0b3IuZnJvbUxpc3Qoc3VibmV0RmlsdGVycylcblxuICAgIG5ldyBBd3ModGhpcywgJ2F3cycsIHtcbiAgICAgIGNsdXN0ZXJOYW1lLFxuICAgICAgY29udGFpbmVyU3VwcG9ydDogZmFsc2UsXG4gICAgICBzZWN1cml0eUdyb3VwRmlsdGVyczogc2VjdXJpdHlHcm91cEZpbHRlcnNJdGVyYXRvci5keW5hbWljKHtcbiAgICAgICAgbmFtZTogc2VjdXJpdHlHcm91cEZpbHRlcnNJdGVyYXRvci5nZXRTdHJpbmcoJ25hbWUnKSxcbiAgICAgICAgdmFsdWVzOiBzZWN1cml0eUdyb3VwRmlsdGVyc0l0ZXJhdG9yLmdldExpc3QoJ3ZhbHVlcycpLFxuICAgICAgfSksXG4gICAgICBzdWJuZXRGaWx0ZXJzOiBzdWJuZXRGaWx0ZXJzSXRlcmF0b3IuZHluYW1pYyh7XG4gICAgICAgIG5hbWU6IHN1Ym5ldEZpbHRlcnNJdGVyYXRvci5nZXRTdHJpbmcoJ25hbWUnKSxcbiAgICAgICAgdmFsdWVzOiBzdWJuZXRGaWx0ZXJzSXRlcmF0b3IuZ2V0TGlzdCgndmFsdWVzJyksXG4gICAgICB9KSxcbiAgICB9KVxuICB9XG59XG5cbmNsYXNzIENsb3VkUnVuQXJjIGV4dGVuZHMgVEZNb2R1bGVTdGFjayB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpXG5cbiAgICBuZXcgR2NwKHRoaXMsICdjcicpXG4gIH1cbn1cblxuY29uc3QgYXBwID0gbmV3IEFwcCgpXG4vLyBUaGlzIGlzIHRoZSBuYW1lIHRoZSBtb2R1bGUgY2FuIGJlIGZvdW5kIHVuZGVyLlxuLy8gV2UgZXhwZWN0IGEgXCJteS1hd2Vzb21lLW1vZHVsZS5tZFwiIGZpbGUgaW4gdGhpcyBkaXJlY3RvcnkuXG4vLyBUaGUgUkVBRE1FLm1kIGZpbGUgd2lsbCBiZSBnZW5lcmF0ZWQgZnJvbSB0aGlzIGZpbGUuXG5uZXcgQXp1cmVDb250YWluZXJBcHBzQXJjKGFwcCwgJ2F6dXJlLWNvbnRhaW5lci1hcHBzJylcbm5ldyBFbGFzdGljQ29udGFpbmVyU2VydmljZUFyYyhhcHAsICdlbGFzdGljLWNvbnRhaW5lci1zZXJ2aWNlJylcbm5ldyBDbG91ZFJ1bkFyYyhhcHAsICdnb29nbGUtY2xvdWQtcnVuJylcblxuYXBwLnN5bnRoKClcbiJdfQ==
|
|
@@ -64,9 +64,10 @@ No modules.
|
|
|
64
64
|
|
|
65
65
|
| Name | Description | Type | Default | Required |
|
|
66
66
|
|------|-------------|------|---------|:--------:|
|
|
67
|
-
| <a name="input_PAT"></a> [PAT](#input\_PAT) | Github PAT with Actions:Read and Admin:Read+Write scopes | `any` | n/a | yes |
|
|
68
67
|
| <a name="input_aca_location_486B7D73"></a> [aca\_location\_486B7D73](#input\_aca\_location\_486B7D73) | Location where to provision resources to | `string` | `"westeurope"` | no |
|
|
68
|
+
| <a name="input_autoscaler_image"></a> [autoscaler\_image](#input\_autoscaler\_image) | Autoscaler image triggering runners | `string` | `"ghcr.io/hi-fi/gha-runners-on-managed-env:ebe559da0d51e04eff903f0a04de09da93f4614f"` | no |
|
|
69
69
|
| <a name="input_github_config_url"></a> [github\_config\_url](#input\_github\_config\_url) | Github URL where runners should register to. Format https://<GitHub host>/<your\_enterprise/org/repo> | `any` | n/a | yes |
|
|
70
|
+
| <a name="input_personal_access_token"></a> [personal\_access\_token](#input\_personal\_access\_token) | Github PAT with Actions:Read and Admin:Read+Write scopes | `any` | n/a | yes |
|
|
70
71
|
|
|
71
72
|
## Outputs
|
|
72
73
|
|
|
@@ -329,7 +329,7 @@
|
|
|
329
329
|
"secret": [
|
|
330
330
|
{
|
|
331
331
|
"name": "pat",
|
|
332
|
-
"value": "${var.
|
|
332
|
+
"value": "${var.personal_access_token}"
|
|
333
333
|
}
|
|
334
334
|
],
|
|
335
335
|
"template": {
|
|
@@ -615,11 +615,6 @@
|
|
|
615
615
|
}
|
|
616
616
|
},
|
|
617
617
|
"variable": {
|
|
618
|
-
"PAT": {
|
|
619
|
-
"description": "Github PAT with Actions:Read and Admin:Read+Write scopes",
|
|
620
|
-
"nullable": false,
|
|
621
|
-
"sensitive": true
|
|
622
|
-
},
|
|
623
618
|
"aca_location_486B7D73": {
|
|
624
619
|
"default": "westeurope",
|
|
625
620
|
"description": "Location where to provision resources to",
|
|
@@ -627,9 +622,18 @@
|
|
|
627
622
|
"sensitive": false,
|
|
628
623
|
"type": "string"
|
|
629
624
|
},
|
|
625
|
+
"autoscaler_image": {
|
|
626
|
+
"default": "ghcr.io/hi-fi/gha-runners-on-managed-env:ebe559da0d51e04eff903f0a04de09da93f4614f",
|
|
627
|
+
"description": "Autoscaler image triggering runners"
|
|
628
|
+
},
|
|
630
629
|
"github_config_url": {
|
|
631
630
|
"description": "Github URL where runners should register to. Format https://<GitHub host>/<your_enterprise/org/repo>",
|
|
632
631
|
"nullable": false
|
|
632
|
+
},
|
|
633
|
+
"personal_access_token": {
|
|
634
|
+
"description": "Github PAT with Actions:Read and Admin:Read+Write scopes",
|
|
635
|
+
"nullable": false,
|
|
636
|
+
"sensitive": true
|
|
633
637
|
}
|
|
634
638
|
}
|
|
635
639
|
}
|
|
@@ -15,13 +15,13 @@ module "arc_on_aca" {
|
|
|
15
15
|
|
|
16
16
|
| Name | Version |
|
|
17
17
|
|------|---------|
|
|
18
|
-
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | 5.
|
|
18
|
+
| <a name="requirement_aws"></a> [aws](#requirement\_aws) | 5.97.0 |
|
|
19
19
|
|
|
20
20
|
## Providers
|
|
21
21
|
|
|
22
22
|
| Name | Version |
|
|
23
23
|
|------|---------|
|
|
24
|
-
| <a name="provider_aws"></a> [aws](#provider\_aws) | 5.
|
|
24
|
+
| <a name="provider_aws"></a> [aws](#provider\_aws) | 5.97.0 |
|
|
25
25
|
|
|
26
26
|
## Modules
|
|
27
27
|
|
|
@@ -31,34 +31,35 @@ No modules.
|
|
|
31
31
|
|
|
32
32
|
| Name | Type |
|
|
33
33
|
|------|------|
|
|
34
|
-
| [aws_cloudwatch_log_group.aws_AutoscalerLogGroup_BFE58053](https://registry.terraform.io/providers/aws/5.
|
|
35
|
-
| [aws_cloudwatch_log_group.aws_RunnerLogGroup_711756A6](https://registry.terraform.io/providers/aws/5.
|
|
36
|
-
| [aws_ecs_cluster.aws_Cluster_BA268616](https://registry.terraform.io/providers/aws/5.
|
|
37
|
-
| [aws_ecs_service.aws_AutoscalerService_C7C3AA3C](https://registry.terraform.io/providers/aws/5.
|
|
38
|
-
| [aws_ecs_task_definition.aws_AutoscalerTaskDefinition_24A76F67](https://registry.terraform.io/providers/aws/5.
|
|
39
|
-
| [aws_ecs_task_definition.aws_RunnerTaskDefinition_9C7563BE](https://registry.terraform.io/providers/aws/5.
|
|
40
|
-
| [
|
|
41
|
-
| [
|
|
42
|
-
| [
|
|
43
|
-
| [
|
|
44
|
-
| [
|
|
45
|
-
| [
|
|
46
|
-
| [
|
|
47
|
-
| [
|
|
48
|
-
| [
|
|
49
|
-
| [
|
|
50
|
-
| [
|
|
51
|
-
| [
|
|
52
|
-
| [aws_region.aws_Region_7477CA06](https://registry.terraform.io/providers/aws/5.96.0/docs/data-sources/region) | data source |
|
|
53
|
-
| [aws_security_groups.aws_SecurityGroups_BAABB08D](https://registry.terraform.io/providers/aws/5.96.0/docs/data-sources/security_groups) | data source |
|
|
54
|
-
| [aws_subnets.aws_Subnets_75E5377D](https://registry.terraform.io/providers/aws/5.96.0/docs/data-sources/subnets) | data source |
|
|
34
|
+
| [aws_cloudwatch_log_group.aws_AutoscalerLogGroup_BFE58053](https://registry.terraform.io/providers/aws/5.97.0/docs/resources/cloudwatch_log_group) | resource |
|
|
35
|
+
| [aws_cloudwatch_log_group.aws_RunnerLogGroup_711756A6](https://registry.terraform.io/providers/aws/5.97.0/docs/resources/cloudwatch_log_group) | resource |
|
|
36
|
+
| [aws_ecs_cluster.aws_Cluster_BA268616](https://registry.terraform.io/providers/aws/5.97.0/docs/resources/ecs_cluster) | resource |
|
|
37
|
+
| [aws_ecs_service.aws_AutoscalerService_C7C3AA3C](https://registry.terraform.io/providers/aws/5.97.0/docs/resources/ecs_service) | resource |
|
|
38
|
+
| [aws_ecs_task_definition.aws_AutoscalerTaskDefinition_24A76F67](https://registry.terraform.io/providers/aws/5.97.0/docs/resources/ecs_task_definition) | resource |
|
|
39
|
+
| [aws_ecs_task_definition.aws_RunnerTaskDefinition_9C7563BE](https://registry.terraform.io/providers/aws/5.97.0/docs/resources/ecs_task_definition) | resource |
|
|
40
|
+
| [aws_iam_policy.aws_AutoscalerPolicy_FF16A997](https://registry.terraform.io/providers/aws/5.97.0/docs/resources/iam_policy) | resource |
|
|
41
|
+
| [aws_iam_policy.aws_RunnerPolicy_7B21DB81](https://registry.terraform.io/providers/aws/5.97.0/docs/resources/iam_policy) | resource |
|
|
42
|
+
| [aws_iam_role.aws_AutoscalerRole_CEB26423](https://registry.terraform.io/providers/aws/5.97.0/docs/resources/iam_role) | resource |
|
|
43
|
+
| [aws_iam_role.aws_RunnerRole_75263C23](https://registry.terraform.io/providers/aws/5.97.0/docs/resources/iam_role) | resource |
|
|
44
|
+
| [aws_iam_role.aws_TaskExecutionRole_FAB64402](https://registry.terraform.io/providers/aws/5.97.0/docs/resources/iam_role) | resource |
|
|
45
|
+
| [aws_iam_role_policy_attachment.aws_AutoscalerPolicyAttachment_5402A0C0](https://registry.terraform.io/providers/aws/5.97.0/docs/resources/iam_role_policy_attachment) | resource |
|
|
46
|
+
| [aws_iam_role_policy_attachment.aws_RunnerPolicyAttachment_A293771C](https://registry.terraform.io/providers/aws/5.97.0/docs/resources/iam_role_policy_attachment) | resource |
|
|
47
|
+
| [aws_iam_role_policy_attachment.aws_TeskExecutionRoleAttachment_9AEA9D8D](https://registry.terraform.io/providers/aws/5.97.0/docs/resources/iam_role_policy_attachment) | resource |
|
|
48
|
+
| [aws_caller_identity.aws_Identity_FDC445BF](https://registry.terraform.io/providers/aws/5.97.0/docs/data-sources/caller_identity) | data source |
|
|
49
|
+
| [aws_region.aws_Region_7477CA06](https://registry.terraform.io/providers/aws/5.97.0/docs/data-sources/region) | data source |
|
|
50
|
+
| [aws_security_groups.aws_SecurityGroups_BAABB08D](https://registry.terraform.io/providers/aws/5.97.0/docs/data-sources/security_groups) | data source |
|
|
51
|
+
| [aws_subnets.aws_Subnets_75E5377D](https://registry.terraform.io/providers/aws/5.97.0/docs/data-sources/subnets) | data source |
|
|
55
52
|
|
|
56
53
|
## Inputs
|
|
57
54
|
|
|
58
55
|
| Name | Description | Type | Default | Required |
|
|
59
56
|
|------|-------------|------|---------|:--------:|
|
|
60
|
-
| <a name="
|
|
57
|
+
| <a name="input_autoscaler_image"></a> [autoscaler\_image](#input\_autoscaler\_image) | Autoscaler image triggering runners | `string` | `"ghcr.io/hi-fi/gha-runners-on-managed-env:ebe559da0d51e04eff903f0a04de09da93f4614f"` | no |
|
|
58
|
+
| <a name="input_ecs_cluster_name"></a> [ecs\_cluster\_name](#input\_ecs\_cluster\_name) | Name of the ECS cluster to create | `any` | n/a | yes |
|
|
59
|
+
| <a name="input_ecs_security_group_filters"></a> [ecs\_security\_group\_filters](#input\_ecs\_security\_group\_filters) | Filters for security groups | `list(object({name=string, values=list(string)}))` | `[]` | no |
|
|
60
|
+
| <a name="input_ecs_subnet_filters"></a> [ecs\_subnet\_filters](#input\_ecs\_subnet\_filters) | Filters for security groups | `list(object({name=string, values=list(string)}))` | `[]` | no |
|
|
61
61
|
| <a name="input_github_config_url"></a> [github\_config\_url](#input\_github\_config\_url) | Github URL where runners should register to. Format https://<GitHub host>/<your\_enterprise/org/repo> | `any` | n/a | yes |
|
|
62
|
+
| <a name="input_personal_access_token"></a> [personal\_access\_token](#input\_personal\_access\_token) | Github PAT with Actions:Read and Admin:Read+Write scopes | `any` | n/a | yes |
|
|
62
63
|
|
|
63
64
|
## Outputs
|
|
64
65
|
|