Backend: Set and use fields for sudo access
MR: Set and use fields for workspace sudo access (!163888 - merged)
Description
As per the plan described here, set the agent config fields and use them while creating the workspace to support sudo access.
Details about the validations of each field at model/database level are described in DB: Add database fields for sudo access (#474966 - closed) .
Acceptance Criteria
While setting/updating fields in the agent config
-
If allow_privilege_escalation(default false), use_kubernetes_user_namespaces(defaultfalse), default_runtime_class(default""), annotations(default{}), labels(default{}) are provided in the agent config, store them in their corresponding DB values. Else, store their defaults.
The generated resources of the workspace during reconciliation should have the following satisfied
-
Set Deployment's spec.template.spec.containers[*].securityContext.allowPrivilegeEscalationto the associated agent'sallow_privilege_escalation. -
Set Deployment's spec.template.spec.hostUsersto the associated agent'suse_kubernetes_user_namespacesif true. -
Set Deployment's spec.template.spec.runtimeClassNameto the associated agent'sdefault_runtime_classif present. -
Set all resources metadata.annotationsto the associated agent'sannotations. The GitLab -
Set all resources metadata.labelsto the associated agent'slabels.
E2E verification
-
Test end-to-end for all the 3 methods described in &13983 (comment 1982715109) . Setup the necessary infrastructure for each of the scenario.
Edited by Vishal Tak