@cloudsnorkel/cdk-github-runners 0.6.0 → 0.6.2

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 CHANGED
@@ -4915,6 +4915,465 @@
4915
4915
  ],
4916
4916
  "symbolId": "src/providers/image-builders/container:ContainerImageBuilderProps"
4917
4917
  },
4918
+ "@cloudsnorkel/cdk-github-runners.Ec2Runner": {
4919
+ "assembly": "@cloudsnorkel/cdk-github-runners",
4920
+ "base": "constructs.Construct",
4921
+ "docs": {
4922
+ "remarks": "This construct is not meant to be used by itself. It should be passed in the providers property for GitHubRunners.",
4923
+ "stability": "experimental",
4924
+ "summary": "GitHub Actions runner provider using EC2 to execute jobs."
4925
+ },
4926
+ "fqn": "@cloudsnorkel/cdk-github-runners.Ec2Runner",
4927
+ "initializer": {
4928
+ "docs": {
4929
+ "stability": "experimental"
4930
+ },
4931
+ "locationInModule": {
4932
+ "filename": "src/providers/ec2.ts",
4933
+ "line": 234
4934
+ },
4935
+ "parameters": [
4936
+ {
4937
+ "name": "scope",
4938
+ "type": {
4939
+ "fqn": "constructs.Construct"
4940
+ }
4941
+ },
4942
+ {
4943
+ "name": "id",
4944
+ "type": {
4945
+ "primitive": "string"
4946
+ }
4947
+ },
4948
+ {
4949
+ "name": "props",
4950
+ "type": {
4951
+ "fqn": "@cloudsnorkel/cdk-github-runners.Ec2RunnerProps"
4952
+ }
4953
+ }
4954
+ ]
4955
+ },
4956
+ "interfaces": [
4957
+ "@cloudsnorkel/cdk-github-runners.IRunnerProvider"
4958
+ ],
4959
+ "kind": "class",
4960
+ "locationInModule": {
4961
+ "filename": "src/providers/ec2.ts",
4962
+ "line": 209
4963
+ },
4964
+ "methods": [
4965
+ {
4966
+ "docs": {
4967
+ "remarks": "Called by GithubRunners and shouldn't be called manually.",
4968
+ "stability": "experimental",
4969
+ "summary": "Generate step function task(s) to start a new runner."
4970
+ },
4971
+ "locationInModule": {
4972
+ "filename": "src/providers/ec2.ts",
4973
+ "line": 284
4974
+ },
4975
+ "name": "getStepFunctionTask",
4976
+ "overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
4977
+ "parameters": [
4978
+ {
4979
+ "docs": {
4980
+ "summary": "workflow job details."
4981
+ },
4982
+ "name": "parameters",
4983
+ "type": {
4984
+ "fqn": "@cloudsnorkel/cdk-github-runners.RunnerRuntimeParameters"
4985
+ }
4986
+ }
4987
+ ],
4988
+ "returns": {
4989
+ "type": {
4990
+ "fqn": "aws-cdk-lib.aws_stepfunctions.IChainable"
4991
+ }
4992
+ }
4993
+ },
4994
+ {
4995
+ "docs": {
4996
+ "remarks": "This can be used to add additional policy\nstatements to the state machine role that are not automatically added by the task returned from {@link getStepFunctionTask}.",
4997
+ "stability": "experimental",
4998
+ "summary": "An optional method that modifies the role of the state machine after all the tasks have been generated."
4999
+ },
5000
+ "locationInModule": {
5001
+ "filename": "src/providers/ec2.ts",
5002
+ "line": 360
5003
+ },
5004
+ "name": "grantStateMachine",
5005
+ "overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
5006
+ "parameters": [
5007
+ {
5008
+ "name": "stateMachineRole",
5009
+ "type": {
5010
+ "fqn": "aws-cdk-lib.aws_iam.IGrantable"
5011
+ }
5012
+ }
5013
+ ]
5014
+ },
5015
+ {
5016
+ "docs": {
5017
+ "stability": "experimental"
5018
+ },
5019
+ "locationInModule": {
5020
+ "filename": "src/providers/common.ts",
5021
+ "line": 426
5022
+ },
5023
+ "name": "labelsFromProperties",
5024
+ "parameters": [
5025
+ {
5026
+ "name": "defaultLabel",
5027
+ "type": {
5028
+ "primitive": "string"
5029
+ }
5030
+ },
5031
+ {
5032
+ "name": "propsLabel",
5033
+ "optional": true,
5034
+ "type": {
5035
+ "primitive": "string"
5036
+ }
5037
+ },
5038
+ {
5039
+ "name": "propsLabels",
5040
+ "optional": true,
5041
+ "type": {
5042
+ "collection": {
5043
+ "elementtype": {
5044
+ "primitive": "string"
5045
+ },
5046
+ "kind": "array"
5047
+ }
5048
+ }
5049
+ }
5050
+ ],
5051
+ "protected": true,
5052
+ "returns": {
5053
+ "type": {
5054
+ "collection": {
5055
+ "elementtype": {
5056
+ "primitive": "string"
5057
+ },
5058
+ "kind": "array"
5059
+ }
5060
+ }
5061
+ }
5062
+ },
5063
+ {
5064
+ "docs": {
5065
+ "remarks": "Also gives the status function any needed permissions to query the Docker image or AMI.",
5066
+ "stability": "experimental",
5067
+ "summary": "Return status of the runner provider to be used in the main status function."
5068
+ },
5069
+ "locationInModule": {
5070
+ "filename": "src/providers/ec2.ts",
5071
+ "line": 380
5072
+ },
5073
+ "name": "status",
5074
+ "overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
5075
+ "parameters": [
5076
+ {
5077
+ "name": "statusFunctionRole",
5078
+ "type": {
5079
+ "fqn": "aws-cdk-lib.aws_iam.IGrantable"
5080
+ }
5081
+ }
5082
+ ],
5083
+ "returns": {
5084
+ "type": {
5085
+ "fqn": "@cloudsnorkel/cdk-github-runners.IRunnerProviderStatus"
5086
+ }
5087
+ }
5088
+ }
5089
+ ],
5090
+ "name": "Ec2Runner",
5091
+ "properties": [
5092
+ {
5093
+ "docs": {
5094
+ "stability": "experimental",
5095
+ "summary": "The network connections associated with this resource."
5096
+ },
5097
+ "immutable": true,
5098
+ "locationInModule": {
5099
+ "filename": "src/providers/ec2.ts",
5100
+ "line": 401
5101
+ },
5102
+ "name": "connections",
5103
+ "overrides": "aws-cdk-lib.aws_ec2.IConnectable",
5104
+ "type": {
5105
+ "fqn": "aws-cdk-lib.aws_ec2.Connections"
5106
+ }
5107
+ },
5108
+ {
5109
+ "docs": {
5110
+ "stability": "experimental",
5111
+ "summary": "Grant principal used to add permissions to the runner role."
5112
+ },
5113
+ "immutable": true,
5114
+ "locationInModule": {
5115
+ "filename": "src/providers/ec2.ts",
5116
+ "line": 223
5117
+ },
5118
+ "name": "grantPrincipal",
5119
+ "overrides": "aws-cdk-lib.aws_iam.IGrantable",
5120
+ "type": {
5121
+ "fqn": "aws-cdk-lib.aws_iam.IPrincipal"
5122
+ }
5123
+ },
5124
+ {
5125
+ "docs": {
5126
+ "stability": "experimental",
5127
+ "summary": "Labels associated with this provider."
5128
+ },
5129
+ "immutable": true,
5130
+ "locationInModule": {
5131
+ "filename": "src/providers/ec2.ts",
5132
+ "line": 213
5133
+ },
5134
+ "name": "labels",
5135
+ "overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
5136
+ "type": {
5137
+ "collection": {
5138
+ "elementtype": {
5139
+ "primitive": "string"
5140
+ },
5141
+ "kind": "array"
5142
+ }
5143
+ }
5144
+ },
5145
+ {
5146
+ "docs": {
5147
+ "stability": "experimental",
5148
+ "summary": "Security group attached to launched instances."
5149
+ },
5150
+ "immutable": true,
5151
+ "locationInModule": {
5152
+ "filename": "src/providers/ec2.ts",
5153
+ "line": 218
5154
+ },
5155
+ "name": "securityGroup",
5156
+ "optional": true,
5157
+ "overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
5158
+ "type": {
5159
+ "fqn": "aws-cdk-lib.aws_ec2.ISecurityGroup"
5160
+ }
5161
+ }
5162
+ ],
5163
+ "symbolId": "src/providers/ec2:Ec2Runner"
5164
+ },
5165
+ "@cloudsnorkel/cdk-github-runners.Ec2RunnerProps": {
5166
+ "assembly": "@cloudsnorkel/cdk-github-runners",
5167
+ "datatype": true,
5168
+ "docs": {
5169
+ "stability": "experimental",
5170
+ "summary": "Properties for {@link Ec2Runner} construct."
5171
+ },
5172
+ "fqn": "@cloudsnorkel/cdk-github-runners.Ec2RunnerProps",
5173
+ "interfaces": [
5174
+ "@cloudsnorkel/cdk-github-runners.RunnerProviderProps"
5175
+ ],
5176
+ "kind": "interface",
5177
+ "locationInModule": {
5178
+ "filename": "src/providers/ec2.ts",
5179
+ "line": 126
5180
+ },
5181
+ "name": "Ec2RunnerProps",
5182
+ "properties": [
5183
+ {
5184
+ "abstract": true,
5185
+ "docs": {
5186
+ "default": "AMI builder for Ubuntu Linux on the same subnet as configured by {@link vpc} and {@link subnetSelection}",
5187
+ "remarks": "On Linux, a user named `runner` is expected to exist with access to Docker.",
5188
+ "stability": "experimental",
5189
+ "summary": "AMI builder that creates AMIs with GitHub runner pre-configured."
5190
+ },
5191
+ "immutable": true,
5192
+ "locationInModule": {
5193
+ "filename": "src/providers/ec2.ts",
5194
+ "line": 132
5195
+ },
5196
+ "name": "amiBuilder",
5197
+ "optional": true,
5198
+ "type": {
5199
+ "fqn": "@cloudsnorkel/cdk-github-runners.IAmiBuilder"
5200
+ }
5201
+ },
5202
+ {
5203
+ "abstract": true,
5204
+ "docs": {
5205
+ "default": "m5.large",
5206
+ "stability": "experimental",
5207
+ "summary": "Instance type for launched runner instances."
5208
+ },
5209
+ "immutable": true,
5210
+ "locationInModule": {
5211
+ "filename": "src/providers/ec2.ts",
5212
+ "line": 150
5213
+ },
5214
+ "name": "instanceType",
5215
+ "optional": true,
5216
+ "type": {
5217
+ "fqn": "aws-cdk-lib.aws_ec2.InstanceType"
5218
+ }
5219
+ },
5220
+ {
5221
+ "abstract": true,
5222
+ "docs": {
5223
+ "default": "['ec2']",
5224
+ "remarks": "These labels are used to identify which provider should spawn a new on-demand runner. Every job sends a webhook with the labels it's looking for\nbased on runs-on. We match the labels from the webhook with the labels specified here. If all the labels specified here are present in the\njob's labels, this provider will be chosen and spawn a new runner.",
5225
+ "stability": "experimental",
5226
+ "summary": "GitHub Actions labels used for this provider."
5227
+ },
5228
+ "immutable": true,
5229
+ "locationInModule": {
5230
+ "filename": "src/providers/ec2.ts",
5231
+ "line": 143
5232
+ },
5233
+ "name": "labels",
5234
+ "optional": true,
5235
+ "type": {
5236
+ "collection": {
5237
+ "elementtype": {
5238
+ "primitive": "string"
5239
+ },
5240
+ "kind": "array"
5241
+ }
5242
+ }
5243
+ },
5244
+ {
5245
+ "abstract": true,
5246
+ "docs": {
5247
+ "default": "account's default security group",
5248
+ "stability": "experimental",
5249
+ "summary": "Security Group to assign to launched runner instances."
5250
+ },
5251
+ "immutable": true,
5252
+ "locationInModule": {
5253
+ "filename": "src/providers/ec2.ts",
5254
+ "line": 164
5255
+ },
5256
+ "name": "securityGroup",
5257
+ "optional": true,
5258
+ "type": {
5259
+ "fqn": "aws-cdk-lib.aws_ec2.ISecurityGroup"
5260
+ }
5261
+ },
5262
+ {
5263
+ "abstract": true,
5264
+ "docs": {
5265
+ "default": "false",
5266
+ "remarks": "Spot instances are cheaper but not always available and can be stopped prematurely.",
5267
+ "stability": "experimental",
5268
+ "summary": "Use spot instances to save money."
5269
+ },
5270
+ "immutable": true,
5271
+ "locationInModule": {
5272
+ "filename": "src/providers/ec2.ts",
5273
+ "line": 194
5274
+ },
5275
+ "name": "spot",
5276
+ "optional": true,
5277
+ "type": {
5278
+ "primitive": "boolean"
5279
+ }
5280
+ },
5281
+ {
5282
+ "abstract": true,
5283
+ "docs": {
5284
+ "default": "no max price (you will pay current spot price)",
5285
+ "stability": "experimental",
5286
+ "summary": "Set a maximum price for spot instances."
5287
+ },
5288
+ "immutable": true,
5289
+ "locationInModule": {
5290
+ "filename": "src/providers/ec2.ts",
5291
+ "line": 201
5292
+ },
5293
+ "name": "spotMaxPrice",
5294
+ "optional": true,
5295
+ "type": {
5296
+ "primitive": "string"
5297
+ }
5298
+ },
5299
+ {
5300
+ "abstract": true,
5301
+ "docs": {
5302
+ "default": "30GB",
5303
+ "remarks": "This modifies the boot volume size and doesn't add any additional volumes.",
5304
+ "stability": "experimental",
5305
+ "summary": "Size of volume available for launched runner instances."
5306
+ },
5307
+ "immutable": true,
5308
+ "locationInModule": {
5309
+ "filename": "src/providers/ec2.ts",
5310
+ "line": 157
5311
+ },
5312
+ "name": "storageSize",
5313
+ "optional": true,
5314
+ "type": {
5315
+ "fqn": "aws-cdk-lib.Size"
5316
+ }
5317
+ },
5318
+ {
5319
+ "abstract": true,
5320
+ "docs": {
5321
+ "default": "default subnet of account's default VPC",
5322
+ "deprecated": "use {@link vpc} and {@link subnetSelection}",
5323
+ "stability": "deprecated",
5324
+ "summary": "Subnet where the runner instances will be launched."
5325
+ },
5326
+ "immutable": true,
5327
+ "locationInModule": {
5328
+ "filename": "src/providers/ec2.ts",
5329
+ "line": 173
5330
+ },
5331
+ "name": "subnet",
5332
+ "optional": true,
5333
+ "type": {
5334
+ "fqn": "aws-cdk-lib.aws_ec2.ISubnet"
5335
+ }
5336
+ },
5337
+ {
5338
+ "abstract": true,
5339
+ "docs": {
5340
+ "default": "default VPC subnet",
5341
+ "remarks": "Only the first matched subnet will be used.",
5342
+ "stability": "experimental",
5343
+ "summary": "Where to place the network interfaces within the VPC."
5344
+ },
5345
+ "immutable": true,
5346
+ "locationInModule": {
5347
+ "filename": "src/providers/ec2.ts",
5348
+ "line": 187
5349
+ },
5350
+ "name": "subnetSelection",
5351
+ "optional": true,
5352
+ "type": {
5353
+ "fqn": "aws-cdk-lib.aws_ec2.SubnetSelection"
5354
+ }
5355
+ },
5356
+ {
5357
+ "abstract": true,
5358
+ "docs": {
5359
+ "default": "default account VPC",
5360
+ "stability": "experimental",
5361
+ "summary": "VPC where runner instances will be launched."
5362
+ },
5363
+ "immutable": true,
5364
+ "locationInModule": {
5365
+ "filename": "src/providers/ec2.ts",
5366
+ "line": 180
5367
+ },
5368
+ "name": "vpc",
5369
+ "optional": true,
5370
+ "type": {
5371
+ "fqn": "aws-cdk-lib.aws_ec2.IVpc"
5372
+ }
5373
+ }
5374
+ ],
5375
+ "symbolId": "src/providers/ec2:Ec2RunnerProps"
5376
+ },
4918
5377
  "@cloudsnorkel/cdk-github-runners.FargateRunner": {
4919
5378
  "assembly": "@cloudsnorkel/cdk-github-runners",
4920
5379
  "base": "constructs.Construct",
@@ -5808,6 +6267,43 @@
5808
6267
  ],
5809
6268
  "symbolId": "src/runner:GitHubRunnersProps"
5810
6269
  },
6270
+ "@cloudsnorkel/cdk-github-runners.IAmiBuilder": {
6271
+ "assembly": "@cloudsnorkel/cdk-github-runners",
6272
+ "docs": {
6273
+ "remarks": "Anything that ends up with a launch template pointing to an AMI that runs GitHub self-hosted runners can be used. A simple implementation could even point to an existing AMI and nothing else.\n\nThe AMI can be further updated over time manually or using a schedule as long as it is always written to the same launch template.",
6274
+ "stability": "experimental",
6275
+ "summary": "Interface for constructs that build an AMI that can be used in {@link IRunnerProvider}."
6276
+ },
6277
+ "fqn": "@cloudsnorkel/cdk-github-runners.IAmiBuilder",
6278
+ "kind": "interface",
6279
+ "locationInModule": {
6280
+ "filename": "src/providers/common.ts",
6281
+ "line": 236
6282
+ },
6283
+ "methods": [
6284
+ {
6285
+ "abstract": true,
6286
+ "docs": {
6287
+ "remarks": "This method can be called multiple times if the image is bound to multiple providers. Make sure you cache the image when implementing or return an error if this builder doesn't support reusing images.",
6288
+ "returns": "ami",
6289
+ "stability": "experimental",
6290
+ "summary": "Finalize and return all required information about the AMI built by this builder."
6291
+ },
6292
+ "locationInModule": {
6293
+ "filename": "src/providers/common.ts",
6294
+ "line": 244
6295
+ },
6296
+ "name": "bind",
6297
+ "returns": {
6298
+ "type": {
6299
+ "fqn": "@cloudsnorkel/cdk-github-runners.RunnerAmi"
6300
+ }
6301
+ }
6302
+ }
6303
+ ],
6304
+ "name": "IAmiBuilder",
6305
+ "symbolId": "src/providers/common:IAmiBuilder"
6306
+ },
5811
6307
  "@cloudsnorkel/cdk-github-runners.IImageBuilder": {
5812
6308
  "assembly": "@cloudsnorkel/cdk-github-runners",
5813
6309
  "docs": {
@@ -7489,6 +7985,105 @@
7489
7985
  ],
7490
7986
  "symbolId": "src/providers/common:Os"
7491
7987
  },
