Class: Gitlab::BackgroundMigration::RemoteDevelopment::WorkspaceOperations::Create::DesiredConfig::BmDevfileResourceModifier

Inherits:
Object
  • Object
show all
Includes:
BmCreateConstants
Defined in:
lib/gitlab/background_migration/remote_development/workspace_operations/create/desired_config/bm_devfile_resource_modifier.rb

Overview

rubocop:disable Metrics/MethodLength – The original method is copied from ee/lib/remotedevelopment rubocop:disable Metrics/ClassLength – The original class is copied from ee/lib/remotedevelopment

Constant Summary

Constants included from BmCreateConstants

BmCreateConstants::CLONE_DEPTH_OPTION, BmCreateConstants::GIT_CREDENTIAL_STORE_SCRIPT_FILE_NAME, BmCreateConstants::GIT_CREDENTIAL_STORE_SCRIPT_FILE_PATH, BmCreateConstants::LEGACY_RUN_POSTSTART_COMMANDS_SCRIPT_NAME, BmCreateConstants::NAMESPACE_PREFIX, BmCreateConstants::PROJECT_CLONING_SUCCESSFUL_FILE_NAME, BmCreateConstants::RUN_AS_USER, BmCreateConstants::RUN_INTERNAL_BLOCKING_POSTSTART_COMMANDS_SCRIPT_NAME, BmCreateConstants::RUN_NON_BLOCKING_POSTSTART_COMMANDS_SCRIPT_NAME, BmCreateConstants::TOKEN_FILE_NAME, BmCreateConstants::TOKEN_FILE_PATH, BmCreateConstants::TOOLS_DIR_ENV_VAR, BmCreateConstants::TOOLS_DIR_NAME, BmCreateConstants::TOOLS_INJECTOR_COMPONENT_NAME, BmCreateConstants::WORKSPACE_DATA_VOLUME_NAME, BmCreateConstants::WORKSPACE_EDITOR_PORT, BmCreateConstants::WORKSPACE_SCRIPTS_VOLUME_DEFAULT_MODE, BmCreateConstants::WORKSPACE_SCRIPTS_VOLUME_NAME, BmCreateConstants::WORKSPACE_SCRIPTS_VOLUME_PATH, BmCreateConstants::WORKSPACE_SSH_PORT

Constants included from BmWorkspaceOperationsConstants

BmWorkspaceOperationsConstants::ANNOTATION_KEY_INCLUDE_IN_PARTIAL_RECONCILIATION, BmWorkspaceOperationsConstants::ENV_VAR_SECRET_SUFFIX, BmWorkspaceOperationsConstants::FILE_SECRET_SUFFIX, BmWorkspaceOperationsConstants::INTERNAL_BLOCKING_COMMAND_LABEL, BmWorkspaceOperationsConstants::INTERNAL_COMMAND_LABEL, BmWorkspaceOperationsConstants::SECRETS_INVENTORY, BmWorkspaceOperationsConstants::VARIABLES_VOLUME_DEFAULT_MODE, BmWorkspaceOperationsConstants::VARIABLES_VOLUME_NAME, BmWorkspaceOperationsConstants::VARIABLES_VOLUME_PATH, BmWorkspaceOperationsConstants::WORKSPACE_DATA_VOLUME_PATH, BmWorkspaceOperationsConstants::WORKSPACE_INVENTORY, BmWorkspaceOperationsConstants::WORKSPACE_LOGS_DIR, BmWorkspaceOperationsConstants::WORKSPACE_RECONCILED_ACTUAL_STATE_FILE_NAME, BmWorkspaceOperationsConstants::WORKSPACE_RECONCILED_ACTUAL_STATE_FILE_PATH, BmWorkspaceOperationsConstants::WORKSPACE_TOOLS_IMAGE

Class Method Summary collapse

Class Method Details

.modify(context) ⇒ Hash

Parameters:

  • context (Hash)

Returns:

  • (Hash)


16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/gitlab/background_migration/remote_development/workspace_operations/create/desired_config/bm_devfile_resource_modifier.rb', line 16

def self.modify(context)
  context => {
    workspace_name: String => workspace_name,
    desired_config_array: Array => desired_config_array,
    use_kubernetes_user_namespaces: TrueClass | FalseClass => use_kubernetes_user_namespaces,
    default_runtime_class: String => default_runtime_class,
    allow_privilege_escalation: TrueClass | FalseClass => allow_privilege_escalation,
    default_resources_per_workspace_container: Hash => default_resources_per_workspace_container,
    env_secret_name: String => env_secret_name,
    file_secret_name: String => file_secret_name,
  }

  set_host_users(
    desired_config_array: desired_config_array,
    use_kubernetes_user_namespaces: use_kubernetes_user_namespaces
  )

  set_runtime_class(
    desired_config_array: desired_config_array,
    runtime_class_name: default_runtime_class
  )

  set_security_context(
    desired_config_array: desired_config_array,
    allow_privilege_escalation: allow_privilege_escalation
  )

  patch_default_resources(
    desired_config_array: desired_config_array,
    default_resources_per_workspace_container:
      default_resources_per_workspace_container
  )

  inject_secrets(
    desired_config_array: desired_config_array,
    env_secret_name: env_secret_name,
    file_secret_name: file_secret_name
  )

  (
    desired_config_array: desired_config_array,
    service_account_name: workspace_name
  )

  context.merge({ desired_config_array: desired_config_array })
end