@mavogel/cdk-vscode-server 0.0.61 → 0.0.63
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 +117 -178
- package/API.md +96 -199
- package/CLAUDE.md +214 -57
- package/README.md +39 -1
- package/assets/idle-monitor-enabler/idle-monitor-enabler.lambda/index.js +67 -0
- package/assets/installer/installer.lambda/index.js +67 -30
- package/awslint.json +5 -0
- package/examples/git-repo/main.ts +30 -0
- package/integ-tests/integ.al2023.ts.snapshot/IntegSetupVSCodeOnAl2023DefaultTestDeployAssert74D8F645.assets.json +2 -2
- package/integ-tests/integ.al2023.ts.snapshot/IntegSetupVSCodeOnAl2023DefaultTestDeployAssert74D8F645.template.json +1 -1
- package/integ-tests/integ.al2023.ts.snapshot/IntegTestStackAl2023.assets.json +8 -8
- package/integ-tests/integ.al2023.ts.snapshot/IntegTestStackAl2023.template.json +257 -94
- package/integ-tests/{integ.stop-on-idle.ts.snapshot/asset.33da23274e25bd9f43638c5d83dad26e3931cbe78d462ffd9a9f565e948b4f5f.lambda → integ.al2023.ts.snapshot/asset.2f99f38311da357eaaea1284d67c759759324dec4a1cd11621d9c59eea9e81df.lambda}/index.js +67 -30
- package/integ-tests/{integ.ubuntu.ts.snapshot/asset.0ad50fc42afd768c3d0bfdd4701e43284fb077a25f19eea1e8c51a5ca36ebfe4 → integ.al2023.ts.snapshot/asset.efac30c7091c58fed492058fa6403c14f7e58aab8cf4fd595d838b8d5eeec2b9}/index.js +50 -25
- package/integ-tests/integ.al2023.ts.snapshot/integ.json +1 -1
- package/integ-tests/integ.al2023.ts.snapshot/manifest.json +19 -3
- package/integ-tests/integ.al2023.ts.snapshot/tree.json +1 -1
- package/integ-tests/integ.custom-domain.ts.snapshot/IntegSetupVSCodeOnCustomDomainDefaultTestDeployAssert6982D514.assets.json +2 -2
- package/integ-tests/integ.custom-domain.ts.snapshot/IntegSetupVSCodeOnCustomDomainDefaultTestDeployAssert6982D514.template.json +1 -1
- package/integ-tests/integ.custom-domain.ts.snapshot/IntegTestStackCustomDomain.assets.json +8 -8
- package/integ-tests/integ.custom-domain.ts.snapshot/IntegTestStackCustomDomain.template.json +270 -94
- package/integ-tests/{integ.ubuntu.ts.snapshot/asset.33da23274e25bd9f43638c5d83dad26e3931cbe78d462ffd9a9f565e948b4f5f.lambda → integ.custom-domain.ts.snapshot/asset.2f99f38311da357eaaea1284d67c759759324dec4a1cd11621d9c59eea9e81df.lambda}/index.js +67 -30
- package/integ-tests/{integ.al2023.ts.snapshot/asset.0ad50fc42afd768c3d0bfdd4701e43284fb077a25f19eea1e8c51a5ca36ebfe4 → integ.custom-domain.ts.snapshot/asset.efac30c7091c58fed492058fa6403c14f7e58aab8cf4fd595d838b8d5eeec2b9}/index.js +50 -25
- package/integ-tests/integ.custom-domain.ts.snapshot/integ.json +1 -1
- package/integ-tests/integ.custom-domain.ts.snapshot/manifest.json +19 -3
- package/integ-tests/integ.custom-domain.ts.snapshot/tree.json +1 -1
- package/integ-tests/integ.stop-on-idle.ts +1 -4
- package/integ-tests/integ.stop-on-idle.ts.snapshot/IntegStopOnIdleFunctionalityDefaultTestDeployAssertEECF3FC0.assets.json +2 -2
- package/integ-tests/integ.stop-on-idle.ts.snapshot/IntegStopOnIdleFunctionalityDefaultTestDeployAssertEECF3FC0.template.json +4 -4
- package/integ-tests/integ.stop-on-idle.ts.snapshot/IntegTestStackStopOnIdle.assets.json +23 -9
- package/integ-tests/integ.stop-on-idle.ts.snapshot/IntegTestStackStopOnIdle.template.json +755 -194
- package/integ-tests/integ.stop-on-idle.ts.snapshot/asset.22c8a6c357b704e370bef317ae1b52c59f684aa7640422a3d1dfe813d1f77853.lambda/index.js +67 -0
- package/integ-tests/{integ.custom-domain.ts.snapshot/asset.33da23274e25bd9f43638c5d83dad26e3931cbe78d462ffd9a9f565e948b4f5f.lambda → integ.stop-on-idle.ts.snapshot/asset.2f99f38311da357eaaea1284d67c759759324dec4a1cd11621d9c59eea9e81df.lambda}/index.js +67 -30
- package/integ-tests/integ.stop-on-idle.ts.snapshot/manifest.json +353 -72
- package/integ-tests/integ.stop-on-idle.ts.snapshot/tree.json +1 -1
- package/integ-tests/integ.ubuntu.ts.snapshot/IntegSetupVSCodeOnUbuntuDefaultTestDeployAssertFF8DF2C5.assets.json +2 -2
- package/integ-tests/integ.ubuntu.ts.snapshot/IntegSetupVSCodeOnUbuntuDefaultTestDeployAssertFF8DF2C5.template.json +1 -1
- package/integ-tests/integ.ubuntu.ts.snapshot/IntegTestStackUbuntu22.assets.json +8 -8
- package/integ-tests/integ.ubuntu.ts.snapshot/IntegTestStackUbuntu22.template.json +270 -94
- package/integ-tests/{integ.al2023.ts.snapshot/asset.33da23274e25bd9f43638c5d83dad26e3931cbe78d462ffd9a9f565e948b4f5f.lambda → integ.ubuntu.ts.snapshot/asset.2f99f38311da357eaaea1284d67c759759324dec4a1cd11621d9c59eea9e81df.lambda}/index.js +67 -30
- package/integ-tests/{integ.custom-domain.ts.snapshot/asset.0ad50fc42afd768c3d0bfdd4701e43284fb077a25f19eea1e8c51a5ca36ebfe4 → integ.ubuntu.ts.snapshot/asset.efac30c7091c58fed492058fa6403c14f7e58aab8cf4fd595d838b8d5eeec2b9}/index.js +50 -25
- package/integ-tests/integ.ubuntu.ts.snapshot/integ.json +1 -1
- package/integ-tests/integ.ubuntu.ts.snapshot/manifest.json +19 -3
- package/integ-tests/integ.ubuntu.ts.snapshot/tree.json +1 -1
- package/integ-tests/integ.ubuntu24.ts +69 -0
- package/integ-tests/integ.ubuntu24.ts.snapshot/IntegSetupVSCodeOnUbuntuDefaultTestDeployAssertFF8DF2C5.assets.json +33 -0
- package/integ-tests/integ.ubuntu24.ts.snapshot/IntegSetupVSCodeOnUbuntuDefaultTestDeployAssertFF8DF2C5.template.json +337 -0
- package/integ-tests/integ.ubuntu24.ts.snapshot/IntegTestStackUbuntu24.assets.json +118 -0
- package/integ-tests/integ.ubuntu24.ts.snapshot/IntegTestStackUbuntu24.template.json +2725 -0
- package/integ-tests/integ.ubuntu24.ts.snapshot/asset.2819175352ad1ce0dae768e83fc328fb70fb5f10b4a8ff0ccbcb791f02b0716d/index.js +1 -0
- package/integ-tests/integ.ubuntu24.ts.snapshot/asset.2f99f38311da357eaaea1284d67c759759324dec4a1cd11621d9c59eea9e81df.lambda/index.js +180 -0
- package/integ-tests/integ.ubuntu24.ts.snapshot/asset.530055f7515b3f0a47900f5df37e729ba40ca977b2d07b952bdefa2b8f883f42.bundle/index.js +30676 -0
- package/integ-tests/integ.ubuntu24.ts.snapshot/asset.781ab0ab74634cdaf61539ab208ab777829ef07097ac21f95b9e15a3b1eedc1b.lambda/index.js +57 -0
- package/integ-tests/integ.ubuntu24.ts.snapshot/asset.7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200/__entrypoint__.js +1 -0
- package/integ-tests/integ.ubuntu24.ts.snapshot/asset.7fa1e366ee8a9ded01fc355f704cff92bfd179574e6f9cfee800a3541df1b200/index.js +1 -0
- package/integ-tests/integ.ubuntu24.ts.snapshot/asset.9d043014be736e8162bcc7ec5590cc6d2ff24fd0d9c73a5c5d595151c5fdad00/index.js +1 -0
- package/integ-tests/integ.ubuntu24.ts.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/cfn-response.js +1 -0
- package/integ-tests/integ.ubuntu24.ts.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/consts.js +1 -0
- package/integ-tests/integ.ubuntu24.ts.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/framework.js +3 -0
- package/integ-tests/integ.ubuntu24.ts.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/outbound.js +1 -0
- package/integ-tests/integ.ubuntu24.ts.snapshot/asset.bdc104ed9cab1b5b6421713c8155f0b753380595356f710400609664d3635eca/util.js +1 -0
- package/integ-tests/integ.ubuntu24.ts.snapshot/asset.efac30c7091c58fed492058fa6403c14f7e58aab8cf4fd595d838b8d5eeec2b9/index.js +6017 -0
- package/integ-tests/integ.ubuntu24.ts.snapshot/integ.json +23 -0
- package/integ-tests/integ.ubuntu24.ts.snapshot/manifest.json +1473 -0
- package/integ-tests/integ.ubuntu24.ts.snapshot/tree.json +1 -0
- package/lib/idle-monitor/idle-monitor-function.js +2 -2
- package/lib/idle-monitor/idle-monitor.js +5 -2
- package/lib/idle-monitor-enabler/idle-monitor-enabler-function.d.ts +13 -0
- package/lib/idle-monitor-enabler/idle-monitor-enabler-function.js +22 -0
- package/lib/idle-monitor-enabler/idle-monitor-enabler.d.ts +25 -0
- package/lib/idle-monitor-enabler/idle-monitor-enabler.js +76 -0
- package/lib/idle-monitor-enabler/idle-monitor-enabler.lambda.d.ts +9 -0
- package/lib/idle-monitor-enabler/idle-monitor-enabler.lambda.js +48 -0
- package/lib/index.d.ts +0 -1
- package/lib/index.js +1 -2
- package/lib/installer/installer-function.js +2 -2
- package/lib/installer/installer.d.ts +100 -0
- package/lib/installer/installer.js +658 -301
- package/lib/installer/installer.lambda.js +64 -30
- package/lib/secret-retriever/secret-retriever-function.js +2 -2
- package/lib/vscode-server.d.ts +40 -0
- package/lib/vscode-server.js +27 -4
- package/package.json +12 -12
- package/.claude/hooks/file_checker.sh +0 -178
- package/.qlty/.gitignore +0 -7
- package/.qlty/configs/.yamllint.yaml +0 -21
- package/.qlty/qlty.toml +0 -115
- package/assets/status-check/status-check.lambda/index.js +0 -123
- package/integ-tests/integ.al2023.ts.snapshot/cdk.out +0 -1
- package/integ-tests/integ.al2023.ts.snapshot/read.13497.1.lock +0 -1
- package/integ-tests/integ.custom-domain.ts.snapshot/read.13497.1.lock +0 -1
- package/integ-tests/integ.ubuntu.ts.snapshot/cdk.out +0 -1
- package/integ-tests/integ.ubuntu.ts.snapshot/read.13497.1.lock +0 -1
- package/lib/status-check/status-check-function.d.ts +0 -13
- package/lib/status-check/status-check-function.js +0 -22
- package/lib/status-check/status-check.d.ts +0 -36
- package/lib/status-check/status-check.js +0 -109
- package/lib/status-check/status-check.lambda.d.ts +0 -2
- package/lib/status-check/status-check.lambda.js +0 -104
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
},
|
|
17
|
-
"
|
|
17
|
+
"59f41e694e919ca7c93dc57f9dc750eeb86d015079d6796732706d4e2424db2c": {
|
|
18
18
|
"displayName": "IntegSetupVSCodeOnUbuntuDefaultTestDeployAssertFF8DF2C5 Template",
|
|
19
19
|
"source": {
|
|
20
20
|
"path": "IntegSetupVSCodeOnUbuntuDefaultTestDeployAssertFF8DF2C5.template.json",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"destinations": {
|
|
24
24
|
"current_account-current_region": {
|
|
25
25
|
"bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}",
|
|
26
|
-
"objectKey": "
|
|
26
|
+
"objectKey": "59f41e694e919ca7c93dc57f9dc750eeb86d015079d6796732706d4e2424db2c.json",
|
|
27
27
|
"assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}"
|
|
28
28
|
}
|
|
29
29
|
}
|
|
@@ -57,30 +57,30 @@
|
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
59
|
},
|
|
60
|
-
"
|
|
60
|
+
"2f99f38311da357eaaea1284d67c759759324dec4a1cd11621d9c59eea9e81df": {
|
|
61
61
|
"displayName": "IntegVSCodeServer/InstallerOnEventHandler/Code",
|
|
62
62
|
"source": {
|
|
63
|
-
"path": "asset.
|
|
63
|
+
"path": "asset.2f99f38311da357eaaea1284d67c759759324dec4a1cd11621d9c59eea9e81df.lambda",
|
|
64
64
|
"packaging": "zip"
|
|
65
65
|
},
|
|
66
66
|
"destinations": {
|
|
67
67
|
"current_account-current_region": {
|
|
68
68
|
"bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}",
|
|
69
|
-
"objectKey": "
|
|
69
|
+
"objectKey": "2f99f38311da357eaaea1284d67c759759324dec4a1cd11621d9c59eea9e81df.zip",
|
|
70
70
|
"assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}"
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
73
|
},
|
|
74
|
-
"
|
|
74
|
+
"efac30c7091c58fed492058fa6403c14f7e58aab8cf4fd595d838b8d5eeec2b9": {
|
|
75
75
|
"displayName": "login-handler/Code",
|
|
76
76
|
"source": {
|
|
77
|
-
"path": "asset.
|
|
77
|
+
"path": "asset.efac30c7091c58fed492058fa6403c14f7e58aab8cf4fd595d838b8d5eeec2b9",
|
|
78
78
|
"packaging": "zip"
|
|
79
79
|
},
|
|
80
80
|
"destinations": {
|
|
81
81
|
"current_account-current_region": {
|
|
82
82
|
"bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}",
|
|
83
|
-
"objectKey": "
|
|
83
|
+
"objectKey": "efac30c7091c58fed492058fa6403c14f7e58aab8cf4fd595d838b8d5eeec2b9.zip",
|
|
84
84
|
"assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}"
|
|
85
85
|
}
|
|
86
86
|
}
|
|
@@ -99,7 +99,7 @@
|
|
|
99
99
|
}
|
|
100
100
|
}
|
|
101
101
|
},
|
|
102
|
-
"
|
|
102
|
+
"70eb334e40ac38061810c7686ab3513449232bddf2efc617be0e505f0a8bd9e3": {
|
|
103
103
|
"displayName": "IntegTestStackUbuntu22 Template",
|
|
104
104
|
"source": {
|
|
105
105
|
"path": "IntegTestStackUbuntu22.template.json",
|
|
@@ -108,7 +108,7 @@
|
|
|
108
108
|
"destinations": {
|
|
109
109
|
"current_account-current_region": {
|
|
110
110
|
"bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}",
|
|
111
|
-
"objectKey": "
|
|
111
|
+
"objectKey": "70eb334e40ac38061810c7686ab3513449232bddf2efc617be0e505f0a8bd9e3.json",
|
|
112
112
|
"assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}"
|
|
113
113
|
}
|
|
114
114
|
}
|
|
@@ -117,7 +117,7 @@
|
|
|
117
117
|
"Arn"
|
|
118
118
|
]
|
|
119
119
|
},
|
|
120
|
-
"Runtime": "
|
|
120
|
+
"Runtime": "nodejs22.x",
|
|
121
121
|
"Timeout": 10
|
|
122
122
|
},
|
|
123
123
|
"DependsOn": [
|
|
@@ -1382,20 +1382,29 @@
|
|
|
1382
1382
|
},
|
|
1383
1383
|
"NodeVersion": {
|
|
1384
1384
|
"type": "String",
|
|
1385
|
-
"default": "
|
|
1385
|
+
"default": "22",
|
|
1386
1386
|
"allowedValues": [
|
|
1387
|
+
"24",
|
|
1387
1388
|
"22",
|
|
1388
1389
|
"20",
|
|
1389
1390
|
"18"
|
|
1390
1391
|
]
|
|
1391
1392
|
},
|
|
1392
|
-
"
|
|
1393
|
+
"RepoUrl": {
|
|
1393
1394
|
"type": "String",
|
|
1394
|
-
"default": "
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
|
|
1395
|
+
"default": ""
|
|
1396
|
+
},
|
|
1397
|
+
"AssetZipS3Path": {
|
|
1398
|
+
"type": "String",
|
|
1399
|
+
"default": ""
|
|
1400
|
+
},
|
|
1401
|
+
"BranchZipS3Path": {
|
|
1402
|
+
"type": "String",
|
|
1403
|
+
"default": ""
|
|
1404
|
+
},
|
|
1405
|
+
"FolderZipS3Path": {
|
|
1406
|
+
"type": "String",
|
|
1407
|
+
"default": ""
|
|
1399
1408
|
}
|
|
1400
1409
|
},
|
|
1401
1410
|
"mainSteps": [
|
|
@@ -1427,6 +1436,7 @@
|
|
|
1427
1436
|
"inputs": {
|
|
1428
1437
|
"runCommand": [
|
|
1429
1438
|
"#!/bin/bash",
|
|
1439
|
+
"dpkg --configure -a",
|
|
1430
1440
|
"apt-get -q update && DEBIAN_FRONTEND=noninteractive apt-get install -y -q apt-utils",
|
|
1431
1441
|
"apt-get -q update && DEBIAN_FRONTEND=noninteractive apt-get install -y -q needrestart unattended-upgrades",
|
|
1432
1442
|
"sed -i 's/#$nrconf{kernelhints} = -1;/$nrconf{kernelhints} = 0;/' /etc/needrestart/needrestart.conf",
|
|
@@ -1443,7 +1453,8 @@
|
|
|
1443
1453
|
"inputs": {
|
|
1444
1454
|
"runCommand": [
|
|
1445
1455
|
"#!/bin/bash",
|
|
1446
|
-
"
|
|
1456
|
+
"dpkg --configure -a",
|
|
1457
|
+
"apt-get -q update && DEBIAN_FRONTEND=noninteractive apt-get install -y -q curl gnupg whois argon2 unzip nginx openssl locales locales-all apt-transport-https ca-certificates software-properties-common"
|
|
1447
1458
|
]
|
|
1448
1459
|
}
|
|
1449
1460
|
},
|
|
@@ -1453,12 +1464,11 @@
|
|
|
1453
1464
|
"inputs": {
|
|
1454
1465
|
"runCommand": [
|
|
1455
1466
|
"#!/bin/bash",
|
|
1456
|
-
"
|
|
1457
|
-
"adduser --disabled-password --gecos '' participant",
|
|
1458
|
-
"echo \"participant:{{ VSCodePassword }}\" | chpasswd",
|
|
1459
|
-
"usermod -aG sudo participant",
|
|
1467
|
+
"dpkg --configure -a",
|
|
1468
|
+
"if [[ \"participant\" == \"ubuntu\" ]]\nthen\n echo 'Using existing user: participant'\nelse\n echo 'Adding user: participant'\n adduser --disabled-password --gecos '' participant\n echo \"participant:{{ VSCodePassword }}\" | chpasswd\n usermod -aG sudo participant\nfi",
|
|
1460
1469
|
"tee /etc/sudoers.d/91-vscode-user <<EOF\nparticipant ALL=(ALL) NOPASSWD:ALL\nEOF",
|
|
1461
1470
|
"mkdir -p /home/participant && chown -R participant:participant /home/participant",
|
|
1471
|
+
"mkdir -p /home/participant/.local/bin && chown -R participant:participant /home/participant",
|
|
1462
1472
|
"echo \"User added. Checking configuration\"",
|
|
1463
1473
|
"getent passwd participant"
|
|
1464
1474
|
]
|
|
@@ -1466,34 +1476,58 @@
|
|
|
1466
1476
|
},
|
|
1467
1477
|
{
|
|
1468
1478
|
"action": "aws:runShellScript",
|
|
1469
|
-
"name": "
|
|
1479
|
+
"name": "UpdateProfile",
|
|
1470
1480
|
"inputs": {
|
|
1471
1481
|
"runCommand": [
|
|
1472
1482
|
"#!/bin/bash",
|
|
1473
|
-
"
|
|
1474
|
-
"echo
|
|
1475
|
-
"
|
|
1476
|
-
"
|
|
1477
|
-
|
|
1478
|
-
|
|
1479
|
-
|
|
1483
|
+
"echo LANG=en_US.utf-8 >> /etc/environment",
|
|
1484
|
+
"echo LC_ALL=en_US.UTF-8 >> /etc/environment",
|
|
1485
|
+
"echo 'PATH=$PATH:/home/participant/.local/bin' >> /home/participant/.bashrc",
|
|
1486
|
+
"echo 'export PATH' >> /home/participant/.bashrc",
|
|
1487
|
+
{
|
|
1488
|
+
"Fn::Join": [
|
|
1489
|
+
"",
|
|
1490
|
+
[
|
|
1491
|
+
"echo 'export AWS_REGION=",
|
|
1492
|
+
{
|
|
1493
|
+
"Ref": "AWS::Region"
|
|
1494
|
+
},
|
|
1495
|
+
"' >> /home/participant/.bashrc"
|
|
1496
|
+
]
|
|
1497
|
+
]
|
|
1498
|
+
},
|
|
1499
|
+
{
|
|
1500
|
+
"Fn::Join": [
|
|
1501
|
+
"",
|
|
1502
|
+
[
|
|
1503
|
+
"echo 'export AWS_ACCOUNTID=",
|
|
1504
|
+
{
|
|
1505
|
+
"Ref": "AWS::AccountId"
|
|
1506
|
+
},
|
|
1507
|
+
"' >> /home/participant/.bashrc"
|
|
1508
|
+
]
|
|
1509
|
+
]
|
|
1510
|
+
},
|
|
1511
|
+
"echo 'export NEXT_TELEMETRY_DISABLED=1' >> /home/participant/.bashrc",
|
|
1512
|
+
"echo \"export PS1='\\[\\033[01;32m\\]\\u:\\[\\033[01;34m\\]\\w\\[\\033[00m\\]\\$ '\" >> /home/participant/.bashrc",
|
|
1513
|
+
"chown -R participant:participant /home/participant"
|
|
1480
1514
|
]
|
|
1481
1515
|
}
|
|
1482
1516
|
},
|
|
1483
1517
|
{
|
|
1484
1518
|
"action": "aws:runShellScript",
|
|
1485
|
-
"name": "
|
|
1519
|
+
"name": "InstallAWSCLI",
|
|
1486
1520
|
"inputs": {
|
|
1487
1521
|
"runCommand": [
|
|
1488
1522
|
"#!/bin/bash",
|
|
1489
|
-
"
|
|
1490
|
-
"
|
|
1491
|
-
"
|
|
1492
|
-
"
|
|
1493
|
-
"
|
|
1494
|
-
"
|
|
1495
|
-
"
|
|
1496
|
-
"
|
|
1523
|
+
"mkdir -p /tmp",
|
|
1524
|
+
"curl -fsSL https://awscli.amazonaws.com/awscli-exe-linux-$(uname -m).zip -o /tmp/aws-cli.zip",
|
|
1525
|
+
"chown -R participant:participant /tmp/aws-cli.zip",
|
|
1526
|
+
"unzip -q -d /tmp /tmp/aws-cli.zip",
|
|
1527
|
+
"sudo /tmp/aws/install",
|
|
1528
|
+
"rm -rf /tmp/aws",
|
|
1529
|
+
"echo \"AWS CLI installed. Checking configuration\"",
|
|
1530
|
+
"aws --version"
|
|
1497
1531
|
]
|
|
1498
1532
|
}
|
|
1499
1533
|
},
|
|
@@ -1503,10 +1537,11 @@
|
|
|
1503
1537
|
"inputs": {
|
|
1504
1538
|
"runCommand": [
|
|
1505
1539
|
"#!/bin/bash",
|
|
1540
|
+
"dpkg --configure -a",
|
|
1506
1541
|
"add-apt-repository ppa:git-core/ppa",
|
|
1507
1542
|
"apt-get -q update && DEBIAN_FRONTEND=noninteractive apt-get install -y -q git",
|
|
1508
1543
|
"sudo -u participant git config --global user.email \"participant@example.com\"",
|
|
1509
|
-
"sudo -u participant git config --global user.name \"Workshop
|
|
1544
|
+
"sudo -u participant git config --global user.name \"Workshop Participant\"",
|
|
1510
1545
|
"sudo -u participant git config --global init.defaultBranch \"main\"",
|
|
1511
1546
|
"echo \"Git installed. Checking configuration\"",
|
|
1512
1547
|
"git --version"
|
|
@@ -1515,33 +1550,41 @@
|
|
|
1515
1550
|
},
|
|
1516
1551
|
{
|
|
1517
1552
|
"action": "aws:runShellScript",
|
|
1518
|
-
"name": "
|
|
1553
|
+
"name": "CloneRepo",
|
|
1519
1554
|
"inputs": {
|
|
1520
1555
|
"runCommand": [
|
|
1521
1556
|
"#!/bin/bash",
|
|
1522
|
-
"
|
|
1523
|
-
"echo 'alias pytest=pytest-3' >> /home/participant/.bashrc",
|
|
1524
|
-
"systemctl restart code-server@participant.service",
|
|
1525
|
-
"systemctl start multipathd.service packagekit.service",
|
|
1526
|
-
"systemctl restart unattended-upgrades.service",
|
|
1527
|
-
"echo \"Python and Pip installed. Checking configuration\"",
|
|
1528
|
-
"python3 --version",
|
|
1529
|
-
"pip3 --version"
|
|
1557
|
+
"if [[ -z \"{{ RepoUrl }}\" ]]\nthen\n echo \"No Repo\"\nelse\n mkdir -p /Workshop && chown -R participant:participant /Workshop\n sudo -u participant git clone {{ RepoUrl }} /Workshop\n echo \"Repo {{ RepoUrl }} cloned. Checking configuration\"\n ls -la /Workshop\n sudo -u participant git -C /Workshop remote -v\nfi"
|
|
1530
1558
|
]
|
|
1531
1559
|
}
|
|
1532
1560
|
},
|
|
1533
1561
|
{
|
|
1534
1562
|
"action": "aws:runShellScript",
|
|
1535
|
-
"name": "
|
|
1563
|
+
"name": "DownloadAssets",
|
|
1536
1564
|
"inputs": {
|
|
1537
1565
|
"runCommand": [
|
|
1538
1566
|
"#!/bin/bash",
|
|
1539
|
-
"
|
|
1540
|
-
|
|
1541
|
-
|
|
1542
|
-
|
|
1543
|
-
|
|
1544
|
-
|
|
1567
|
+
"if [[ -z \"{{ AssetZipS3Path }}\" ]]\nthen\n echo \"No assets\"\nelse\n mkdir -p /Workshop && chown -R participant:participant /Workshop\n mkdir -p /tmp\n aws s3 cp s3://{{ AssetZipS3Path }} /tmp/asset.zip\n chown -R participant:participant /tmp/asset.zip\n unzip -o /tmp/asset.zip -d /Workshop\n chown -R participant:participant /Workshop\n if [[ -d /Workshop/.git ]]\n then\n sudo -u participant git -C /Workshop add .\n sudo -u participant git -C /Workshop commit -m 'chore: workshop commit'\n else\n sudo -u participant git -C /Workshop init\n sudo -u participant git -C /Workshop add .\n sudo -u participant git -C /Workshop commit -m 'chore: initial commit'\n fi\n echo \"Assets downloaded. Checking configuration: /Workshop\"\n ls -la /Workshop\n sudo -u participant git -C /Workshop branch\nfi"
|
|
1568
|
+
]
|
|
1569
|
+
}
|
|
1570
|
+
},
|
|
1571
|
+
{
|
|
1572
|
+
"action": "aws:runShellScript",
|
|
1573
|
+
"name": "DownloadFolders",
|
|
1574
|
+
"inputs": {
|
|
1575
|
+
"runCommand": [
|
|
1576
|
+
"#!/bin/bash",
|
|
1577
|
+
"if [[ -z \"{{ FolderZipS3Path }}\" ]]\nthen\n echo \"No folders\"\nelse\n rm -rf /tmp/folder\n mkdir -p /tmp/folder && chown -R participant:participant /tmp/folder\n aws s3 cp s3://{{ FolderZipS3Path }} /tmp/asset-folder.zip\n chown -R participant:participant /tmp/asset-folder.zip\n unzip -o /tmp/asset-folder.zip -d /tmp/folder\n chown -R participant:participant /tmp/folder\n mkdir -p /Workshop && chown -R participant:participant /Workshop\n cd \"/Workshop\" && cd ..\n if [[ $(pwd) == \"/\" ]]\n then\n targetRootFolder=\"\"\n else\n targetRootFolder=$(pwd)\n chown -R participant:participant .\n fi\n find \"/tmp/folder\" -maxdepth 1 -mindepth 1 -type d | while read sourceFolder; do\n folder=\"$(basename $sourceFolder)\"\n echo \"Processing folder: $folder\"\n targetFolder=$targetRootFolder/$folder\n if [[ $targetRootFolder == \"\" ]]\n then\n mv $sourceFolder /\n else\n mv $sourceFolder $targetRootFolder\n fi\n chown -R participant:participant $targetFolder\n sudo -u participant git -C $targetFolder init\n sudo -u participant git -C $targetFolder add .\n sudo -u participant git -C $targetFolder commit -m \"chore: initial commit\"\n echo \"Folder downloaded. Checking configuration: $targetFolder\"\n ls -la $targetFolder\n done\n rm -rf /tmp/folder\nfi"
|
|
1578
|
+
]
|
|
1579
|
+
}
|
|
1580
|
+
},
|
|
1581
|
+
{
|
|
1582
|
+
"action": "aws:runShellScript",
|
|
1583
|
+
"name": "DownloadBranches",
|
|
1584
|
+
"inputs": {
|
|
1585
|
+
"runCommand": [
|
|
1586
|
+
"#!/bin/bash",
|
|
1587
|
+
"if [[ -z \"{{ BranchZipS3Path }}\" ]]\nthen\n echo \"No branches\"\nelse\n rm -rf /tmp/branch\n rm -rf /tmp/git\n mkdir -p /tmp/branch && chown -R participant:participant /tmp/branch\n mkdir -p /tmp/git && chown -R participant:participant /tmp/git\n aws s3 cp s3://{{ BranchZipS3Path }} /tmp/asset-branch.zip\n chown -R participant:participant /tmp/asset-branch.zip\n unzip -o /tmp/asset-branch.zip -d /tmp/branch\n chown -R participant:participant /tmp/branch\n mkdir -p /Workshop && chown -R participant:participant /Workshop\n sudo -u participant git -C /Workshop init\n mv /Workshop/.git /tmp/git\n rm -rf /Workshop\n mkdir -p /Workshop && chown -R participant:participant /Workshop\n mv /tmp/git/.git /Workshop\n find /tmp/branch -maxdepth 1 -mindepth 1 -type d | while read sourceFolder; do\n branch=\"$(basename $sourceFolder)\"\n echo \"Processing branch: $branch\"\n sudo -u participant git -C /Workshop checkout -b $branch 2>&1\n cp -a $sourceFolder/. /Workshop\n sudo -u participant git -C /Workshop add .\n sudo -u participant git -C /Workshop commit -m \"chore: initial commit $branch\"\n mv /Workshop/.git /tmp/git\n rm -rf /Workshop\n mkdir /Workshop && chown -R participant:participant /Workshop\n mv /tmp/git/.git /Workshop\n done\n sudo -u participant git -C /Workshop checkout main 2>&1\n sudo -u participant git -C /Workshop restore .\n rm -rf /tmp/branch\n rm -rf /tmp/git\n echo \"Branches downloaded. Checking configuration: /Workshop\"\n sudo -u participant git -C /Workshop branch\n ls -la /Workshop\nfi"
|
|
1545
1588
|
]
|
|
1546
1589
|
}
|
|
1547
1590
|
},
|
|
@@ -1552,23 +1595,22 @@
|
|
|
1552
1595
|
"runCommand": [
|
|
1553
1596
|
"#!/bin/bash",
|
|
1554
1597
|
"export HOME=/home/participant",
|
|
1555
|
-
"curl -fsSL https://code-server.dev/install.sh |
|
|
1598
|
+
"curl -fsSL https://code-server.dev/install.sh | sh -s -- --version 4.100.3",
|
|
1556
1599
|
"systemctl enable --now code-server@participant 2>&1",
|
|
1557
|
-
"tee /etc/nginx/conf.d/code-server.conf <<EOF\nserver {\n listen 80;\n listen [::]:80;\n # server_name
|
|
1600
|
+
"tee /etc/nginx/conf.d/code-server.conf <<EOF\nserver {\n listen 80;\n listen [::]:80;\n # server_name \\$\\{CloudFrontDistribution.DomainName\\};\n server_name *.cloudfront.net;\n location / {\n proxy_pass http://localhost:8080/;\n proxy_set_header Host \\$host;\n proxy_set_header Upgrade \\$http_upgrade;\n proxy_set_header Connection upgrade;\n proxy_set_header Accept-Encoding gzip;\n }\n location /app {\n proxy_pass http://localhost:8081/app;\n proxy_set_header Host \\$host;\n proxy_set_header Upgrade \\$http_upgrade;\n proxy_set_header Connection upgrade;\n proxy_set_header Accept-Encoding gzip;\n }\n}\nEOF",
|
|
1558
1601
|
"mkdir -p /home/participant/.config/code-server",
|
|
1559
1602
|
"tee /home/participant/.config/code-server/config.yaml <<EOF\ncert: false\nauth: password\nhashed-password: \"$(echo -n {{ VSCodePassword }} | argon2 $(openssl rand -base64 12) -e)\"\nEOF",
|
|
1560
1603
|
"mkdir -p /home/participant/.local/share/code-server/User/",
|
|
1561
1604
|
"touch /home/participant/.hushlogin",
|
|
1562
1605
|
"mkdir -p /Workshop && chown -R participant:participant /Workshop",
|
|
1563
|
-
"tee /home/participant/.local/share/code-server/User/settings.json <<EOF\n{\n \"extensions.autoUpdate\": false,\n \"extensions.autoCheckUpdates\": false,\n \"telemetry.telemetryLevel\": \"off\",\n \"security.workspace.trust.startupPrompt\": \"never\",\n \"security.workspace.trust.enabled\": false,\n \"security.workspace.trust.banner\": \"never\",\n \"security.workspace.trust.emptyWindow\": false,\n \"
|
|
1606
|
+
"tee /home/participant/.local/share/code-server/User/settings.json <<EOF\n{\n \"extensions.autoUpdate\": false,\n \"extensions.autoCheckUpdates\": false,\n \"telemetry.telemetryLevel\": \"off\",\n \"security.workspace.trust.startupPrompt\": \"never\",\n \"security.workspace.trust.enabled\": false,\n \"security.workspace.trust.banner\": \"never\",\n \"security.workspace.trust.emptyWindow\": false,\n \"auto-run-command.rules\": [\n {\n \"command\": \"workbench.action.terminal.new\"\n }\n ]\n}\nEOF",
|
|
1564
1607
|
"chown -R participant:participant /home/participant",
|
|
1565
1608
|
"systemctl restart code-server@participant",
|
|
1566
1609
|
"systemctl restart nginx",
|
|
1567
1610
|
"sudo -u participant --login code-server --install-extension AmazonWebServices.aws-toolkit-vscode --force",
|
|
1568
1611
|
"sudo -u participant --login code-server --install-extension AmazonWebServices.amazon-q-vscode --force",
|
|
1569
|
-
"sudo -u participant --login code-server --install-extension synedra.auto-run-command --force",
|
|
1570
|
-
"sudo -u participant --login code-server --install-extension vscjava.vscode-java-pack --force",
|
|
1571
1612
|
"sudo -u participant --login code-server --install-extension ms-vscode.live-server --force",
|
|
1613
|
+
"sudo -u participant --login code-server --install-extension synedra.auto-run-command --force",
|
|
1572
1614
|
"chown -R participant:participant /home/participant",
|
|
1573
1615
|
"echo \"Nginx installed. Checking configuration\"",
|
|
1574
1616
|
"nginx -t 2>&1",
|
|
@@ -1581,41 +1623,17 @@
|
|
|
1581
1623
|
},
|
|
1582
1624
|
{
|
|
1583
1625
|
"action": "aws:runShellScript",
|
|
1584
|
-
"name": "
|
|
1626
|
+
"name": "InstallNodeApt",
|
|
1585
1627
|
"inputs": {
|
|
1586
1628
|
"runCommand": [
|
|
1587
1629
|
"#!/bin/bash",
|
|
1588
|
-
"
|
|
1589
|
-
"echo
|
|
1590
|
-
"
|
|
1591
|
-
"
|
|
1592
|
-
|
|
1593
|
-
|
|
1594
|
-
|
|
1595
|
-
[
|
|
1596
|
-
"echo 'export AWS_REGION=",
|
|
1597
|
-
{
|
|
1598
|
-
"Ref": "AWS::Region"
|
|
1599
|
-
},
|
|
1600
|
-
"' >> /home/participant/.bashrc"
|
|
1601
|
-
]
|
|
1602
|
-
]
|
|
1603
|
-
},
|
|
1604
|
-
{
|
|
1605
|
-
"Fn::Join": [
|
|
1606
|
-
"",
|
|
1607
|
-
[
|
|
1608
|
-
"echo 'export AWS_ACCOUNTID=",
|
|
1609
|
-
{
|
|
1610
|
-
"Ref": "AWS::AccountId"
|
|
1611
|
-
},
|
|
1612
|
-
"' >> /home/participant/.bashrc"
|
|
1613
|
-
]
|
|
1614
|
-
]
|
|
1615
|
-
},
|
|
1616
|
-
"echo 'export NEXT_TELEMETRY_DISABLED=1' >> /home/participant/.bashrc",
|
|
1617
|
-
"echo \"export PS1='\\[\\033[01;32m\\]\\u:\\[\\033[01;34m\\]\\w\\[\\033[00m\\]\\$ '\" >> /home/participant/.bashrc",
|
|
1618
|
-
"chown -R participant:participant /home/participant"
|
|
1630
|
+
"curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /usr/share/keyrings/nodesource.gpg",
|
|
1631
|
+
"echo \"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_{{ NodeVersion }}.x nodistro main\" > /etc/apt/sources.list.d/nodesource.list",
|
|
1632
|
+
"apt-get -q update && DEBIAN_FRONTEND=noninteractive apt-get install -y -q nodejs",
|
|
1633
|
+
"npm install -g npm@latest",
|
|
1634
|
+
"echo \"Node and npm installed. Checking configuration\"",
|
|
1635
|
+
"node -v",
|
|
1636
|
+
"npm -v"
|
|
1619
1637
|
]
|
|
1620
1638
|
}
|
|
1621
1639
|
},
|
|
@@ -1630,6 +1648,133 @@
|
|
|
1630
1648
|
"cdk --version"
|
|
1631
1649
|
]
|
|
1632
1650
|
}
|
|
1651
|
+
},
|
|
1652
|
+
{
|
|
1653
|
+
"action": "aws:runShellScript",
|
|
1654
|
+
"name": "InstallQCLI",
|
|
1655
|
+
"inputs": {
|
|
1656
|
+
"runCommand": [
|
|
1657
|
+
"#!/bin/bash",
|
|
1658
|
+
"curl --proto '=https' --tlsv1.2 -sSf \"https://desktop-release.q.us-east-1.amazonaws.com/latest/q-$(uname -m)-linux.zip\" -o /tmp/q.zip",
|
|
1659
|
+
"chown -R participant:participant /tmp/q.zip",
|
|
1660
|
+
"unzip -q -d /tmp /tmp/q.zip",
|
|
1661
|
+
"chown -R participant:participant /tmp/q",
|
|
1662
|
+
"chmod +x /tmp/q/install.sh",
|
|
1663
|
+
"sudo -u participant /tmp/q/install.sh --no-confirm",
|
|
1664
|
+
"rm -rf /tmp/q",
|
|
1665
|
+
"q --version",
|
|
1666
|
+
"echo \"Amazon Q CLI installed\""
|
|
1667
|
+
]
|
|
1668
|
+
}
|
|
1669
|
+
},
|
|
1670
|
+
{
|
|
1671
|
+
"action": "aws:runShellScript",
|
|
1672
|
+
"name": "Installuv",
|
|
1673
|
+
"inputs": {
|
|
1674
|
+
"runCommand": [
|
|
1675
|
+
"#!/bin/bash",
|
|
1676
|
+
"sudo -u participant --login curl -fsSL https://astral.sh/uv/install.sh -o /tmp/uv_install.sh",
|
|
1677
|
+
"sudo -u participant --login bash /tmp/uv_install.sh",
|
|
1678
|
+
"if uv generate-shell-completion bash &>/dev/null; then\n echo 'eval \"$(uv generate-shell-completion bash)\"' >> /home/participant/.bashrc\nfi",
|
|
1679
|
+
"if uvx generate-shell-completion bash &>/dev/null; then\n echo 'eval \"$(uvx generate-shell-completion bash)\"' >> /home/participant/.bashrc\nfi",
|
|
1680
|
+
"echo \"uv installed. Checking configuration\"",
|
|
1681
|
+
"sudo -u participant --login uv --version"
|
|
1682
|
+
]
|
|
1683
|
+
}
|
|
1684
|
+
},
|
|
1685
|
+
{
|
|
1686
|
+
"action": "aws:runShellScript",
|
|
1687
|
+
"name": "InstallPythonApt",
|
|
1688
|
+
"inputs": {
|
|
1689
|
+
"runCommand": [
|
|
1690
|
+
"#!/bin/bash",
|
|
1691
|
+
"dpkg --configure -a",
|
|
1692
|
+
"apt-get -q update && DEBIAN_FRONTEND=noninteractive apt-get install -y -q python3-pip python3-venv python3-boto3 python3-pytest",
|
|
1693
|
+
"echo 'alias pytest=pytest-3' >> /home/participant/.bashrc",
|
|
1694
|
+
"systemctl start multipathd.service packagekit.service",
|
|
1695
|
+
"systemctl restart unattended-upgrades.service",
|
|
1696
|
+
"systemctl restart networkd-dispatcher.service",
|
|
1697
|
+
"sudo -u participant --login code-server --install-extension ms-python.python --force",
|
|
1698
|
+
"if [ -f /home/participant/.local/share/code-server/User/settings.json ]; then\n sed -i \"2i\\\\ \\\"python.testing.pytestEnabled\\\": true,\" /home/participant/.local/share/code-server/User/settings.json\nelse\n echo '{\n \"python.testing.pytestEnabled\": true\n }' > /home/participant/.local/share/code-server/User/settings.json\nfi",
|
|
1699
|
+
"echo \"Python and Pip installed. Checking configuration\"",
|
|
1700
|
+
"python3 --version",
|
|
1701
|
+
"pip3 --version"
|
|
1702
|
+
]
|
|
1703
|
+
}
|
|
1704
|
+
},
|
|
1705
|
+
{
|
|
1706
|
+
"action": "aws:runShellScript",
|
|
1707
|
+
"name": "InstallJavaApt",
|
|
1708
|
+
"inputs": {
|
|
1709
|
+
"runCommand": [
|
|
1710
|
+
"#!/bin/bash",
|
|
1711
|
+
"dpkg --configure -a",
|
|
1712
|
+
"curl -fsSL https://apt.corretto.aws/corretto.key | gpg --dearmor -o /usr/share/keyrings/corretto-keyring.gpg",
|
|
1713
|
+
"echo \"deb [signed-by=/usr/share/keyrings/corretto-keyring.gpg] https://apt.corretto.aws stable main\" > /etc/apt/sources.list.d/corretto.list",
|
|
1714
|
+
"DEBIAN_FRONTEND=noninteractive apt-get update",
|
|
1715
|
+
"DEBIAN_FRONTEND=noninteractive apt-get install -y -q java-21-amazon-corretto-jdk java-17-amazon-corretto-jdk java-1.8.0-amazon-corretto-jdk maven",
|
|
1716
|
+
"echo 'export JAVA_8_HOME=$(update-alternatives --list java | grep \"java-1.8.0-amazon-corretto\" | head -1)' >> /home/participant/.bashrc",
|
|
1717
|
+
"echo 'export JAVA_8_PATH=$(update-alternatives --list java | grep \"java-1.8.0-amazon-corretto\" | head -1)' >> /home/participant/.bashrc",
|
|
1718
|
+
"echo 'export JAVA_17_PATH=$(update-alternatives --list java | grep \"java-17-amazon-corretto\" | head -1)' >> /home/participant/.bashrc",
|
|
1719
|
+
"echo 'export JAVA_17_HOME=$(update-alternatives --list java | grep \"java-17-amazon-corretto\" | head -1)' >> /home/participant/.bashrc",
|
|
1720
|
+
"echo 'export JAVA_21_PATH=$(update-alternatives --list java | grep \"java-21-amazon-corretto\" | head -1)' >> /home/participant/.bashrc",
|
|
1721
|
+
"echo 'export JAVA_21_HOME=$(update-alternatives --list java | grep \"java-21-amazon-corretto\" | head -1)' >> /home/participant/.bashrc",
|
|
1722
|
+
"echo 'export JAVA_HOME=$(update-alternatives --list java | grep \"java-21-amazon-corretto\" | head -1)' >> /home/participant/.bashrc",
|
|
1723
|
+
"echo 'export PATH=$PATH:$JAVA_HOME/bin:/usr/share/maven/bin' >> /home/participant/.bashrc",
|
|
1724
|
+
"sudo -u participant --login code-server --install-extension vscjava.vscode-java-pack --force",
|
|
1725
|
+
"echo \"Java and Maven installed. Checking configuration\"",
|
|
1726
|
+
"java -version 2>&1",
|
|
1727
|
+
"mvn --version",
|
|
1728
|
+
"update-alternatives --list java"
|
|
1729
|
+
]
|
|
1730
|
+
}
|
|
1731
|
+
},
|
|
1732
|
+
{
|
|
1733
|
+
"action": "aws:runShellScript",
|
|
1734
|
+
"name": "InstallDotnetApt",
|
|
1735
|
+
"inputs": {
|
|
1736
|
+
"runCommand": [
|
|
1737
|
+
"#!/bin/bash",
|
|
1738
|
+
"dpkg --configure -a",
|
|
1739
|
+
"apt-get -q update && DEBIAN_FRONTEND=noninteractive apt-get install -y -q dotnet-sdk-8.0",
|
|
1740
|
+
"dotnet tool install -g Microsoft.Web.LibraryManager.Cli",
|
|
1741
|
+
"echo 'PATH=$PATH:/home/participant/.dotnet/tools' >> /home/participant/.bashrc",
|
|
1742
|
+
"chown -R participant:participant /home/participant",
|
|
1743
|
+
"echo \"Dotnet installed. Checking configuration\"",
|
|
1744
|
+
"dotnet --list-sdks"
|
|
1745
|
+
]
|
|
1746
|
+
}
|
|
1747
|
+
},
|
|
1748
|
+
{
|
|
1749
|
+
"action": "aws:runShellScript",
|
|
1750
|
+
"name": "InstallDockerApt",
|
|
1751
|
+
"inputs": {
|
|
1752
|
+
"runCommand": [
|
|
1753
|
+
"#!/bin/bash",
|
|
1754
|
+
"curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg",
|
|
1755
|
+
"echo \"deb [signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release --codename --short) stable\" > /etc/apt/sources.list.d/docker.list",
|
|
1756
|
+
"apt-get -q update && DEBIAN_FRONTEND=noninteractive apt-get install -y -q docker-ce docker-ce-cli containerd.io",
|
|
1757
|
+
"usermod -aG docker participant",
|
|
1758
|
+
"systemctl restart code-server@participant.service",
|
|
1759
|
+
"systemctl start docker.service",
|
|
1760
|
+
"echo \"Docker installed. Checking configuration\"",
|
|
1761
|
+
"docker --version",
|
|
1762
|
+
"systemctl status docker.service"
|
|
1763
|
+
]
|
|
1764
|
+
}
|
|
1765
|
+
},
|
|
1766
|
+
{
|
|
1767
|
+
"action": "aws:runShellScript",
|
|
1768
|
+
"name": "InstallGolangApt",
|
|
1769
|
+
"inputs": {
|
|
1770
|
+
"runCommand": [
|
|
1771
|
+
"#!/bin/bash",
|
|
1772
|
+
"apt-get -q update && DEBIAN_FRONTEND=noninteractive apt-get install -y -q golang",
|
|
1773
|
+
"echo 'PATH=$PATH:/home/participant/go/bin' >> /home/participant/.bashrc",
|
|
1774
|
+
"echo \"Golang installed. Checking configuration\"",
|
|
1775
|
+
"go version"
|
|
1776
|
+
]
|
|
1777
|
+
}
|
|
1633
1778
|
}
|
|
1634
1779
|
]
|
|
1635
1780
|
},
|
|
@@ -1683,6 +1828,13 @@
|
|
|
1683
1828
|
{
|
|
1684
1829
|
"reason": "For this lambda the latest runtime is not needed",
|
|
1685
1830
|
"id": "AwsSolutions-L1"
|
|
1831
|
+
},
|
|
1832
|
+
{
|
|
1833
|
+
"reason": "ssm:GetCommandInvocation and ssm:ListCommandInvocations do not support resource-level permissions and require wildcard resources",
|
|
1834
|
+
"id": "AwsSolutions-IAM5",
|
|
1835
|
+
"applies_to": [
|
|
1836
|
+
"Resource::*"
|
|
1837
|
+
]
|
|
1686
1838
|
}
|
|
1687
1839
|
]
|
|
1688
1840
|
}
|
|
@@ -1694,11 +1846,7 @@
|
|
|
1694
1846
|
"PolicyDocument": {
|
|
1695
1847
|
"Statement": [
|
|
1696
1848
|
{
|
|
1697
|
-
"Action":
|
|
1698
|
-
"ssm:GetCommandInvocation",
|
|
1699
|
-
"ssm:ListCommandInvocations",
|
|
1700
|
-
"ssm:SendCommand"
|
|
1701
|
-
],
|
|
1849
|
+
"Action": "ssm:SendCommand",
|
|
1702
1850
|
"Effect": "Allow",
|
|
1703
1851
|
"Resource": [
|
|
1704
1852
|
{
|
|
@@ -1765,6 +1913,14 @@
|
|
|
1765
1913
|
]
|
|
1766
1914
|
}
|
|
1767
1915
|
]
|
|
1916
|
+
},
|
|
1917
|
+
{
|
|
1918
|
+
"Action": [
|
|
1919
|
+
"ssm:GetCommandInvocation",
|
|
1920
|
+
"ssm:ListCommandInvocations"
|
|
1921
|
+
],
|
|
1922
|
+
"Effect": "Allow",
|
|
1923
|
+
"Resource": "*"
|
|
1768
1924
|
}
|
|
1769
1925
|
],
|
|
1770
1926
|
"Version": "2012-10-17"
|
|
@@ -1775,6 +1931,19 @@
|
|
|
1775
1931
|
"Ref": "IntegVSCodeServerInstallerOnEventHandlerServiceRole59651FEF"
|
|
1776
1932
|
}
|
|
1777
1933
|
]
|
|
1934
|
+
},
|
|
1935
|
+
"Metadata": {
|
|
1936
|
+
"cdk_nag": {
|
|
1937
|
+
"rules_to_suppress": [
|
|
1938
|
+
{
|
|
1939
|
+
"reason": "ssm:GetCommandInvocation and ssm:ListCommandInvocations do not support resource-level permissions and require wildcard resources",
|
|
1940
|
+
"id": "AwsSolutions-IAM5",
|
|
1941
|
+
"applies_to": [
|
|
1942
|
+
"Resource::*"
|
|
1943
|
+
]
|
|
1944
|
+
}
|
|
1945
|
+
]
|
|
1946
|
+
}
|
|
1778
1947
|
}
|
|
1779
1948
|
},
|
|
1780
1949
|
"IntegVSCodeServerInstallerOnEventHandler6FF91542": {
|
|
@@ -1784,7 +1953,7 @@
|
|
|
1784
1953
|
"S3Bucket": {
|
|
1785
1954
|
"Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"
|
|
1786
1955
|
},
|
|
1787
|
-
"S3Key": "
|
|
1956
|
+
"S3Key": "2f99f38311da357eaaea1284d67c759759324dec4a1cd11621d9c59eea9e81df.zip"
|
|
1788
1957
|
},
|
|
1789
1958
|
"Description": "src/installer/installer.lambda.ts",
|
|
1790
1959
|
"Handler": "index.handler",
|
|
@@ -1795,8 +1964,8 @@
|
|
|
1795
1964
|
"Arn"
|
|
1796
1965
|
]
|
|
1797
1966
|
},
|
|
1798
|
-
"Runtime": "
|
|
1799
|
-
"Timeout":
|
|
1967
|
+
"Runtime": "nodejs22.x",
|
|
1968
|
+
"Timeout": 900
|
|
1800
1969
|
},
|
|
1801
1970
|
"DependsOn": [
|
|
1802
1971
|
"IntegVSCodeServerInstallerOnEventHandlerServiceRoleDefaultPolicy1CAD86C2",
|
|
@@ -1812,6 +1981,13 @@
|
|
|
1812
1981
|
{
|
|
1813
1982
|
"reason": "For this lambda the latest runtime is not needed",
|
|
1814
1983
|
"id": "AwsSolutions-L1"
|
|
1984
|
+
},
|
|
1985
|
+
{
|
|
1986
|
+
"reason": "ssm:GetCommandInvocation and ssm:ListCommandInvocations do not support resource-level permissions and require wildcard resources",
|
|
1987
|
+
"id": "AwsSolutions-IAM5",
|
|
1988
|
+
"applies_to": [
|
|
1989
|
+
"Resource::*"
|
|
1990
|
+
]
|
|
1815
1991
|
}
|
|
1816
1992
|
]
|
|
1817
1993
|
}
|
|
@@ -2006,7 +2182,7 @@
|
|
|
2006
2182
|
"Arn"
|
|
2007
2183
|
]
|
|
2008
2184
|
},
|
|
2009
|
-
"ServiceTimeout":
|
|
2185
|
+
"ServiceTimeout": 905,
|
|
2010
2186
|
"InstanceId": {
|
|
2011
2187
|
"Ref": "IntegVSCodeServerserverinstance0A3D62D7"
|
|
2012
2188
|
},
|
|
@@ -2198,7 +2374,7 @@
|
|
|
2198
2374
|
"S3Bucket": {
|
|
2199
2375
|
"Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"
|
|
2200
2376
|
},
|
|
2201
|
-
"S3Key": "
|
|
2377
|
+
"S3Key": "efac30c7091c58fed492058fa6403c14f7e58aab8cf4fd595d838b8d5eeec2b9.zip"
|
|
2202
2378
|
},
|
|
2203
2379
|
"Handler": "index.handler",
|
|
2204
2380
|
"Role": {
|