terraform-cdk-serverless-github-actions-runner-controller 0.0.1 → 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 +202 -3
- package/API.md +285 -0
- package/biome.jsonc +66 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.js +3 -1
- package/lib/lib/aws.d.ts +16 -1
- package/lib/lib/aws.js +278 -279
- 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 +49 -47
- package/lib/lib/variables.d.ts +3 -2
- package/lib/lib/variables.js +12 -4
- package/lib/tfModules.js +40 -10
- package/modules/azure-container-apps/README.md +3 -2
- package/modules/azure-container-apps/cdk.tf.json +15 -11
- package/modules/elastic-container-service/README.md +26 -25
- package/modules/elastic-container-service/cdk.tf.json +65 -75
- package/modules/google-cloud-run/README.md +19 -18
- package/modules/google-cloud-run/cdk.tf.json +12 -8
- 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/lib/lib/gcp.d.ts
CHANGED
package/lib/lib/gcp.js
CHANGED
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var _a;
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
4
|
exports.Gcp = void 0;
|
|
4
|
-
const
|
|
5
|
-
const constructs_1 = require("constructs");
|
|
6
|
-
const provider_1 = require("@cdktf/provider-google/lib/provider");
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
7
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");
|
|
8
8
|
const cloud_run_v2_job_1 = require("@cdktf/provider-google/lib/cloud-run-v2-job");
|
|
9
9
|
const project_iam_custom_role_1 = require("@cdktf/provider-google/lib/project-iam-custom-role");
|
|
10
|
-
const service_account_1 = require("@cdktf/provider-google/lib/service-account");
|
|
11
10
|
const project_iam_member_1 = require("@cdktf/provider-google/lib/project-iam-member");
|
|
12
|
-
const
|
|
13
|
-
const
|
|
11
|
+
const provider_1 = require("@cdktf/provider-google/lib/provider");
|
|
12
|
+
const service_account_1 = require("@cdktf/provider-google/lib/service-account");
|
|
14
13
|
const provider_2 = require("@cdktf/provider-null/lib/provider");
|
|
15
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");
|
|
16
18
|
class Gcp extends constructs_1.Construct {
|
|
17
19
|
constructor(scope, id) {
|
|
18
20
|
super(scope, id);
|
|
@@ -20,7 +22,7 @@ class Gcp extends constructs_1.Construct {
|
|
|
20
22
|
const project = 'gha-runner-example';
|
|
21
23
|
new provider_1.GoogleProvider(this, 'google', {
|
|
22
24
|
project,
|
|
23
|
-
region: location
|
|
25
|
+
region: location,
|
|
24
26
|
});
|
|
25
27
|
new provider_2.NullProvider(this, 'null');
|
|
26
28
|
const { pat, githubConfigUrl } = (0, variables_1.commonVariables)(this);
|
|
@@ -32,10 +34,10 @@ class Gcp extends constructs_1.Construct {
|
|
|
32
34
|
remoteRepositoryConfig: {
|
|
33
35
|
dockerRepository: {
|
|
34
36
|
customRepository: {
|
|
35
|
-
uri: 'https://ghcr.io'
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
}
|
|
37
|
+
uri: 'https://ghcr.io',
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
},
|
|
39
41
|
});
|
|
40
42
|
const jobSa = new service_account_1.ServiceAccount(this, 'jobServiceAccount', {
|
|
41
43
|
accountId: 'gha-runner-job-sa',
|
|
@@ -81,12 +83,12 @@ class Gcp extends constructs_1.Construct {
|
|
|
81
83
|
const bucketCreation = new resource_1.Resource(this, 'gcloud', {
|
|
82
84
|
provisioners: [
|
|
83
85
|
{
|
|
84
|
-
type:
|
|
85
|
-
command: createBucket.fqn
|
|
86
|
+
type: 'local-exec',
|
|
87
|
+
command: createBucket.fqn,
|
|
86
88
|
},
|
|
87
89
|
],
|
|
88
90
|
triggers: {
|
|
89
|
-
fqn: createBucket.fqn
|
|
91
|
+
fqn: createBucket.fqn,
|
|
90
92
|
},
|
|
91
93
|
});
|
|
92
94
|
// TODO: check caching https://cloud.google.com/artifact-registry/docs/pull-cached-dockerhub-images
|
|
@@ -115,39 +117,37 @@ class Gcp extends constructs_1.Construct {
|
|
|
115
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
|
|
116
118
|
{
|
|
117
119
|
name: 'TAR_OPTIONS',
|
|
118
|
-
value: '--touch --no-overwrite-dir --no-same-owner'
|
|
119
|
-
}
|
|
120
|
+
value: '--touch --no-overwrite-dir --no-same-owner',
|
|
121
|
+
},
|
|
120
122
|
],
|
|
121
123
|
volumeMounts: [
|
|
122
124
|
{
|
|
123
125
|
name: 'externals',
|
|
124
|
-
mountPath: '/home/runner/_work/externals'
|
|
125
|
-
}
|
|
126
|
+
mountPath: '/home/runner/_work/externals',
|
|
127
|
+
},
|
|
126
128
|
],
|
|
127
129
|
command: ['/home/runner/ephemeral_runner.sh'],
|
|
128
130
|
resources: {
|
|
129
131
|
limits: {
|
|
130
132
|
cpu: '1',
|
|
131
|
-
memory: '2Gi'
|
|
132
|
-
}
|
|
133
|
+
memory: '2Gi',
|
|
134
|
+
},
|
|
133
135
|
},
|
|
134
|
-
}
|
|
136
|
+
},
|
|
135
137
|
],
|
|
136
138
|
volumes: [
|
|
137
139
|
{
|
|
138
140
|
name: 'externals',
|
|
139
141
|
gcs: {
|
|
140
|
-
bucket: storageName
|
|
141
|
-
}
|
|
142
|
-
}
|
|
142
|
+
bucket: storageName,
|
|
143
|
+
},
|
|
144
|
+
},
|
|
143
145
|
],
|
|
144
146
|
maxRetries: 0,
|
|
145
|
-
serviceAccount: jobSa.email
|
|
146
|
-
}
|
|
147
|
+
serviceAccount: jobSa.email,
|
|
148
|
+
},
|
|
147
149
|
},
|
|
148
|
-
dependsOn: [
|
|
149
|
-
bucketCreation
|
|
150
|
-
]
|
|
150
|
+
dependsOn: [bucketCreation],
|
|
151
151
|
});
|
|
152
152
|
const autoscalerSa = new service_account_1.ServiceAccount(this, 'autoscalerServiceAccount', {
|
|
153
153
|
accountId: 'autoscaler-sa',
|
|
@@ -186,7 +186,7 @@ class Gcp extends constructs_1.Construct {
|
|
|
186
186
|
metadata: {
|
|
187
187
|
annotations: {
|
|
188
188
|
'run.googleapis.com/ingress': 'internal',
|
|
189
|
-
}
|
|
189
|
+
},
|
|
190
190
|
},
|
|
191
191
|
template: {
|
|
192
192
|
metadata: {
|
|
@@ -194,8 +194,8 @@ class Gcp extends constructs_1.Construct {
|
|
|
194
194
|
'autoscaling.knative.dev/maxScale': '1',
|
|
195
195
|
'autoscaling.knative.dev/minScale': '1',
|
|
196
196
|
'run.googleapis.com/cpu-throttling': 'false',
|
|
197
|
-
'run.googleapis.com/startup-cpu-boost': 'false'
|
|
198
|
-
}
|
|
197
|
+
'run.googleapis.com/startup-cpu-boost': 'false',
|
|
198
|
+
},
|
|
199
199
|
},
|
|
200
200
|
spec: {
|
|
201
201
|
containerConcurrency: 1,
|
|
@@ -205,43 +205,45 @@ class Gcp extends constructs_1.Construct {
|
|
|
205
205
|
env: [
|
|
206
206
|
{
|
|
207
207
|
name: 'PAT',
|
|
208
|
-
value: pat.value
|
|
208
|
+
value: pat.value,
|
|
209
209
|
},
|
|
210
210
|
{
|
|
211
211
|
name: 'GITHUB_CONFIG_URL',
|
|
212
|
-
value: githubConfigUrl.value
|
|
212
|
+
value: githubConfigUrl.value,
|
|
213
213
|
},
|
|
214
214
|
{
|
|
215
215
|
name: 'JOB_NAME',
|
|
216
|
-
value: runnerJob.name
|
|
216
|
+
value: runnerJob.name,
|
|
217
217
|
},
|
|
218
218
|
{
|
|
219
219
|
name: 'SCALE_SET_NAME',
|
|
220
|
-
value: 'cr-runner-set'
|
|
220
|
+
value: 'cr-runner-set',
|
|
221
221
|
},
|
|
222
222
|
{
|
|
223
223
|
name: 'CLOUDSDK_RUN_REGION',
|
|
224
|
-
value: location
|
|
224
|
+
value: location,
|
|
225
225
|
},
|
|
226
226
|
{
|
|
227
227
|
name: 'GOOGLE_CLOUD_PROJECT',
|
|
228
|
-
value: project
|
|
229
|
-
}
|
|
228
|
+
value: project,
|
|
229
|
+
},
|
|
230
230
|
],
|
|
231
231
|
resources: {
|
|
232
232
|
// Service would work for much lower, but these are minimum values for "always on" mode
|
|
233
233
|
limits: {
|
|
234
234
|
cpu: '1000m',
|
|
235
|
-
memory: '512Mi'
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
}
|
|
235
|
+
memory: '512Mi',
|
|
236
|
+
},
|
|
237
|
+
},
|
|
238
|
+
},
|
|
239
239
|
],
|
|
240
|
-
serviceAccountName: autoscalerSa.email
|
|
241
|
-
}
|
|
242
|
-
}
|
|
240
|
+
serviceAccountName: autoscalerSa.email,
|
|
241
|
+
},
|
|
242
|
+
},
|
|
243
243
|
});
|
|
244
244
|
}
|
|
245
245
|
}
|
|
246
246
|
exports.Gcp = Gcp;
|
|
247
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2NwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9nY3AudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUNBQXVDO0FBQ3ZDLDJDQUF1QztBQUN2QyxrRUFBb0U7QUFDcEUsMEdBQXFHO0FBQ3JHLGtGQUE0RTtBQUM1RSxnR0FBMEY7QUFDMUYsZ0ZBQTRFO0FBQzVFLHNGQUFpRjtBQUNqRiwyQ0FBOEM7QUFDOUMsb0ZBQStFO0FBQy9FLGdFQUFpRTtBQUNqRSxnRUFBNEQ7QUFFNUQsTUFBYSxHQUFJLFNBQVEsc0JBQVM7SUFDOUIsWUFBWSxLQUFnQixFQUFFLEVBQVU7UUFDcEMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLFFBQVEsR0FBRyxlQUFlLENBQUM7UUFDakMsTUFBTSxPQUFPLEdBQUcsb0JBQW9CLENBQUM7UUFFckMsSUFBSSx5QkFBYyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUU7WUFDL0IsT0FBTztZQUNQLE1BQU0sRUFBRSxRQUFRO1NBQ25CLENBQUMsQ0FBQztRQUVILElBQUksdUJBQVksQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUE7UUFFOUIsTUFBTSxFQUFFLEdBQUcsRUFBRSxlQUFlLEVBQUUsR0FBRyxJQUFBLDJCQUFlLEVBQUMsSUFBSSxDQUFDLENBQUM7UUFFdkQsTUFBTSxRQUFRLEdBQUcsSUFBSSx5REFBMEIsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQzlELE1BQU0sRUFBRSxRQUFRO1lBQ2hCLElBQUksRUFBRSxtQkFBbUI7WUFDekIsWUFBWSxFQUFFLGlCQUFpQjtZQUMvQixXQUFXLEVBQUUsMkRBQTJEO1lBQ3hFLHNCQUFzQixFQUFFO2dCQUNwQixnQkFBZ0IsRUFBRTtvQkFDZCxnQkFBZ0IsRUFBRTt3QkFDZCxHQUFHLEVBQUUsaUJBQWlCO3FCQUN6QjtpQkFDSjthQUNKO1NBQ0osQ0FBQyxDQUFDO1FBRUgsTUFBTSxLQUFL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S0FBSyxFQUFFLGVBQWUsQ0FBQyxLQUFLO2lDQUMvQjtnQ0FDRDtvQ0FDSSxJQUFJLEVBQUUsVUFBVTtvQ0FDaEIsS0FBSyxFQUFFLFNBQVMsQ0FBQyxJQUFJO2lDQUN4QjtnQ0FDRDtvQ0FDSSxJQUFJLEVBQUUsZ0JBQWdCO29DQUN0QixLQUFLLEVBQUUsZUFBZTtpQ0FDekI7Z0NBQ0Q7b0NBQ0ksSUFBSSxFQUFFLHFCQUFxQjtvQ0FDM0IsS0FBSyxFQUFFLFFBQVE7aUNBQ2xCO2dDQUNEO29DQUNJLElBQUksRUFBRSxzQkFBc0I7b0NBQzVCLEtBQUssRUFBRSxPQUFPO2lDQUNqQjs2QkFFSjs0QkFDRCxTQUFTLEVBQUU7Z0NBQ1AsdUZBQXVGO2dDQUN2RixNQUFNLEVBQUU7b0NBQ0osR0FBRyxFQUFFLE9BQU87b0NBQ1osTUFBTSxFQUFFLE9BQU87aUNBQ2xCOzZCQUNKO3lCQUNKO3FCQUNKO29CQUNELGtCQUFrQixFQUFFLFlBQVksQ0FBQyxLQUFLO2lCQUN6QzthQUNKO1NBQ0osQ0FBQyxDQUFBO0lBQ04sQ0FBQztDQUNKO0FBN1BELGtCQTZQQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRlcnJhZm9ybUxvY2FsIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgR29vZ2xlUHJvdmlkZXIgfSBmcm9tICdAY2RrdGYvcHJvdmlkZXItZ29vZ2xlL2xpYi9wcm92aWRlcidcbmltcG9ydCB7IEFydGlmYWN0UmVnaXN0cnlSZXBvc2l0b3J5IH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1nb29nbGUvbGliL2FydGlmYWN0LXJlZ2lzdHJ5LXJlcG9zaXRvcnlcIjtcbmltcG9ydCB7IENsb3VkUnVuVjJKb2IgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWdvb2dsZS9saWIvY2xvdWQtcnVuLXYyLWpvYlwiO1xuaW1wb3J0IHsgUHJvamVjdElhbUN1c3RvbVJvbGUgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWdvb2dsZS9saWIvcHJvamVjdC1pYW0tY3VzdG9tLXJvbGVcIjtcbmltcG9ydCB7IFNlcnZpY2VBY2NvdW50IH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1nb29nbGUvbGliL3NlcnZpY2UtYWNjb3VudFwiO1xuaW1wb3J0IHsgUHJvamVjdElhbU1lbWJlciB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItZ29vZ2xlL2xpYi9wcm9qZWN0LWlhbS1tZW1iZXJcIjtcbmltcG9ydCB7IGNvbW1vblZhcmlhYmxlcyB9IGZyb20gXCIuL3ZhcmlhYmxlc1wiO1xuaW1wb3J0IHsgQ2xvdWRSdW5TZXJ2aWNlIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1nb29nbGUvbGliL2Nsb3VkLXJ1bi1zZXJ2aWNlXCI7XG5pbXBvcnQgeyBOdWxsUHJvdmlkZXIgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLW51bGwvbGliL3Byb3ZpZGVyXCI7XG5pbXBvcnQgeyBSZXNvdXJjZSB9IGZyb20gJ0BjZGt0Zi9wcm92aWRlci1udWxsL2xpYi9yZXNvdXJjZSdcblxuZXhwb3J0IGNsYXNzIEdjcCBleHRlbmRzIENvbnN0cnVjdCB7XG4gICAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZykge1xuICAgICAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgICAgIGNvbnN0IGxvY2F0aW9uID0gJ2V1cm9wZS1ub3J0aDEnO1xuICAgICAgICBjb25zdCBwcm9qZWN0ID0gJ2doYS1ydW5uZXItZXhhbXBsZSc7XG4gICAgICAgIFxuICAgICAgICBuZXcgR29vZ2xlUHJvdmlkZXIodGhpcywgJ2dvb2dsZScsIHtcbiAgICAgICAgICAgIHByb2plY3QsXG4gICAgICAgICAgICByZWdpb246IGxvY2F0aW9uXG4gICAgICAgIH0pO1xuXG4gICAgICAgIG5ldyBOdWxsUHJvdmlkZXIodGhpcywgJ251bGwnKVxuXG4gICAgICAgIGNvbnN0IHsgcGF0LCBnaXRodWJDb25maWdVcmwgfSA9IGNvbW1vblZhcmlhYmxlcyh0aGlzKTtcblxuICAgICAgICBjb25zdCByZWdpc3RyeSA9IG5ldyBBcnRpZmFjdFJlZ2lzdHJ5UmVwb3NpdG9yeSh0aGlzLCAncmVnaXN0cnknLCB7XG4gICAgICAgICAgICBmb3JtYXQ6ICdET0NLRVInLFxuICAgICAgICAgICAgbW9kZTogJ1JFTU9URV9SRVBPU0lUT1JZJyxcbiAgICAgICAgICAgIHJlcG9zaXRvcnlJZDogJ2doYS1ydW5uZXItdGVzdCcsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1JlcG9zaXRvcnkgdG8gaG9zdCBydW4gYW5kIHJlc3VsdGluZyBpbWFnZXMgZnJvbSBHSEEgcnVucycsXG4gICAgICAgICAgICByZW1vdGVSZXBvc2l0b3J5Q29uZmlnOiB7XG4gICAgICAgICAgICAgICAgZG9ja2VyUmVwb3NpdG9yeToge1xuICAgICAgICAgICAgICAgICAgICBjdXN0b21SZXBvc2l0b3J5OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB1cmk6ICdodHRwczovL2doY3IuaW8nXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IGpvYlNhID0gbmV3IFNlcnZpY2VBY2NvdW50KHRoaXMsICdqb2JTZXJ2aWNlQWNjb3VudCcsIHtcbiAgICAgICAgICAgIGFjY291bnRJZDogJ2doYS1ydW5uZXItam9iLXNhJyxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgcnVubmVyUm9sZSA9IG5ldyBQcm9qZWN0SWFtQ3VzdG9tUm9sZSh0aGlzLCAncnVubmVyUm9sZScsIHtcbiAgICAgICAgICAgIHJvbGVJZDogJ2doYVJ1bm5lclJvbGUnLFxuICAgICAgICAgICAgdGl0bGU6ICdHSEEgUnVubmVyIFJvbGUnLFxuICAgICAgICAgICAgcGVybWlzc2lvbnM6IFtcbiAgICAgICAgICAgICAgICAnYXJ0aWZhY3RyZWdpc3RyeS5kb2NrZXJpbWFnZXMuZ2V0JyxcbiAgICAgICAgICAgICAgICAnYXJ0aWZhY3RyZWdpc3RyeS5kb2NrZXJpbWFnZXMubGlzdCcsXG4gICAgICAgICAgICAgICAgJ3J1bi5qb2JzLnJ1bicsXG4gICAgICAgICAgICAgICAgJ3J1bi5qb2JzLmNyZWF0ZScsXG4gICAgICAgICAgICAgICAgJ3J1bi5qb2JzLmRlbGV0ZScsXG4gICAgICAgICAgICAgICAgJ3J1bi5qb2JzLmxpc3QnLFxuICAgICAgICAgICAgICAgIC8vIE5lZWRlZCBmb3Igd2FpdGluZ1xuICAgICAgICAgICAgICAgICdydW4uZXhlY3V0aW9ucy5nZXQnLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3Qgam9iUG9saWN5TWVtYmVyID0gbmV3IFRlcnJhZm9ybUxvY2FsKHRoaXMsICdnaGFNZW1iZXInLCBgc2VydmljZUFjY291bnQ6JHtqb2JTYS5lbWFpbH1gKVxuXG4gICAgICAgIG5ldyBQcm9qZWN0SWFtTWVtYmVyKHRoaXMsICdydW5uZXJSb2xlQmluZGluZycsIHtcbiAgICAgICAgICAgIG1lbWJlcjogam9iUG9saWN5TWVtYmVyLnRvU3RyaW5nKCksXG4gICAgICAgICAgICBwcm9qZWN0LFxuICAgICAgICAgICAgcm9sZTogcnVubmVyUm9sZS5pZCxcbiAgICAgICAgfSlcblxuICAgICAgICBuZXcgUHJvamVjdElhbU1lbWJlcih0aGlzLCAncnVubmVyUm9sZUJpbmRpbmdTdG9yYWdlJywge1xuICAgICAgICAgICAgbWVtYmVyOiBqb2JQb2xpY3lNZW1iZXIudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIHByb2plY3QsXG4gICAgICAgICAgICByb2xlOiAncm9sZXMvc3RvcmFnZS5hZG1pbicsXG4gICAgICAgIH0pXG5cbiAgICAgICAgbmV3IFByb2plY3RJYW1NZW1iZXIodGhpcywgJ3J1bm5lclJvbGVCaW5kaW5nUnVuU2VydmljZUFnZW50Jywge1xuICAgICAgICAgICAgbWVtYmVyOiBqb2JQb2xpY3lNZW1iZXIudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIHByb2plY3QsXG4gICAgICAgICAgICByb2xlOiAncm9sZXMvcnVuLnNlcnZpY2VBZ2VudCcsXG4gICAgICAgIH0pXG5cbiAgICAgICAgbmV3IFByb2plY3RJYW1NZW1iZXIodGhpcywgJ3J1bm5lclJvbGVCaW5kaW5nUnVuVmlld2VyJywge1xuICAgICAgICAgICAgbWVtYmVyOiBqb2JQb2xpY3lNZW1iZXIudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIHByb2plY3QsXG4gICAgICAgICAgICByb2xlOiAncm9sZXMvcnVuLnZpZXdlcicsXG4gICAgICAgIH0pXG5cbiAgICAgICAgY29uc3Qgc3RvcmFnZU5hbWUgPSAnZ2hhLXJ1bm5lci1qb2ItZXh0ZXJuYWxzJztcbiAgICAgICAgY29uc3QgY3JlYXRlQnVja2V0ID0gbmV3IFRlcnJhZm9ybUxvY2FsKHRoaXMsICdidWNrZXRNb2RpZmljYXRpb24nLCBgQ0xPVURTREtfQ09SRV9ESVNBQkxFX1BST01QVFM9MSBnY2xvdWQgYWxwaGEgc3RvcmFnZSBidWNrZXRzIGNyZWF0ZSBnczovLyR7c3RvcmFnZU5hbWV9IC0tcHJvamVjdD0ke3Byb2plY3R9IC0tbG9jYXRpb249JHtsb2NhdGlvbn0gLS11bmlmb3JtLWJ1Y2tldC1sZXZlbC1hY2Nlc3MgLS1lbmFibGUtaGllcmFyY2hpY2FsLW5hbWVzcGFjZWApXG5cbiAgICAgICAgLy8gSGllcmFyY2hpYWwgbmFtZXNwYWNlcyBjYW4ndCBiZSBlbmFibGVkIHdpdGggVGVycmFmb3JtLlxuICAgICAgICBjb25zdCBidWNrZXRDcmVhdGlvbiA9IG5ldyBSZXNvdXJjZSh0aGlzLCAnZ2Nsb3VkJywge1xuICAgICAgICAgICAgcHJvdmlzaW9uZXJzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImxvY2FsLWV4ZWNcIixcbiAgICAgICAgICAgICAgICAgICAgY29tbWFuZDogY3JlYXRlQnVja2V0LmZxblxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgdHJpZ2dlcnM6IHtcbiAgICAgICAgICAgICAgICBmcW46IGNyZWF0ZUJ1Y2tldC5mcW5cbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIFRPRE86IGNoZWNrIGNhY2hpbmcgaHR0cHM6Ly9jbG91ZC5nb29nbGUuY29tL2FydGlmYWN0LXJlZ2lzdHJ5L2RvY3MvcHVsbC1jYWNoZWQtZG9ja2VyaHViLWltYWdlc1xuICAgICAgICBjb25zdCBydW5uZXJKb2IgPSBuZXcgQ2xvdWRSdW5WMkpvYih0aGlzLCAnZ2hhSm9iJywge1xuICAgICAgICAgICAgZGVsZXRpb25Qcm90ZWN0aW9uOiBmYWxzZSxcbiAgICAgICAgICAgIG5hbWU6ICdnaGEtcnVubmVyLWpvYicsXG4gICAgICAgICAgICBsb2NhdGlvbixcbiAgICAgICAgICAgIHRlbXBsYXRlOiB7XG4gICAgICAgICAgICAgICAgdGVtcGxhdGU6IHtcbiAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyczogW1xuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlOiBgJHtyZWdpc3RyeS5sb2NhdGlvbn0tZG9ja2VyLnBrZy5kZXYvJHtwcm9qZWN0fS8ke3JlZ2lzdHJ5LnJlcG9zaXRvcnlJZH0vaGktZmkvYWN0aW9ucy1ydW5uZXI6Y3JgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnQ0xPVURTREtfUlVOX1JFR0lPTicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogbG9jYXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdHT09HTEVfQ0xPVURfUFJPSkVDVCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcHJvamVjdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ0VYVEVSTkFMX1NUT1JBR0VfTkFNRScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogc3RvcmFnZU5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZVU0UgbW91bnRzIGRpcmVjdG9yeSBhcyByb290IHdpdGggNzc3IGZvIGRpcmVjdG9yaWVzIGFuZCA1NTUgZm9yIG90aGVyIGZpbGVzLiBBcyBwYXRoIGlzIG93bmVkIGFsd2F5cyBieSByb290LCB1dGltZSBvciBwZXJtaXNzaW9uIGNoYW5nZSBpcyBub3QgcG9zc2libGUuIFRoZXNlIG9wdGlvbnMgcHJldmVudCB0YXIgdG8gdHJ5IHRob3NlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdUQVJfT1BUSU9OUycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogJy0tdG91Y2ggLS1uby1vdmVyd3JpdGUtZGlyIC0tbm8tc2FtZS1vd25lcidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9sdW1lTW91bnRzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdleHRlcm5hbHMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW91bnRQYXRoOiAnL2hvbWUvcnVubmVyL193b3JrL2V4dGVybmFscydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbWFuZDogWycvaG9tZS9ydW5uZXIvZXBoZW1lcmFsX3J1bm5lci5zaCddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW1pdHM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNwdTogJzEnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVtb3J5OiAnMkdpJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgdm9sdW1lczogW1xuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdleHRlcm5hbHMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdjczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWNrZXQ6IHN0b3JhZ2VOYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICBtYXhSZXRyaWVzOiAwLFxuICAgICAgICAgICAgICAgICAgICBzZXJ2aWNlQWNjb3VudDogam9iU2EuZW1haWxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZGVwZW5kc09uOiBbXG4gICAgICAgICAgICAgICAgYnVja2V0Q3JlYXRpb25cbiAgICAgICAgICAgIF1cbiAgICAgICAgfSlcblxuICAgICAgICBjb25zdCBhdXRvc2NhbGVyU2EgPSBuZXcgU2VydmljZUFjY291bnQodGhpcywgJ2F1dG9zY2FsZXJTZXJ2aWNlQWNjb3VudCcsIHtcbiAgICAgICAgICAgIGFjY291bnRJZDogJ2F1dG9zY2FsZXItc2EnLFxuICAgICAgICB9KTtcblxuICAgICAgICBuZXcgUHJvamVjdElhbUN1c3RvbVJvbGUodGhpcywgJ2F1dG9zY2FsZXJSb2xlJywge1xuICAgICAgICAgICAgcm9sZUlkOiAnZ2hhQXV0b3NjYWxlclJvbGUnLFxuICAgICAgICAgICAgdGl0bGU6ICdHSEEgQXV0b3NjYWxlciBSb2xlJyxcbiAgICAgICAgICAgIHBlcm1pc3Npb25zOiBbXG4gICAgICAgICAgICAgICAgJ2FydGlmYWN0cmVnaXN0cnkuZG9ja2VyaW1hZ2VzLmdldCcsXG4gICAgICAgICAgICAgICAgJ2FydGlmYWN0cmVnaXN0cnkuZG9ja2VyaW1hZ2VzLmxpc3QnLFxuICAgICAgICAgICAgICAgICdydW4uam9icy5ydW4nLFxuICAgICAgICAgICAgICAgICdydW4uam9icy5jcmVhdGUnLFxuICAgICAgICAgICAgICAgICdydW4uam9icy5kZWxldGUnLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgYXV0b3NjYWxlclBvbGljeU1lbWJlciA9IG5ldyBUZXJyYWZvcm1Mb2NhbCh0aGlzLCAnYXV0b3NjYWxlck1lbWJlcicsIGBzZXJ2aWNlQWNjb3VudDoke2F1dG9zY2FsZXJTYS5lbWFpbH1gKVxuXG4gICAgICAgIC8vIFRPRE86IHJlcGxhY2UgMiBmb2xsb3dpbmcgd2l0aCBtb3JlIHNwZWNpZmljIG9uZXMuXG4gICAgICAgIG5ldyBQcm9qZWN0SWFtTWVtYmVyKHRoaXMsICdhdXRvc2NhbGVyUm9sZUJpbmRpbmdSdW4nLCB7XG4gICAgICAgICAgICBtZW1iZXI6IGF1dG9zY2FsZXJQb2xpY3lNZW1iZXIudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIHByb2plY3QsXG4gICAgICAgICAgICByb2xlOiAncm9sZXMvcnVuLmRldmVsb3BlcicsXG4gICAgICAgIH0pXG5cblxuICAgICAgICBuZXcgUHJvamVjdElhbU1lbWJlcih0aGlzLCAnYXV0b3NjYWxlclJvbGVCaW5kaW5nU3RvcmFnZScsIHtcbiAgICAgICAgICAgIG1lbWJlcjogYXV0b3NjYWxlclBvbGljeU1lbWJlci50b1N0cmluZygpLFxuICAgICAgICAgICAgcHJvamVjdCxcbiAgICAgICAgICAgIHJvbGU6ICdyb2xlcy9zdG9yYWdlLmFkbWluJyxcbiAgICAgICAgfSlcblxuICAgICAgICBuZXcgUHJvamVjdElhbU1lbWJlcih0aGlzLCAnYXV0b3NjYWxlclJvbGVCaW5kaW5nUnVuU2VydmljZUFnZW50Jywge1xuICAgICAgICAgICAgbWVtYmVyOiBhdXRvc2NhbGVyUG9saWN5TWVtYmVyLnRvU3RyaW5nKCksXG4gICAgICAgICAgICBwcm9qZWN0LFxuICAgICAgICAgICAgcm9sZTogJ3JvbGVzL3J1bi5zZXJ2aWNlQWdlbnQnLFxuICAgICAgICB9KVxuXG4gICAgICAgIG5ldyBDbG91ZFJ1blNlcnZpY2UodGhpcywgJ2F1dG9zY2FsZXJTZXJ2aWNlJywge1xuICAgICAgICAgICAgbG9jYXRpb24sXG4gICAgICAgICAgICBuYW1lOiAnZ2hhLWF1dG9zY2FsZXInLFxuICAgICAgICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgICAgICAgICBhbm5vdGF0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICAncnVuLmdvb2dsZWFwaXMuY29tL2luZ3Jlc3MnOiAnaW50ZXJuYWwnLFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0ZW1wbGF0ZToge1xuICAgICAgICAgICAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgICAgICAgICAgICAgIGFubm90YXRpb25zOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAnYXV0b3NjYWxpbmcua25hdGl2ZS5kZXYvbWF4U2NhbGUnOiAnMScsXG4gICAgICAgICAgICAgICAgICAgICAgICAnYXV0b3NjYWxpbmcua25hdGl2ZS5kZXYvbWluU2NhbGUnOiAnMScsXG4gICAgICAgICAgICAgICAgICAgICAgICAncnVuLmdvb2dsZWFwaXMuY29tL2NwdS10aHJvdHRsaW5nJzogJ2ZhbHNlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICdydW4uZ29vZ2xlYXBpcy5jb20vc3RhcnR1cC1jcHUtYm9vc3QnOiAnZmFsc2UnXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNwZWM6IHtcbiAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyQ29uY3VycmVuY3k6IDEsXG4gICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcnM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbWFnZTogYCR7cmVnaXN0cnkubG9jYXRpb259LWRvY2tlci5wa2cuZGV2LyR7cHJvamVjdH0vJHtyZWdpc3RyeS5yZXBvc2l0b3J5SWR9L2hpLWZpL2doYS1ydW5uZXJzLW9uLW1hbmFnZWQtZW52OnRlc3RgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnUEFUJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBwYXQudmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ0dJVEhVQl9DT05GSUdfVVJMJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBnaXRodWJDb25maWdVcmwudmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ0pPQl9OQU1FJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBydW5uZXJKb2IubmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnU0NBTEVfU0VUX05BTUUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6ICdjci1ydW5uZXItc2V0J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnQ0xPVURTREtfUlVOX1JFR0lPTicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogbG9jYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ0dPT0dMRV9DTE9VRF9QUk9KRUNUJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBwcm9qZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2VzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNlcnZpY2Ugd291bGQgd29yayBmb3IgbXVjaCBsb3dlciwgYnV0IHRoZXNlIGFyZSBtaW5pbXVtIHZhbHVlcyBmb3IgXCJhbHdheXMgb25cIiBtb2RlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbWl0czoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3B1OiAnMTAwMG0nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVtb3J5OiAnNTEyTWknXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgIHNlcnZpY2VBY2NvdW50TmFtZTogYXV0b3NjYWxlclNhLmVtYWlsXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgIH1cbn1cbiJdfQ==
|
|
247
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
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,18 +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('personal_access_token');
|
|
11
12
|
const githubConfigUrl = new cdktf_1.TerraformVariable(scope, 'github_config_url', {
|
|
12
13
|
description: 'Github URL where runners should register to. Format https://<GitHub host>/<your_enterprise/org/repo>',
|
|
13
14
|
nullable: false,
|
|
14
15
|
});
|
|
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');
|
|
15
22
|
return {
|
|
16
23
|
pat,
|
|
17
|
-
githubConfigUrl
|
|
24
|
+
githubConfigUrl,
|
|
25
|
+
autoscalerImage,
|
|
18
26
|
};
|
|
19
27
|
}
|
|
20
|
-
//# 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_aca_PAT_B54A3B25"></a> [aca\_PAT\_B54A3B25](#input\_aca\_PAT\_B54A3B25) | Github PAT with Actions:Read and Admin:Read+Write scopes | `any` | n/a | yes |
|
|
68
|
-
| <a name="input_aca_github_config_url_7230B339"></a> [aca\_github\_config\_url\_7230B339](#input\_aca\_github\_config\_url\_7230B339) | Github URL where runners should register to. Format https://<GitHub host>/<your\_enterprise/org/repo> | `any` | n/a | yes |
|
|
69
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
|
+
| <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": {
|
|
@@ -343,7 +343,7 @@
|
|
|
343
343
|
},
|
|
344
344
|
{
|
|
345
345
|
"name": "GITHUB_CONFIG_URL",
|
|
346
|
-
"value": "${var.
|
|
346
|
+
"value": "${var.github_config_url}"
|
|
347
347
|
},
|
|
348
348
|
{
|
|
349
349
|
"name": "AZURE_TENANT_ID",
|
|
@@ -615,21 +615,25 @@
|
|
|
615
615
|
}
|
|
616
616
|
},
|
|
617
617
|
"variable": {
|
|
618
|
-
"aca_PAT_B54A3B25": {
|
|
619
|
-
"description": "Github PAT with Actions:Read and Admin:Read+Write scopes",
|
|
620
|
-
"nullable": false,
|
|
621
|
-
"sensitive": true
|
|
622
|
-
},
|
|
623
|
-
"aca_github_config_url_7230B339": {
|
|
624
|
-
"description": "Github URL where runners should register to. Format https://<GitHub host>/<your_enterprise/org/repo>",
|
|
625
|
-
"nullable": false
|
|
626
|
-
},
|
|
627
618
|
"aca_location_486B7D73": {
|
|
628
619
|
"default": "westeurope",
|
|
629
620
|
"description": "Location where to provision resources to",
|
|
630
621
|
"nullable": false,
|
|
631
622
|
"sensitive": false,
|
|
632
623
|
"type": "string"
|
|
624
|
+
},
|
|
625
|
+
"autoscaler_image": {
|
|
626
|
+
"default": "ghcr.io/hi-fi/gha-runners-on-managed-env:ebe559da0d51e04eff903f0a04de09da93f4614f",
|
|
627
|
+
"description": "Autoscaler image triggering runners"
|
|
628
|
+
},
|
|
629
|
+
"github_config_url": {
|
|
630
|
+
"description": "Github URL where runners should register to. Format https://<GitHub host>/<your_enterprise/org/repo>",
|
|
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="
|
|
61
|
-
| <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
|
+
| <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
|
|