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é