Skip to content

Removing tags from our small Hosted runners on Linux for GitLab.com

For guidance on the overall deprecations, removals and breaking changes workflow, please visit Breaking changes, deprecations, and removing features

Deprecation Summary

Due to historical reasons, small Linux SaaS Runners have a lot of tags attached as they were used as labels. We want to streamline the tag to just use saas-linux-small-amd64 and be consistent across all SaaS runners.

We are deprecating the tags: docker, east-c, gce, git-annex, linux, mongo, mysql, postgres, ruby, shared

Breaking Change

If you are using the small SaaS runner on Linux with any tag other than saas-linux-small-amd64 you will be affected.

An example job configuration that will be stuck could look like this:

test-invalid-tag:
  stage: test
  tags:
  - docker
  - linux
  script:
    - echo "I'm affected and will be stuck after 16.6"

How to fix it?

To avoid jobs getting stuck after the 16.6 release, you should change the tag in your .gitlab-ci.yaml file to saas-linux-small-amd64.

An example Job configuration that will work:

test-correct-tag:
  stage: test
  tags:
  - saas-linux-small-amd64
  script:
    - echo "I'm running as expected"

NOTE: The small SaaS runner on Linux is configured to run untagged jobs, this remains unchanged. So if you're using the small Linux runner but haven't specified a tag, the behavior of your job will not change.

test-untagged:
  stage: test
  script:
    - echo "I'm running as expected"

Affected Topology

SaaS users on GitLab.com using the small runner on Linux.

Affected Tier

  • Free
  • Premium
  • Ultimate

Checklists

Labels

  • This issue is labeled deprecation, and with the relevant ~devops::, ~group::, and ~Category: labels.
  • This issue is labeled breaking change if the removal of the deprecated item will be a breaking change.

Timeline

Please add links to the relevant merge requests.

  • As soon as possible, but no later than the third milestone preceding the major release (for example, given the following release schedule: 14.8, 14.9, 14.10, 15.014.8 is the third milestone preceding the major release):
  • On or before the major milestone: A removal entry has been created so the removal will appear on the removals by milestones page and be announced in the release post.
  • On the major milestone:

Mentions

  • Your stage's stable counterparts have been @mentioned on this issue. @jfarmiloe @timtams @cfoster3
  • Your GPM has been @mentioned so that they are aware of planned deprecations.

Deprecation Milestone

%16.8

Planned Removal Milestone

%17.0

Background Information

Some of these (like linux, gce, shared, east-c) were added mostly because we've treated tags as labels. Where in fact we should have that separated (labels - to describe the runner and allow it to be used in the API for any reporting; tags - to be used assigning runners to jobs).

The rest is taken directly from the runners that GitLab.com was offering before May 2016 when we've introduced our new autoscaling (we had then ~20 static VMs with GitLab Runner installed on them in a shell mode and with some of the tools available - the tools were then referenced in the tags to point users what is available there).

When we've introduced medium and large runners, we decided to not add all of that, as it doesn't make sense. But we didn't drop the tags from small shard as users may still depend on that. It would be good to finally plan removal of these. This would require a prior notice to the users and giving them some time to update their job definitions. But we should do that at some moment 🙂

Links

Edited by Gabriel Engel