Move Shared Runners fully to GCP
We plan to switch down the DO Shared Runners on GitLab.com and dev.gitlab.org. For this we should:
- check how much will raise the resources usage on existing managers, when all of the CI/CD load will be sent to existing ones in GCP,
- decide if we should add additional managers (currently ~40% of jobs is handled by DO, where we have 4 managers; I suspect we will need to add another managers to GCP to stay stable),
- decide if and how we should update the configuration of managers,
- prepare configuration changes for concurrent/limit/autoscaling settings (if needed),
- apply configuration changes and pause managers in DO,
- update the description of Shared Runners at GitLab.com (currently we mention only DO there, we should replace it with GCP).
TODO for adding new managers:
- create machines:
-
shared-runners-manager-5 -
create /etc/ipaddress.txt
with external IP address
-
-
shared-runners-manager-6 -
create /etc/ipaddress.txt
with external IP address
-
-
gitlab-shared-runners-manager-5 -
create /etc/ipaddress.txt
with external IP address
-
-
gitlab-shared-runners-manager-6 -
create /etc/ipaddress.txt
with external IP address
-
-
- assign DNS records:
-
shared-runners-manager-5.gitlab.com IN A 35.207.49.66 -
shared-runners-manager-6.gitlab.com IN A 35.207.54.55 -
gitlab-shared-runners-manager-5.gitlab.com IN A 35.207.53.49 -
gitlab-shared-runners-manager-6.gitlab.com IN A 35.207.10.48
-
- prepare Runner tokens (
gitlab-runner register ...
)-
shared-runners-manager-5 -
shared-runners-manager-6 - gitlab-shared-runners-manager-5
-
for GitLab.com -
for dev.gitlab.org
-
- gitlab-shared-runners-manager-6
-
for GitLab.com -
for dev.gitlab.org
-
-
- prepare new roles in chef:
- move existing roles:
-
gitlab-runner-srm3
as child ofgitlab-runner-srm-gce-us-east1-d
-
move existing secrets from gitlab-runner-srm-gce-us-east1-d
togitlab-runner-srm3
-
switch shared-runners-manager-3.gitlab.com
node togitlab-runner-srm3
role
-
-
gitlab-runner-srm4
as child ofgitlab-runner-srm-gce-us-east1-c
-
move existing secrets from gitlab-runner-srm-gce-us-east1-c
togitlab-runner-srm4
-
switch shared-runners-manager-4.gitlab.com
node togitlab-runner-srm4
role
-
-
gitlab-runner-gsrm3
as child ofgitlab-runner-gsrm-gce-us-east1-d
-
move existing secrets from gitlab-runner-gsrm-gce-us-east1-d
togitlab-runner-gsrm3
-
switch gitlab-shared-runners-manager-3.gitlab.com
node togitlab-runner-gsrm3
role
-
-
gitlab-runner-gsrm4
as child ofgitlab-runner-gsrm-gce-us-east1-c
-
move existing secrets from gitlab-runner-gsrm-gce-us-east1-c
togitlab-runner-gsrm4
-
switch gitlab-shared-runners-manager-4.gitlab.com
node togitlab-runner-gsrm4
role
-
-
- add roles for new managers:
-
gitlab-runner-srm5
as child ofgitlab-runner-srm-gce-us-east1-d
-
create secrets for gitlab-runner-srm5
based ongitlab-runner-srm3
-
add Runner token to secrets
-
-
gitlab-runner-srm6
as child ofgitlab-runner-srm-gce-us-east1-c
-
create secrets for gitlab-runner-srm6
based ongitlab-runner-srm4
-
add Runner token to secrets
-
-
gitlab-runner-gsrm5
as child ofgitlab-runner-gsrm-gce-us-east1-d
-
create secrets for gitlab-runner-gsrm5
based ongitlab-runner-gsrm3
-
add Runner tokens to secrets
-
-
gitlab-runner-gsrm6
as child ofgitlab-runner-gsrm-gce-us-east1-c
-
create secrets for gitlab-runner-gsrm6
based ongitlab-runner-gsrm4
-
add Runner tokens to secrets
-
-
- move existing roles:
- bootstrap chef nodes:
-
shared-runners-manager-5
, based ongitlab-runner-srm5
role -
shared-runners-manager-6
, based ongitlab-runner-srm6
role -
gitlab-shared-runners-manager-5
, based ongitlab-runner-gsrm5
role -
gitlab-shared-runners-manager-6
, based ongitlab-runner-gsrm6
role
-
- add new nodes to Prometheus (
prometheus-server
role):-
in node
job (public_hosts
) -
in shared-runners
job (target
) -
in shared-runners-gitlab-org
job (target
)
-
-
update graph at https://gitlab.com/gitlab-com/runbooks/blob/master/howto/update-gitlab-runner-on-managers.md (runbooks!600)
Edited by Tomasz Maczukin