Page MenuHomePhabricator

Migrate GitLab Shared Runners from profile::gitlab::runner to role::gitlab_runner
Closed, ResolvedPublic

Description

GitLab Shared Runners in WMCS use puppet class profile::gitlab::runner. Trusted Runners and Runners in test project devtools use role::gitlab_runner.

This means the runners use a slightly different configuration. The role::gitlab_runner also contains (see):

include profile::base::production
include profile::base::firewall
include profile::gitlab::runner

We should try to align all of the runner configuration to make sure all runner use the same config and to prevent unexpected behavior. The firewall configuration between profile and role is quite different. I'd suggest to migrate Shared Runners to role::gitlab_runner as well.

@brennen @Dzahn is there a reason the Shared Runners are using a profile instead of a role?

In some recent discussion we talked about Shared Runners in WMCS being end-of-life. So we can also close this task with "won't fix" depending on the expected time frame of that migration.

Event Timeline

Jelto triaged this task as Medium priority.

I converted one of the Shared Runners runner-1030.gitlab-runners.eqiad1.wikimedia.cloud from profile::gitlab::runner to role::gitlab_runner by changing the puppet classes in horizon. The puppet run installed some firewall/firm related resources and some logging resources. The whole process takes about 5 minutes for a runner.

The Runner seems to work fine again. I executed a test job in gitlab-runner-test project using a special canary tag. The runner also executed one other job successfully.

I'll leave runner-1030 running and convert the other Shared Runners if no more errors come up. Feel free to pause the runner if you face errors.

Thanks again to @Dzahn for the hint regarding reimaging and changing puppet roles.

runner-1030 was running with the new role for one day as a canary and all jobs look good. I converted all remaining Shared Runners to role::gitlab_runner.

Puppet runs on all runners look good, ferm/firewall was installed and ferm contains all expected rules. I'm closing this task.