GitLab is discontinuing the Docker+Machine executor, prompting many teams to migrate to Kubernetes for running CI jobs.
GitLab SaaS's experience often falls short of its potential for teams using their platform at scale.
Currently, GitLab CI/CD is used primarily by an e-commerce retailer with circa 1,000 tech department colleagues with over 400 active GitLab users.
The decision to migrate wasn't difficult for them with Kubernetes as an easy fit, but the process of migrating was a challenge.
GitLab provides documentation, but it's often high-level, fragmented, and doesn't go deep enough to address real-world scenarios.
There are several challenges in the migration process, such as runner registration and management, handling runner tokens, and helm chart updates.
In response to these challenges, they implemented dynamic runner configuration, token retrieval workflow, pipeline resilience, and a custom helper image.
They suggest GitLab needs to provide migration-specific documentation, clear examples of Kubernetes-based workflows, and ensure version upgrades don't break runner registrations and other workflows.
The migration to Kubernetes is possible, but it's important to adapt and experiment to improve developer experience.
Improving documentation and minimizing breaking changes would help teams like theirs more effectively navigate the migration process.