cdk-github-microvm-runners 0.1.3__tar.gz → 0.1.5__tar.gz
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.
- {cdk_github_microvm_runners-0.1.3/src/cdk_github_microvm_runners.egg-info → cdk_github_microvm_runners-0.1.5}/PKG-INFO +1 -1
- {cdk_github_microvm_runners-0.1.3 → cdk_github_microvm_runners-0.1.5}/setup.py +2 -2
- {cdk_github_microvm_runners-0.1.3 → cdk_github_microvm_runners-0.1.5}/src/cdk_github_microvm_runners/__init__.py +39 -17
- {cdk_github_microvm_runners-0.1.3 → cdk_github_microvm_runners-0.1.5}/src/cdk_github_microvm_runners/_jsii/__init__.py +2 -2
- {cdk_github_microvm_runners-0.1.3 → cdk_github_microvm_runners-0.1.5}/src/cdk_github_microvm_runners/_jsii/bin/cdk-github-microvm-runners +2 -2
- cdk_github_microvm_runners-0.1.5/src/cdk_github_microvm_runners/_jsii/cdk-github-microvm-runners@0.1.5.jsii.tgz +0 -0
- {cdk_github_microvm_runners-0.1.3 → cdk_github_microvm_runners-0.1.5/src/cdk_github_microvm_runners.egg-info}/PKG-INFO +1 -1
- {cdk_github_microvm_runners-0.1.3 → cdk_github_microvm_runners-0.1.5}/src/cdk_github_microvm_runners.egg-info/SOURCES.txt +1 -1
- cdk_github_microvm_runners-0.1.3/src/cdk_github_microvm_runners/_jsii/cdk-github-microvm-runners@0.1.3.jsii.tgz +0 -0
- {cdk_github_microvm_runners-0.1.3 → cdk_github_microvm_runners-0.1.5}/LICENSE +0 -0
- {cdk_github_microvm_runners-0.1.3 → cdk_github_microvm_runners-0.1.5}/MANIFEST.in +0 -0
- {cdk_github_microvm_runners-0.1.3 → cdk_github_microvm_runners-0.1.5}/README.md +0 -0
- {cdk_github_microvm_runners-0.1.3 → cdk_github_microvm_runners-0.1.5}/pyproject.toml +0 -0
- {cdk_github_microvm_runners-0.1.3 → cdk_github_microvm_runners-0.1.5}/setup.cfg +0 -0
- {cdk_github_microvm_runners-0.1.3 → cdk_github_microvm_runners-0.1.5}/src/cdk_github_microvm_runners/py.typed +0 -0
- {cdk_github_microvm_runners-0.1.3 → cdk_github_microvm_runners-0.1.5}/src/cdk_github_microvm_runners.egg-info/dependency_links.txt +0 -0
- {cdk_github_microvm_runners-0.1.3 → cdk_github_microvm_runners-0.1.5}/src/cdk_github_microvm_runners.egg-info/requires.txt +0 -0
- {cdk_github_microvm_runners-0.1.3 → cdk_github_microvm_runners-0.1.5}/src/cdk_github_microvm_runners.egg-info/top_level.txt +0 -0
|
@@ -5,7 +5,7 @@ kwargs = json.loads(
|
|
|
5
5
|
"""
|
|
6
6
|
{
|
|
7
7
|
"name": "cdk-github-microvm-runners",
|
|
8
|
-
"version": "0.1.
|
|
8
|
+
"version": "0.1.5",
|
|
9
9
|
"description": "CDK construct for running GitHub Actions jobs on AWS Lambda MicroVMs, with one ephemeral runner per job.",
|
|
10
10
|
"license": "Apache-2.0",
|
|
11
11
|
"url": "https://runnerset.dev",
|
|
@@ -26,7 +26,7 @@ kwargs = json.loads(
|
|
|
26
26
|
],
|
|
27
27
|
"package_data": {
|
|
28
28
|
"cdk_github_microvm_runners._jsii": [
|
|
29
|
-
"cdk-github-microvm-runners@0.1.
|
|
29
|
+
"cdk-github-microvm-runners@0.1.5.jsii.tgz"
|
|
30
30
|
],
|
|
31
31
|
"cdk_github_microvm_runners": [
|
|
32
32
|
"py.typed"
|
|
@@ -860,7 +860,7 @@ class GithubMicrovmRunners(
|
|
|
860
860
|
:param network: How launched MicroVMs and image builds reach the network. Default: RunnerNetwork.internetEgress()
|
|
861
861
|
:param permissions_boundary: Permissions boundary applied to every IAM role this construct creates: the handler execution roles, the per-class image build roles, and the network-connector operator role. It is applied once at construct scope, so roles created later also carry it — the warm-pool handler's role, and the build role of any runner class registered after construction. Default: undefined (no boundary)
|
|
862
862
|
:param point_in_time_recovery: Turn on DynamoDB point-in-time recovery for the runner table. Default: false
|
|
863
|
-
:param recover_stuck_launches:
|
|
863
|
+
:param recover_stuck_launches: Re-launch jobs that are still waiting for a runner they never got. This is the floor under an event-driven plane, and it is on by default. GitHub announces a job once. If the launch that announcement triggered doesn't end with the job being served, nothing else ever asks again, and the job waits for as long as the workflow allows with no error anywhere — the plane looks healthy because by its own bookkeeping it did its work. Each janitor sweep closes that hole from two directions: it re-drives dead-lettered launch messages back onto the job queue, and it re-launches claims whose VM is gone while the job is still queued. Both check with GitHub first, so a job that has since completed or been cancelled is discarded rather than booting a VM for work nobody is waiting on. Turn it off only if you want a job that slips through to stay stuck. The cost of leaving it on is one extra GitHub read per sweep per candidate, bounded per sweep so it cannot exhaust the installation's rate limit. The janitor counts recoveries under the ``stuckLaunchesRecovered`` and ``stuckClaimsRelaunched`` metrics, which report when ``emitMetrics`` is on. A count that stays high means launches are failing for some ongoing reason and the recovery is masking it — alarm on it rather than ignoring it. Default: true
|
|
864
864
|
:param removal_policy: Removal policy for this runner set's stateful resources: the runner table and any log group the construct creates. The table holds correlation data for VMs that are currently running, all of which the janitor can rebuild from the MicroVM and GitHub APIs. Default: RemovalPolicy.DESTROY
|
|
865
865
|
:param vm_execution_role: An AWS identity for this runner set's runner VMs. By default the VMs carry no AWS identity at all: the runner agent talks outbound to GitHub, the just-in-time registration is pushed to the VM over a platform-authenticated channel, and a job that needs AWS assumes its own role through GitHub OIDC. With a role attached, the MicroVM's instance metadata service serves that role's credentials to arbitrary job code, so every job running on this runner set can do whatever the role can do. ``consoleLogs`` requires a role, because the platform writes a VM's console output using it. Default: undefined (the VMs carry no AWS identity)
|
|
866
866
|
:param warm_pool_interval: How often the warm-pool sweep refills pre-booted VMs. It applies only to runner classes that set ``RunnerClassProps.warmPoolSize``, and the warm-pool handler and its schedule are only created once such a class is registered. A runner set with no warm class never runs this sweep, and never reads this value. Default: Duration.minutes(2)
|
|
@@ -1403,8 +1403,17 @@ class GithubMicrovmRunnersMetrics(
|
|
|
1403
1403
|
|
|
1404
1404
|
A value that stays above zero means the runner set is
|
|
1405
1405
|
failing to reconcile — VMs left running, runners left unreaped — even
|
|
1406
|
-
though each sweep completes. It fires on one error
|
|
1407
|
-
|
|
1406
|
+
though each sweep completes. It fires on one error in each of three
|
|
1407
|
+
consecutive 5-minute periods; pass ``RunnerAlarmOptions`` to change that.
|
|
1408
|
+
|
|
1409
|
+
The three periods are the point. A single sweep error is usually a
|
|
1410
|
+
transient fault the next sweep sails past — a GitHub API call that lost
|
|
1411
|
+
its connection, a throttled describe — and the sweep is convergent, so
|
|
1412
|
+
the work is retried five minutes later either way. Alarming on one such
|
|
1413
|
+
blip pages an operator for something already fixed by the time they
|
|
1414
|
+
read it. A genuine reconciliation failure (expired credentials, a broken
|
|
1415
|
+
table, a revoked App installation) fails every sweep, so it still
|
|
1416
|
+
announces itself within fifteen minutes.
|
|
1408
1417
|
|
|
1409
1418
|
Requires ``GithubMicrovmRunnersProps.emitMetrics``, and throws at synth
|
|
1410
1419
|
without it.
|
|
@@ -1414,7 +1423,7 @@ class GithubMicrovmRunnersMetrics(
|
|
|
1414
1423
|
:param period: Aggregation period for the metric. Default: Duration.minutes(5)
|
|
1415
1424
|
:param threshold: Value at or above which the alarm fires. Default: 1
|
|
1416
1425
|
|
|
1417
|
-
:default: threshold 1,
|
|
1426
|
+
:default: threshold 1, 3 evaluation periods, 5-minute period
|
|
1418
1427
|
'''
|
|
1419
1428
|
if __debug__:
|
|
1420
1429
|
type_hints = cached_type_hints(_typecheckingstub__971f59e7dc4d5b4245765d41b7dcc4075c4dd91870a15df6b9f345ee393cdc61)
|
|
@@ -1559,7 +1568,7 @@ class GithubMicrovmRunnersProps:
|
|
|
1559
1568
|
:param network: How launched MicroVMs and image builds reach the network. Default: RunnerNetwork.internetEgress()
|
|
1560
1569
|
:param permissions_boundary: Permissions boundary applied to every IAM role this construct creates: the handler execution roles, the per-class image build roles, and the network-connector operator role. It is applied once at construct scope, so roles created later also carry it — the warm-pool handler's role, and the build role of any runner class registered after construction. Default: undefined (no boundary)
|
|
1561
1570
|
:param point_in_time_recovery: Turn on DynamoDB point-in-time recovery for the runner table. Default: false
|
|
1562
|
-
:param recover_stuck_launches:
|
|
1571
|
+
:param recover_stuck_launches: Re-launch jobs that are still waiting for a runner they never got. This is the floor under an event-driven plane, and it is on by default. GitHub announces a job once. If the launch that announcement triggered doesn't end with the job being served, nothing else ever asks again, and the job waits for as long as the workflow allows with no error anywhere — the plane looks healthy because by its own bookkeeping it did its work. Each janitor sweep closes that hole from two directions: it re-drives dead-lettered launch messages back onto the job queue, and it re-launches claims whose VM is gone while the job is still queued. Both check with GitHub first, so a job that has since completed or been cancelled is discarded rather than booting a VM for work nobody is waiting on. Turn it off only if you want a job that slips through to stay stuck. The cost of leaving it on is one extra GitHub read per sweep per candidate, bounded per sweep so it cannot exhaust the installation's rate limit. The janitor counts recoveries under the ``stuckLaunchesRecovered`` and ``stuckClaimsRelaunched`` metrics, which report when ``emitMetrics`` is on. A count that stays high means launches are failing for some ongoing reason and the recovery is masking it — alarm on it rather than ignoring it. Default: true
|
|
1563
1572
|
:param removal_policy: Removal policy for this runner set's stateful resources: the runner table and any log group the construct creates. The table holds correlation data for VMs that are currently running, all of which the janitor can rebuild from the MicroVM and GitHub APIs. Default: RemovalPolicy.DESTROY
|
|
1564
1573
|
:param vm_execution_role: An AWS identity for this runner set's runner VMs. By default the VMs carry no AWS identity at all: the runner agent talks outbound to GitHub, the just-in-time registration is pushed to the VM over a platform-authenticated channel, and a job that needs AWS assumes its own role through GitHub OIDC. With a role attached, the MicroVM's instance metadata service serves that role's credentials to arbitrary job code, so every job running on this runner set can do whatever the role can do. ``consoleLogs`` requires a role, because the platform writes a VM's console output using it. Default: undefined (the VMs carry no AWS identity)
|
|
1565
1574
|
:param warm_pool_interval: How often the warm-pool sweep refills pre-booted VMs. It applies only to runner classes that set ``RunnerClassProps.warmPoolSize``, and the warm-pool handler and its schedule are only created once such a class is registered. A runner set with no warm class never runs this sweep, and never reads this value. Default: Duration.minutes(2)
|
|
@@ -1883,18 +1892,31 @@ class GithubMicrovmRunnersProps:
|
|
|
1883
1892
|
|
|
1884
1893
|
@builtins.property
|
|
1885
1894
|
def recover_stuck_launches(self) -> typing.Optional[builtins.bool]:
|
|
1886
|
-
'''
|
|
1887
|
-
|
|
1888
|
-
|
|
1889
|
-
|
|
1890
|
-
|
|
1891
|
-
|
|
1892
|
-
|
|
1893
|
-
|
|
1894
|
-
|
|
1895
|
-
|
|
1896
|
-
|
|
1897
|
-
|
|
1895
|
+
'''Re-launch jobs that are still waiting for a runner they never got.
|
|
1896
|
+
|
|
1897
|
+
This is
|
|
1898
|
+
the floor under an event-driven plane, and it is on by default.
|
|
1899
|
+
|
|
1900
|
+
GitHub announces a job once. If the launch that announcement triggered
|
|
1901
|
+
doesn't end with the job being served, nothing else ever asks again, and
|
|
1902
|
+
the job waits for as long as the workflow allows with no error anywhere —
|
|
1903
|
+
the plane looks healthy because by its own bookkeeping it did its work.
|
|
1904
|
+
Each janitor sweep closes that hole from two directions: it re-drives
|
|
1905
|
+
dead-lettered launch messages back onto the job queue, and it re-launches
|
|
1906
|
+
claims whose VM is gone while the job is still queued. Both check with
|
|
1907
|
+
GitHub first, so a job that has since completed or been cancelled is
|
|
1908
|
+
discarded rather than booting a VM for work nobody is waiting on.
|
|
1909
|
+
|
|
1910
|
+
Turn it off only if you want a job that slips through to stay stuck. The
|
|
1911
|
+
cost of leaving it on is one extra GitHub read per sweep per candidate,
|
|
1912
|
+
bounded per sweep so it cannot exhaust the installation's rate limit.
|
|
1913
|
+
|
|
1914
|
+
The janitor counts recoveries under the ``stuckLaunchesRecovered`` and
|
|
1915
|
+
``stuckClaimsRelaunched`` metrics, which report when ``emitMetrics`` is on. A
|
|
1916
|
+
count that stays high means launches are failing for some ongoing reason
|
|
1917
|
+
and the recovery is masking it — alarm on it rather than ignoring it.
|
|
1918
|
+
|
|
1919
|
+
:default: true
|
|
1898
1920
|
'''
|
|
1899
1921
|
result = self._values.get("recover_stuck_launches")
|
|
1900
1922
|
return typing.cast(typing.Optional[builtins.bool], result)
|
|
@@ -19,9 +19,9 @@ import constructs._jsii
|
|
|
19
19
|
|
|
20
20
|
__jsii_assembly__ = jsii.JSIIAssembly.load(
|
|
21
21
|
"cdk-github-microvm-runners",
|
|
22
|
-
"0.1.
|
|
22
|
+
"0.1.5",
|
|
23
23
|
__name__[0:-6],
|
|
24
|
-
"cdk-github-microvm-runners@0.1.
|
|
24
|
+
"cdk-github-microvm-runners@0.1.5.jsii.tgz",
|
|
25
25
|
)
|
|
26
26
|
|
|
27
27
|
__all__ = [
|
|
@@ -9,9 +9,9 @@ if "JSII_RUNTIME_PACKAGE_CACHE" not in os.environ:
|
|
|
9
9
|
|
|
10
10
|
__jsii_assembly__ = jsii.JSIIAssembly.load(
|
|
11
11
|
"cdk-github-microvm-runners",
|
|
12
|
-
"0.1.
|
|
12
|
+
"0.1.5",
|
|
13
13
|
"cdk_github_microvm_runners",
|
|
14
|
-
"cdk-github-microvm-runners@0.1.
|
|
14
|
+
"cdk-github-microvm-runners@0.1.5.jsii.tgz",
|
|
15
15
|
)
|
|
16
16
|
|
|
17
17
|
exit_code = __jsii_assembly__.invokeBinScript(
|
|
Binary file
|
|
@@ -11,5 +11,5 @@ src/cdk_github_microvm_runners.egg-info/dependency_links.txt
|
|
|
11
11
|
src/cdk_github_microvm_runners.egg-info/requires.txt
|
|
12
12
|
src/cdk_github_microvm_runners.egg-info/top_level.txt
|
|
13
13
|
src/cdk_github_microvm_runners/_jsii/__init__.py
|
|
14
|
-
src/cdk_github_microvm_runners/_jsii/cdk-github-microvm-runners@0.1.
|
|
14
|
+
src/cdk_github_microvm_runners/_jsii/cdk-github-microvm-runners@0.1.5.jsii.tgz
|
|
15
15
|
src/cdk_github_microvm_runners/_jsii/bin/cdk-github-microvm-runners
|
|
Binary file
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|