Execute CI job via Step Runner service - Kubernetes Executor

Problem

Customers want to run steps using the Kubernetes executor.

Proposal

Execute a CI job via the Step Runner service for executorkubernetes according to https://docs.gitlab.com/ee/architecture/blueprints/gitlab_steps/runner-integration.html#kubernetes

This includes:

  • Finding a good place to intercept "regular" script execution and replace it with delegation to steps.
  • Creating RunRequest from the Job request (#37413 (closed)).
  • Creating a connection function that will (ab)use the kubectl exec protocol and allow sending gRPC requests over it (See !4555 (closed) for working example for executordocker).
  • Using the step service client library to manage the entire execution lifecycle.
  • Step Runner service logs should be streamed to the CI job trace log.
  • Step Runner StepResults can be /dev/null for now.

Notes:

Edited by Cameron Swords