Skip to content

Commit

Permalink
Add VS Code-Server OOD application documentation (#269)
Browse files Browse the repository at this point in the history
* begin documentation on the VS Code-Server application and add section on installing extensions

* finish documentation for VS Code-Server

* remove video and replace it with a youtube video

* incorporate Andys suggestions and add notes on accessing a single

* add colon to Note
  • Loading branch information
b-reyes committed Sep 6, 2023
1 parent 58d065c commit 64b78f4
Show file tree
Hide file tree
Showing 5 changed files with 47 additions and 3 deletions.
4 changes: 3 additions & 1 deletion docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,11 @@
}

extensions = [
'sphinx_markdown_tables',
'sphinx_markdown_tables'
]

source_suffix = ['.rst', '.md']

html_theme = 'sphinx_rtd_theme'

html_static_path = ['_static']
46 changes: 44 additions & 2 deletions docs/gateways/OnDemand.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ slurm/<cluster>` with either Alpine or Blanca.

#### Interactive Applications Menu

The _Interactive Applications_ menu contains options to launch certain applications that have graphical user interfaces (GUIs) for interactive use on CURC clusters. Currently supported applications include a __remote desktop__, __MATLAB__, __Jupyter session__, and __RStudio session__.
The _Interactive Applications_ menu contains options to launch certain applications that have graphical user interfaces (GUIs) for interactive use on CURC clusters. Currently supported applications include a __remote desktop__, __MATLAB__, __Jupyter session__, __RStudio session__, and __VS Code-Server__.

##### Core Desktop (remote desktop)

Expand Down Expand Up @@ -120,6 +120,7 @@ The _Interactive Applications_ menu contains options to launch certain applicati
* When the session starts, the file navigator panel displays CURC root. You can navigate to one of your CURC spaces by selecting `home` or `projects` from the file panel on the left. Alternatively, you can go to "File" then "Open Path" and enter your path in the field (e.g. `/projects/<your username>`).
* For more information on running Jupyter sessions, [check out RC’s page on Jupyter](./jupyterhub.html).
* Closing the window will not terminate the job, you can use the “My Interactive Sessions” tab to view all open interactive sessions and terminate them.
* One can access a single GPU via the `Jupyter Session (Custom)` application by following the instructions provided in the [GPU access for Jupyter Sessions](#gpu-access-for-jupyter-sessions) section below.

##### RStudio

Expand All @@ -133,9 +134,50 @@ The _Interactive Applications_ menu contains options to launch certain applicati
**_Notes:_**
* We have designed the RStudio app in Open OnDemand such that it employs versions of R that match the versions of R that are also available in the CURC module stack. This is done to facilitate moving between using RStudio for interactive work, and running larger R workflows as batch jobs on Alpine or Blanca. Due to system constraints, packages you install in a given version of R in RStudio will not be available if you load the equivalent version of the R module, and vice versa. You will need to (re-)install the packages you need when using the equivalent module.

##### VS Code-Server

1. To start an interactive [Visual Studio Code (VS Code)](https://code.visualstudio.com/) job, you may select `VS Code-Server (Custom)` or `VS Code-Server (Presets)` from the menu. The `VS Code-Server (Custom)` option allows you to modify the resources and Slurm configurations for the job. For more information on these options, please see the [Running Custom Interactive applications](#running-custom-interactive-applications) section below. If you select `VS Code-Server (Presets)`, you may select from standard configurations we provide. Most use cases can be accommodated by one of the presets. The `VS Code-Server (Presets)` option submits jobs to Alpine's `ahub` partition. This partition provides users with rapid start times, but __limits users to one VS Code-Server session__ (or any one job using the partition).
![](OnDemand/vs_code_custom.png)
2. Click “Launch” to submit the VS Code-Server job to the queue. The wait time depends on the number of cores and time requested. The preset options generally start within a few moments.
3. Once your VS Code-Server session is ready, you can click “Connect to VS Code”. An interactive VS Code-Server session will be started in a new window.
![](OnDemand/vs_code_custom_launch.png)

**_Notes:_**
* One can access a single GPU via the `VS Code-Server (Custom)` application by following the instructions provided in the [GPU access for Jupyter Sessions](#gpu-access-for-jupyter-sessions) section below.

###### Installing VS Code-Server Extensions

The provided VS Code application is utilizing [VS Code-Server](https://coder.com/docs/code-server/latest). For this reason, some aspects of the application may differ from the
standard installation of VS Code. One of these differences is accessing and installing extensions. While a majority of extensions are available in the Marketplace within the
application (and installable), some extensions may be missing. Although this is the case, thankfully one can download extensions directly from the [VS Code Marketplace](https://marketplace.visualstudio.com/vscode) and then install them within the application. Below we provide a video that demonstrates three ways one can install extensions from within
the application. Additionally, we provide a short description of these methods below the video.


<iframe width="700" height="400" src="https://www.youtube.com/embed/2kgZQmm5TF4?si=NUVzamnXYojcd79e" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>


When attempting to install an extension, we suggest the following methods (listed in order of preference):
- If possible, install extensions using the Marketplace from within the application.
1. On the left-hand side of the screen select the `Extensions` button.
2. Use the provided search bar to search for the application you want.
3. Select the application and then click the `Install` button.
![](OnDemand/vs_code_marketplace_install.png)
- Install the application by dragging the downloaded file into the **extensions column** (for visual representation, please see above video).
1. Navigate to the [VS Code Marketplace](https://marketplace.visualstudio.com/vscode) in your browser.
2. Select the application you want and click `Download Extension` on the right-hand side. Some applications require that you chose the operating system. For
these applications, select the drop-down menu next to `Download Extension` and then select `Linux x64`.
3. Drag and drop the downloaded file into the **extensions column** within the VS Code-Server application.
- Install the application by dragging the downloaded file into the **folder column** (for visual representation, please see above video).
- **Note:** This option is sometimes necessary if the extensions rely on dependencies located in the downloaded file.
1. Navigate to the [VS Code Marketplace](https://marketplace.visualstudio.com/vscode) in your browser.
2. Select the application you want and click `Download Extension` on the right-hand side. Some applications require that you chose the operating system. For
these applications, select the drop-down menu next to `Download Extension` and then select `Linux x64`.
3. Drag and drop the downloaded file into the **folder column** within the VS Code-Server application.
4. Right click the downloaded file and select `Install Extension VSIX`.

##### Running _Custom_ Interactive applications

The Matlab, Jupyter, and RStudio interactive applications each have `Custom` menus available for starting sessions (jobs) in addition to `Preset` menus. The `Custom` menus are intended to provide the ability to start jobs that require unconventional resources that aren't available through the `Preset` menu, for example:
The Matlab, Jupyter, VS Code-Server, and RStudio interactive applications each have `Custom` menus available for starting sessions (jobs) in addition to `Preset` menus. The `Custom` menus are intended to provide the ability to start jobs that require unconventional resources that aren't available through the `Preset` menu, for example:

* access to GPU nodes;
* access to high-memory nodes;
Expand Down
Binary file added docs/gateways/OnDemand/vs_code_custom.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/gateways/OnDemand/vs_code_custom_launch.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 64b78f4

Please sign in to comment.