All Projects → digio → Terraform Google Gitlab Runner

digio / Terraform Google Gitlab Runner

Licence: apache-2.0
Terraform module for provisioning a GitLab CI Runner in a GCP project using the docker+machine executor.

Labels

Projects that are alternatives of or similar to Terraform Google Gitlab Runner

Terraform Aws Vault
A Terraform Module for how to run Vault on AWS using Terraform and Packer
Stars: ✭ 545 (+3105.88%)
Mutual labels:  hcl
Sentinel Attack
Tools to rapidly deploy a threat hunting capability on Azure Sentinel that leverages Sysmon and MITRE ATT&CK
Stars: ✭ 676 (+3876.47%)
Mutual labels:  hcl
Terraform Aws Openvpn
Terraform AWS OpenVPN Stack
Stars: ✭ 7 (-58.82%)
Mutual labels:  hcl
Terraform Aws Secure Baseline
Terraform module to set up your AWS account with the secure baseline configuration based on CIS Amazon Web Services Foundations and AWS Foundational Security Best Practices.
Stars: ✭ 596 (+3405.88%)
Mutual labels:  hcl
Vim Terraform
basic vim/terraform integration
Stars: ✭ 668 (+3829.41%)
Mutual labels:  hcl
Okd
The self-managing, auto-upgrading, Kubernetes distribution for everyone
Stars: ✭ 729 (+4188.24%)
Mutual labels:  hcl
Infrastructure As Code Talk
Sample code for the talk "Infrastructure-as-code: running microservices on AWS with Docker, ECS, and Terraform"
Stars: ✭ 520 (+2958.82%)
Mutual labels:  hcl
Terraform Aws Ecs
Terraform AWS ECS stack
Stars: ✭ 16 (-5.88%)
Mutual labels:  hcl
Vscode Terraform
A Visual Studio Code extension for Hashicorp Terraform
Stars: ✭ 672 (+3852.94%)
Mutual labels:  hcl
Ecs loadbalancing demo
Demo Terraform scripts to create an ECS + Load Balancer setup
Stars: ✭ 7 (-58.82%)
Mutual labels:  hcl
Tectonic Installer
Install a Kubernetes cluster the CoreOS Tectonic Way: HA, self-hosted, RBAC, etcd Operator, and more
Stars: ✭ 599 (+3423.53%)
Mutual labels:  hcl
Red Baron
Automate creating resilient, disposable, secure and agile infrastructure for Red Teams.
Stars: ✭ 662 (+3794.12%)
Mutual labels:  hcl
Tack
Terraform module for creating Kubernetes cluster running on Container Linux by CoreOS in an AWS VPC
Stars: ✭ 734 (+4217.65%)
Mutual labels:  hcl
Intro To Terraform
Sample code for the blog post series "A Comprehensive Guide to Terraform."
Stars: ✭ 550 (+3135.29%)
Mutual labels:  hcl
Terraform tutorial vpc
Stars: ✭ 7 (-58.82%)
Mutual labels:  hcl
Bedrock
Automation for Production Kubernetes Clusters with a GitOps Workflow
Stars: ✭ 528 (+3005.88%)
Mutual labels:  hcl
Peladonerd
Repo con los archivos que uso para mi videos en youtube
Stars: ✭ 716 (+4111.76%)
Mutual labels:  hcl
Kallewheel
A custom color wheel extension for Adobe Photoshop
Stars: ✭ 16 (-5.88%)
Mutual labels:  hcl
Gcp Terraform Samples
Stars: ✭ 16 (-5.88%)
Mutual labels:  hcl
Terraform Aws Demo
Stars: ✭ 6 (-64.71%)
Mutual labels:  hcl

GCP GitLab Runner

A Terraform module for configuring a GCP-based GitLab CI Runner.

This runner is configured to use the docker+machine executor which allows the infrastructure to be scaled up and down as demand requires. The minimum cost (during zero activity) is the cost of an f1-micro instance.

The long-running runner instance runs under a gitlab-ci-runner service account. This account will be granted all required permissions to spawn worker instances on demand.

The worker instances run under a gitlab-ci-worker service account. This account will need to be granted any privileges required to perform build and deploy activities. For example, the storage.admin role can be granted to the worker account as follows:

Usage

To use this module you can create a main.tf file similar to the following example. Note that you will need to modify the roles assigned to the CI worker service account based on your specific project needs.

# Configure GCP provider
provider "google" {
  version = "~> 2.13"
  project = var.gcp_project
  region  = var.gcp_region
}

# Install the GitLab CI Runner infrastructure
module "ci" {
  source      = "digio/gitlab-runner/google"
  version     = "0.0.11"

  gcp_project = var.gcp_project
  gcp_zone    = var.gcp_zone
  gitlab_url  = var.gitlab_url
  ci_token    = var.ci_token
}

# Grant the storage.admin role to the CI workers.  Add other roles as required.
resource "google_project_iam_member" "worker_storage_admin" {
  role   = "roles/storage.admin"
  member = "serviceAccount:${module.ci.ci_worker_service_account.email}"
}

Then perform the following commands:

  • terraform init to get the plugins
  • terraform plan to see the infrastructure plan
  • terraform apply to apply the infrastructure build
  • terraform destroy to destroy the built infrastructure
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].