cloudsnorkel.cdk-github-runners 0.14.2__tar.gz → 0.14.4__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.

Potentially problematic release.


This version of cloudsnorkel.cdk-github-runners might be problematic. Click here for more details.

Files changed (17) hide show
  1. {cloudsnorkel_cdk_github_runners-0.14.2/src/cloudsnorkel.cdk_github_runners.egg-info → cloudsnorkel_cdk_github_runners-0.14.4}/PKG-INFO +2 -2
  2. {cloudsnorkel_cdk_github_runners-0.14.2 → cloudsnorkel_cdk_github_runners-0.14.4}/setup.py +3 -3
  3. {cloudsnorkel_cdk_github_runners-0.14.2 → cloudsnorkel_cdk_github_runners-0.14.4}/src/cloudsnorkel/cdk_github_runners/__init__.py +171 -0
  4. {cloudsnorkel_cdk_github_runners-0.14.2 → cloudsnorkel_cdk_github_runners-0.14.4}/src/cloudsnorkel/cdk_github_runners/_jsii/__init__.py +2 -2
  5. cloudsnorkel_cdk_github_runners-0.14.4/src/cloudsnorkel/cdk_github_runners/_jsii/cdk-github-runners@0.14.4.jsii.tgz +0 -0
  6. {cloudsnorkel_cdk_github_runners-0.14.2 → cloudsnorkel_cdk_github_runners-0.14.4/src/cloudsnorkel.cdk_github_runners.egg-info}/PKG-INFO +2 -2
  7. {cloudsnorkel_cdk_github_runners-0.14.2 → cloudsnorkel_cdk_github_runners-0.14.4}/src/cloudsnorkel.cdk_github_runners.egg-info/SOURCES.txt +1 -1
  8. {cloudsnorkel_cdk_github_runners-0.14.2 → cloudsnorkel_cdk_github_runners-0.14.4}/src/cloudsnorkel.cdk_github_runners.egg-info/requires.txt +1 -1
  9. cloudsnorkel_cdk_github_runners-0.14.2/src/cloudsnorkel/cdk_github_runners/_jsii/cdk-github-runners@0.14.2.jsii.tgz +0 -0
  10. {cloudsnorkel_cdk_github_runners-0.14.2 → cloudsnorkel_cdk_github_runners-0.14.4}/LICENSE +0 -0
  11. {cloudsnorkel_cdk_github_runners-0.14.2 → cloudsnorkel_cdk_github_runners-0.14.4}/MANIFEST.in +0 -0
  12. {cloudsnorkel_cdk_github_runners-0.14.2 → cloudsnorkel_cdk_github_runners-0.14.4}/README.md +0 -0
  13. {cloudsnorkel_cdk_github_runners-0.14.2 → cloudsnorkel_cdk_github_runners-0.14.4}/pyproject.toml +0 -0
  14. {cloudsnorkel_cdk_github_runners-0.14.2 → cloudsnorkel_cdk_github_runners-0.14.4}/setup.cfg +0 -0
  15. {cloudsnorkel_cdk_github_runners-0.14.2 → cloudsnorkel_cdk_github_runners-0.14.4}/src/cloudsnorkel/cdk_github_runners/py.typed +0 -0
  16. {cloudsnorkel_cdk_github_runners-0.14.2 → cloudsnorkel_cdk_github_runners-0.14.4}/src/cloudsnorkel.cdk_github_runners.egg-info/dependency_links.txt +0 -0
  17. {cloudsnorkel_cdk_github_runners-0.14.2 → cloudsnorkel_cdk_github_runners-0.14.4}/src/cloudsnorkel.cdk_github_runners.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cloudsnorkel.cdk-github-runners
3
- Version: 0.14.2
3
+ Version: 0.14.4
4
4
  Summary: CDK construct to create GitHub Actions self-hosted runners. A webhook listens to events and creates ephemeral runners on the fly.
5
5
  Home-page: https://github.com/CloudSnorkel/cdk-github-runners.git
6
6
  Author: Amir Szekely<amir@cloudsnorkel.com>
@@ -20,7 +20,7 @@ Classifier: License :: OSI Approved
20
20
  Requires-Python: ~=3.8
21
21
  Description-Content-Type: text/markdown
22
22
  License-File: LICENSE
23
- Requires-Dist: aws-cdk-lib<3.0.0,>=2.123.0
23
+ Requires-Dist: aws-cdk-lib<3.0.0,>=2.155.0
24
24
  Requires-Dist: constructs<11.0.0,>=10.0.5
25
25
  Requires-Dist: jsii<2.0.0,>=1.103.1
26
26
  Requires-Dist: publication>=0.0.3
