cdk-github-microvm-runners 0.1.9__tar.gz → 0.1.11__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.9/src/cdk_github_microvm_runners.egg-info → cdk_github_microvm_runners-0.1.11}/PKG-INFO +2 -2
- {cdk_github_microvm_runners-0.1.9 → cdk_github_microvm_runners-0.1.11}/setup.py +3 -3
- {cdk_github_microvm_runners-0.1.9 → cdk_github_microvm_runners-0.1.11}/src/cdk_github_microvm_runners/__init__.py +41 -11
- {cdk_github_microvm_runners-0.1.9 → cdk_github_microvm_runners-0.1.11}/src/cdk_github_microvm_runners/_jsii/__init__.py +2 -2
- {cdk_github_microvm_runners-0.1.9 → cdk_github_microvm_runners-0.1.11}/src/cdk_github_microvm_runners/_jsii/bin/cdk-github-microvm-runners +2 -2
- cdk_github_microvm_runners-0.1.11/src/cdk_github_microvm_runners/_jsii/cdk-github-microvm-runners@0.1.11.jsii.tgz +0 -0
- {cdk_github_microvm_runners-0.1.9 → cdk_github_microvm_runners-0.1.11/src/cdk_github_microvm_runners.egg-info}/PKG-INFO +2 -2
- {cdk_github_microvm_runners-0.1.9 → cdk_github_microvm_runners-0.1.11}/src/cdk_github_microvm_runners.egg-info/SOURCES.txt +1 -1
- {cdk_github_microvm_runners-0.1.9 → cdk_github_microvm_runners-0.1.11}/src/cdk_github_microvm_runners.egg-info/requires.txt +1 -1
- cdk_github_microvm_runners-0.1.9/src/cdk_github_microvm_runners/_jsii/cdk-github-microvm-runners@0.1.9.jsii.tgz +0 -0
- {cdk_github_microvm_runners-0.1.9 → cdk_github_microvm_runners-0.1.11}/LICENSE +0 -0
- {cdk_github_microvm_runners-0.1.9 → cdk_github_microvm_runners-0.1.11}/MANIFEST.in +0 -0
- {cdk_github_microvm_runners-0.1.9 → cdk_github_microvm_runners-0.1.11}/README.md +0 -0
- {cdk_github_microvm_runners-0.1.9 → cdk_github_microvm_runners-0.1.11}/pyproject.toml +0 -0
- {cdk_github_microvm_runners-0.1.9 → cdk_github_microvm_runners-0.1.11}/setup.cfg +0 -0
- {cdk_github_microvm_runners-0.1.9 → cdk_github_microvm_runners-0.1.11}/src/cdk_github_microvm_runners/py.typed +0 -0
- {cdk_github_microvm_runners-0.1.9 → cdk_github_microvm_runners-0.1.11}/src/cdk_github_microvm_runners.egg-info/dependency_links.txt +0 -0
- {cdk_github_microvm_runners-0.1.9 → cdk_github_microvm_runners-0.1.11}/src/cdk_github_microvm_runners.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: cdk-github-microvm-runners
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.11
|
|
4
4
|
Summary: CDK construct for running GitHub Actions jobs on AWS Lambda MicroVMs, with one ephemeral runner per job.
|
|
5
5
|
Home-page: https://runnerset.dev
|
|
6
6
|
Author: Court Schuett
|
|
@@ -23,7 +23,7 @@ Description-Content-Type: text/markdown
|
|
|
23
23
|
License-File: LICENSE
|
|
24
24
|
Requires-Dist: aws-cdk-lib<3.0.0,>=2.261.0
|
|
25
25
|
Requires-Dist: constructs<11.0.0,>=10.5.1
|
|
26
|
-
Requires-Dist: jsii<2.0.0,>=1.
|
|
26
|
+
Requires-Dist: jsii<2.0.0,>=1.140.0
|
|
27
27
|
Requires-Dist: publication>=0.0.3
|
|
28
28
|
|
|
29
29
|
# cdk-github-microvm-runners
|
|
@@ -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.11",
|
|
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.11.jsii.tgz"
|
|
30
30
|
],
|
|
31
31
|
"cdk_github_microvm_runners": [
|
|
32
32
|
"py.typed"
|
|
@@ -36,7 +36,7 @@ kwargs = json.loads(
|
|
|
36
36
|
"install_requires": [
|
|
37
37
|
"aws-cdk-lib>=2.261.0, <3.0.0",
|
|
38
38
|
"constructs>=10.5.1, <11.0.0",
|
|
39
|
-
"jsii>=1.
|
|
39
|
+
"jsii>=1.140.0, <2.0.0",
|
|
40
40
|
"publication>=0.0.3"
|
|
41
41
|
],
|
|
42
42
|
"classifiers": [
|
|
@@ -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: 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
|
|
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 three directions: it re-drives dead-lettered launch messages back onto the job queue, it re-launches claims whose VM is gone while the job is still queued, and it re-launches a job the instant its runner is reaped as ``unregistered`` (a VM that launched but never registered with GitHub). All three 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. The two relaunch paths (the committed-claim reconciliation and the ``unregistered`` reap) share ONE per-job attempt counter, threaded through the launch message onto the fresh claim, so a job that repeatedly fails to register is relaunched only a bounded number of times in total; at the bound its claim is released (deleted, so nothing resurrects it) and the exhaustion is raised via a metric and an error log rather than looping. The job then stays queued for the operator to re-run once the cause is fixed. 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``, ``stuckClaimsRelaunched``, and ``unregisteredRelaunched`` metrics, and jobs it released at the shared relaunch bound under ``unregisteredRelaunchExhausted`` (emitted from whichever recovery path hit the bound) — all 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)
|
|
@@ -1641,6 +1641,24 @@ class GithubMicrovmRunnersMetrics(
|
|
|
1641
1641
|
'''Janitor sweep count: runner table rows deleted, either because the VM they name is confirmed gone or because a real row superseded an orphaned one.'''
|
|
1642
1642
|
return typing.cast("_aws_cdk_aws_cloudwatch_ceddda9d.Metric", jsii.invoke(self, "tableRowsCleaned", []))
|
|
1643
1643
|
|
|
1644
|
+
@jsii.member(jsii_name="unregisteredRelaunched")
|
|
1645
|
+
def unregistered_relaunched(self) -> "_aws_cdk_aws_cloudwatch_ceddda9d.Metric":
|
|
1646
|
+
'''Janitor sweep count: still-queued jobs re-launched the moment their runner was reaped as ``unregistered`` (a VM that launched but never registered with GitHub).
|
|
1647
|
+
|
|
1648
|
+
This is 0 unless ``recoverStuckLaunches`` is on. A value that stays high means VMs are routinely failing to register — alarm on it.
|
|
1649
|
+
'''
|
|
1650
|
+
return typing.cast("_aws_cdk_aws_cloudwatch_ceddda9d.Metric", jsii.invoke(self, "unregisteredRelaunched", []))
|
|
1651
|
+
|
|
1652
|
+
@jsii.member(jsii_name="unregisteredRelaunchExhausted")
|
|
1653
|
+
def unregistered_relaunch_exhausted(
|
|
1654
|
+
self,
|
|
1655
|
+
) -> "_aws_cdk_aws_cloudwatch_ceddda9d.Metric":
|
|
1656
|
+
'''Janitor sweep count: jobs RELEASED (claim deleted) at the shared relaunch bound because they had already been re-launched the maximum number of times across BOTH recovery paths (the ``unregistered`` reap and the committed-claim reconciliation) and still never registered.
|
|
1657
|
+
|
|
1658
|
+
The released job stays ``queued`` for the operator to re-run once the cause is fixed. Any non-zero value is a job that stranded despite recovery — alarm on it. This is 0 unless ``recoverStuckLaunches`` is on.
|
|
1659
|
+
'''
|
|
1660
|
+
return typing.cast("_aws_cdk_aws_cloudwatch_ceddda9d.Metric", jsii.invoke(self, "unregisteredRelaunchExhausted", []))
|
|
1661
|
+
|
|
1644
1662
|
@jsii.member(jsii_name="warmHit")
|
|
1645
1663
|
def warm_hit(
|
|
1646
1664
|
self,
|
|
@@ -1770,7 +1788,7 @@ class GithubMicrovmRunnersProps:
|
|
|
1770
1788
|
:param network: How launched MicroVMs and image builds reach the network. Default: RunnerNetwork.internetEgress()
|
|
1771
1789
|
: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)
|
|
1772
1790
|
:param point_in_time_recovery: Turn on DynamoDB point-in-time recovery for the runner table. Default: false
|
|
1773
|
-
: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
|
|
1791
|
+
: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 three directions: it re-drives dead-lettered launch messages back onto the job queue, it re-launches claims whose VM is gone while the job is still queued, and it re-launches a job the instant its runner is reaped as ``unregistered`` (a VM that launched but never registered with GitHub). All three 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. The two relaunch paths (the committed-claim reconciliation and the ``unregistered`` reap) share ONE per-job attempt counter, threaded through the launch message onto the fresh claim, so a job that repeatedly fails to register is relaunched only a bounded number of times in total; at the bound its claim is released (deleted, so nothing resurrects it) and the exhaustion is raised via a metric and an error log rather than looping. The job then stays queued for the operator to re-run once the cause is fixed. 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``, ``stuckClaimsRelaunched``, and ``unregisteredRelaunched`` metrics, and jobs it released at the shared relaunch bound under ``unregisteredRelaunchExhausted`` (emitted from whichever recovery path hit the bound) — all 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
|
|
1774
1792
|
: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
|
|
1775
1793
|
: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)
|
|
1776
1794
|
: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)
|
|
@@ -2103,20 +2121,32 @@ class GithubMicrovmRunnersProps:
|
|
|
2103
2121
|
doesn't end with the job being served, nothing else ever asks again, and
|
|
2104
2122
|
the job waits for as long as the workflow allows with no error anywhere —
|
|
2105
2123
|
the plane looks healthy because by its own bookkeeping it did its work.
|
|
2106
|
-
Each janitor sweep closes that hole from
|
|
2107
|
-
dead-lettered launch messages back onto the job queue,
|
|
2108
|
-
claims whose VM is gone while the job is still queued
|
|
2109
|
-
|
|
2110
|
-
|
|
2124
|
+
Each janitor sweep closes that hole from three directions: it re-drives
|
|
2125
|
+
dead-lettered launch messages back onto the job queue, it re-launches
|
|
2126
|
+
claims whose VM is gone while the job is still queued, and it re-launches a
|
|
2127
|
+
job the instant its runner is reaped as ``unregistered`` (a VM that launched
|
|
2128
|
+
but never registered with GitHub). All three check with GitHub first, so a
|
|
2129
|
+
job that has since completed or been cancelled is discarded rather than
|
|
2130
|
+
booting a VM for work nobody is waiting on. The two relaunch paths (the
|
|
2131
|
+
committed-claim reconciliation and the ``unregistered`` reap) share ONE
|
|
2132
|
+
per-job attempt counter, threaded through the launch message onto the fresh
|
|
2133
|
+
claim, so a job that repeatedly fails to register is relaunched only a
|
|
2134
|
+
bounded number of times in total; at the bound its claim is released
|
|
2135
|
+
(deleted, so nothing resurrects it) and the exhaustion is raised via a
|
|
2136
|
+
metric and an error log rather than looping. The job then stays queued for
|
|
2137
|
+
the operator to re-run once the cause is fixed.
|
|
2111
2138
|
|
|
2112
2139
|
Turn it off only if you want a job that slips through to stay stuck. The
|
|
2113
2140
|
cost of leaving it on is one extra GitHub read per sweep per candidate,
|
|
2114
2141
|
bounded per sweep so it cannot exhaust the installation's rate limit.
|
|
2115
2142
|
|
|
2116
|
-
The janitor counts recoveries under the ``stuckLaunchesRecovered
|
|
2117
|
-
``stuckClaimsRelaunched`` metrics,
|
|
2118
|
-
|
|
2119
|
-
|
|
2143
|
+
The janitor counts recoveries under the ``stuckLaunchesRecovered``,
|
|
2144
|
+
``stuckClaimsRelaunched``, and ``unregisteredRelaunched`` metrics, and jobs it
|
|
2145
|
+
released at the shared relaunch bound under ``unregisteredRelaunchExhausted``
|
|
2146
|
+
(emitted from whichever recovery path hit the bound) — all report
|
|
2147
|
+
when ``emitMetrics`` is on. A count that stays high means launches are
|
|
2148
|
+
failing for some ongoing reason and the recovery is masking it — alarm on
|
|
2149
|
+
it rather than ignoring it.
|
|
2120
2150
|
|
|
2121
2151
|
:default: true
|
|
2122
2152
|
'''
|
|
@@ -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.11",
|
|
23
23
|
__name__[0:-6],
|
|
24
|
-
"cdk-github-microvm-runners@0.1.
|
|
24
|
+
"cdk-github-microvm-runners@0.1.11.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.11",
|
|
13
13
|
"cdk_github_microvm_runners",
|
|
14
|
-
"cdk-github-microvm-runners@0.1.
|
|
14
|
+
"cdk-github-microvm-runners@0.1.11.jsii.tgz",
|
|
15
15
|
)
|
|
16
16
|
|
|
17
17
|
exit_code = __jsii_assembly__.invokeBinScript(
|
|
Binary file
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: cdk-github-microvm-runners
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.11
|
|
4
4
|
Summary: CDK construct for running GitHub Actions jobs on AWS Lambda MicroVMs, with one ephemeral runner per job.
|
|
5
5
|
Home-page: https://runnerset.dev
|
|
6
6
|
Author: Court Schuett
|
|
@@ -23,7 +23,7 @@ Description-Content-Type: text/markdown
|
|
|
23
23
|
License-File: LICENSE
|
|
24
24
|
Requires-Dist: aws-cdk-lib<3.0.0,>=2.261.0
|
|
25
25
|
Requires-Dist: constructs<11.0.0,>=10.5.1
|
|
26
|
-
Requires-Dist: jsii<2.0.0,>=1.
|
|
26
|
+
Requires-Dist: jsii<2.0.0,>=1.140.0
|
|
27
27
|
Requires-Dist: publication>=0.0.3
|
|
28
28
|
|
|
29
29
|
# cdk-github-microvm-runners
|
|
@@ -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.11.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
|