Skip to content

Add support for uid:gid format for Kubernetes executor options

What does this MR do?

In merge request !5469 (merged), we implemented support for Kubernetes executor options in gitlab-ci.yml files. However, unlike the Docker executor options, the current implementation doesn't support the uid:gid format for specifying both user and group IDs.

This MR extends the Kubernetes executor options to support the uid:gid format, ensuring consistency between Docker and Kubernetes executor configurations.

Why was this MR needed?

Bring consistency between Docker and Kubernetes executor options

What's the best way to test this MR?

❯ 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:on/user_set_to_1002
=== RUN   TestRunIntegrationTestsWithFeatureFlag/testKubernetesOptionsUserAndGroup/FF_USE_LEGACY_KUBERNETES_EXECUTION_STRATEGY:off/user_set_to_1002
=== RUN   TestRunIntegrationTestsWithFeatureFlag/testKubernetesOptionsUserAndGroup/FF_USE_LEGACY_KUBERNETES_EXECUTION_STRATEGY:on/uid_set_to_1002_and_gid_set_to_1002
=== RUN   TestRunIntegrationTestsWithFeatureFlag/testKubernetesOptionsUserAndGroup/FF_USE_LEGACY_KUBERNETES_EXECUTION_STRATEGY:off/uid_set_to_1002_and_gid_set_to_1002
=== RUN   TestRunIntegrationTestsWithFeatureFlag/testKubernetesOptionsUserAndGroup/FF_USE_LEGACY_KUBERNETES_EXECUTION_STRATEGY:on/user_set_to_1002_in_gitlab-ci_and_1003_in_config.toml
=== RUN   TestRunIntegrationTestsWithFeatureFlag/testKubernetesOptionsUserAndGroup/FF_USE_LEGACY_KUBERNETES_EXECUTION_STRATEGY:off/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:on (55.25s)
            --- PASS: TestRunIntegrationTestsWithFeatureFlag/testKubernetesOptionsUserAndGroup/FF_USE_LEGACY_KUBERNETES_EXECUTION_STRATEGY:on/no_user_set (9.31s)
            --- PASS: TestRunIntegrationTestsWithFeatureFlag/testKubernetesOptionsUserAndGroup/FF_USE_LEGACY_KUBERNETES_EXECUTION_STRATEGY:on/user_set_to_1002 (15.21s)
            --- PASS: TestRunIntegrationTestsWithFeatureFlag/testKubernetesOptionsUserAndGroup/FF_USE_LEGACY_KUBERNETES_EXECUTION_STRATEGY:on/uid_set_to_1002_and_gid_set_to_1002 (15.14s)
            --- PASS: TestRunIntegrationTestsWithFeatureFlag/testKubernetesOptionsUserAndGroup/FF_USE_LEGACY_KUBERNETES_EXECUTION_STRATEGY:on/user_set_to_1002_in_gitlab-ci_and_1003_in_config.toml (15.23s)
        --- PASS: TestRunIntegrationTestsWithFeatureFlag/testKubernetesOptionsUserAndGroup/FF_USE_LEGACY_KUBERNETES_EXECUTION_STRATEGY:off (58.20s)
            --- PASS: TestRunIntegrationTestsWithFeatureFlag/testKubernetesOptionsUserAndGroup/FF_USE_LEGACY_KUBERNETES_EXECUTION_STRATEGY:off/no_user_set (9.33s)
            --- PASS: TestRunIntegrationTestsWithFeatureFlag/testKubernetesOptionsUserAndGroup/FF_USE_LEGACY_KUBERNETES_EXECUTION_STRATEGY:off/user_set_to_1002 (18.27s)
            --- PASS: TestRunIntegrationTestsWithFeatureFlag/testKubernetesOptionsUserAndGroup/FF_USE_LEGACY_KUBERNETES_EXECUTION_STRATEGY:off/uid_set_to_1002_and_gid_set_to_1002 (15.18s)
            --- PASS: TestRunIntegrationTestsWithFeatureFlag/testKubernetesOptionsUserAndGroup/FF_USE_LEGACY_KUBERNETES_EXECUTION_STRATEGY:off/user_set_to_1002_in_gitlab-ci_and_1003_in_config.toml (15.06s)
PASS
ok      gitlab.com/gitlab-org/gitlab-runner/executors/kubernetes        59.135s

What are the relevant issue numbers?

#38451 (closed)

Merge request reports

Loading