Skip to content

Specify which "user" shall run the job from the gitlab-ci.yaml for k8s executor

What does this MR do?

It allows to set the user which will run the job from the gitlab-ci.yaml. This is done by adding executor opts for the executorkubernetes. The user is now able to set a user ID that will be use to run the job at:

  • The build container level, when defined for the job image
  • The service containers level, when defined for the service images

The user id provided in gitlab-ci.yaml takes precedence over the one configured in the config.toml.

Why was this MR needed?

In addition to allow configurability for the user used to run jobs, it also brings some consistency between executordocker and executorkubernetes

What's the best way to test this MR?

Run the integration test:

❯ go test -tags integration,kubernetes -timeout=60m -run "^TestRunIntegrationTestsWithFeatureFlag/testKubernetesOptionsUserAndGroup*" -v gitlab.com/gitlab-org/gitlab-runner/executors/kubernetes
=== RUN   TestRunIntegrationTestsWithFeatureFlag
=== PAUSE TestRunIntegrationTestsWithFeatureFlag
=== CONT  TestRunIntegrationTestsWithFeatureFlag
=== RUN   TestRunIntegrationTestsWithFeatureFlag/testKubernetesOptionsUserAndGroup
=== PAUSE TestRunIntegrationTestsWithFeatureFlag/testKubernetesOptionsUserAndGroup
=== CONT  TestRunIntegrationTestsWithFeatureFlag/testKubernetesOptionsUserAndGroup
=== RUN   TestRunIntegrationTestsWithFeatureFlag/testKubernetesOptionsUserAndGroup/FF_USE_LEGACY_KUBERNETES_EXECUTION_STRATEGY:on
=== PAUSE TestRunIntegrationTestsWithFeatureFlag/testKubernetesOptionsUserAndGroup/FF_USE_LEGACY_KUBERNETES_EXECUTION_STRATEGY:on
=== RUN   TestRunIntegrationTestsWithFeatureFlag/testKubernetesOptionsUserAndGroup/FF_USE_LEGACY_KUBERNETES_EXECUTION_STRATEGY:off
=== PAUSE TestRunIntegrationTestsWithFeatureFlag/testKubernetesOptionsUserAndGroup/FF_USE_LEGACY_KUBERNETES_EXECUTION_STRATEGY:off
=== CONT  TestRunIntegrationTestsWithFeatureFlag/testKubernetesOptionsUserAndGroup/FF_USE_LEGACY_KUBERNETES_EXECUTION_STRATEGY:on
=== CONT  TestRunIntegrationTestsWithFeatureFlag/testKubernetesOptionsUserAndGroup/FF_USE_LEGACY_KUBERNETES_EXECUTION_STRATEGY:off
=== RUN   TestRunIntegrationTestsWithFeatureFlag/testKubernetesOptionsUserAndGroup/FF_USE_LEGACY_KUBERNETES_EXECUTION_STRATEGY:on/no_user_set
=== RUN   TestRunIntegrationTestsWithFeatureFlag/testKubernetesOptionsUserAndGroup/FF_USE_LEGACY_KUBERNETES_EXECUTION_STRATEGY:off/no_user_set
=== RUN   TestRunIntegrationTestsWithFeatureFlag/testKubernetesOptionsUserAndGroup/FF_USE_LEGACY_KUBERNETES_EXECUTION_STRATEGY:off/user_set_to_1002
=== RUN   TestRunIntegrationTestsWithFeatureFlag/testKubernetesOptionsUserAndGroup/FF_USE_LEGACY_KUBERNETES_EXECUTION_STRATEGY:on/user_set_to_1002
=== RUN   TestRunIntegrationTestsWithFeatureFlag/testKubernetesOptionsUserAndGroup/FF_USE_LEGACY_KUBERNETES_EXECUTION_STRATEGY:off/user_set_to_1002_in_gitlab-ci_and_1003_in_config.toml
=== RUN   TestRunIntegrationTestsWithFeatureFlag/testKubernetesOptionsUserAndGroup/FF_USE_LEGACY_KUBERNETES_EXECUTION_STRATEGY:on/user_set_to_1002_in_gitlab-ci_and_1003_in_config.toml
--- PASS: TestRunIntegrationTestsWithFeatureFlag (0.00s)
    --- PASS: TestRunIntegrationTestsWithFeatureFlag/testKubernetesOptionsUserAndGroup (0.00s)
        --- PASS: TestRunIntegrationTestsWithFeatureFlag/testKubernetesOptionsUserAndGroup/FF_USE_LEGACY_KUBERNETES_EXECUTION_STRATEGY:off (40.71s)
            --- PASS: TestRunIntegrationTestsWithFeatureFlag/testKubernetesOptionsUserAndGroup/FF_USE_LEGACY_KUBERNETES_EXECUTION_STRATEGY:off/no_user_set (9.40s)
            --- PASS: TestRunIntegrationTestsWithFeatureFlag/testKubernetesOptionsUserAndGroup/FF_USE_LEGACY_KUBERNETES_EXECUTION_STRATEGY:off/user_set_to_1002 (15.41s)
            --- PASS: TestRunIntegrationTestsWithFeatureFlag/testKubernetesOptionsUserAndGroup/FF_USE_LEGACY_KUBERNETES_EXECUTION_STRATEGY:off/user_set_to_1002_in_gitlab-ci_and_1003_in_config.toml (15.41s)
        --- PASS: TestRunIntegrationTestsWithFeatureFlag/testKubernetesOptionsUserAndGroup/FF_USE_LEGACY_KUBERNETES_EXECUTION_STRATEGY:on (43.73s)
            --- PASS: TestRunIntegrationTestsWithFeatureFlag/testKubernetesOptionsUserAndGroup/FF_USE_LEGACY_KUBERNETES_EXECUTION_STRATEGY:on/no_user_set (9.50s)
            --- PASS: TestRunIntegrationTestsWithFeatureFlag/testKubernetesOptionsUserAndGroup/FF_USE_LEGACY_KUBERNETES_EXECUTION_STRATEGY:on/user_set_to_1002 (18.41s)
            --- PASS: TestRunIntegrationTestsWithFeatureFlag/testKubernetesOptionsUserAndGroup/FF_USE_LEGACY_KUBERNETES_EXECUTION_STRATEGY:on/user_set_to_1002_in_gitlab-ci_and_1003_in_config.toml (15.39s)
PASS
ok      gitlab.com/gitlab-org/gitlab-runner/executors/kubernetes        44.621s

What are the relevant issue numbers?

close #38451 (closed)

Edited by Romuald Atchadé

Merge request reports

Loading
OSZAR »