You can provision Solution Collections and users can add these resources to their projects.
Solution collections can provide different actions in a project, such as a Media Services Account, deploying a SLURM Cluster for HPC, or deploying a Linux VM.
The Solution Collection Repository should be structured as follows;
publisher.json file, you should include:
|Name||The name of the publisher.|
|Support Email||An email address that users can contact for any issues or queries with the solution collection.|
|Description||A description of the publisher and repository.|
In the Solution collection folder, you should include:
solution.json file should include:
|Name||The name of the solution collection.|
|Description||The description of the solution collection. This will explain what it contains when users are choosing which solution collection they will add to their project.|
|Version||A build version in the format of year.day.month.number. For example, 2021.16.01.1.|
|UpgradeAllowed||This determines whether users can upgrade a solution once it is provisioned. You can set this to ‘false’ if upgrading the solution collection would cause issues. Please read more about upgrades below.|
|Icon||You can also choose an
|Deployment mode||You can also provide a
Please note that you can use icons in your solution collection. Loome Assist supports version 4.7 of Font Awesome. You can view the icons available at Font Awesome here.
You can set whether a user will be able to upgrade if any changes are made to the solution collection once the user has added the solution collection to a project. If upgrading the solution collection would cause issues, you can set it to ‘false’ and the option to upgrade will not display for any provisioned solution collections.
Please note that if you select Complete mode, resources will be deployed again and upgraded, so any existing resources that were not included in the solution collection will be deleted.
If you are using Incremental mode, resources will be deployed incrementally when updating, so existing resources that aren’t included in the solution collection will not be deleted.
If you have chosen User mode, the user of the provisioned solution collection will be able to choose from the above two methods of ‘Complete’ or ‘Incremental’.
Please ensure you are using a deployment mode with your preferred update method, as users may unintentionally delete resources when updating this solution collection.
You can then include an optional End-User Licence Agreement.
eula.md file will contain the EULA that the user will need to accept in order to use this solution collection. This file will need to be in the format of
The next file that you will need to include is
releasenotes.md. It will contain the release notes of this solution collection, which can be viewed on the solution collection card, and will display to the user when updating the solution collection.
releasenotes.md is a required file. This file will need to be in the format of
You can then include all other existing artifacts in this folder, such as the ARM template file, parameters (if present),
actions.json, and any action PowerShell script files.
In summary, files for a solution collection must be in the order of:
If you have any required fields in your solution collection, please include these requirements in your description of that field in the ARM template. These fields cannot be validated by Loome Assist as the solution collection is dependent on the ARM template.
You can add actions to a solution collection via an
This file will specify the actions that can be performed via the solution collection once it has been added to a project, such as connecting to a VM.
If you have added an
actions.json file, users that add this solution collection to a project will see additional action buttons on the solution collection card.
For each action, you will need to add a name, icon and PS1 file name.
Each PS1 file that has been included in your solution collection will be run when the corresponding action is clicked in the UI.
The PowerShell file will take the specified input parameters and will provide the specified output parameters. The PowerShell file will need to be written in PowerShell Core.
actions.json file, you can use the values
location for writing action scripts.
You will need to include these values in the parameter section of your script.
Please note that these values cannot be overwritten if specified in the deployment parameters or deployment outputs.
Currently, there are four types of actions that a publisher can provide in a solution collection:
|String||Users will be able to copy a string value.|
|Notification||Users will see a notification with the information you have provided.|
|URL||Users will find a URL that will direct them to the URL you provided.|
|File||Users will find a download link where they can download a file you have provided.|
Once you have made your changes to a solution collection, such as the
solution.json file, you can provide a new version number so any provisioned solution collections in projects will indicate that there is a new version that a user can update to as seen here.
You can also update your release notes in
releasenotes.md to inform users of the changes you have made to the solution collection and they can then choose whether they would like to upgrade their existing solution collection.
Depending on your chosen deployment mode, users will either choose from the ‘Complete’ mode or the ‘Incremental’ mode when upgrading if you selected ‘User’ or will confirm they want to upgrade using the ‘Complete’ or ‘Incremental’ mode you have selected. As mentioned above, each deployment mode has differing outcomes so please choose carefully.