All Projects → woodjme → autoscaling-ec2-gitlab-runners-fargate

woodjme / autoscaling-ec2-gitlab-runners-fargate

Licence: MIT license
Autoscaling EC2 GitLab Runners Spawned by Fargate

Programming Languages

shell
77523 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to autoscaling-ec2-gitlab-runners-fargate

aws-cloudformation-templates
CloudFormation Templates
Stars: ✭ 15 (-25%)
Mutual labels:  cloudformation, ec2
Awesome Aws
A curated list of awesome Amazon Web Services (AWS) libraries, open source repos, guides, blogs, and other resources. Featuring the Fiery Meter of AWSome.
Stars: ✭ 9,895 (+49375%)
Mutual labels:  cloudformation, ec2
AutoSpotting
Saves up to 90% of AWS EC2 costs by automating the use of spot instances on existing AutoScaling groups. Installs in minutes using CloudFormation or Terraform. Convenient to deploy at scale using StackSets. Uses tagging to avoid launch configuration changes. Automated spot termination handling. Reliable fallback to on-demand instances.
Stars: ✭ 2,058 (+10190%)
Mutual labels:  cloudformation, ec2
Awscloudformation Samples
Sample AWS CloudFormation templates
Stars: ✭ 153 (+665%)
Mutual labels:  cloudformation, ec2
Aws Toolkit Eclipse
AWS Toolkit for Eclipse – an open-source plugin for developing, deploying, and managing AWS applications.
Stars: ✭ 252 (+1160%)
Mutual labels:  cloudformation, ec2
aws-autoscaling-gitlab-runner
CloudFormation template to deploy a GitLab Runner with auto-scaling on AWS.
Stars: ✭ 44 (+120%)
Mutual labels:  cloudformation, gitlab-runner
Aws Scalable Big Blue Button Example
Demonstration of how to deploy a scalable video conference solution based on Big Blue Button
Stars: ✭ 29 (+45%)
Mutual labels:  cloudformation, ec2
Aws Sdk Perl
A community AWS SDK for Perl Programmers
Stars: ✭ 153 (+665%)
Mutual labels:  cloudformation, ec2
Autospotting
Saves up to 90% of AWS EC2 costs by automating the use of spot instances on existing AutoScaling groups. Installs in minutes using CloudFormation or Terraform. Convenient to deploy at scale using StackSets. Uses tagging to avoid launch configuration changes. Automated spot termination handling. Reliable fallback to on-demand instances.
Stars: ✭ 2,014 (+9970%)
Mutual labels:  cloudformation, ec2
traefik-cluster-ecs
This is a tutorial on how to deploy a Traefik Load Balancer in AWS using CloudFormation to load balancer development ECS tasks using hosts (FQDN).
Stars: ✭ 62 (+210%)
Mutual labels:  cloudformation, ec2
go-localstack
Go Wrapper for using localstack
Stars: ✭ 56 (+180%)
Mutual labels:  cloudformation, ec2
kubernetes-ami
A simple AMI and CloudFormation for launching Kubernetes on AWS
Stars: ✭ 41 (+105%)
Mutual labels:  cloudformation
AWSlack
Get Slack notifications on AWS CloudWatch events
Stars: ✭ 21 (+5%)
Mutual labels:  cloudformation
gitlab-chart
Kubernetes Helm chart to deploy GitLab
Stars: ✭ 59 (+195%)
Mutual labels:  gitlab-runner
hammertime
AWS EC2, ASG, RDS Power cycling
Stars: ✭ 12 (-40%)
Mutual labels:  ec2
cfsec
Static analysis for CloudFormation templates to identify common misconfiguration
Stars: ✭ 53 (+165%)
Mutual labels:  cloudformation
cloudformation-operator
A Kubernetes operator for managing CloudFormation stacks via a CustomResource
Stars: ✭ 98 (+390%)
Mutual labels:  cloudformation
cloudniite
AWS Lambda Optimization and Monitoring Tool
Stars: ✭ 25 (+25%)
Mutual labels:  cloudformation
ocp-gitlab-runner
OpenShift template for GitLab Runner with Kubernetes executor
Stars: ✭ 28 (+40%)
Mutual labels:  gitlab-runner
pnzr
pnzr is docker deploy tool for ecs.
Stars: ✭ 31 (+55%)
Mutual labels:  ec2

Autoscaling EC2 GitLab Runners Spawned by Fargate

The purpose of the CloudFormation template is to create a Fargate Service that manages and autoscales EC2 instances to serve as a Gitlab CI executors. This allows for private GitLab Runners without managing, patching or maintaining servers.

Why Use EC2 executors?

At the time of writing, Fargate doesn't support the privileged task definition parameter for executors which ultimately means you can't use Docker-in-Docker to build/pull/push docker images in a Fargate executor. Anyone who is looking for a pure Fargate implementation should read this.

Launch CloudFormation

Diagram

Parameters

  • VpcId - Select a VPC that allows instances access to the Internet
  • SubnetID - Select subnets - Must be in the selected VPC!
  • GitLabURL - The Gitlab URL, change if self-hosted
  • GitLabRegistrationToken - The Gitlab runer registration token
  • RunnerRequestConcurrency - Specify the number of concurrent EC2 virtual machines to spawn (defaults to 12)
  • RunnerTagList - Optional parameter to specify the gitlab-runner tags (Example "docker,aws")
  • AdditionalRegisterParams - Any additional parameters you want to pass to gitlab-runner register
  • RunnerVersion The GitLab runner version
  • InstanceType - The instance type of the runners
  • RootVolumeSize -The size of the root volume on the runners
  • CacheExpirationInDays - Select how long to store a jobs cache output in S3
  • CPU - Set the number of CPUs for the spawner (1 CPU = 1024)
  • Memory - Set the amount of RAM in KB for the spawner
  • DockerImage - The default docker image if not provided in a gitlab-ci.yml file

Resource Created

  • IAM User - Used to connect to S3
  • IAM Roles for ECS
  • S3 Bucket for runner cache
  • ECS Cluster, Service & Task Definition
  • CloudWatch Logs Groups that streams to logs for the spawner
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].