-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathconfig-example.yml
More file actions
155 lines (118 loc) · 4.77 KB
/
config-example.yml
File metadata and controls
155 lines (118 loc) · 4.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
# Configures the GitLab server, used by playbooks/launch-gitlab.yml
gitlab:
# The version to install (use gitlab-ee for the enterprise version)
package: gitlab-ce
# The name of the server to launch.
name: gitlab
# The fully qualified server name. This will be used for Let's Encrypt. If
# 'auto' is used, a cust.cloudscale.ch entry is used instead. Should you use
# your own DNS entry, be sure to point it to the right IP after the server
# has been launched. The playbook will pause for this.
fqdn: auto
# Wheter to use Let's Encrypt
lets_encrypt_enabled: true
# The email address for Let's Encrypt requests
lets_encrypt_contact: ''
# The image used for the GitLab server, note that this repository assumes
# this to be Debian, Ubuntu, RHEL, or CentOS. Though adding support for
# another distribution should be easy.
image: ubuntu-24.04
# GitLab requires 4GB of RAM and recommends 4 CPU cores. We use 8GB of RAM,
# since we intend to run a single GitLab Runner on the same host.
flavor: flex-8-4
# Can be either lpg1, or rma1.
zone: lpg1
# Depending on your needs, you may want to increase this.
volume_size_gb: 25
# At least one public SSH key, to access the server.
ssh_keys: []
# Cloud-init, to ensure that the server gets all the latest patches, after
# it has been launched. Note that further package upgrade policies are
# your responsibility.
user_data: |
#cloud-config
package_upgrade: true
# List of networks this GitLab server is part of. This may be a private
# network uuid, or the constant "public" for public networks.
#
# Note that at least one network entry has to be shared with the GitLab
# runner config below, or the runners won't be able to contact the server.
networks:
- public
# GitLab runner instances settings
gitlab_runner:
# The fleeting plugin image to use
fleeting_image: quay.io/cloudscalech/fleeting-plugin-cloudscale:latest
# Unique name for this group of managed runner instances
group: fleeting
# The image to use as a base for the instances
image: ubuntu-24.04
# The flavor to use for the instances
flavor: flex-8-4
# The zone in which to launch instances
zone: lpg1
# The size of the root disk
volume_size_gb: 25
# The networks attached to the GitLab runner. The first network is used to
# communicate with the GitLab server. The GitLab runner typically needs
# internet access, so if only private networks are configured, a default
# gateway has to be configured.
networks:
- public
# The user data applied to each instance. Note that GitLab expects to find
# a working docker configuration.
user_data: |
#cloud-config
package_upgrade: true
apt:
sources:
docker.list:
source: deb https://download.docker.com/linux/ubuntu $RELEASE stable
keyid: 9DC858229FC7DD38854AE2D88D81803C0EBFCD88
packages:
- docker-ce
- docker-ce-cli
- containerd.io
- docker-buildx-plugin
system_info:
default_user:
groups: [docker]
# Upper limit of instances
max_instances: 10
# How many jobs a single instance will process in parallel
capacity_per_instance: 4
# The number of jobs an instance completes, before it is removed
max_builds: 1024
# Delete instances when the controlling GitLab runner is shut down. This
# ensures that a new fleeting plugin release causes new runners to be
# created, but can introduce some instance churn.
#
# Note that this is currently not supported due to the following bug in
# GitLab runner:
#
# https://gitlab.com/gitlab-org/gitlab-runner/-/issues/37642
delete_instances_on_shutdown: false
# The autoscale policies, as documented by GitLab:
# https://docs.gitlab.com/runner/configuration/advanced-configuration/#the-runnersautoscalerpolicy-sections
policies:
- name: Default Policy
# Unix cron formatted times during which this policy is active
period: ["* * * * *"]
# Target idle capacity we want to be immediately available for jobs
idle_count: 1
# Amount of time an instance can be idle before it is terminated
idle_time: "60s"
# You can optionally use S3 for CI caches. This allows you to use the 'cache'
# key in your .gitlab-ci.yml, and have that cache shared across runners.
#
# To get started, use `true` below, then create an object user and a bucket
# on https://control.cloudscale.ch. The bucket has to exist, and you need
# to use the endpoint where the bucket was created, for this to work.
s3_cache: false
# Set to rma/lpg depending on where you created your bucket
s3_endpoint: objects.lpg.cloudscale.ch
# The credentials shown in your control panel
s3_access_key: ''
s3_secret_key: ''
# The name of the bucket you created (must exist already).
s3_bucket: ''