зеркало из https://github.com/microsoft/AzureTRE.git
Reorganize folder structure of workspaces and workspace services (#703)
* Folder structure changed, vanilla renamed as base * Guacamole VM bundle moved under user_resources folder * Service and workspace references fixed
This commit is contained in:
Родитель
7f2a508d95
Коммит
8a55b3ea73
|
@ -139,7 +139,7 @@ jobs:
|
|||
timezone: Europe/Zurich
|
||||
|
||||
publish_bundles:
|
||||
name: Publish Vanilla Bundle
|
||||
name: Publish Base Bundle
|
||||
needs: deploy_mgmt_infra
|
||||
runs-on: ubuntu-latest
|
||||
environment: Dev
|
||||
|
@ -160,7 +160,7 @@ jobs:
|
|||
|
||||
export USE_ENV_VARS_NOT_FILES=true
|
||||
|
||||
make porter-publish DIR=./workspaces/vanilla
|
||||
make porter-publish DIR=./templates/workspaces/base
|
||||
|
||||
e2e_tests:
|
||||
name: "Run E2E Tests"
|
||||
|
@ -287,10 +287,10 @@ jobs:
|
|||
|
||||
export USE_ENV_VARS_NOT_FILES=true
|
||||
|
||||
make porter-publish DIR=./workspaces/services/azureml
|
||||
make porter-publish DIR=./workspaces/services/devtestlabs
|
||||
make porter-publish DIR=./workspaces/services/innereye_deeplearning
|
||||
make porter-publish DIR=./workspaces/services/innereye_inference
|
||||
make porter-publish DIR=./templates/workspace_services/azureml
|
||||
make porter-publish DIR=./templates/workspace_services/devtestlabs
|
||||
make porter-publish DIR=./templates/workspace_services/innereye_deeplearning
|
||||
make porter-publish DIR=./templates/workspace_services/innereye_inference
|
||||
# deploy_azureml_devtestlabs_workspace:
|
||||
# name: Deploy Azure ML and DevTest Labs Workspace
|
||||
# needs: [publish_innereye_bundles]
|
||||
|
@ -324,8 +324,8 @@ jobs:
|
|||
# export ARM_TENANT_ID=$(echo "$AZURE_CREDENTIALS" | jq -r '.tenantId')
|
||||
# curl -L https://cdn.porter.sh/latest/install-linux.sh | bash && ~/.porter/porter mixin install docker
|
||||
# export PATH=~/.porter/:$PATH
|
||||
# make porter-publish DIR=./workspaces/azureml_devtestlabs
|
||||
# make porter-install DIR=./workspaces/azureml_devtestlabs
|
||||
# make porter-publish DIR=./templates/workspaces/azureml_devtestlabs
|
||||
# make porter-install DIR=./templates/workspaces/azureml_devtestlabs
|
||||
# deploy_innereye_deeplearning_workspace:
|
||||
# name: Deploy InnerEye Deep Learning Workspace
|
||||
# needs: [deploy_azureml_devtestlabs_workspace]
|
||||
|
@ -359,8 +359,8 @@ jobs:
|
|||
# export ARM_TENANT_ID=$(echo "$AZURE_CREDENTIALS" | jq -r '.tenantId')
|
||||
# curl -L https://cdn.porter.sh/latest/install-linux.sh | bash && ~/.porter/porter mixin install docker
|
||||
# export PATH=~/.porter/:$PATH
|
||||
# make porter-publish DIR=./workspaces/innereye_deeplearning
|
||||
# make porter-install DIR=./workspaces/innereye_deeplearning
|
||||
# make porter-publish DIR=./templates/workspaces/innereye_deeplearning
|
||||
# make porter-install DIR=./templates/workspaces/innereye_deeplearning
|
||||
# deploy_innereye_deeplearning_inference_workspace:
|
||||
# name: Deploy InnerEye Deep Learning & Inference Workspace
|
||||
# needs: [deploy_innereye_deeplearning_workspace]
|
||||
|
@ -396,5 +396,5 @@ jobs:
|
|||
# export INFERENCE_SP_CLIENT_SECRET=$(echo "$AZURE_CREDENTIALS" | jq -r '.clientSecret')
|
||||
# curl -L https://cdn.porter.sh/latest/install-linux.sh | bash && ~/.porter/porter mixin install docker
|
||||
# export PATH=~/.porter/:$PATH
|
||||
# make porter-publish DIR=./workspaces/innereye_deeplearning_inference
|
||||
# make porter-install DIR=./workspaces/innereye_deeplearning_inference
|
||||
# make porter-publish DIR=./templates/workspaces/innereye_deeplearning_inference
|
||||
# make porter-install DIR=./templates/workspaces/innereye_deeplearning_inference
|
||||
|
|
|
@ -53,8 +53,8 @@ The flow to provision a Workspace is the following (the flow is the same for all
|
|||
```JSON
|
||||
{
|
||||
"action": "install",
|
||||
"id": "vanilla",
|
||||
"name": "VanillaWorkspaceTemplate",
|
||||
"id": "base",
|
||||
"name": "BaseWorkspaceTemplate",
|
||||
"version": "1.0",
|
||||
"parameters": {
|
||||
"param1": "value1"
|
||||
|
@ -70,10 +70,10 @@ The flow to provision a Workspace is the following (the flow is the same for all
|
|||
porter <action> --reference <ACR name>.azurecr.io/bundles/<name>:<version> --params key=value --cred <credentials set name or file>
|
||||
|
||||
# Example
|
||||
porter install --reference msfttreacr.azurecr.io/bundles/VanillaWorkspaceTemplate:1.0 --params param1=value1 --cred azure.json
|
||||
porter install --reference msfttreacr.azurecr.io/bundles/BaseWorkspaceTemplate:1.0 --params param1=value1 --cred azure.json
|
||||
```
|
||||
|
||||
Deployments are carried out against the Azure Subscription using a User Assigned Managed Identity. The `azure.json` tells Porter where the credential information can be found and for the Resource Processor they are set as environment variables (Vanilla Workspace Template [azure.json](workspaces/vanilla/azure.json)).
|
||||
Deployments are carried out against the Azure Subscription using a User Assigned Managed Identity. The `azure.json` tells Porter where the credential information can be found and for the Resource Processor they are set as environment variables (Base Workspace Template [azure.json](../templates/workspaces/base/azure.json)).
|
||||
|
||||
Porter bundle actions are required to be idempotent, so if a deployment fails, the Resource Processor can retry.
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@ This document describes the authentication and authorization (A&A) of deployed A
|
|||
|
||||
App registrations (represented by service principals) define the privileges enabling access to the TRE system (e.g., [Management API](../management_api_app/README.md)) as well as the workspaces.
|
||||
|
||||
<!-- markdownlint-disable-next-line MD013 -->
|
||||
It is recommended to run the [`/scripts/aad-app-reg.sh`](../scripts/aad-app-reg.sh) script to create the two main app registrations: "TRE API" and "TRE Swagger UI". It automatically setups the app registrations with the required permissions to run Azure TRE. The script will create an app password (client secret) for the "TRE API" app; make sure to take note of it in the script output as it is only shown once.
|
||||
|
||||
Alternatively you can also choose to create the app registrations manually via the Azure Portal - see [Quickstart: Register an application with the Microsoft identity platform](https://docs.microsoft.com/azure/active-directory/develop/quickstart-register-app) on how. The required setup with permissions is documented below.
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<!-- markdownlint-disable-next-line MD013 -->
|
||||
Azure TRE workspaces are [Porter](https://porter.sh/) bundles that in turn are based on [Cloud Native Application Bundles (CNAB)](https://cnab.io/). Workspace authors are free to choose the technology stack for provisioning resources (e.g., ARM templates, Terraform etc.), but the Azure TRE framework sets certain requirements for the bundle manifests, which specify the credentials, input and output parameters, deployment actions among other things. The document describes those requirements.
|
||||
|
||||
**Use [the vanilla workspace bundle](../workspaces/vanilla/README.md) and [others](../workspaces/) as reference** or as the basis for the new bundle. To start from scratch follow the Porter [Quickstart Guide](https://porter.sh/quickstart/) ([`porter create` CLI command](https://porter.sh/cli/porter_create/) will generate a new bundle in the current directory).
|
||||
**Use [the base workspace bundle](../templates/workspaces/base/README.md) and [others](../templates/workspaces/) as reference** or as the basis for the new bundle. To start from scratch follow the Porter [Quickstart Guide](https://porter.sh/quickstart/) ([`porter create` CLI command](https://porter.sh/cli/porter_create/) will generate a new bundle in the current directory).
|
||||
|
||||
## Prerequisites
|
||||
|
||||
|
|
|
@ -24,27 +24,27 @@
|
|||
|
||||
```text
|
||||
├── .github
|
||||
│ ├── ISSUE_TEMPLATE - Templates for GitHub issues
|
||||
│ ├── linters - Linter definitions for workflows
|
||||
│ └── workflows - GitHub Actions workflows (CI/CD)
|
||||
│ ├── ISSUE_TEMPLATE - Templates for GitHub issues
|
||||
│ ├── linters - Linter definitions for workflows
|
||||
│ └── workflows - GitHub Actions workflows (CI/CD)
|
||||
│
|
||||
├── devops
|
||||
│ ├── scripts - DevOps scripts
|
||||
│ └── terraform - Terraform specific DevOps files/scripts for bootstrapping
|
||||
│ ├── scripts - DevOps scripts
|
||||
│ └── terraform - Terraform specific DevOps files/scripts for bootstrapping
|
||||
│
|
||||
├── docs - Documentation
|
||||
├── docs - Documentation
|
||||
│
|
||||
├── e2e_tests - pytest-based end-to-end tests
|
||||
├── e2e_tests - pytest-based end-to-end tests
|
||||
│
|
||||
├── management_api_app - Management API source code and docs
|
||||
├── management_api_app - Management API source code and docs
|
||||
│
|
||||
├── resource_processor - VMSS Porter Runner
|
||||
├── resource_processor - VMSS Porter Runner
|
||||
│
|
||||
├── scripts - Utility scripts
|
||||
├── scripts - Utility scripts
|
||||
│
|
||||
├── templates
|
||||
│ ├── core/terraform - Terraform definitions of Azure TRE core resources
|
||||
│ └── services... - Terraform definitions for default workspace resources
|
||||
│
|
||||
└── workspaces - Workspace templates
|
||||
└── templates
|
||||
├── core/terraform - Terraform definitions of Azure TRE core resources
|
||||
├── shared_services - Terraform definitions of shared services
|
||||
├── workspace_services - Workspace services
|
||||
└── workspaces - Workspace templates
|
||||
```
|
||||
|
|
|
@ -150,12 +150,12 @@ You can also create a request to the `api/health` endpoint to verify that Manage
|
|||
curl https://<azure_tre_fqdn>/api/health
|
||||
```
|
||||
|
||||
## Publishing and registering the vanilla workspace bundle
|
||||
## Publishing and registering the base workspace bundle
|
||||
|
||||
1. Run:
|
||||
|
||||
```cmd
|
||||
register-bundle DIR=./workspaces/vanilla
|
||||
register-bundle DIR=./templates/workspaces/base
|
||||
```
|
||||
|
||||
Copy the resulting payload json.
|
||||
|
@ -172,9 +172,9 @@ curl https://<azure_tre_fqdn>/api/health
|
|||
|
||||
1. To verify regsitration of the template do `GET` operation on `/api/workspace-templates`. The name of the template should now be listed.
|
||||
|
||||
## Creating a vanilla workspace
|
||||
## Creating a base workspace
|
||||
|
||||
Now that we have published and registered a vanilla workspace bundle we can use the deployed API to create a vanilla workspace.
|
||||
Now that we have published and registered a base workspace bundle we can use the deployed API to create a base workspace.
|
||||
|
||||
<!-- markdownlint-disable-next-line MD013 -->
|
||||
> All routes are auth protected.Click the green **Authorize** button to receive a token for swagger client.
|
||||
|
@ -183,13 +183,13 @@ As explained in the [auth guide](auth.md), every workspace has a corresponding a
|
|||
|
||||
Running the script will report app id of the generated app which needs to be used in the POST body below.
|
||||
|
||||
Go to ``azure_tre_fqdn/docs`` and use POST /api/workspaces with the sample body to create a vanilla workspace.
|
||||
Go to ``azure_tre_fqdn/docs`` and use POST /api/workspaces with the sample body to create a base workspace.
|
||||
|
||||
```json
|
||||
{
|
||||
"displayName": "manual-from-swagger",
|
||||
"description": "workspace for team X",
|
||||
"workspaceType": "tre-workspace-vanilla",
|
||||
"workspaceType": "tre-workspace-base",
|
||||
"parameters": {},
|
||||
"authConfig": {
|
||||
"provider": "AAD",
|
||||
|
|
|
@ -14,9 +14,9 @@ The script can also be used to generate the payload required by the API without
|
|||
|
||||
### Registration using Swagger UI
|
||||
|
||||
1. We will use the utility script to generate the payload. The script needs to be executed from within the bundle directory, for example `/workspaces/azureml_devtestlabs/`. This script can be used as follows:
|
||||
1. We will use the utility script to generate the payload. The script needs to be executed from within the bundle directory, for example `/templates/workspaces/azureml_devtestlabs/`. This script can be used as follows:
|
||||
|
||||
`../../devops/scripts/publish_register_bundle.sh -r <acr_name> -i -t workspace`
|
||||
`../../../devops/scripts/publish_register_bundle.sh -r <acr_name> -i -t workspace`
|
||||
|
||||
Copy the resulting payload json.
|
||||
|
||||
|
@ -36,13 +36,13 @@ The script can also be used to generate the payload required by the API without
|
|||
|
||||
To use the script to automatically register the template a user that does not require an interactive login must be created as per the [e2e test user documentation here](auth.md#tre-e2e-test).
|
||||
|
||||
The script needs to be executed from within the bundle directory, for example `/workspaces/azureml_devtestlabs/`. This script can be used as follows:
|
||||
The script needs to be executed from within the bundle directory, for example `/templates/workspaces/azureml_devtestlabs/`. This script can be used as follows:
|
||||
|
||||
```cmd
|
||||
Usage: ../../devops/scripts/publish_register_bundle.sh [-u --tre_url] [-c --current] [-i --insecure]
|
||||
Usage: ../../../devops/scripts/publish_register_bundle.sh [-u --tre_url] [-c --current] [-i --insecure]
|
||||
|
||||
Options:
|
||||
-r, --acr-name Azure Container Registry Name
|
||||
-r, --acr-name Azure Container Registry Name
|
||||
-t, --bundle-type Bundle type, workspace
|
||||
-c, --current: Make this the currently deployed version of this template
|
||||
-i, --insecure: Bypass SSL certificate checks
|
||||
|
|
|
@ -6,7 +6,7 @@ API_WORKSPACE_TEMPLATES = "/api/workspace-templates"
|
|||
API_WORKSPACES = "/api/workspaces"
|
||||
API_WORKSPACE_SERVICE_TEMPLATES = "/api/workspace-service-templates"
|
||||
|
||||
VANILLA_WORKSPACE = "tre-workspace-vanilla"
|
||||
BASE_WORKSPACE = "tre-workspace-base"
|
||||
DEV_TEST_LABS = "tre-workspace-azureml-devtestlabs"
|
||||
INNEREYE_DEEPLEARNING = "tre-workspace-innereye-deeplearning"
|
||||
INNEREYE_DEEPLEARNING_INFERENCE = "tre-workspace-innereye-deeplearning-inference"
|
||||
|
|
|
@ -25,7 +25,7 @@ Authorization: Bearer {{auth.response.body.access_token}}
|
|||
Content-type: application/json
|
||||
|
||||
{
|
||||
"workspaceType": "tre-workspace-vanilla",
|
||||
"workspaceType": "tre-workspace-base",
|
||||
"properties": {
|
||||
"display_name": "E2E test",
|
||||
"description": "workspace for E2E",
|
||||
|
|
|
@ -13,7 +13,7 @@ pytestmark = pytest.mark.asyncio
|
|||
|
||||
|
||||
workspace_templates = [
|
||||
(strings.VANILLA_WORKSPACE),
|
||||
(strings.BASE_WORKSPACE),
|
||||
(strings.DEV_TEST_LABS),
|
||||
(strings.INNEREYE_DEEPLEARNING),
|
||||
(strings.INNEREYE_DEEPLEARNING_INFERENCE)
|
||||
|
@ -94,9 +94,9 @@ async def test_getting_templates(template_name, token, verify) -> None:
|
|||
|
||||
@pytest.mark.smoke
|
||||
@pytest.mark.timeout(1200)
|
||||
async def test_create_vanilla_workspace(token, verify) -> None:
|
||||
async def test_create_base_workspace(token, verify) -> None:
|
||||
payload = {
|
||||
"workspaceType": "tre-workspace-vanilla",
|
||||
"workspaceType": "tre-workspace-base",
|
||||
"properties": {
|
||||
"display_name": "E2E test",
|
||||
"description": "workspace for E2E",
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"templates": [
|
||||
{
|
||||
"id": "2b3f98a7-1152-4a24-8b9b-6513b8 bb23e7",
|
||||
"name": "tre-workspace-vanilla",
|
||||
"name": "tre-workspace-base",
|
||||
"description": "These parameters are specific to my workspace template",
|
||||
"version": "0.0.1",
|
||||
"resourceType": "workspace",
|
||||
|
|
|
@ -29,8 +29,8 @@ class ResourceTemplateInformationInList(BaseModel):
|
|||
"example": {
|
||||
"templates": [
|
||||
{
|
||||
"name": "tre-workspace-vanilla",
|
||||
"description": "vanilla description"
|
||||
"name": "tre-workspace-base",
|
||||
"description": "base description"
|
||||
},
|
||||
{
|
||||
"name": "tre-workspace-base",
|
||||
|
|
|
@ -10,7 +10,7 @@ from models.domain.workspace import Workspace
|
|||
def get_sample_workspace(workspace_id: str, spec_workspace_id: str = "0001") -> dict:
|
||||
return {
|
||||
"id": workspace_id,
|
||||
"resourceTemplateName": "tre-workspace-vanilla",
|
||||
"resourceTemplateName": "tre-workspace-base",
|
||||
"resourceTemplateVersion": "0.1.0",
|
||||
"resourceTemplateParameters": {
|
||||
"azure_location": "westeurope",
|
||||
|
@ -72,7 +72,7 @@ class WorkspaceInCreate(BaseModel):
|
|||
class Config:
|
||||
schema_extra = {
|
||||
"example": {
|
||||
"workspaceType": "tre-workspace-vanilla",
|
||||
"workspaceType": "tre-workspace-base",
|
||||
"properties": {
|
||||
"display_name": "the workspace display name",
|
||||
"description": "workspace description",
|
||||
|
|
|
@ -3,11 +3,11 @@ from models.domain.resource_template import ResourceTemplate, Property
|
|||
from models.schemas.resource_template import ResourceTemplateInCreate, ResourceTemplateInResponse
|
||||
|
||||
|
||||
def get_sample_workspace_template_object(template_name: str = "tre-workspace-vanilla") -> ResourceTemplate:
|
||||
def get_sample_workspace_template_object(template_name: str = "tre-workspace-base") -> ResourceTemplate:
|
||||
return ResourceTemplate(
|
||||
id="a7a7a7bd-7f4e-4a4e-b970-dc86a6b31dfb",
|
||||
name=template_name,
|
||||
description="vanilla workspace bundle",
|
||||
description="base workspace bundle",
|
||||
version="0.1.0",
|
||||
resourceType=ResourceType.Workspace,
|
||||
current=True,
|
||||
|
|
|
@ -20,11 +20,11 @@ pytestmark = pytest.mark.asyncio
|
|||
|
||||
@pytest.fixture
|
||||
def workspace_service_template_without_enriching():
|
||||
def create_workspace_service_template(template_name: str = "vanilla-service-template"):
|
||||
def create_workspace_service_template(template_name: str = "base-service-template"):
|
||||
return ResourceTemplate(
|
||||
id="a7a7a7bd-7f4e-4a4e-b970-dc86a6b31dfb",
|
||||
name=template_name,
|
||||
description="vanilla service bundle",
|
||||
description="base service bundle",
|
||||
version="0.1.0",
|
||||
resourceType=ResourceType.WorkspaceService,
|
||||
current=True,
|
||||
|
|
|
@ -20,11 +20,11 @@ pytestmark = pytest.mark.asyncio
|
|||
|
||||
@pytest.fixture
|
||||
def workspace_template_without_enriching():
|
||||
def create_workspace_template(template_name: str = "vanilla-workspace-template"):
|
||||
def create_workspace_template(template_name: str = "base-workspace-template"):
|
||||
return ResourceTemplate(
|
||||
id="a7a7a7bd-7f4e-4a4e-b970-dc86a6b31dfb",
|
||||
name=template_name,
|
||||
description="vanilla workspace bundle",
|
||||
description="base workspace bundle",
|
||||
version="0.1.0",
|
||||
resourceType=ResourceType.Workspace,
|
||||
current=True,
|
||||
|
@ -129,7 +129,7 @@ class TestWorkspaceTemplate:
|
|||
async def test_workspace_templates_by_name_returns_returns_error_status_based_on_exception(self, get_current_template_mock, exception, expected_status, app, client):
|
||||
get_current_template_mock.side_effect = exception
|
||||
|
||||
response = await client.get(app.url_path_for(strings.API_GET_WORKSPACE_TEMPLATE_BY_NAME, workspace_template_name="tre-workspace-vanilla"))
|
||||
response = await client.get(app.url_path_for(strings.API_GET_WORKSPACE_TEMPLATE_BY_NAME, workspace_template_name="tre-workspace-base"))
|
||||
|
||||
assert response.status_code == expected_status
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@ pytestmark = pytest.mark.asyncio
|
|||
def sample_workspace(workspace_id, auth_info: dict = None):
|
||||
workspace = Workspace(
|
||||
id=workspace_id,
|
||||
resourceTemplateName="tre-workspace-vanilla",
|
||||
resourceTemplateName="tre-workspace-base",
|
||||
resourceTemplateVersion="0.1.0",
|
||||
resourceTemplateParameters={},
|
||||
deployment=Deployment(status=Status.NotDeployed, message=""),
|
||||
|
@ -37,7 +37,7 @@ def sample_workspace_service(workspace_service_id, workspace_id):
|
|||
return WorkspaceService(
|
||||
id=workspace_service_id,
|
||||
workspaceId=workspace_id,
|
||||
resourceTemplateName="tre-workspace-vanilla",
|
||||
resourceTemplateName="tre-workspace-base",
|
||||
resourceTemplateVersion="0.1.0",
|
||||
resourceTemplateParameters={},
|
||||
deployment=Deployment(status=Status.NotDeployed, message=""),
|
||||
|
|
|
@ -19,7 +19,7 @@ def resource_repo():
|
|||
|
||||
@pytest.fixture
|
||||
def workspace_input():
|
||||
return WorkspaceInCreate(workspaceType="vanilla-tre", properties={"display_name": "test", "description": "test", "app_id": "123"})
|
||||
return WorkspaceInCreate(workspaceType="base-tre", properties={"display_name": "test", "description": "test", "app_id": "123"})
|
||||
|
||||
|
||||
def test_delete_workspace_marks_workspace_as_deleted(resource_repo):
|
||||
|
@ -27,7 +27,7 @@ def test_delete_workspace_marks_workspace_as_deleted(resource_repo):
|
|||
|
||||
workspace = Workspace(
|
||||
id="1234",
|
||||
resourceTemplateName="vanilla-tre",
|
||||
resourceTemplateName="base-tre",
|
||||
resourceTemplateVersion="0.1.0",
|
||||
resourceTemplateParameters={},
|
||||
deployment=Deployment(status=Status.NotDeployed, message=""),
|
||||
|
@ -42,7 +42,7 @@ def test_restore_deletion_status(resource_repo):
|
|||
|
||||
workspace = Workspace(
|
||||
id="1234",
|
||||
resourceTemplateName="vanilla-tre",
|
||||
resourceTemplateName="base-tre",
|
||||
resourceTemplateVersion="0.1.0",
|
||||
resourceTemplateParameters={},
|
||||
deployment=Deployment(status=Status.Deleting, message=""),
|
||||
|
|
|
@ -11,7 +11,7 @@ from models.schemas.workspace import WorkspaceInCreate, WorkspacePatchEnabled
|
|||
|
||||
@pytest.fixture
|
||||
def basic_workspace_request():
|
||||
return WorkspaceInCreate(workspaceType="vanilla-tre", properties={"display_name": "test", "description": "test", "app_id": "123"})
|
||||
return WorkspaceInCreate(workspaceType="base-tre", properties={"display_name": "test", "description": "test", "app_id": "123"})
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
|
@ -130,7 +130,7 @@ def test_patch_workspace_updates_item(workspace_repo):
|
|||
workspace_repo.update_item = MagicMock(return_value=None)
|
||||
workspace_to_patch = Workspace(
|
||||
id="1234",
|
||||
resourceTemplateName="vanilla-tre",
|
||||
resourceTemplateName="base-tre",
|
||||
resourceTemplateVersion="0.1.0",
|
||||
resourceTemplateParameters={},
|
||||
deployment=Deployment(status=Status.NotDeployed, message=""),
|
||||
|
|
|
@ -38,7 +38,7 @@ class ServiceBusReceivedMessageMock:
|
|||
def create_sample_workspace_object(workspace_id):
|
||||
return Workspace(
|
||||
id=workspace_id,
|
||||
resourceTemplateName="tre-workspace-vanilla",
|
||||
resourceTemplateName="tre-workspace-base",
|
||||
resourceTemplateVersion="0.1.0",
|
||||
resourceTemplateParameters={},
|
||||
deployment=Deployment(status=Status.NotDeployed, message="")
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"action":"install",
|
||||
"id":"0c03ba50-f671-4bf1-9312-97b5f14e42cc",
|
||||
"name":"tre-workspace-vanilla",
|
||||
"name":"tre-workspace-base",
|
||||
"version":"0.1.0",
|
||||
"parameters":{
|
||||
"address_space":"10.2.1.0/24",
|
||||
|
|
|
@ -48,7 +48,7 @@ When working locally we use a service principal (SP). This SP needs enough permi
|
|||
Once the above is setup you can simulate receiving messages from service bus by going to service bus explorer on the portal and using a message payload for SERVICE_BUS_RESOURCE_REQUEST_QUEUE as follows
|
||||
|
||||
```json
|
||||
{"action": "install", "id": "a8911125-50b4-491b-9e7c-ed8ff42220f9", "name": "tre-workspace-vanilla", "version": "0.1.0", "parameters": {"azure_location": "westeurope", "workspace_id": "20f9", "tre_id": "myfavtre", "address_space": "192.168.3.0/24"}}
|
||||
{"action": "install", "id": "a8911125-50b4-491b-9e7c-ed8ff42220f9", "name": "tre-workspace-base", "version": "0.1.0", "parameters": {"azure_location": "westeurope", "workspace_id": "20f9", "tre_id": "myfavtre", "address_space": "192.168.3.0/24"}}
|
||||
```
|
||||
|
||||
This will trigger receiving of messages and you can freely debug the code by setting breakpoints as desired.
|
||||
|
|
До Ширина: | Высота: | Размер: 157 KiB После Ширина: | Высота: | Размер: 157 KiB |
|
@ -28,14 +28,14 @@ Service Tags:
|
|||
## Manual Deployment
|
||||
|
||||
1. Prerequisites for deployment:
|
||||
- [A vanilla workspace bundle installed](../../vanilla)
|
||||
- [A base workspace bundle installed](../../workspaces/base)
|
||||
|
||||
1. Create a copy of `workspaces/services/azureml/.env.sample` with the name `.env` and update the variables with the appropriate values.
|
||||
1. Create a copy of `templates/workspace_services/azureml/.env.sample` with the name `.env` and update the variables with the appropriate values.
|
||||
|
||||
| Environment variable name | Description |
|
||||
| ------------------------- | ----------- |
|
||||
| `WORKSPACE_ID` | The 4 character unique identifier used when deploying the vanilla workspace bundle. |
|
||||
| `WORKSPACE_ID` | The 4 character unique identifier used when deploying the base workspace bundle. |
|
||||
|
||||
1. Build and install the Azure ML Service bundle
|
||||
- `make porter-build DIR=./workspaces/services/azureml`
|
||||
- `make porter-install DIR=./workspaces/services/azureml`
|
||||
- `make porter-build DIR=./templates/workspace_services/azureml`
|
||||
- `make porter-install DIR=./templates/workspace_services/azureml`
|
|
@ -5,17 +5,17 @@ See: [https://azure.microsoft.com/services/devtest-lab/](https://azure.microsoft
|
|||
## Manual Deployment
|
||||
|
||||
1. Prerequisites for deployment:
|
||||
- [A vanilla workspace bundle installed](../../vanilla)
|
||||
- [A base workspace bundle installed](../../workspaces/base)
|
||||
|
||||
1. Create a copy of `workspaces/services/devtestlabs/.env.sample` with the name `.env` and update with the Workspace ID used when deploying the vanilla workspace.
|
||||
1. Create a copy of `templates/workspace_services/devtestlabs/.env.sample` with the name `.env` and update with the Workspace ID used when deploying the base workspace.
|
||||
|
||||
| Environment variable name | Description |
|
||||
| ------------------------- | ----------- |
|
||||
| `WORKSPACE_ID` | The 4 character unique identifier used when deploying the vanilla workspace bundle. |
|
||||
| `WORKSPACE_ID` | The 4 character unique identifier used when deploying the base workspace bundle. |
|
||||
|
||||
1. Build and install the Azure DevTest Labs Service bundle
|
||||
- `make porter-build DIR=./workspaces/services/devtestlabs`
|
||||
- `make porter-install DIR=./workspaces/services/devtestlabs`
|
||||
- `make porter-build DIR=./templates/workspace_services/devtestlabs`
|
||||
- `make porter-install DIR=./templates/workspace_services/devtestlabs`
|
||||
|
||||
## Create and expose a VM via the Firewall
|
||||
|
||||
|
@ -24,7 +24,7 @@ When this service used without a virtual desktop gateway it might be necessary t
|
|||
1. Create a DevTest Labs VM and open a port in the TRE firewall using the script provided.
|
||||
|
||||
```cmd
|
||||
Usage:
|
||||
Usage:
|
||||
./create_and_expose_vm.sh [-l --lab-name] [-t --tre_id] [-w --workspace_id] [-n --vm-name] [-i --image-name]
|
||||
|
||||
Options:
|
||||
|
@ -33,10 +33,10 @@ When this service used without a virtual desktop gateway it might be necessary t
|
|||
-w, --workspace_id ID of the workspace
|
||||
-n, --vm-name Name of the VM
|
||||
-i, --image-name: Name of the VM Image
|
||||
|
||||
|
||||
Example:
|
||||
|
||||
./workspaces/services/devtestlabs/create_and_expose_vm.sh --lab-name <lab_name> --tre-id <tre-id> --workspace-id <workspace-id> --vm-name <vmn-name> --image-name "Data Science Virtual Machine - Windows Server 2019"
|
||||
./templates/workspace_services/devtestlabs/create_and_expose_vm.sh --lab-name <lab_name> --tre-id <tre-id> --workspace-id <workspace-id> --vm-name <vmn-name> --image-name "Data Science Virtual Machine - Windows Server 2019"
|
||||
|
||||
```
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema",
|
||||
"$id": "https://github.com/microsoft/AzureTRE/workspaces/services/guacamole/custom_parameters.json",
|
||||
"$id": "https://github.com/microsoft/AzureTRE/templates/workspace_services/guacamole/custom_parameters.json",
|
||||
"type": "object",
|
||||
"title": "Guacamole service template Custom Parameters",
|
||||
"description": "Guacamole service template custom parameters",
|
|
@ -13,15 +13,15 @@ TBD
|
|||
## Manual Deployment
|
||||
|
||||
1. Prerequisites for deployment:
|
||||
- [A vanilla workspace bundle installed](../../vanilla)
|
||||
- [A base workspace bundle installed](../../workspaces/base)
|
||||
|
||||
1. Create a copy of `workspaces/services/guacamole/.env.sample` with the name `.env` and update the variables with the appropriate values.
|
||||
1. Create a copy of `templates/workspace_services/guacamole/.env.sample` with the name `.env` and update the variables with the appropriate values.
|
||||
|
||||
| Environment variable name | Description |
|
||||
| ------------------------- | ----------- |
|
||||
| `WORKSPACE_ID` | The 4 character unique identifier used when deploying the vanilla workspace bundle. |
|
||||
| `WORKSPACE_ID` | The 4 character unique identifier used when deploying the base workspace bundle. |
|
||||
| `GUACAMOLE_IMAGE_TAG` | Image tag of the Guacamole server |
|
||||
|
||||
1. Build and install the Guacamole Service bundle
|
||||
- `make porter-build DIR=./workspaces/services/guacamole`
|
||||
- `make porter-install DIR=./workspaces/services/guacamole`
|
||||
- `make porter-build DIR=./templates/workspace_services/guacamole`
|
||||
- `make porter-install DIR=./templates/workspace_services/guacamole`
|
|
@ -11,5 +11,5 @@ locals {
|
|||
webapp_name = "guacamole-${local.service_resource_name_suffix}"
|
||||
core_vnet = "vnet-${var.tre_id}"
|
||||
core_resource_group_name = "rg-${var.tre_id}"
|
||||
issuer = "https://login.microsoftonline.com/${var.aad_tenant_id}/v2.0"
|
||||
issuer = "https://login.microsoftonline.com/${var.aad_tenant_id}/v2.0"
|
||||
}
|
Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше
Загрузка…
Ссылка в новой задаче