@@ -5,7 +5,7 @@ kwargs = json.loads(
5
5
  """
6
6
  {
7
7
  "name": "cloudsnorkel.cdk-github-runners",
8
- "version": "0.14.2",
8
+ "version": "0.14.4",
9
9
  "description": "CDK construct to create GitHub Actions self-hosted runners. A webhook listens to events and creates ephemeral runners on the fly.",
10
10
  "license": "Apache-2.0",
11
11
  "url": "https://github.com/CloudSnorkel/cdk-github-runners.git",
@@ -26,7 +26,7 @@ kwargs = json.loads(
26
26
  ],
27
27
  "package_data": {
28
28
  "cloudsnorkel.cdk_github_runners._jsii": [
29
- "cdk-github-runners@0.14.2.jsii.tgz"
29
+ "cdk-github-runners@0.14.4.jsii.tgz"
30
30
  ],
31
31
  "cloudsnorkel.cdk_github_runners": [
32
32
  "py.typed"
@@ -34,7 +34,7 @@ kwargs = json.loads(
34
34
  },
35
35
  "python_requires": "~=3.8",
36
36
  "install_requires": [
37
- "aws-cdk-lib>=2.123.0, <3.0.0",
37
+ "aws-cdk-lib>=2.155.0, <3.0.0",
38
38
  "constructs>=10.0.5, <11.0.0",
39
39
  "jsii>=1.103.1, <2.0.0",
40
40
  "publication>=0.0.3",
@@ -889,6 +889,7 @@ class Architecture(
889
889
  name_mapping={
890
890
  "fast_launch_options": "fastLaunchOptions",
891
891
  "instance_type": "instanceType",
892
+ "storage_size": "storageSize",
892
893
  },
893
894
  )
894
895
  class AwsImageBuilderRunnerImageBuilderProps:
@@ -897,10 +898,12 @@ class AwsImageBuilderRunnerImageBuilderProps:
897
898
  *,
898
899
  fast_launch_options: typing.Optional[typing.Union["FastLaunchOptions", typing.Dict[builtins.str, typing.Any]]] = None,
899
900
  instance_type: typing.Optional[_aws_cdk_aws_ec2_ceddda9d.InstanceType] = None,
901
+ storage_size: typing.Optional[_aws_cdk_ceddda9d.Size] = None,
900
902
  ) -> None:
901
903
  '''
902
904
  :param fast_launch_options: (experimental) Options for fast launch. This is only supported for Windows AMIs. Default: disabled
903
905
  :param instance_type: (experimental) The instance type used to build the image. Default: m6i.large
906
+ :param storage_size: (experimental) Size of volume available for builder instances. This modifies the boot volume size and doesn't add any additional volumes. Use this if you're building images with big components and need more space. Default: default size for AMI (usually 30GB for Linux and 50GB for Windows)
904
907
 
905
908
  :stability: experimental
906
909
  '''
@@ -910,11 +913,14 @@ class AwsImageBuilderRunnerImageBuilderProps:
910
913
  type_hints = typing.get_type_hints(_typecheckingstub__fe17585d38b67015c3f03db2aefab095f171e0e0900c9a4564679bbc5a29fd07)
911
914
  check_type(argname="argument fast_launch_options", value=fast_launch_options, expected_type=type_hints["fast_launch_options"])
912
915
  check_type(argname="argument instance_type", value=instance_type, expected_type=type_hints["instance_type"])
916
+ check_type(argname="argument storage_size", value=storage_size, expected_type=type_hints["storage_size"])
913
917
  self._values: typing.Dict[builtins.str, typing.Any] = {}
914
918
  if fast_launch_options is not None:
915
919
  self._values["fast_launch_options"] = fast_launch_options
916
920
  if instance_type is not None:
917
921
  self._values["instance_type"] = instance_type
922
+ if storage_size is not None:
923
+ self._values["storage_size"] = storage_size
918
924
 
919
925
  @builtins.property
920
926
  def fast_launch_options(self) -> typing.Optional["FastLaunchOptions"]:
@@ -940,6 +946,19 @@ class AwsImageBuilderRunnerImageBuilderProps:
940
946
  result = self._values.get("instance_type")
941
947
  return typing.cast(typing.Optional[_aws_cdk_aws_ec2_ceddda9d.InstanceType], result)
942
948
 
949
+ @builtins.property
950
+ def storage_size(self) -> typing.Optional[_aws_cdk_ceddda9d.Size]:
951
+ '''(experimental) Size of volume available for builder instances. This modifies the boot volume size and doesn't add any additional volumes.
952
+
953
+ Use this if you're building images with big components and need more space.
954
+
955
+ :default: default size for AMI (usually 30GB for Linux and 50GB for Windows)
956
+
957
+ :stability: experimental
958
+ '''
959
+ result = self._values.get("storage_size")
960
+ return typing.cast(typing.Optional[_aws_cdk_ceddda9d.Size], result)
961
+
943
962
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
944
963
  return isinstance(rhs, self.__class__) and rhs._values == self._values
945
964
 
@@ -5799,6 +5818,99 @@ class StaticRunnerImage(
5799
5818
  return typing.cast(IRunnerImageBuilder, jsii.sinvoke(cls, "fromEcrRepository", [repository, tag, architecture, os]))
5800
5819
 
5801
5820
 
5821
+ @jsii.data_type(
5822
+ jsii_type="@cloudsnorkel/cdk-github-runners.StorageOptions",
5823
+ jsii_struct_bases=[],
5824
+ name_mapping={
5825
+ "iops": "iops",
5826
+ "throughput": "throughput",
5827
+ "volume_type": "volumeType",
5828
+ },
5829
+ )
5830
+ class StorageOptions:
5831
+ def __init__(
5832
+ self,
5833
+ *,
5834
+ iops: typing.Optional[jsii.Number] = None,
5835
+ throughput: typing.Optional[jsii.Number] = None,
5836
+ volume_type: typing.Optional[_aws_cdk_aws_ec2_ceddda9d.EbsDeviceVolumeType] = None,
5837
+ ) -> None:
5838
+ '''(experimental) Storage options for the runner instance.
5839
+
5840
+ :param iops: (experimental) The number of I/O operations per second (IOPS) to provision for the volume. Must only be set for ``volumeType``: ``EbsDeviceVolumeType.IO1`` The maximum ratio of IOPS to volume size (in GiB) is 50:1, so for 5,000 provisioned IOPS, you need at least 100 GiB storage on the volume. Default: - none, required for ``EbsDeviceVolumeType.IO1``
5841
+ :param throughput: (experimental) The throughput that the volume supports, in MiB/s Takes a minimum of 125 and maximum of 1000. Default: - 125 MiB/s. Only valid on gp3 volumes.
5842
+ :param volume_type: (experimental) The EBS volume type. Default: ``EbsDeviceVolumeType.GP2``
5843
+
5844
+ :stability: experimental
5845
+ '''
5846
+ if __debug__:
5847
+ type_hints = typing.get_type_hints(_typecheckingstub__ec3b766929d3a048d89c7dc502f77bbbfc7357735093ebc66695a13b92f9bf82)
5848
+ check_type(argname="argument iops", value=iops, expected_type=type_hints["iops"])
5849
+ check_type(argname="argument throughput", value=throughput, expected_type=type_hints["throughput"])
5850
+ check_type(argname="argument volume_type", value=volume_type, expected_type=type_hints["volume_type"])
5851
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
5852
+ if iops is not None:
5853
+ self._values["iops"] = iops
5854
+ if throughput is not None:
5855
+ self._values["throughput"] = throughput
5856
+ if volume_type is not None:
5857
+ self._values["volume_type"] = volume_type
5858
+
5859
+ @builtins.property
5860
+ def iops(self) -> typing.Optional[jsii.Number]:
5861
+ '''(experimental) The number of I/O operations per second (IOPS) to provision for the volume.
5862
+
5863
+ Must only be set for ``volumeType``: ``EbsDeviceVolumeType.IO1``
5864
+
5865
+ The maximum ratio of IOPS to volume size (in GiB) is 50:1, so for 5,000 provisioned IOPS,
5866
+ you need at least 100 GiB storage on the volume.
5867
+
5868
+ :default: - none, required for ``EbsDeviceVolumeType.IO1``
5869
+
5870
+ :see: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html
5871
+ :stability: experimental
5872
+ '''
5873
+ result = self._values.get("iops")
5874
+ return typing.cast(typing.Optional[jsii.Number], result)
5875
+
5876
+ @builtins.property
5877
+ def throughput(self) -> typing.Optional[jsii.Number]:
5878
+ '''(experimental) The throughput that the volume supports, in MiB/s Takes a minimum of 125 and maximum of 1000.
5879
+
5880
+ :default: - 125 MiB/s. Only valid on gp3 volumes.
5881
+
5882
+ :see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-volume.html#cfn-ec2-volume-throughput
5883
+ :stability: experimental
5884
+ '''
5885
+ result = self._values.get("throughput")
5886
+ return typing.cast(typing.Optional[jsii.Number], result)
5887
+
5888
+ @builtins.property
5889
+ def volume_type(
5890
+ self,
5891
+ ) -> typing.Optional[_aws_cdk_aws_ec2_ceddda9d.EbsDeviceVolumeType]:
5892
+ '''(experimental) The EBS volume type.
5893
+
5894
+ :default: ``EbsDeviceVolumeType.GP2``
5895
+
5896
+ :see: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html
5897
+ :stability: experimental
5898
+ '''
5899
+ result = self._values.get("volume_type")
5900
+ return typing.cast(typing.Optional[_aws_cdk_aws_ec2_ceddda9d.EbsDeviceVolumeType], result)
5901
+
5902
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
5903
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
5904
+
5905
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
5906
+ return not (rhs == self)
5907
+
5908
+ def __repr__(self) -> str:
5909
+ return "StorageOptions(%s)" % ", ".join(
5910
+ k + "=" + repr(v) for k, v in self._values.items()
5911
+ )
5912
+
5913
+
5802
5914
  class WindowsComponents(
5803
5915
  metaclass=jsii.JSIIMeta,
5804
5916
  jsii_type="@cloudsnorkel/cdk-github-runners.WindowsComponents",
@@ -7457,6 +7569,7 @@ class Ec2RunnerProvider(
7457
7569
  security_groups: typing.Optional[typing.Sequence[_aws_cdk_aws_ec2_ceddda9d.ISecurityGroup]] = None,
7458
7570
  spot: typing.Optional[builtins.bool] = None,
7459
7571
  spot_max_price: typing.Optional[builtins.str] = None,
7572
+ storage_options: typing.Optional[typing.Union[StorageOptions, typing.Dict[builtins.str, typing.Any]]] = None,
7460
7573
  storage_size: typing.Optional[_aws_cdk_ceddda9d.Size] = None,
7461
7574
  subnet: typing.Optional[_aws_cdk_aws_ec2_ceddda9d.ISubnet] = None,
7462
7575
  subnet_selection: typing.Optional[typing.Union[_aws_cdk_aws_ec2_ceddda9d.SubnetSelection, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -7475,6 +7588,7 @@ class Ec2RunnerProvider(
7475
7588
  :param security_groups: (experimental) Security groups to assign to launched runner instances. Default: a new security group
7476
7589
  :param spot: (experimental) Use spot instances to save money. Spot instances are cheaper but not always available and can be stopped prematurely. Default: false
7477
7590
  :param spot_max_price: (experimental) Set a maximum price for spot instances. Default: no max price (you will pay current spot price)
7591
+ :param storage_options: (experimental) Options for runner instance storage volume.
7478
7592
  :param storage_size: (experimental) Size of volume available for launched runner instances. This modifies the boot volume size and doesn't add any additional volumes. Default: 30GB
7479
7593
  :param subnet: (deprecated) Subnet where the runner instances will be launched. Default: default subnet of account's default VPC
7480
7594
  :param subnet_selection: (experimental) Where to place the network interfaces within the VPC. Only the first matched subnet will be used. Default: default VPC subnet
@@ -7497,6 +7611,7 @@ class Ec2RunnerProvider(
7497
7611
  security_groups=security_groups,
7498
7612
  spot=spot,
7499
7613
  spot_max_price=spot_max_price,
7614
+ storage_options=storage_options,
7500
7615
  storage_size=storage_size,
7501
7616
  subnet=subnet,
7502
7617
  subnet_selection=subnet_selection,
@@ -7753,6 +7868,7 @@ class Ec2RunnerProvider(
7753
7868
  "security_groups": "securityGroups",
7754
7869
  "spot": "spot",
7755
7870
  "spot_max_price": "spotMaxPrice",
7871
+ "storage_options": "storageOptions",
7756
7872
  "storage_size": "storageSize",
7757
7873
  "subnet": "subnet",
7758
7874
  "subnet_selection": "subnetSelection",
@@ -7773,6 +7889,7 @@ class Ec2RunnerProviderProps(RunnerProviderProps):
7773
7889
  security_groups: typing.Optional[typing.Sequence[_aws_cdk_aws_ec2_ceddda9d.ISecurityGroup]] = None,
7774
7890
  spot: typing.Optional[builtins.bool] = None,
7775
7891
  spot_max_price: typing.Optional[builtins.str] = None,
7892
+ storage_options: typing.Optional[typing.Union[StorageOptions, typing.Dict[builtins.str, typing.Any]]] = None,
7776
7893
  storage_size: typing.Optional[_aws_cdk_ceddda9d.Size] = None,
7777
7894
  subnet: typing.Optional[_aws_cdk_aws_ec2_ceddda9d.ISubnet] = None,
7778
7895
  subnet_selection: typing.Optional[typing.Union[_aws_cdk_aws_ec2_ceddda9d.SubnetSelection, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -7790,6 +7907,7 @@ class Ec2RunnerProviderProps(RunnerProviderProps):
7790
7907
  :param security_groups: (experimental) Security groups to assign to launched runner instances. Default: a new security group
7791
7908
  :param spot: (experimental) Use spot instances to save money. Spot instances are cheaper but not always available and can be stopped prematurely. Default: false
7792
7909
  :param spot_max_price: (experimental) Set a maximum price for spot instances. Default: no max price (you will pay current spot price)
7910
+ :param storage_options: (experimental) Options for runner instance storage volume.
7793
7911
  :param storage_size: (experimental) Size of volume available for launched runner instances. This modifies the boot volume size and doesn't add any additional volumes. Default: 30GB
7794
7912
  :param subnet: (deprecated) Subnet where the runner instances will be launched. Default: default subnet of account's default VPC
7795
7913
  :param subnet_selection: (experimental) Where to place the network interfaces within the VPC. Only the first matched subnet will be used. Default: default VPC subnet
@@ -7799,6 +7917,8 @@ class Ec2RunnerProviderProps(RunnerProviderProps):
7799
7917
  '''
7800
7918
  if isinstance(retry_options, dict):
7801
7919
  retry_options = ProviderRetryOptions(**retry_options)
7920
+ if isinstance(storage_options, dict):
7921
+ storage_options = StorageOptions(**storage_options)
7802
7922
  if isinstance(subnet_selection, dict):
7803
7923
  subnet_selection = _aws_cdk_aws_ec2_ceddda9d.SubnetSelection(**subnet_selection)
7804
7924
  if __debug__:
@@ -7813,6 +7933,7 @@ class Ec2RunnerProviderProps(RunnerProviderProps):
7813
7933
  check_type(argname="argument security_groups", value=security_groups, expected_type=type_hints["security_groups"])
7814
7934
  check_type(argname="argument spot", value=spot, expected_type=type_hints["spot"])
7815
7935
  check_type(argname="argument spot_max_price", value=spot_max_price, expected_type=type_hints["spot_max_price"])
7936
+ check_type(argname="argument storage_options", value=storage_options, expected_type=type_hints["storage_options"])
7816
7937
  check_type(argname="argument storage_size", value=storage_size, expected_type=type_hints["storage_size"])
7817
7938
  check_type(argname="argument subnet", value=subnet, expected_type=type_hints["subnet"])
7818
7939
  check_type(argname="argument subnet_selection", value=subnet_selection, expected_type=type_hints["subnet_selection"])
@@ -7838,6 +7959,8 @@ class Ec2RunnerProviderProps(RunnerProviderProps):
7838
7959
  self._values["spot"] = spot
7839
7960
  if spot_max_price is not None:
7840
7961
  self._values["spot_max_price"] = spot_max_price
7962
+ if storage_options is not None:
7963
+ self._values["storage_options"] = storage_options
7841
7964
  if storage_size is not None:
7842
7965
  self._values["storage_size"] = storage_size
7843
7966
  if subnet is not None:
@@ -7975,6 +8098,15 @@ class Ec2RunnerProviderProps(RunnerProviderProps):
7975
8098
  result = self._values.get("spot_max_price")
7976
8099
  return typing.cast(typing.Optional[builtins.str], result)
7977
8100
 
8101
+ @builtins.property
8102
+ def storage_options(self) -> typing.Optional[StorageOptions]:
8103
+ '''(experimental) Options for runner instance storage volume.
8104
+
8105
+ :stability: experimental
8106
+ '''
8107
+ result = self._values.get("storage_options")
8108
+ return typing.cast(typing.Optional[StorageOptions], result)
8109
+
7978
8110
  @builtins.property
7979
8111
  def storage_size(self) -> typing.Optional[_aws_cdk_ceddda9d.Size]:
7980
8112
  '''(experimental) Size of volume available for launched runner instances.
@@ -8076,6 +8208,7 @@ class EcsRunnerProvider(
8076
8208
  security_groups: typing.Optional[typing.Sequence[_aws_cdk_aws_ec2_ceddda9d.ISecurityGroup]] = None,
8077
8209
  spot: typing.Optional[builtins.bool] = None,
8078
8210
  spot_max_price: typing.Optional[builtins.str] = None,
8211
+ storage_options: typing.Optional[typing.Union[StorageOptions, typing.Dict[builtins.str, typing.Any]]] = None,
8079
8212
  storage_size: typing.Optional[_aws_cdk_ceddda9d.Size] = None,
8080
8213
  subnet_selection: typing.Optional[typing.Union[_aws_cdk_aws_ec2_ceddda9d.SubnetSelection, typing.Dict[builtins.str, typing.Any]]] = None,
8081
8214
  vpc: typing.Optional[_aws_cdk_aws_ec2_ceddda9d.IVpc] = None,
@@ -8100,6 +8233,7 @@ class EcsRunnerProvider(
8100
8233
  :param security_groups: (experimental) Security groups to assign to the task. Default: a new security group
8101
8234
  :param spot: (experimental) Use spot capacity. Default: false (true if spotMaxPrice is specified)
8102
8235
  :param spot_max_price: (experimental) Maximum price for spot instances.
8236
+ :param storage_options: (experimental) Options for runner instance storage volume.
8103
8237
  :param storage_size: (experimental) Size of volume available for launched cluster instances. This modifies the boot volume size and doesn't add any additional volumes. Each instance can be used by multiple runners, so make sure there is enough space for all of them. Default: default size for AMI (usually 30GB for Linux and 50GB for Windows)
8104
8238
  :param subnet_selection: (experimental) Subnets to run the runners in. Default: ECS default
8105
8239
  :param vpc: (experimental) VPC to launch the runners in. Default: default account VPC
@@ -8128,6 +8262,7 @@ class EcsRunnerProvider(
8128
8262
  security_groups=security_groups,
8129
8263
  spot=spot,
8130
8264
  spot_max_price=spot_max_price,
8265
+ storage_options=storage_options,
8131
8266
  storage_size=storage_size,
8132
8267
  subnet_selection=subnet_selection,
8133
8268
  vpc=vpc,
@@ -8387,6 +8522,7 @@ class EcsRunnerProvider(
8387
8522
  "security_groups": "securityGroups",
8388
8523
  "spot": "spot",
8389
8524
  "spot_max_price": "spotMaxPrice",
8525
+ "storage_options": "storageOptions",
8390
8526
  "storage_size": "storageSize",
8391
8527
  "subnet_selection": "subnetSelection",
8392
8528
  "vpc": "vpc",
@@ -8413,6 +8549,7 @@ class EcsRunnerProviderProps(RunnerProviderProps):
8413
8549
  security_groups: typing.Optional[typing.Sequence[_aws_cdk_aws_ec2_ceddda9d.ISecurityGroup]] = None,
8414
8550
  spot: typing.Optional[builtins.bool] = None,
8415
8551
  spot_max_price: typing.Optional[builtins.str] = None,
8552
+ storage_options: typing.Optional[typing.Union[StorageOptions, typing.Dict[builtins.str, typing.Any]]] = None,
8416
8553
  storage_size: typing.Optional[_aws_cdk_ceddda9d.Size] = None,
8417
8554
  subnet_selection: typing.Optional[typing.Union[_aws_cdk_aws_ec2_ceddda9d.SubnetSelection, typing.Dict[builtins.str, typing.Any]]] = None,
8418
8555
  vpc: typing.Optional[_aws_cdk_aws_ec2_ceddda9d.IVpc] = None,
@@ -8436,6 +8573,7 @@ class EcsRunnerProviderProps(RunnerProviderProps):
8436
8573
  :param security_groups: (experimental) Security groups to assign to the task. Default: a new security group
8437
8574
  :param spot: (experimental) Use spot capacity. Default: false (true if spotMaxPrice is specified)
8438
8575
  :param spot_max_price: (experimental) Maximum price for spot instances.
8576
+ :param storage_options: (experimental) Options for runner instance storage volume.
8439
8577
  :param storage_size: (experimental) Size of volume available for launched cluster instances. This modifies the boot volume size and doesn't add any additional volumes. Each instance can be used by multiple runners, so make sure there is enough space for all of them. Default: default size for AMI (usually 30GB for Linux and 50GB for Windows)
8440
8578
  :param subnet_selection: (experimental) Subnets to run the runners in. Default: ECS default
8441
8579
  :param vpc: (experimental) VPC to launch the runners in. Default: default account VPC
@@ -8444,6 +8582,8 @@ class EcsRunnerProviderProps(RunnerProviderProps):
8444
8582
  '''
8445
8583
  if isinstance(retry_options, dict):
8446
8584
  retry_options = ProviderRetryOptions(**retry_options)
8585
+ if isinstance(storage_options, dict):
8586
+ storage_options = StorageOptions(**storage_options)
8447
8587
  if isinstance(subnet_selection, dict):
8448
8588
  subnet_selection = _aws_cdk_aws_ec2_ceddda9d.SubnetSelection(**subnet_selection)
8449
8589
  if __debug__:
@@ -8465,6 +8605,7 @@ class EcsRunnerProviderProps(RunnerProviderProps):
8465
8605
  check_type(argname="argument security_groups", value=security_groups, expected_type=type_hints["security_groups"])
8466
8606
  check_type(argname="argument spot", value=spot, expected_type=type_hints["spot"])
8467
8607
  check_type(argname="argument spot_max_price", value=spot_max_price, expected_type=type_hints["spot_max_price"])
8608
+ check_type(argname="argument storage_options", value=storage_options, expected_type=type_hints["storage_options"])
8468
8609
  check_type(argname="argument storage_size", value=storage_size, expected_type=type_hints["storage_size"])
8469
8610
  check_type(argname="argument subnet_selection", value=subnet_selection, expected_type=type_hints["subnet_selection"])
8470
8611
  check_type(argname="argument vpc", value=vpc, expected_type=type_hints["vpc"])
@@ -8503,6 +8644,8 @@ class EcsRunnerProviderProps(RunnerProviderProps):
8503
8644
  self._values["spot"] = spot
8504
8645
  if spot_max_price is not None:
8505
8646
  self._values["spot_max_price"] = spot_max_price
8647
+ if storage_options is not None:
8648
+ self._values["storage_options"] = storage_options
8506
8649
  if storage_size is not None:
8507
8650
  self._values["storage_size"] = storage_size
8508
8651
  if subnet_selection is not None:
@@ -8725,6 +8868,15 @@ class EcsRunnerProviderProps(RunnerProviderProps):
8725
8868
  result = self._values.get("spot_max_price")
8726
8869
  return typing.cast(typing.Optional[builtins.str], result)
8727
8870
 
8871
+ @builtins.property
8872
+ def storage_options(self) -> typing.Optional[StorageOptions]:
8873
+ '''(experimental) Options for runner instance storage volume.
8874
+
8875
+ :stability: experimental
8876
+ '''
8877
+ result = self._values.get("storage_options")
8878
+ return typing.cast(typing.Optional[StorageOptions], result)
8879
+
8728
8880
  @builtins.property
8729
8881
  def storage_size(self) -> typing.Optional[_aws_cdk_ceddda9d.Size]:
8730
8882
  '''(experimental) Size of volume available for launched cluster instances.
@@ -10376,6 +10528,7 @@ class Ec2Runner(
10376
10528
  security_groups: typing.Optional[typing.Sequence[_aws_cdk_aws_ec2_ceddda9d.ISecurityGroup]] = None,
10377
10529
  spot: typing.Optional[builtins.bool] = None,
10378
10530
  spot_max_price: typing.Optional[builtins.str] = None,
10531
+ storage_options: typing.Optional[typing.Union[StorageOptions, typing.Dict[builtins.str, typing.Any]]] = None,
10379
10532
  storage_size: typing.Optional[_aws_cdk_ceddda9d.Size] = None,
10380
10533
  subnet: typing.Optional[_aws_cdk_aws_ec2_ceddda9d.ISubnet] = None,
10381
10534
  subnet_selection: typing.Optional[typing.Union[_aws_cdk_aws_ec2_ceddda9d.SubnetSelection, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -10394,6 +10547,7 @@ class Ec2Runner(
10394
10547
  :param security_groups: (experimental) Security groups to assign to launched runner instances. Default: a new security group
10395
10548
  :param spot: (experimental) Use spot instances to save money. Spot instances are cheaper but not always available and can be stopped prematurely. Default: false
10396
10549
  :param spot_max_price: (experimental) Set a maximum price for spot instances. Default: no max price (you will pay current spot price)
10550
+ :param storage_options: (experimental) Options for runner instance storage volume.
10397
10551
  :param storage_size: (experimental) Size of volume available for launched runner instances. This modifies the boot volume size and doesn't add any additional volumes. Default: 30GB
10398
10552
  :param subnet: (deprecated) Subnet where the runner instances will be launched. Default: default subnet of account's default VPC
10399
10553
  :param subnet_selection: (experimental) Where to place the network interfaces within the VPC. Only the first matched subnet will be used. Default: default VPC subnet
@@ -10416,6 +10570,7 @@ class Ec2Runner(
10416
10570
  security_groups=security_groups,
10417
10571
  spot=spot,
10418
10572
  spot_max_price=spot_max_price,
10573
+ storage_options=storage_options,
10419
10574
  storage_size=storage_size,
10420
10575
  subnet=subnet,
10421
10576
  subnet_selection=subnet_selection,
@@ -10560,6 +10715,7 @@ __all__ = [
10560
10715
  "RunnerVersion",
10561
10716
  "Secrets",
10562
10717
  "StaticRunnerImage",
10718
+ "StorageOptions",
10563
10719
  "WindowsComponents",
10564
10720
  ]
10565
10721
 
@@ -10615,6 +10771,7 @@ def _typecheckingstub__fe17585d38b67015c3f03db2aefab095f171e0e0900c9a4564679bbc5
10615
10771
  *,
10616
10772
  fast_launch_options: typing.Optional[typing.Union[FastLaunchOptions, typing.Dict[builtins.str, typing.Any]]] = None,
10617
10773
  instance_type: typing.Optional[_aws_cdk_aws_ec2_ceddda9d.InstanceType] = None,
10774
+ storage_size: typing.Optional[_aws_cdk_ceddda9d.Size] = None,
10618
10775
  ) -> None:
10619
10776
  """Type checking stubs"""
10620
10777
  pass
@@ -11128,6 +11285,15 @@ def _typecheckingstub__f48d8ecb3f18c1471b45f7dfd8f15c51227e04697959138092d72a915
11128
11285
  """Type checking stubs"""
11129
11286
  pass
11130
11287
 
11288
+ def _typecheckingstub__ec3b766929d3a048d89c7dc502f77bbbfc7357735093ebc66695a13b92f9bf82(
11289
+ *,
11290
+ iops: typing.Optional[jsii.Number] = None,
11291
+ throughput: typing.Optional[jsii.Number] = None,
11292
+ volume_type: typing.Optional[_aws_cdk_aws_ec2_ceddda9d.EbsDeviceVolumeType] = None,
11293
+ ) -> None:
11294
+ """Type checking stubs"""
11295
+ pass
11296
+
11131
11297
  def _typecheckingstub__0c68c27f668327e6aeb3b0e5b7e88235ae547046edeb1fa6a808b729a31b7bd2(
11132
11298
  scope: _constructs_77d1e7e8.Construct,
11133
11299
  id: builtins.str,
@@ -11485,6 +11651,7 @@ def _typecheckingstub__fd3f279069067627058d9a5818aab030be5ffd71ce03962b4fd7cdd85
11485
11651
  security_groups: typing.Optional[typing.Sequence[_aws_cdk_aws_ec2_ceddda9d.ISecurityGroup]] = None,
11486
11652
  spot: typing.Optional[builtins.bool] = None,
11487
11653
  spot_max_price: typing.Optional[builtins.str] = None,
11654
+ storage_options: typing.Optional[typing.Union[StorageOptions, typing.Dict[builtins.str, typing.Any]]] = None,
11488
11655
  storage_size: typing.Optional[_aws_cdk_ceddda9d.Size] = None,
11489
11656
  subnet: typing.Optional[_aws_cdk_aws_ec2_ceddda9d.ISubnet] = None,
11490
11657
  subnet_selection: typing.Optional[typing.Union[_aws_cdk_aws_ec2_ceddda9d.SubnetSelection, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -11552,6 +11719,7 @@ def _typecheckingstub__b650c4bf7f2a31b514d6f1f9e0c1b4b2cdae8b20b6f209f5b5fc74ef4
11552
11719
  security_groups: typing.Optional[typing.Sequence[_aws_cdk_aws_ec2_ceddda9d.ISecurityGroup]] = None,
11553
11720
  spot: typing.Optional[builtins.bool] = None,
11554
11721
  spot_max_price: typing.Optional[builtins.str] = None,
11722
+ storage_options: typing.Optional[typing.Union[StorageOptions, typing.Dict[builtins.str, typing.Any]]] = None,
11555
11723
  storage_size: typing.Optional[_aws_cdk_ceddda9d.Size] = None,
11556
11724
  subnet: typing.Optional[_aws_cdk_aws_ec2_ceddda9d.ISubnet] = None,
11557
11725
  subnet_selection: typing.Optional[typing.Union[_aws_cdk_aws_ec2_ceddda9d.SubnetSelection, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -11579,6 +11747,7 @@ def _typecheckingstub__c520325dd0289bf8c6670ecdce77df4b229a0a2681957e61665818d2f
11579
11747
  security_groups: typing.Optional[typing.Sequence[_aws_cdk_aws_ec2_ceddda9d.ISecurityGroup]] = None,
11580
11748
  spot: typing.Optional[builtins.bool] = None,
11581
11749
  spot_max_price: typing.Optional[builtins.str] = None,
11750
+ storage_options: typing.Optional[typing.Union[StorageOptions, typing.Dict[builtins.str, typing.Any]]] = None,
11582
11751
  storage_size: typing.Optional[_aws_cdk_ceddda9d.Size] = None,
11583
11752
  subnet_selection: typing.Optional[typing.Union[_aws_cdk_aws_ec2_ceddda9d.SubnetSelection, typing.Dict[builtins.str, typing.Any]]] = None,
11584
11753
  vpc: typing.Optional[_aws_cdk_aws_ec2_ceddda9d.IVpc] = None,
@@ -11652,6 +11821,7 @@ def _typecheckingstub__73c1978e12dcea1bd69ce0927a80bd887d7f7d1b6573831942495e9d5
11652
11821
  security_groups: typing.Optional[typing.Sequence[_aws_cdk_aws_ec2_ceddda9d.ISecurityGroup]] = None,
11653
11822
  spot: typing.Optional[builtins.bool] = None,
11654
11823
  spot_max_price: typing.Optional[builtins.str] = None,
11824
+ storage_options: typing.Optional[typing.Union[StorageOptions, typing.Dict[builtins.str, typing.Any]]] = None,
11655
11825
  storage_size: typing.Optional[_aws_cdk_ceddda9d.Size] = None,
11656
11826
  subnet_selection: typing.Optional[typing.Union[_aws_cdk_aws_ec2_ceddda9d.SubnetSelection, typing.Dict[builtins.str, typing.Any]]] = None,
11657
11827
  vpc: typing.Optional[_aws_cdk_aws_ec2_ceddda9d.IVpc] = None,
@@ -11898,6 +12068,7 @@ def _typecheckingstub__a0a6acc584ae2ad3aed3605810cea44858f1a0bc22f62f2df9005b318
11898
12068
  security_groups: typing.Optional[typing.Sequence[_aws_cdk_aws_ec2_ceddda9d.ISecurityGroup]] = None,
11899
12069
  spot: typing.Optional[builtins.bool] = None,
11900
12070
  spot_max_price: typing.Optional[builtins.str] = None,
12071
+ storage_options: typing.Optional[typing.Union[StorageOptions, typing.Dict[builtins.str, typing.Any]]] = None,
11901
12072
  storage_size: typing.Optional[_aws_cdk_ceddda9d.Size] = None,
11902
12073
  subnet: typing.Optional[_aws_cdk_aws_ec2_ceddda9d.ISubnet] = None,
11903
12074
  subnet_selection: typing.Optional[typing.Union[_aws_cdk_aws_ec2_ceddda9d.SubnetSelection, typing.Dict[builtins.str, typing.Any]]] = None,
@@ -33,9 +33,9 @@ import constructs._jsii
33
33
 
34
34
  __jsii_assembly__ = jsii.JSIIAssembly.load(
35
35
  "@cloudsnorkel/cdk-github-runners",
36
- "0.14.2",
36
+ "0.14.4",
37
37
  __name__[0:-6],
38
- "cdk-github-runners@0.14.2.jsii.tgz",
38
+ "cdk-github-runners@0.14.4.jsii.tgz",
39
39
  )
40
40
 
41
41
  __all__ = [
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cloudsnorkel.cdk-github-runners
3
- Version: 0.14.2
3
+ Version: 0.14.4
4
4
  Summary: CDK construct to create GitHub Actions self-hosted runners. A webhook listens to events and creates ephemeral runners on the fly.
5
5
  Home-page: https://github.com/CloudSnorkel/cdk-github-runners.git
6
6
  Author: Amir Szekely<amir@cloudsnorkel.com>
@@ -20,7 +20,7 @@ Classifier: License :: OSI Approved
20
20
  Requires-Python: ~=3.8
21
21
  Description-Content-Type: text/markdown
22
22
  License-File: LICENSE
23
- Requires-Dist: aws-cdk-lib<3.0.0,>=2.123.0
23
+ Requires-Dist: aws-cdk-lib<3.0.0,>=2.155.0
24
24
  Requires-Dist: constructs<11.0.0,>=10.0.5
25
25
  Requires-Dist: jsii<2.0.0,>=1.103.1
26
26
  Requires-Dist: publication>=0.0.3
@@ -11,4 +11,4 @@ src/cloudsnorkel.cdk_github_runners.egg-info/top_level.txt
11
11
  src/cloudsnorkel/cdk_github_runners/__init__.py
12
12
  src/cloudsnorkel/cdk_github_runners/py.typed
13
13
  src/cloudsnorkel/cdk_github_runners/_jsii/__init__.py
14
- src/cloudsnorkel/cdk_github_runners/_jsii/cdk-github-runners@0.14.2.jsii.tgz
14
+ src/cloudsnorkel/cdk_github_runners/_jsii/cdk-github-runners@0.14.4.jsii.tgz
@@ -1,4 +1,4 @@
1
- aws-cdk-lib<3.0.0,>=2.123.0
1
+ aws-cdk-lib<3.0.0,>=2.155.0
2
2
  constructs<11.0.0,>=10.0.5
3
3
  jsii<2.0.0,>=1.103.1
4
4
  publication>=0.0.3