A plugin is one building block of an application. Basically, it is a configuration script that is run inside a new Workspace in order to configure it.

See the section Catalog Introduction to see what the different categories of catalog items mean (plugin, application, subscription, application offering).


Login to the Research Cloud portal.

When you are a developer-member in one of your collaborations (COs) you will see a downward arrow next to the "Catalog" tab.

(If you are not a developer, yet, see the Working together section for more information on that.)


Clicking on this arrow renders a drop-down list:

You can choose to activate the conventional "Catalog" tab, but you can also choose to view and edit the different catalog items.

If you want to create a new Plugin, click on the "Maintain plugins" item.

Your browser will show a list of the plugins that are available to you.

"Available" means that you are a member of a CO, that either is allowed to use a particular plugin or is the owner of that plugin.

The plugins you are one of the owners of will be shown with an extra options: "edit", "disable" and "delete".


But let's assume that you do not "own" any plugins, yet.

(More precisely: "None of the COs you are a developer in owns any plugins.")

Being a developer in a CO, you can create a new plugin for that CO.

Click on the "+" symbol in the upper right of the page:


Clicking the "+" starts the "Add plugin" wizard:

Step 1: Define plugin script and source

In the first step of the plugin wizard, the following fields must be filled in:

Plugin script type

The possible values are

  • Ansible Playbook (usually used in Research Cloud to configure Linux workspaces)

  • Powershell (used to configure Windows workspaces)

  • Docker (the plugin just "wraps" a dockerfile)

  • Docker Compose (the plugin wraps a docker-compose configuration)

Script Source

Url repository

The url of the git repository from where Research Cloud can retrieve the script. This is the url that would also be used for cloning the repository in "http" mode.

Example: "https://github.com/my-repository.git"

(this is the string you get when using the clone-button in the repository's web-UI, with the "https" option)

The repository must be accessible through the internet. Services like gitlab, github, bitbucket ... will all work .

The repository can still be private , if you wish (also see "Script availability").

Path

The path to the (main) script file. This should specify the exact location of the file "down" from the repository url.

Example: "my-research-cloud/plugins/my-new-plugin.yml"

Tag

Can be the name of a tag or the name of a branch of the given repository.

Script availability

Usually, Research Cloud users have no objections to put their scripts in a public repository. A repository that can be viewed an cloned by anyone. A repository is no place for credentials and secrets, anyway.

The option "Script is publically available on Git" is thus a good default.

If for some reason you want to use a private repository you can choose

  • Fixed credentials (leaving the username and password in the Research Cloud backend)

  • CO secret credentials (referring to the username and password that you put into the "CO secrets" of the collaboration). Research Cloud uses Hashicorp Vault to store the secrets safely.

Continue

When this step of the wizard is complete you can proceed with the "continue"-button.

src-create-plugin-step2

Step 2: Name and describe your plugin

Name, subtitle, description

In this step, give a clear and descriptive name and subtitle to your plugin. The description is a good place for the technical prerequisites and other details about the plugin. For others and for yourself.

Icon

Uploading an image for an icon helps a lot to identify and find your plugin. You can provide a variety of image formats, max. 100KB, displayed with 40 or 32px.

Step 3: Define plugin parameters

Your script might need variables that should be specified by applications that use the plugin or by the workspace-user who starts a workspace. This is the place to explicitly require the parameters and to give default values, if necessary.

For more details on parameters also see https://servicedesk.surf.nl/wiki/x/VQEQAQ

Step 4: Define owner and support

Plugin owner CO

You can choose from the collaborations that you are a developer in.

(see also https://servicedesk.surf.nl/wiki/x/IgAQAQ)

Choose the collaboration that will use the plugin or be its "home-collaboration".

Support url

Specify where users and developer-colleagues can find information and support.

Support name

The name of a person (or a team) that can help.

Support e-mail address

An e-mail address to send questions and requests to.

Step 5: Choose organisations that can use the plugin

Choose whether your plugin should be available for anyone on Research Cloud or just for members of particular collaborations.

Submit

When you have filled in all steps of the wizard you can have the plugin created by clicking the "Submit"-button.


"RSC-External"

When using your own plugin in an application or when using any other plugin that is not authored by SURF, also use the "RSC-External" plugin:

list the "RSC-External" plugin before any of the "non-SURF" plugins are listed.