This module creates a reslient and fault tolerant GitLab installation using Google Kubernetes Engine (GKE) as the computing environment and the following services for storing data:
This module is meant for use with Terraform 0.13+ and tested using Terraform 0.14.
There are examples included in the examples folder but simple usage is as follows:
module "gke-gitlab" {
source = "terraform-google-modules/gke-gitlab/google"
project_id = "<PROJECT ID>"
certmanager_email = "test@example.com"
}
Then perform the following commands on the root folder:
terraform init
to get the pluginsterraform plan
to see the infrastructure planterraform apply
to apply the infrastructure buildterraform destroy
to destroy the built infrastructure
Name | Description | Type | Default | Required |
---|---|---|---|---|
allow_force_destroy | Allows full cleanup of resources by disabling any deletion safe guards | bool |
false |
no |
certmanager_email | Email used to retrieve SSL certificates from Let's Encrypt | string |
n/a | yes |
domain | Domain for hosting gitlab functionality (ie mydomain.com would access gitlab at gitlab.mydomain.com) | string |
"" |
no |
gitlab_address_name | Name of the address to use for GitLab ingress | string |
"" |
no |
gitlab_db_name | Instance name for the GitLab Postgres database. | string |
"gitlab-db" |
no |
gitlab_db_password | Password for the GitLab Postgres user | string |
"" |
no |
gitlab_db_random_prefix | Sets random suffix at the end of the Cloud SQL instance name. | bool |
false |
no |
gitlab_deletion_protection | Must be false to allow Terraform to destroy the Cloud SQL instance. | bool |
true |
no |
gitlab_nodes_subnet_cidr | Cidr range to use for gitlab GKE nodes subnet | string |
"10.0.0.0/16" |
no |
gitlab_pods_subnet_cidr | Cidr range to use for gitlab GKE pods subnet | string |
"10.3.0.0/16" |
no |
gitlab_runner_install | Choose whether to install the gitlab runner in the cluster | bool |
true |
no |
gitlab_services_subnet_cidr | Cidr range to use for gitlab GKE services subnet | string |
"10.2.0.0/16" |
no |
gke_machine_type | Machine type used for the node-pool | string |
"n1-standard-4" |
no |
gke_version | Version of GKE to use for the GitLab cluster | string |
"1.21" |
no |
helm_chart_version | Helm chart version to install during deployment | string |
"4.2.4" |
no |
project_id | GCP Project to deploy resources | string |
n/a | yes |
region | GCP region to deploy resources to | string |
"us-central1" |
no |
Name | Description |
---|---|
cluster_ca_certificate | CA Certificate for the GKE cluster that GitLab is deployed in. |
cluster_location | Location of the GKE cluster that GitLab is deployed in. |
cluster_name | Name of the GKE cluster that GitLab is deployed in. |
gitlab_address | IP address where you can connect to your GitLab instance |
gitlab_url | URL where you can access your GitLab instance |
host | Host for the GKE cluster that GitLab is deployed in. |
root_password_instructions | Instructions for getting the root user's password for initial setup |
token | Token for the GKE cluster that GitLab is deployed in. |
Before this module can be used on a project, you must ensure that the following pre-requisites are fulfilled:
The project factory can be used to provision projects with the correct APIs active.
In order to execute this module you must have a Service Account with the following project roles:
Be sure you have the correct Terraform version, you can choose the binary here:
The project has the following folders and files: