|
1 | 1 | # gitlab-shell-runner |
| 2 | + |
| 3 | +This Terraform module provisions an AWS EC2 instance and configures it as a GitLab Runner with Shell executor, allowing it to run CI/CD jobs for your GitLab projects. The module can be used to deploy multiple runners and can be customized to your specific needs. |
| 4 | + |
| 5 | +## Usage |
| 6 | + |
| 7 | +```hcl |
| 8 | +module "gitlab_shell_runner" { |
| 9 | + source = "https://github.com/infraspecdev/terraform-aws-gitlab-shell-runner" |
| 10 | +
|
| 11 | + ami_id = "ami-0addfae420fd47aab" |
| 12 | + instance_type = "t2.micro" |
| 13 | + instance_count = 2 |
| 14 | + vpc_security_group_ids = ["sg-0b0b0b0b0b0b0b0b0"] |
| 15 | + subnet_id = "subnet-0b0e1c4b5b1b1b1b1" |
| 16 | + gitlab_url = "https://gitlab.example.com" |
| 17 | + runner_registration_token = "runner-registration-token-here" |
| 18 | + ssh_public_key = "ssh-public-key-here" |
| 19 | +} |
| 20 | +``` |
| 21 | + |
| 22 | + |
| 23 | +<!-- BEGIN_TF_DOCS --> |
| 24 | +## Requirements |
| 25 | + |
| 26 | +| Name | Version | |
| 27 | +|------|---------| |
| 28 | +| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | ~> 1.3.0 | |
| 29 | +| <a name="requirement_aws"></a> [aws](#requirement\_aws) | >= 4.49.0 | |
| 30 | + |
| 31 | +## Providers |
| 32 | + |
| 33 | +| Name | Version | |
| 34 | +|------|---------| |
| 35 | +| <a name="provider_aws"></a> [aws](#provider\_aws) | 4.51.0 | |
| 36 | + |
| 37 | +## Modules |
| 38 | + |
| 39 | +No modules. |
| 40 | + |
| 41 | +## Resources |
| 42 | + |
| 43 | +| Name | Type | |
| 44 | +|------|------| |
| 45 | +| [aws_instance.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/instance) | resource | |
| 46 | +| [aws_key_pair.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/key_pair) | resource | |
| 47 | + |
| 48 | +## Inputs |
| 49 | + |
| 50 | +| Name | Description | Type | Default | Required | |
| 51 | +|------|-------------|------|---------|:--------:| |
| 52 | +| <a name="input_additional_tags"></a> [additional\_tags](#input\_additional\_tags) | Additional tags to apply to the resources | `map(string)` | `{}` | no | |
| 53 | +| <a name="input_ami_id"></a> [ami\_id](#input\_ami\_id) | AMI to use for the instance | `string` | `"ami-0addfae420fd47aab"` | no | |
| 54 | +| <a name="input_gitlab_url"></a> [gitlab\_url](#input\_gitlab\_url) | URL of your Gitlab instance | `string` | n/a | yes | |
| 55 | +| <a name="input_instance_count"></a> [instance\_count](#input\_instance\_count) | Number of instances to provision | `number` | n/a | yes | |
| 56 | +| <a name="input_instance_type"></a> [instance\_type](#input\_instance\_type) | Type of instance to provision | `string` | n/a | yes | |
| 57 | +| <a name="input_run_untagged_jobs"></a> [run\_untagged\_jobs](#input\_run\_untagged\_jobs) | Should run untagged jobs or not | `bool` | `true` | no | |
| 58 | +| <a name="input_runner_description"></a> [runner\_description](#input\_runner\_description) | Description for Gitlab Runners | `string` | `"Shell Runner"` | no | |
| 59 | +| <a name="input_runner_locked"></a> [runner\_locked](#input\_runner\_locked) | Should Lock the runners or not | `bool` | `false` | no | |
| 60 | +| <a name="input_runner_registration_token"></a> [runner\_registration\_token](#input\_runner\_registration\_token) | Registration token for Gitlab Runners | `string` | n/a | yes | |
| 61 | +| <a name="input_runner_tags"></a> [runner\_tags](#input\_runner\_tags) | Tags for Gitlab Runners for filtering | `list(string)` | <pre>[<br> "shell",<br> "aws"<br>]</pre> | no | |
| 62 | +| <a name="input_ssh_public_key"></a> [ssh\_public\_key](#input\_ssh\_public\_key) | Existing SSH public key to use for the key pair | `string` | `null` | no | |
| 63 | +| <a name="input_subnet_id"></a> [subnet\_id](#input\_subnet\_id) | VPC Subnet ID to launch in | `string` | n/a | yes | |
| 64 | +| <a name="input_vpc_security_group_ids"></a> [vpc\_security\_group\_ids](#input\_vpc\_security\_group\_ids) | List of security group IDs to associate | `list(string)` | n/a | yes | |
| 65 | + |
| 66 | +## Outputs |
| 67 | + |
| 68 | +No outputs. |
| 69 | +<!-- END_TF_DOCS --> |
| 70 | + |
| 71 | +## Authors |
| 72 | + |
| 73 | +Module managed by [Infraspec](https://github.com/infraspecdev). |
0 commit comments