#refarch (2023-07)
Cloud Posse Reference Architecture
2023-07-01

I am using leapp for my aws profiles management, i want to SSM to instance with profile but i need to pass a document something like this:
aws ssm start-session --target INSTANCE_ID --document-name AWS-StartPortForwardingSessionToRemoteHost --parameters=portNumber=443,localPortNumber=443,host=REMOTE_HOST
anyway I can achieve this with leapp?
2023-07-19

Is there a way to define an optional github runner that’s started on demand via a label like:
runs-on:
group: <name>
labels: m6a.2xlarge

for context, i know we can request a specific instance with a label.
the core question here is if the runner could intelligently start a specific instance type

at this time i see it is not starting the desired instance. it is just spinning on github waiting for a runner

along these lines, could we have a separate group with min_size: 0
that is only used on demand?

my goal is to have an instance for automation tests (high memory) ready on request, but not always around to save money.
it seems we’d have to have a high capacity instance always around

any thoughts @Dan Miller (Cloud Posse)?

we have two different methods of creating self-hosted runners – github-runners
and eks/actions-runner-controller
. The github-runners
component is just an ASG, so it’s not as intelligent, whereas the eks/actions-runner-controller
is built on EKS so it has a lot more features

with eks/arc
you can have a runner type that can dynamically launch like this

thought so

whereas with github-runners
, you may need to simply deploy an additional ASG for your optional runner type

but with that we’d have to keep 1 instance always around, right?

or if we say 0, it would trigger the creation of 1?

yes I believe the min is 1

random thought, what about a GH step that triggers the creation of the desired instance?

hacky, but would save costs

that could probably work too, but it would take a bit for the runner to initialize of course

right. initialize 1 (maybe), start new one, it initializes, then things run

yup

Also, without moving to Kubernetes, you may want to consider https://github.com/philips-labs/terraform-aws-github-runner
Terraform module for scalable GitHub action runners on AWS

We haven’t had a chance to invest in it, as the simple ASG approach seems to work for most. But on EKS, we do a lot of the things you want to do, as it’s natively supported by the official github actions runner controller.