7988
+ "@cloudsnorkel/cdk-github-runners.RunnerAmi": {
7989
+ "assembly": "@cloudsnorkel/cdk-github-runners",
7990
+ "datatype": true,
7991
+ "docs": {
7992
+ "stability": "experimental",
7993
+ "summary": "Description of a AMI built by {@link IAmiBuilder}."
7994
+ },
7995
+ "fqn": "@cloudsnorkel/cdk-github-runners.RunnerAmi",
7996
+ "kind": "interface",
7997
+ "locationInModule": {
7998
+ "filename": "src/providers/common.ts",
7999
+ "line": 202
8000
+ },
8001
+ "name": "RunnerAmi",
8002
+ "properties": [
8003
+ {
8004
+ "abstract": true,
8005
+ "docs": {
8006
+ "stability": "experimental",
8007
+ "summary": "Architecture of the image."
8008
+ },
8009
+ "immutable": true,
8010
+ "locationInModule": {
8011
+ "filename": "src/providers/common.ts",
8012
+ "line": 211
8013
+ },
8014
+ "name": "architecture",
8015
+ "type": {
8016
+ "fqn": "@cloudsnorkel/cdk-github-runners.Architecture"
8017
+ }
8018
+ },
8019
+ {
8020
+ "abstract": true,
8021
+ "docs": {
8022
+ "stability": "experimental",
8023
+ "summary": "Launch template pointing to the latest AMI."
8024
+ },
8025
+ "immutable": true,
8026
+ "locationInModule": {
8027
+ "filename": "src/providers/common.ts",
8028
+ "line": 206
8029
+ },
8030
+ "name": "launchTemplate",
8031
+ "type": {
8032
+ "fqn": "aws-cdk-lib.aws_ec2.ILaunchTemplate"
8033
+ }
8034
+ },
8035
+ {
8036
+ "abstract": true,
8037
+ "docs": {
8038
+ "stability": "experimental",
8039
+ "summary": "OS type of the image."
8040
+ },
8041
+ "immutable": true,
8042
+ "locationInModule": {
8043
+ "filename": "src/providers/common.ts",
8044
+ "line": 216
8045
+ },
8046
+ "name": "os",
8047
+ "type": {
8048
+ "fqn": "@cloudsnorkel/cdk-github-runners.Os"
8049
+ }
8050
+ },
8051
+ {
8052
+ "abstract": true,
8053
+ "docs": {
8054
+ "stability": "experimental",
8055
+ "summary": "Installed runner version."
8056
+ },
8057
+ "immutable": true,
8058
+ "locationInModule": {
8059
+ "filename": "src/providers/common.ts",
8060
+ "line": 226
8061
+ },
8062
+ "name": "runnerVersion",
8063
+ "type": {
8064
+ "fqn": "@cloudsnorkel/cdk-github-runners.RunnerVersion"
8065
+ }
8066
+ },
8067
+ {
8068
+ "abstract": true,
8069
+ "docs": {
8070
+ "stability": "experimental",
8071
+ "summary": "Log group where image builds are logged."
8072
+ },
8073
+ "immutable": true,
8074
+ "locationInModule": {
8075
+ "filename": "src/providers/common.ts",
8076
+ "line": 221
8077
+ },
8078
+ "name": "logGroup",
8079
+ "optional": true,
8080
+ "type": {
8081
+ "fqn": "aws-cdk-lib.aws_logs.LogGroup"
8082
+ }
8083
+ }
8084
+ ],
8085
+ "symbolId": "src/providers/common:RunnerAmi"
8086
+ },
7492
8087
  "@cloudsnorkel/cdk-github-runners.RunnerImage": {
7493
8088
  "assembly": "@cloudsnorkel/cdk-github-runners",
7494
8089
  "datatype": true,
@@ -8322,6 +8917,6 @@
8322
8917
  "symbolId": "src/providers/image-builders/windows-components:WindowsComponents"
8323
8918
  }
8324
8919
  },
8325
- "version": "0.6.0",
8326
- "fingerprint": "hscwjQdZoW1Xlx10opRG51XHwCVQr0oA3/mq4GIIRJU="
8920
+ "version": "0.6.2",
8921
+ "fingerprint": "y4GnkdOvMKfJ1wUVEdKTqVxE9keZ5YzwJQqPUj4azrw="
8327
8922
  }