From 36b379dadd26752626c4103488c8cf8750fa9a0c Mon Sep 17 00:00:00 2001 From: Zhaochen Li Date: Wed, 3 Jul 2024 21:27:14 +1000 Subject: [PATCH 1/2] Update Tools Injector Image, PAT scope with additional ENV Changelog: changed --- .../create/personal_access_token_creator.rb | 2 +- .../workspaces/create/workspace_variables.rb | 13 +++++++++++++ .../example.processed-devfile-v2.yaml | 2 +- .../example.processed-devfile.yaml | 2 +- ....processed-marketplace-disabled-devfile.yaml | 2 +- ...example.project-cloner-injected-devfile.yaml | 2 +- .../example.tools-injected-devfile.yaml | 2 +- ...s-injected-marketplace-disabled-devfile.yaml | 2 +- .../workspaces/create/main_integration_spec.rb | 2 +- .../create/tools_component_injector_spec.rb | 2 +- .../create/workspace_variables_spec.rb | 17 +++++++++++++++++ .../remote_development_shared_contexts.rb | 2 +- .../settings/default_settings.rb | 2 +- 13 files changed, 41 insertions(+), 11 deletions(-) diff --git a/ee/lib/remote_development/workspaces/create/personal_access_token_creator.rb b/ee/lib/remote_development/workspaces/create/personal_access_token_creator.rb index 3ffe88b3f6b8b1..17c3422769908d 100644 --- a/ee/lib/remote_development/workspaces/create/personal_access_token_creator.rb +++ b/ee/lib/remote_development/workspaces/create/personal_access_token_creator.rb @@ -22,7 +22,7 @@ def self.create(context) personal_access_token = user.personal_access_tokens.build( name: workspace_name, impersonation: false, - scopes: [:write_repository], + scopes: [:write_repository, :api], # Since expires_at is a date, we need to set it to the round it off to the next day. # e.g. If the max_hours_before_termination of the workspace is 1 hour # and the workspace is created at 2023-08-20 05:30:00, diff --git a/ee/lib/remote_development/workspaces/create/workspace_variables.rb b/ee/lib/remote_development/workspaces/create/workspace_variables.rb index fd4eebcc7546cd..1924675d100f86 100644 --- a/ee/lib/remote_development/workspaces/create/workspace_variables.rb +++ b/ee/lib/remote_development/workspaces/create/workspace_variables.rb @@ -134,6 +134,19 @@ def self.variables( value: vscode_extensions_gallery_resource_url_template, variable_type: RemoteDevelopment::Enums::Workspace::WORKSPACE_VARIABLE_TYPES[:environment], workspace_id: workspace_id + }, + # variables with prefix `GITLAB_WORKFLOW_` are used for configured GitLab Workflow extension for VS Code + { + key: 'GITLAB_WORKFLOW_INSTANCE_URL', + value: Gitlab::Routing.url_helpers.root_url, + variable_type: RemoteDevelopment::Enums::Workspace::WORKSPACE_VARIABLE_TYPES[:environment], + workspace_id: workspace_id + }, + { + key: 'GITLAB_WORKFLOW_TOKEN_FILE', + value: RemoteDevelopment::Workspaces::FileMounts::GITLAB_TOKEN_FILE, + variable_type: RemoteDevelopment::Enums::Workspace::WORKSPACE_VARIABLE_TYPES[:environment], + workspace_id: workspace_id } ] diff --git a/ee/spec/fixtures/remote_development/example.processed-devfile-v2.yaml b/ee/spec/fixtures/remote_development/example.processed-devfile-v2.yaml index 913610586a25a6..0afce736c8d692 100644 --- a/ee/spec/fixtures/remote_development/example.processed-devfile-v2.yaml +++ b/ee/spec/fixtures/remote_development/example.processed-devfile-v2.yaml @@ -59,7 +59,7 @@ components: mountSources: true - name: gl-tools-injector container: - image: registry.gitlab.com/gitlab-org/remote-development/gitlab-workspaces-tools:1.0.0 + image: registry.gitlab.com/gitlab-org/remote-development/gitlab-workspaces-tools:2.0.0 volumeMounts: - name: gl-workspace-data path: /projects diff --git a/ee/spec/fixtures/remote_development/example.processed-devfile.yaml b/ee/spec/fixtures/remote_development/example.processed-devfile.yaml index 913610586a25a6..0afce736c8d692 100644 --- a/ee/spec/fixtures/remote_development/example.processed-devfile.yaml +++ b/ee/spec/fixtures/remote_development/example.processed-devfile.yaml @@ -59,7 +59,7 @@ components: mountSources: true - name: gl-tools-injector container: - image: registry.gitlab.com/gitlab-org/remote-development/gitlab-workspaces-tools:1.0.0 + image: registry.gitlab.com/gitlab-org/remote-development/gitlab-workspaces-tools:2.0.0 volumeMounts: - name: gl-workspace-data path: /projects diff --git a/ee/spec/fixtures/remote_development/example.processed-marketplace-disabled-devfile.yaml b/ee/spec/fixtures/remote_development/example.processed-marketplace-disabled-devfile.yaml index 8f7e9d9f171d21..6379e25fa347e1 100644 --- a/ee/spec/fixtures/remote_development/example.processed-marketplace-disabled-devfile.yaml +++ b/ee/spec/fixtures/remote_development/example.processed-marketplace-disabled-devfile.yaml @@ -51,7 +51,7 @@ components: size: 15Gi - name: gl-tools-injector container: - image: registry.gitlab.com/gitlab-org/remote-development/gitlab-workspaces-tools:1.0.0 + image: registry.gitlab.com/gitlab-org/remote-development/gitlab-workspaces-tools:2.0.0 volumeMounts: - name: gl-workspace-data path: /projects diff --git a/ee/spec/fixtures/remote_development/example.project-cloner-injected-devfile.yaml b/ee/spec/fixtures/remote_development/example.project-cloner-injected-devfile.yaml index 8119477f945cd4..e5f2079028d888 100644 --- a/ee/spec/fixtures/remote_development/example.project-cloner-injected-devfile.yaml +++ b/ee/spec/fixtures/remote_development/example.project-cloner-injected-devfile.yaml @@ -53,7 +53,7 @@ components: mountSources: true - name: gl-tools-injector container: - image: registry.gitlab.com/gitlab-org/remote-development/gitlab-workspaces-tools:1.0.0 + image: registry.gitlab.com/gitlab-org/remote-development/gitlab-workspaces-tools:2.0.0 env: - name: GL_TOOLS_DIR value: "/projects/.gl-tools" diff --git a/ee/spec/fixtures/remote_development/example.tools-injected-devfile.yaml b/ee/spec/fixtures/remote_development/example.tools-injected-devfile.yaml index 29d790b46ec255..f59219400a2938 100644 --- a/ee/spec/fixtures/remote_development/example.tools-injected-devfile.yaml +++ b/ee/spec/fixtures/remote_development/example.tools-injected-devfile.yaml @@ -53,7 +53,7 @@ components: mountSources: true - name: gl-tools-injector container: - image: registry.gitlab.com/gitlab-org/remote-development/gitlab-workspaces-tools:1.0.0 + image: registry.gitlab.com/gitlab-org/remote-development/gitlab-workspaces-tools:2.0.0 env: - name: GL_TOOLS_DIR value: "/projects/.gl-tools" diff --git a/ee/spec/fixtures/remote_development/example.tools-injected-marketplace-disabled-devfile.yaml b/ee/spec/fixtures/remote_development/example.tools-injected-marketplace-disabled-devfile.yaml index 8c50450f4c2c34..06178b6fcfc636 100644 --- a/ee/spec/fixtures/remote_development/example.tools-injected-marketplace-disabled-devfile.yaml +++ b/ee/spec/fixtures/remote_development/example.tools-injected-marketplace-disabled-devfile.yaml @@ -53,7 +53,7 @@ components: mountSources: true - name: gl-tools-injector container: - image: registry.gitlab.com/gitlab-org/remote-development/gitlab-workspaces-tools:1.0.0 + image: registry.gitlab.com/gitlab-org/remote-development/gitlab-workspaces-tools:2.0.0 env: - name: GL_TOOLS_DIR value: "/projects/.gl-tools" diff --git a/ee/spec/lib/remote_development/workspaces/create/main_integration_spec.rb b/ee/spec/lib/remote_development/workspaces/create/main_integration_spec.rb index 440aaa0c46f8a0..4ba810fecb052f 100644 --- a/ee/spec/lib/remote_development/workspaces/create/main_integration_spec.rb +++ b/ee/spec/lib/remote_development/workspaces/create/main_integration_spec.rb @@ -52,7 +52,7 @@ end let(:tools_injector_image_from_settings) do - "registry.gitlab.com/gitlab-org/remote-development/gitlab-workspaces-tools:1.0.0" + "registry.gitlab.com/gitlab-org/remote-development/gitlab-workspaces-tools:2.0.0" end let(:settings) do diff --git a/ee/spec/lib/remote_development/workspaces/create/tools_component_injector_spec.rb b/ee/spec/lib/remote_development/workspaces/create/tools_component_injector_spec.rb index 6c67740bdf7a1f..3634dea9a0b471 100644 --- a/ee/spec/lib/remote_development/workspaces/create/tools_component_injector_spec.rb +++ b/ee/spec/lib/remote_development/workspaces/create/tools_component_injector_spec.rb @@ -10,7 +10,7 @@ let(:expected_processed_devfile_name) { 'example.tools-injected-devfile.yaml' } let(:expected_processed_devfile) { YAML.safe_load(read_devfile(expected_processed_devfile_name)).to_h } let(:tools_injector_image_from_settings) do - "registry.gitlab.com/gitlab-org/remote-development/gitlab-workspaces-tools:1.0.0" + "registry.gitlab.com/gitlab-org/remote-development/gitlab-workspaces-tools:2.0.0" end let(:settings) do diff --git a/ee/spec/lib/remote_development/workspaces/create/workspace_variables_spec.rb b/ee/spec/lib/remote_development/workspaces/create/workspace_variables_spec.rb index 56a3ab0cd163fc..6b29786f29541b 100644 --- a/ee/spec/lib/remote_development/workspaces/create/workspace_variables_spec.rb +++ b/ee/spec/lib/remote_development/workspaces/create/workspace_variables_spec.rb @@ -1,6 +1,7 @@ # frozen_string_literal: true require_relative "../../rd_fast_spec_helper" +require_relative "../../../../../../lib/gitlab/routing" RSpec.describe ::RemoteDevelopment::Workspaces::Create::WorkspaceVariables, :rd_fast, feature_category: :remote_development do @@ -128,6 +129,18 @@ variable_type: RemoteDevelopment::Enums::Workspace::WORKSPACE_VARIABLE_TYPES[:environment], workspace_id: workspace_id }, + { + key: 'GITLAB_WORKFLOW_INSTANCE_URL', + value: Gitlab::Routing.url_helpers.root_url, + variable_type: RemoteDevelopment::Enums::Workspace::WORKSPACE_VARIABLE_TYPES[:environment], + workspace_id: workspace_id + }, + { + key: 'GITLAB_WORKFLOW_TOKEN_FILE', + value: "/.workspace-data/variables/file/gl_token", + variable_type: RemoteDevelopment::Enums::Workspace::WORKSPACE_VARIABLE_TYPES[:environment], + workspace_id: workspace_id + }, { key: "VAR1", value: "value 1", @@ -173,6 +186,10 @@ ) end + before do + allow(Gitlab::Routing).to receive_message_chain(:url_helpers, :root_url).and_return("https://gitlab.com") + end + it 'defines correct variables' do expect(variables).to eq(expected_variables) end diff --git a/ee/spec/support/shared_contexts/remote_development/remote_development_shared_contexts.rb b/ee/spec/support/shared_contexts/remote_development/remote_development_shared_contexts.rb index 4771c78f7e82ea..f2d09cfd889165 100644 --- a/ee/spec/support/shared_contexts/remote_development/remote_development_shared_contexts.rb +++ b/ee/spec/support/shared_contexts/remote_development/remote_development_shared_contexts.rb @@ -808,7 +808,7 @@ def workspace_deployment( value: "/projects" } ], - image: "registry.gitlab.com/gitlab-org/remote-development/gitlab-workspaces-tools:1.0.0", + image: "registry.gitlab.com/gitlab-org/remote-development/gitlab-workspaces-tools:2.0.0", imagePullPolicy: "Always", name: "gl-tools-injector-gl-tools-injector-command-2", resources: { diff --git a/lib/remote_development/settings/default_settings.rb b/lib/remote_development/settings/default_settings.rb index 2691b215c08284..efe577329d1ef2 100644 --- a/lib/remote_development/settings/default_settings.rb +++ b/lib/remote_development/settings/default_settings.rb @@ -20,7 +20,7 @@ def self.default_settings max_hours_before_termination_limit: [120, Integer], project_cloner_image: ['alpine/git:2.36.3', String], tools_injector_image: [ - "registry.gitlab.com/gitlab-org/remote-development/gitlab-workspaces-tools:1.0.0", String + "registry.gitlab.com/gitlab-org/remote-development/gitlab-workspaces-tools:2.0.0", String ], vscode_extensions_gallery: [ { -- GitLab From 0c9b4470cf0911cb66d4708a0a033956b0b29ecc Mon Sep 17 00:00:00 2001 From: Zhaochen Li Date: Fri, 5 Jul 2024 17:28:06 +1000 Subject: [PATCH 2/2] address comment --- .../workspaces/create/workspace_variables_spec.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/ee/spec/lib/remote_development/workspaces/create/workspace_variables_spec.rb b/ee/spec/lib/remote_development/workspaces/create/workspace_variables_spec.rb index 6b29786f29541b..98dd3df0c8293e 100644 --- a/ee/spec/lib/remote_development/workspaces/create/workspace_variables_spec.rb +++ b/ee/spec/lib/remote_development/workspaces/create/workspace_variables_spec.rb @@ -1,7 +1,6 @@ # frozen_string_literal: true require_relative "../../rd_fast_spec_helper" -require_relative "../../../../../../lib/gitlab/routing" RSpec.describe ::RemoteDevelopment::Workspaces::Create::WorkspaceVariables, :rd_fast, feature_category: :remote_development do -- GitLab