diff --git a/docs/use-cases/virtual-lab/bulk-application-deployment.md b/docs/use-cases/virtual-lab/bulk-application-deployment.md new file mode 100644 index 0000000000000000000000000000000000000000..95fa1dbf7f37c8afc6a0488d2da843f2afad14cf --- /dev/null +++ b/docs/use-cases/virtual-lab/bulk-application-deployment.md @@ -0,0 +1,57 @@ +# Bulk Application Deployment + +The "bulk application deployment" feature allows NMaaS administrators to deploy many application instances at once. This is useful for scenarios where NMaaS is used simply as an orchestration platform, and the end-users of the deployed applications should not be required to have an NMaaS account. + +## Bulk Application Deployment in the Context of Virtual Lab + +When using NMaaS for the virtual lab use-case, teachers might want to deploy individual application instances for each student taking part in a course, without going over the account provisioning process first. There can be many reasons for taking this approach, such as: + +- the NMaaS web UI is deployed in an isolated network without public access +- the students are not experienced enough with the use of PaaS-like platforms +- the process defined by the home institution regarding on-boarding of new users to NMaaS is too time consuming + +After bulk deploying the applications, teachers can simply share the connection information with the students, completely abstracting away the use of NMaaS, and hiding any implementational details. + +## Using Bulk Application Deployment + +The bulk application deployment feature can be accessed by navigating to `Advanced -> Bulk application deployments`. Note that currently this feature is only available to global NMaaS administrators. + +The overview page shows a history of past bulk application deployments, with options either to see more details about a given deployment, or create a new one. + +A new bulk application deployment can be initiated by clicking on the `New deployment` button. + + + +The first step when launching the bulk application deployment wizard is to select which application is going to be deployed. + + + +The second step is dedicated to customizing the deployments. A CSV file can be uploaded, specifying the domains in which the applications should be deployed, the application versions, and any auxiliary parameters which need to be overridden. These parameters are related to Helm parameters which are exposed in the underlying chart's `values.yaml` file. + +A basic example of a CSV file which can be used for bulk application deployment is given below. + +```csv +domain,instance,version,param.juiceshop.properties.ctfKey +demo-user02,demojsh02,14.5.1,SECRET1 +demo-user03,demojsh03,14.5.1,SECRET1 +``` + +In the example above the Helm parameter `juiceshop.properties.ctfKey` is customized for both of the deployments. + +!!! warning "Additional Parameter Specification" + + Any Helm parameter can be overridden, assuming that it is prefixed with the static prefix `param.`. For example, if ingress support should be disabled for given bulk deployments, and assuming that the chart exposes an `ingress.enabled` flag, the CSV file will need to contain a dedicated `param.ingress.enabled` column. + +The bulk deployment wizard supports either uploading an existing CSV file from the local device or editing the provided example directly in the browser. + + + +Once the CSV file is uploaded, the applications will be instantiated in a background task. Administrators can follow the progress from the details page. + + + +Once deployment is completed, connection details can be obtained on a per-application basis. + + + + \ No newline at end of file diff --git a/docs/use-cases/virtual-lab/img/bulk-app-deployment-app-status.png b/docs/use-cases/virtual-lab/img/bulk-app-deployment-app-status.png new file mode 100644 index 0000000000000000000000000000000000000000..c7dc2150a7c992275db542cd2d2eeb070f88ae02 Binary files /dev/null and b/docs/use-cases/virtual-lab/img/bulk-app-deployment-app-status.png differ diff --git a/docs/use-cases/virtual-lab/img/bulk-app-deployment-details.png b/docs/use-cases/virtual-lab/img/bulk-app-deployment-details.png new file mode 100644 index 0000000000000000000000000000000000000000..97ff762826f0cfb6586890c3e6ef7530648e8212 Binary files /dev/null and b/docs/use-cases/virtual-lab/img/bulk-app-deployment-details.png differ diff --git a/docs/use-cases/virtual-lab/img/bulk-app-deployment-homepage.png b/docs/use-cases/virtual-lab/img/bulk-app-deployment-homepage.png new file mode 100644 index 0000000000000000000000000000000000000000..918f7bb13d40f9f315ac2ffb96d60e71d0b60d4d Binary files /dev/null and b/docs/use-cases/virtual-lab/img/bulk-app-deployment-homepage.png differ diff --git a/docs/use-cases/virtual-lab/img/bulk-app-deployment-step01.png b/docs/use-cases/virtual-lab/img/bulk-app-deployment-step01.png new file mode 100644 index 0000000000000000000000000000000000000000..0b989897251a42257738c9bcfad20ecfc593dc41 Binary files /dev/null and b/docs/use-cases/virtual-lab/img/bulk-app-deployment-step01.png differ diff --git a/docs/use-cases/virtual-lab/img/bulk-app-deployment-step02.png b/docs/use-cases/virtual-lab/img/bulk-app-deployment-step02.png new file mode 100644 index 0000000000000000000000000000000000000000..5644cc1e8e2644ef74ec249c4cf10580782476ba Binary files /dev/null and b/docs/use-cases/virtual-lab/img/bulk-app-deployment-step02.png differ diff --git a/docs/use-cases/virtual-lab/img/bulk-app-deployment-step03.png b/docs/use-cases/virtual-lab/img/bulk-app-deployment-step03.png new file mode 100644 index 0000000000000000000000000000000000000000..8bf0b058cc6364a747fcc37a34421fc217b12170 Binary files /dev/null and b/docs/use-cases/virtual-lab/img/bulk-app-deployment-step03.png differ diff --git a/mkdocs.yml b/mkdocs.yml index 11ece3777323b175101ca9227ccdf930e919f4ce..8e9c6d6968381dfec40bae266d2f57dc1b71be10 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -24,6 +24,7 @@ nav: - Introduction: 'use-cases/virtual-lab/vlab-introduction.md' - Domain Groups: 'use-cases/virtual-lab/domain-groups.md' - Bulk Domain Deployment: 'use-cases/virtual-lab/bulk-domain-deployment.md' + - Bulk Application Deployment: 'use-cases/virtual-lab/bulk-application-deployment.md' - NMaaS Applications: - General Application Deployment: 'nmaas-applications/general-app-deployment.md' - List of Supported Applications: 'nmaas-applications/application-list.md'