{ "name": "arc", "displayName": "%arc.displayName%", "description": "%arc.description%", "version": "1.4.0", "publisher": "Microsoft", "license": "https://raw.githubusercontent.com/Microsoft/azuredatastudio/main/LICENSE.txt", "icon": "images/extension.png", "engines": { "vscode": "*", "azdata": ">=1.35.0" }, "activationEvents": [ "onCommand:arc.connectToController", "onCommand:arc.createController", "onCommand:azdata.resource.deploy", "onView:azureArc" ], "extensionDependencies": [ "Microsoft.azcli", "Microsoft.resource-deployment" ], "capabilities": { "virtualWorkspaces": false, "untrustedWorkspaces": { "supported": true } }, "repository": { "type": "git", "url": "https://github.com/Microsoft/azuredatastudio.git" }, "forceReload": true, "main": "./out/extension", "contributes": { "dataExplorer": { "azureArc": [ { "id": "azureArc", "name": "%arc.view.title%" } ] }, "commands": [ { "command": "arc.openDashboard", "title": "%arc.openDashboard%" }, { "command": "arc.createController", "title": "%command.createController.title%", "icon": "$(add)" }, { "command": "arc.connectToController", "title": "%command.connectToController.title%", "icon": "$(disconnect)" }, { "command": "arc.removeController", "title": "%command.removeController.title%" }, { "command": "arc.refresh", "title": "%command.refresh.title%" }, { "command": "arc.editConnection", "title": "%command.editConnection.title%" } ], "menus": { "commandPalette": [ { "command": "arc.openDashboard", "when": "false" }, { "command": "arc.removeController", "when": "false" }, { "command": "arc.refresh", "when": "false" }, { "command": "arc.editConnection", "when": "false" } ], "view/title": [ { "command": "arc.createController", "when": "view == azureArc", "group": "navigation@1" }, { "command": "arc.connectToController", "when": "view == azureArc", "group": "navigation@2" } ], "view/item/context": [ { "command": "arc.openDashboard", "when": "view == azureArc && viewItem", "group": "navigation@1" }, { "command": "arc.editConnection", "when": "view == azureArc && viewItem == dataControllers", "group": "navigation@2" }, { "command": "arc.refresh", "when": "view == azureArc && viewItem == dataControllers", "group": "navigation@3" }, { "command": "arc.removeController", "when": "view == azureArc && viewItem == dataControllers", "group": "navigation@4" } ] }, "viewsWelcome": [ { "view": "azureArc", "contents": "%arc.view.welcome.connect%", "when": "arc.loaded" }, { "view": "azureArc", "contents": "%arc.view.welcome.loading%", "when": "!arc.loaded" } ], "resourceDeploymentTypes": [ { "name": "arc-controller", "displayName": "%resource.type.azure.arc.display.name%", "description": "%resource.type.azure.arc.description%", "platforms": "*", "icon": "./images/data_controller.svg", "tags": [ "Hybrid", "SQL Server", "PostgreSQL" ], "providers": [ { "name": "arc-controller", "notebookWizard": { "notebook": "./notebooks/arcDeployment/deploy.arc.data.controller.ipynb", "type": "new-arc-control-plane", "doneAction": { "label": "%deploy.done.action%" }, "scriptAction": { "label": "%deploy.script.action%" }, "codeCellInsertionPosition": 5, "title": "%arc.data.controller.new.wizard.title%", "name": "arc.data.controller.new.wizard", "labelPosition": "left", "generateSummaryPage": false, "pages": [ { "title": "%arc.data.controller.select.cluster.title%", "sections": [ { "fields": [ { "type": "options", "label": "%arc.data.controller.connectivity.mode%", "required": true, "variableName": "AZDATA_NB_VAR_ARC_DATA_CONTROLLER_CONNECTIVITY_MODE", "options": { "values": [ "Indirect", "Direct" ], "defaultValue": "Indirect", "optionsType": "radio" } }, { "type": "kube_cluster_context_picker", "label": "%arc.data.controller.kube.cluster.context%", "required": true, "inputWidth": "350px", "variableName": "AZDATA_NB_VAR_ARC_CLUSTER_CONTEXT", "configFileVariableName": "AZDATA_NB_VAR_ARC_CONFIG_FILE", "enabled": { "target": "AZDATA_NB_VAR_ARC_DATA_CONTROLLER_CONNECTIVITY_MODE", "value": "Indirect" } }, { "type": "options", "label": "%arc.data.controller.cluster.config.profile%", "required": true, "variableName": "AZDATA_NB_VAR_ARC_PROFILE", "editable": false, "options": { "source": { "providerId": "azcli.arc.controller.config.profiles", "loadingText": "%arc.data.controller.cluster.config.profile.loading%", "loadingCompletedText": "%arc.data.controller.cluster.config.profile.loadingcompleted%" }, "defaultValue": "azure-arc-aks-default-storage", "optionsType": "dropdown" } } ] } ] }, { "title": "%arc.data.controller.create.azureconfig.title%", "sections": [ { "title": "%arc.data.controller.project.details.title%", "fields": [ { "type": "readonly_text", "label": "%arc.data.controller.project.details.description%", "labelWidth": "600px" }, { "type": "azure_account", "required": true, "subscriptionVariableName": "AZDATA_NB_VAR_ARC_SUBSCRIPTION", "resourceGroupVariableName": "AZDATA_NB_VAR_ARC_RESOURCE_GROUP" }, { "type": "azure_locations", "label": "%arc.data.controller.location%", "defaultValue": "eastus", "required": true, "locationVariableName": "AZDATA_NB_VAR_ARC_DATA_CONTROLLER_LOCATION", "locations": [ "australiaeast", "centralus", "eastus", "eastus2", "francecentral", "japaneast", "koreacentral", "northeurope", "southeastasia", "uksouth", "westeurope", "westus2" ] } ] } ] }, { "title": "%arc.data.controller.create.controllerconfig.title%", "sections": [ { "title": "%arc.data.controller.details.title%", "fields": [ { "type": "readonly_text", "label": "%arc.data.controller.details.description%", "labelWidth": "600px" }, { "type": "text", "label": "%arc.data.controller.namespace%", "validations": [ { "type": "regex_match", "regex": "^[a-z0-9]([-a-z0-9]{0,61}[a-z0-9])?$", "description": "%arc.data.controller.namespace.validation.description%" } ], "defaultValue": "", "required": true, "variableName": "AZDATA_NB_VAR_ARC_DATA_CONTROLLER_NAMESPACE", "enabled": { "target": "AZDATA_NB_VAR_ARC_DATA_CONTROLLER_CONNECTIVITY_MODE", "value": "Indirect" }, "description": "%arc.data.controller.namespace.description%" }, { "type": "text", "label": "%arc.data.controller.name%", "validations": [ { "type": "regex_match", "regex": "^[a-z0-9]([-.a-z0-9]{0,251}[a-z0-9])?$", "description": "%arc.data.controller.name.validation.description%" } ], "defaultValue": "arc-dc", "required": true, "variableName": "AZDATA_NB_VAR_ARC_DATA_CONTROLLER_NAME" }, { "label": "%arc.storage-class.dc.label%", "description": "%arc.sql.storage-class.dc.description%", "variableName": "AZDATA_NB_VAR_ARC_DATA_CONTROLLER_STORAGE_CLASS", "type": "kube_storage_class", "required": true }, { "type": "options", "label": "%arc.data.controller.infrastructure%", "defaultValue": "azure", "required": true, "variableName": "AZDATA_NB_VAR_ARC_INFRASTRUCTURE", "options": [ "azure", "gcp", "aws", "alibaba", "onpremises", "other" ] }, { "type": "text", "label": "%arc.data.controller.cluster.name%", "description": "%arc.data.controller.cluster.name.description%", "required": true, "variableName": "AZDATA_NB_VAR_ARC_DATA_CONTROLLER_CLUSTER_NAME", "enabled": { "target": "AZDATA_NB_VAR_ARC_DATA_CONTROLLER_CONNECTIVITY_MODE", "value": "Direct" } }, { "type": "text", "label": "%arc.data.controller.custom.location%", "description": "%arc.data.controller.custom.location.description%", "required": true, "variableName": "AZDATA_NB_VAR_ARC_DATA_CONTROLLER_CUSTOM_LOCATION", "enabled": { "target": "AZDATA_NB_VAR_ARC_DATA_CONTROLLER_CONNECTIVITY_MODE", "value": "Direct" } }, { "type": "checkbox", "label": "%arc.data.controller.auto.upload.metrics%", "variableName": "AZDATA_NB_VAR_ARC_DATA_CONTROLLER_AUTO_UPLOAD_METRICS", "description": "%arc.data.controller.auto.upload.metrics.description%", "defaultValue": false, "enabled": { "target": "AZDATA_NB_VAR_ARC_DATA_CONTROLLER_CONNECTIVITY_MODE", "value": "Direct" } }, { "type": "checkbox", "label": "%arc.data.controller.auto.upload.logs%", "variableName": "AZDATA_NB_VAR_ARC_DATA_CONTROLLER_AUTO_UPLOAD_LOGS", "description": "%arc.data.controller.auto.upload.logs.description%", "defaultValue": false, "enabled": { "target": "AZDATA_NB_VAR_ARC_DATA_CONTROLLER_CONNECTIVITY_MODE", "value": "Direct" } }, { "type": "options", "label": "%arc.data.controller.log.analytics.workspace.names%", "variableName": "AZDATA_NB_VAR_LOG_ANALYTICS_WORKSPACE_NAMES", "required": true, "options": { "source": { "providerId": "arc.logAnalyticsWorkspaceNames" }, "optionsType": "dropdown" }, "enabled": { "target": "AZDATA_NB_VAR_ARC_DATA_CONTROLLER_AUTO_UPLOAD_LOGS", "value": "true" } }, { "type": "text", "label": "%arc.data.controller.log.analytics.workspace.id%", "required": true, "isEvaluated": true, "variableName": "AZDATA_NB_VAR_LOG_ANALYTICS_WORKSPACE_ID", "valueProvider": { "providerId": "workspace-name-to-id", "triggerFields": [ "AZDATA_NB_VAR_LOG_ANALYTICS_WORKSPACE_NAMES" ] }, "enabled": { "target": "AZDATA_NB_VAR_ARC_DATA_CONTROLLER_AUTO_UPLOAD_LOGS", "value": "true" } }, { "type": "text", "label": "%arc.data.controller.log.analytics.primary.key%", "required": true, "variableName": "AZDATA_NB_VAR_LOG_ANALYTICS_PRIMARY_KEY", "enabled": { "target": "AZDATA_NB_VAR_ARC_DATA_CONTROLLER_AUTO_UPLOAD_LOGS", "value": "true" } } ] }, { "title": "%arc.data.controller.metrics.and.logs.dashboard.credentials.title%", "fields": [ { "label": "%arc.data.controller.metrics.and.logs.dashboard.credentials.username%", "description": "%arc.data.controller.metrics.and.logs.dashboard.credentials.username.description%", "variableName": "AZDATA_NB_VAR_ARC_ADMIN_USERNAME", "type": "text", "required": true, "defaultValue": "", "enabled": true }, { "label": "%arc.data.controller.metrics.and.logs.dashboard.credentials.password%", "description": "%arc.data.controller.metrics.and.logs.dashboard.credentials.password.description%", "variableName": "AZDATA_NB_VAR_ARC_ADMIN_PASSWORD", "type": "sql_password", "userName": "arcadmin", "confirmationRequired": true, "confirmationLabel": "%arc.data.controller.metrics.and.logs.dashboard.credentials.confirm.password%", "defaultValue": "", "required": true } ] } ] }, { "title": "%arc.data.controller.create.summary.title%", "isSummaryPage": true, "fieldHeight": "16px", "sections": [ { "title": "", "collapsible": false, "fieldWidth": "200px", "fieldHeight": "14px", "spaceBetweenFields": 0, "rows": [ { "items": [ { "items": [ { "label": "%arc.data.controller.summary.arc.data.controller%", "type": "readonly_text", "enabled": true, "labelWidth": "185px" } ] }, { "items": [ { "label": "%arc.data.controller.summary.estimated.cost.per.month%", "type": "readonly_text", "enabled": true, "labelWidth": "190px", "labelCSSStyles": { "fontWeight": "Bold" } } ] } ] }, { "items": [ { "items": [ { "label": "%arc.data.controller.summary.arc.by.microsoft%", "type": "readonly_text", "labelWidth": "185px" } ] }, { "items": [ { "label": "%arc.data.controller.summary.free%", "type": "readonly_text", "enabled": true, "defaultValue": "", "labelWidth": "100px" } ] } ] }, { "items": [ { "items": [ { "label": "{0}", "type": "readonly_text", "enabled": true, "labelWidth": "69px", "links": [ { "text": "%arc.data.controller.summary.arc.terms.of.use%", "url": "https://go.microsoft.com/fwlink/?linkid=2045708" } ] }, { "label": "|", "type": "readonly_text", "enabled": true, "defaultValue": "", "labelWidth": "4px", "fieldWidth": "6px" }, { "label": "{0}", "type": "readonly_text", "enabled": true, "labelWidth": "100px", "links": [ { "text": "%arc.data.controller.summary.arc.terms.privacy.policy%", "url": "https://go.microsoft.com/fwlink/?linkid=512132" } ] } ] } ] } ] }, { "title": "%arc.data.controller.summary.terms%", "fieldHeight": "88px", "fields": [ { "label": "%arc.data.controller.summary.terms.description%", "type": "readonly_text", "enabled": true, "labelWidth": "750px", "links": [ { "text": "%arc.data.controller.summary.terms.link.text%", "url": "https://go.microsoft.com/fwlink/?linkid=2045624" } ] } ] }, { "title": "%arc.data.controller.summary.kubernetes%", "fields": [ { "label": "%arc.data.controller.summary.kube.config.file.path%", "type": "readonly_text", "isEvaluated": true, "defaultValue": "$(AZDATA_NB_VAR_ARC_CONFIG_FILE)" }, { "label": "%arc.data.controller.summary.cluster.context%", "type": "readonly_text", "isEvaluated": true, "defaultValue": "$(AZDATA_NB_VAR_ARC_CLUSTER_CONTEXT)" }, { "label": "%arc.data.controller.summary.cluster.name%", "type": "readonly_text", "isEvaluated": true, "defaultValue": "$(AZDATA_NB_VAR_ARC_DATA_CONTROLLER_CLUSTER_NAME)" }, { "label": "%arc.data.controller.summary.profile%", "type": "readonly_text", "isEvaluated": true, "defaultValue": "$(AZDATA_NB_VAR_ARC_PROFILE)" }, { "label": "%arc.data.controller.summary.username%", "type": "readonly_text", "isEvaluated": true, "defaultValue": "$(AZDATA_NB_VAR_ARC_ADMIN_USERNAME)" } ] }, { "title": "%arc.data.controller.summary.azure%", "fields": [ { "label": "%arc.data.controller.summary.subscription%", "type": "readonly_text", "isEvaluated": true, "defaultValue": "$(AZDATA_NB_VAR_ARC_SUBSCRIPTION)", "inputWidth": "600" }, { "label": "%arc.data.controller.summary.resource.group%", "type": "readonly_text", "isEvaluated": true, "defaultValue": "$(AZDATA_NB_VAR_ARC_RESOURCE_GROUP)" }, { "label": "%arc.data.controller.summary.location%", "type": "readonly_text", "isEvaluated": true, "defaultValue": "$(AZDATA_NB_VAR_ARC_DATA_CONTROLLER_LOCATION)" } ] }, { "title": "%arc.data.controller.summary.controller%", "fields": [ { "label": "%arc.data.controller.summary.data.controller.namespace%", "type": "readonly_text", "isEvaluated": true, "defaultValue": "$(AZDATA_NB_VAR_ARC_DATA_CONTROLLER_NAMESPACE)" }, { "label": "%arc.data.controller.summary.data.controller.custom.location%", "type": "readonly_text", "isEvaluated": true, "defaultValue": "$(AZDATA_NB_VAR_ARC_DATA_CONTROLLER_CUSTOM_LOCATION)" }, { "label": "%arc.data.controller.summary.data.controller.name%", "type": "readonly_text", "isEvaluated": true, "defaultValue": "$(AZDATA_NB_VAR_ARC_DATA_CONTROLLER_NAME)" }, { "label": "%arc.data.controller.summary.data.controller.infrastructure%", "type": "readonly_text", "isEvaluated": true, "defaultValue": "$(AZDATA_NB_VAR_ARC_INFRASTRUCTURE)" } ] } ] } ] }, "requiredTools": [ { "name": "kubectl" }, { "name": "azure-cli" } ], "when": true } ] }, { "name": "arc-postgres", "displayName": "%resource.type.arc.postgres.display.name%", "description": "%resource.type.arc.postgres.description%", "platforms": "*", "icon": "./images/postgres.svg", "tags": [ "Hybrid", "PostgreSQL" ], "providers": [ { "name": "arc-postgres", "notebookWizard": { "notebook": "./notebooks/arcDeployment/deploy.postgres.existing.arc.ipynb", "doneAction": { "label": "%deploy.done.action%" }, "scriptAction": { "label": "%deploy.script.action%" }, "codeCellInsertionPosition": 5, "title": "%arc.postgres.wizard.title%", "name": "arc.postgres.wizard", "labelPosition": "left", "generateSummaryPage": false, "pages": [ { "title": "%arc.postgres.wizard.page1.title%", "labelWidth": "205px", "inputWidth": "280px", "sections": [ { "title": "%arc.postgres.settings.section.title%", "fields": [ { "label": "%arc.controller%", "variableName": "CONTROLLER_NAME", "type": "options", "editable": false, "required": true, "options": { "source": { "providerId": "arc.controllers", "variableNames": { "namespace": "AZDATA_NB_VAR_ARC_DATA_CONTROLLER_NAMESPACE", "kubeConfig": "AZDATA_NB_VAR_CONTROLLER_KUBECONFIG", "clusterContext": "AZDATA_NB_VAR_CONTROLLER_KUBECTL_CONTEXT" } }, "optionsType": "dropdown" } }, { "label": "%arc.postgres.server.group.name%", "variableName": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_NAME", "type": "text", "description": "%arc.postgres.server.group.name.validation.description%", "validations": [ { "type": "regex_match", "regex": "^[a-z]([-a-z0-9]{0,9}[a-z0-9])?$", "description": "%arc.postgres.server.group.name.validation.description%" } ], "required": true }, { "label": "%arc.password%", "variableName": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_PASSWORD", "type": "password", "confirmationRequired": true, "confirmationLabel": "%arc.confirm.password%", "defaultValue": "", "required": true }, { "label": "%arc.postgres.server.group.workers.label%", "description": "%arc.postgres.server.group.workers.description%", "variableName": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_WORKERS", "type": "number", "validations": [ { "type": "is_integer", "description": "%should.be.integer%" }, { "type": "!=", "target": "1", "description": "%worker.node.count.should.not.be.one%" } ], "defaultValue": "2", "min": 0 }, { "label": "%arc.postgres.server.group.port%", "variableName": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_PORT", "type": "number", "validations": [ { "type": "is_integer", "description": "%should.be.integer%" } ], "defaultValue": "5432", "min": 1, "max": 65535 }, { "label": "%arc.postgres.server.group.engine.version%", "variableName": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_ENGINE_VERSION", "type": "options", "options": [ "11", "12" ], "defaultValue": "12" }, { "label": "%arc.postgres.server.group.extensions.label%", "description": "%arc.postgres.server.group.extensions.description%", "variableName": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_EXTENSIONS", "type": "text" } ] }, { "title": "%arc.postgres.settings.resource.worker.title%", "fields": [ { "label": "%arc.postgres.server.group.workers.cores.request.label%", "description": "%arc.postgres.server.group.workers.cores.request.description%", "variableName": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_WORKERS_CORES_REQUEST", "type": "number", "min": 1, "validations": [ { "type": "<=", "target": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_WORKERS_CORES_LIMIT", "description": "%requested.cores.less.than.or.equal.to.cores.limit%" } ] }, { "label": "%arc.postgres.server.group.workers.cores.limit.label%", "description": "%arc.postgres.server.group.workers.cores.limit.description%", "variableName": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_WORKERS_CORES_LIMIT", "type": "number", "min": 1, "validations": [ { "type": ">=", "target": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_WORKERS_CORES_REQUEST", "description": "%cores.limit.greater.than.or.equal.to.requested.cores%" } ] }, { "label": "%arc.postgres.server.group.workers.memory.request.label%", "description": "%arc.postgres.server.group.workers.memory.request.description%", "variableName": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_WORKERS_MEMORY_REQUEST", "type": "number", "min": 0.25, "validations": [ { "type": "<=", "target": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_WORKERS_MEMORY_LIMIT", "description": "%requested.memory.less.than.or.equal.to.memory.limit%" } ] }, { "label": "%arc.postgres.server.group.workers.memory.limit.label%", "description": "%arc.postgres.server.group.workers.memory.limit.description%", "variableName": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_WORKERS_MEMORY_LIMIT", "type": "number", "min": 0.25, "validations": [ { "type": ">=", "target": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_WORKERS_MEMORY_REQUEST", "description": "%memory.limit.greater.than.or.equal.to.requested.memory%" } ] } ] }, { "title": "%arc.postgres.settings.resource.coordinator.title%", "fields": [ { "label": "%arc.postgres.server.group.coordinator.cores.request.label%", "description": "%arc.postgres.server.group.coordinator.cores.request.description%", "variableName": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_COORDINATOR_CORES_REQUEST", "type": "number", "min": 1, "validations": [ { "type": "<=", "target": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_COORDINATOR_CORES_LIMIT", "description": "%requested.cores.less.than.or.equal.to.cores.limit%" } ] }, { "label": "%arc.postgres.server.group.coordinator.cores.limit.label%", "description": "%arc.postgres.server.group.coordinator.cores.limit.description%", "variableName": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_COORDINATOR_CORES_LIMIT", "type": "number", "min": 1, "validations": [ { "type": ">=", "target": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_COORDINATOR_CORES_REQUEST", "description": "%cores.limit.greater.than.or.equal.to.requested.cores%" } ] }, { "label": "%arc.postgres.server.group.coordinator.memory.request.label%", "description": "%arc.postgres.server.group.coordinator.memory.request.description%", "variableName": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_COORDINATOR_MEMORY_REQUEST", "type": "number", "min": 0.25, "validations": [ { "type": "<=", "target": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_COORDINATOR_MEMORY_LIMIT", "description": "%requested.memory.less.than.or.equal.to.memory.limit%" } ] }, { "label": "%arc.postgres.server.group.coordinator.memory.limit.label%", "description": "%arc.postgres.server.group.coordinator.memory.limit.description%", "variableName": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_COORDINATOR_MEMORY_LIMIT", "type": "number", "min": 0.25, "validations": [ { "type": ">=", "target": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_COORDINATOR_MEMORY_REQUEST", "description": "%memory.limit.greater.than.or.equal.to.requested.memory%" } ] } ] }, { "title": "%arc.postgres.settings.storage.title%", "fields": [ { "label": "%arc.storage-class.data.label%", "description": "%arc.postgres.storage-class.data.description%", "variableName": "AZDATA_NB_VAR_POSTGRES_STORAGE_CLASS_DATA", "type": "kube_storage_class", "required": true }, { "label": "%arc.postgres.server.group.volume.size.data.label%", "description": "%arc.postgres.server.group.volume.size.data.description%", "variableName": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_VOLUME_SIZE_DATA", "type": "number", "defaultValue": "5", "min": 1 }, { "label": "%arc.storage-class.logs.label%", "description": "%arc.postgres.storage-class.logs.description%", "variableName": "AZDATA_NB_VAR_POSTGRES_STORAGE_CLASS_LOGS", "type": "kube_storage_class", "required": true }, { "label": "%arc.postgres.server.group.volume.size.logs.label%", "description": "%arc.postgres.server.group.volume.size.logs.description%", "variableName": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_VOLUME_SIZE_LOGS", "type": "number", "defaultValue": "5", "min": 1 }, { "label": "%arc.storage-class.backups.label%", "description": "%arc.postgres.storage-class.backups.description%", "variableName": "AZDATA_NB_VAR_POSTGRES_STORAGE_CLASS_BACKUPS", "type": "kube_storage_class", "required": true }, { "label": "%arc.postgres.server.group.volume.size.backups.label%", "description": "%arc.postgres.server.group.volume.size.backups.description%", "variableName": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_VOLUME_SIZE_BACKUPS", "type": "number", "defaultValue": "5", "min": 1 } ] } ] } ] }, "requiredTools": [ { "name": "kubectl" }, { "name": "azure-cli" } ], "when": "true" } ], "agreements": [ { "template": "%arc.agreement%", "links": [ { "text": "%microsoft.agreement.privacy.statement%", "url": "https://go.microsoft.com/fwlink/?LinkId=853010" }, { "text": "%arc.agreement.postgres.terms.conditions%", "url": "https://go.microsoft.com/fwlink/?linkid=2045708" } ], "when": "true" } ] } ], "resourceDeploymentSubTypes": [ { "resourceName": "azure-sql-mi", "options": [ { "name": "mi-type", "values": [ { "name": "arc-mi", "displayName": "%resource.type.arc.sql.display.name%" } ] } ], "tags": [ "Hybrid", "SQL Server" ], "provider": { "name": "azure-sql-mi_arc-mi", "notebookWizard": { "notebook": "./notebooks/arcDeployment/deploy.sql.existing.arc.ipynb", "doneAction": { "label": "%deploy.done.action%" }, "scriptAction": { "label": "%deploy.script.action%" }, "codeCellInsertionPosition": 5, "title": "%arc.sql.wizard.title%", "name": "arc.sql.wizard", "labelPosition": "left", "generateSummaryPage": false, "pages": [ { "title": "%arc.sql.wizard.page1.title%", "labelWidth": "250px", "inputWidth": "280px", "sections": [ { "title": "%arc.sql.connection.settings.section.title%", "fields": [ { "label": "%arc.controller%", "variableName": "CONTROLLER_NAME", "type": "options", "editable": false, "required": true, "options": { "source": { "providerId": "arc.controllers", "variableNames": { "namespace": "AZDATA_NB_VAR_ARC_DATA_CONTROLLER_NAMESPACE", "kubeConfig": "AZDATA_NB_VAR_CONTROLLER_KUBECONFIG", "clusterContext": "AZDATA_NB_VAR_CONTROLLER_KUBECTL_CONTEXT", "resourceGroup": "AZDATA_NB_VAR_ARC_DATA_CONTROLLER_RESOURCE_GROUP", "connectionMode": "AZDATA_NB_VAR_ARC_DATA_CONTROLLER_CONNECTION_MODE", "location": "AZDATA_NB_VAR_ARC_DATA_CONTROLLER_LOCATION", "customLocation": "AZDATA_NB_VAR_ARC_DATA_CONTROLLER_CUSTOM_LOCATION" } }, "optionsType": "dropdown" } }, { "label": "%arc.sql.instance.name%", "variableName": "AZDATA_NB_VAR_SQL_INSTANCE_NAME", "type": "text", "defaultValue": "sqlinstance1", "required": true, "validations": [ { "type": "regex_match", "regex": "^[a-z]([-a-z0-9]{0,11}[a-z0-9])?$", "description": "%arc.sql.invalid.instance.name%" } ] }, { "label": "%arc.sql.username%", "variableName": "AZDATA_NB_VAR_SQL_USERNAME", "type": "text", "required": true, "validations": [ { "type": "regex_match", "regex": "^(?!sa$)", "description": "%arc.sql.invalid.username%" } ] }, { "label": "%arc.password%", "variableName": "AZDATA_NB_VAR_SQL_PASSWORD", "type": "sql_password", "userName": "sa", "confirmationRequired": true, "confirmationLabel": "%arc.confirm.password%", "defaultValue": "", "required": true } ] }, { "title": "%arc.sql.instance.settings.section.title%", "fields": [ { "type": "options", "label": "%arc.sql.service.tier.label%", "variableName": "AZDATA_NB_VAR_SQL_SERVICE_TIER", "description": "%arc.sql.service.tier.description%", "required": true, "options": { "values": [ { "name": "BusinessCritical", "displayName": "%arc.sql.service.tier.business.critical%" }, { "name": "GeneralPurpose", "displayName": "%arc.sql.service.tier.general.purpose%" } ], "defaultValue": "BusinessCritical", "optionsType": "radio" } }, { "type": "checkbox", "label": "%arc.sql.dev.use.label%", "variableName": "AZDATA_NB_VAR_SQL_DEV_USE", "description": "%arc.sql.dev.use.description%", "defaultValue": false }, { "type": "options", "label": "%arc.sql.high.availability%", "description": "%arc.sql.high.availability.description%", "required": true, "variableName": "AZDATA_NB_VAR_SQL_REPLICAS", "options": { "values": [ { "name": "1", "displayName": "%arc.sql.one.replica%" }, { "name": "2", "displayName": "%arc.sql.two.replicas%" }, { "name": "3", "displayName": "%arc.sql.three.replicas%" } ], "defaultValue": "3", "optionsType": "radio" }, "dynamicOptions": { "target": "AZDATA_NB_VAR_SQL_SERVICE_TIER", "alternates": [ { "selection": "GeneralPurpose", "alternateValues": [ { "name": "1", "displayName": "%arc.sql.one.replica%" } ], "defaultValue": "1" } ] } }, { "label": "%arc.sql.readable.secondaries.label%", "description": "%arc.sql.readable.secondaries.description%", "variableName": "AZDATA_NB_VAR_SQL_READABLE_SECONDARIES", "type": "options", "editable": false, "options": { "values": [ { "name": "0", "displayName": "0" }, { "name": "1", "displayName": "1" }, { "name": "2", "displayName": "2" } ], "defaultValue": "2", "optionsType": "radio" }, "dynamicOptions": { "target": "AZDATA_NB_VAR_SQL_REPLICAS", "alternates": [ { "selection": "1", "alternateValues": [ { "name": "0", "displayName": "0" } ], "defaultValue": "0" }, { "selection": "2", "alternateValues": [ { "name": "0", "displayName": "0" }, { "name": "1", "displayName": "1" } ], "defaultValue": "1" } ] }, "enabled": { "target": "AZDATA_NB_VAR_SQL_SERVICE_TIER", "value": "BusinessCritical" } }, { "label": "%arc.sql.sync.secondaries.label%", "description": "%arc.sql.sync.secondaries.description%", "variableName": "AZDATA_NB_VAR_SQL_SYNC_SECONDARY_TO_COMMIT", "type": "options", "editable": false, "options": { "values": [ { "name": "-1", "displayName": "-1" }, { "name": "0", "displayName": "0" }, { "name": "1", "displayName": "1" }, { "name": "2", "displayName": "2" } ], "defaultValue": "-1", "optionsType": "radio" }, "dynamicOptions": { "target": "AZDATA_NB_VAR_SQL_REPLICAS", "alternates": [ { "selection": "1", "alternateValues": [ { "name": "-1", "displayName": "-1" }, { "name": "0", "displayName": "0" } ], "defaultValue": "-1" }, { "selection": "2", "alternateValues": [ { "name": "-1", "displayName": "-1" }, { "name": "0", "displayName": "0" }, { "name": "1", "displayName": "1" } ], "defaultValue": "-1" } ] }, "enabled": { "target": "AZDATA_NB_VAR_SQL_SERVICE_TIER", "value": "BusinessCritical" } }, { "type": "checkbox", "label": "%arc.sql.license.type.label%", "variableName": "AZDATA_NB_VAR_SQL_LICENSE_TYPE", "description": "%arc.sql.license.type.description%", "defaultValue": false }, { "label": "%arc.storage-class.data.label%", "description": "%arc.sql.storage-class.data.description%", "variableName": "AZDATA_NB_VAR_SQL_STORAGE_CLASS_DATA", "type": "kube_storage_class", "required": false }, { "label": "%arc.sql.volume.size.data.label%", "description": "%arc.sql.volume.size.data.description%", "variableName": "AZDATA_NB_VAR_SQL_VOLUME_SIZE_DATA", "type": "number", "defaultValue": "5", "min": 1, "required": true }, { "label": "%arc.storage-class.datalogs.label%", "description": "%arc.sql.storage-class.datalogs.description%", "variableName": "AZDATA_NB_VAR_SQL_STORAGE_CLASS_DATALOGS", "type": "kube_storage_class", "required": false }, { "label": "%arc.sql.volume.size.datalogs.label%", "description": "%arc.sql.volume.size.datalogs.description%", "variableName": "AZDATA_NB_VAR_SQL_VOLUME_SIZE_DATALOGS", "type": "number", "defaultValue": "5", "min": 1, "required": true }, { "label": "%arc.storage-class.logs.label%", "description": "%arc.sql.storage-class.logs.description%", "variableName": "AZDATA_NB_VAR_SQL_STORAGE_CLASS_LOGS", "type": "kube_storage_class", "required": false }, { "label": "%arc.sql.volume.size.logs.label%", "description": "%arc.sql.volume.size.logs.description%", "variableName": "AZDATA_NB_VAR_SQL_VOLUME_SIZE_LOGS", "type": "number", "defaultValue": "5", "min": 1, "required": true }, { "type": "readonly_text", "label": "", "labelWidth": "600px", "enabled": true, "fieldHeight": "12px" }, { "label": "%arc.storage-class.backups.label%", "description": "%arc.sql.storage-class.backups.description%", "variableName": "AZDATA_NB_VAR_SQL_STORAGE_CLASS_BACKUPS", "type": "text", "fieldHeight": "5px", "required": false }, { "type": "readonly_text", "label": "%arc.storage-class.backups.warning%", "labelWidth": "600px", "enabled": true, "fieldHeight": "1px", "links": [ { "text": "%arc.storage-class.backups.warning.link%", "url": "https://kubernetes.io/docs/concepts/storage/persistent-volumes/#access-modes" } ] }, { "label": "%arc.sql.volume.size.backups.label%", "description": "%arc.sql.volume.size.backups.description%", "variableName": "AZDATA_NB_VAR_SQL_VOLUME_SIZE_BACKUPS", "type": "number", "defaultValue": "5", "min": 1, "required": true, "fieldHeight": "5px" }, { "type": "readonly_text", "label": "", "labelWidth": "600px", "enabled": true, "fieldHeight": "12px" }, { "label": "%arc.cores-request.label%", "description": "%arc.sql.cores-request.description%", "variableName": "AZDATA_NB_VAR_SQL_CORES_REQUEST", "type": "number", "min": 1, "defaultValue": 2, "required": false, "validations": [ { "type": "<=", "target": "AZDATA_NB_VAR_SQL_CORES_LIMIT", "description": "%requested.cores.less.than.or.equal.to.cores.limit%" } ] }, { "label": "%arc.cores-limit.label%", "description": "%arc.sql.cores-limit.description%", "variableName": "AZDATA_NB_VAR_SQL_CORES_LIMIT", "type": "number", "min": 1, "required": false, "defaultValue": 4, "validations": [ { "type": ">=", "target": "AZDATA_NB_VAR_SQL_CORES_REQUEST", "description": "%cores.limit.greater.than.or.equal.to.requested.cores%" } ] }, { "label": "%arc.memory-request.label%", "description": "%arc.sql.memory-request.description%", "variableName": "AZDATA_NB_VAR_SQL_MEMORY_REQUEST", "type": "number", "min": 2, "defaultValue": 4, "required": false, "validations": [ { "type": "<=", "target": "AZDATA_NB_VAR_SQL_MEMORY_LIMIT", "description": "%requested.memory.less.than.or.equal.to.memory.limit%" } ] }, { "label": "%arc.memory-limit.label%", "description": "%arc.sql.memory-limit.description%", "variableName": "AZDATA_NB_VAR_SQL_MEMORY_LIMIT", "type": "number", "min": 2, "defaultValue": 8, "required": false, "validations": [ { "type": ">=", "target": "AZDATA_NB_VAR_SQL_MEMORY_REQUEST", "description": "%memory.limit.greater.than.or.equal.to.requested.memory%" } ] } ] }, { "title": "%arc.sql.cost.summary%", "fields": [ { "label": "%arc.sql.cost.summary.additional.charge%", "type": "readonly_text", "enabled": true, "labelWidth": "750px", "links": [ { "text": "%arc.sql.cost.summary.pricing.details%", "url": "https://aka.ms/ArcSQLBilling" } ] }, { "label": "%arc.sql.cost.summary.cost.vcore%", "type": "readonly_text", "isEvaluated": true, "defaultValue": "0.00 USD", "valueProvider": { "providerId": "params-to-cost-per-vcore", "triggerFields": [ "AZDATA_NB_VAR_SQL_DEV_USE", "AZDATA_NB_VAR_SQL_SERVICE_TIER" ] } }, { "label": "%arc.sql.cost.summary.vcore.limit%", "type": "readonly_text", "isEvaluated": true, "defaultValue": "x 4", "valueProvider": { "providerId": "params-to-vcore-limit", "triggerFields": [ "AZDATA_NB_VAR_SQL_CORES_LIMIT" ] } }, { "label": "%arc.sql.cost.summary.billable.replicas%", "type": "readonly_text", "isEvaluated": true, "defaultValue": "x 1", "valueProvider": { "providerId": "params-to-billable-replicas", "triggerFields": [ "AZDATA_NB_VAR_SQL_READABLE_SECONDARIES" ] } }, { "label": "%arc.sql.cost.summary.azure.hybrid.benefit.discount%", "type": "readonly_text", "isEvaluated": true, "defaultValue": "- 0", "valueProvider": { "providerId": "params-to-hybrid-benefit-discount", "triggerFields": [ "AZDATA_NB_VAR_SQL_CORES_LIMIT", "AZDATA_NB_VAR_SQL_DEV_USE", "AZDATA_NB_VAR_SQL_SERVICE_TIER", "AZDATA_NB_VAR_SQL_LICENSE_TYPE", "AZDATA_NB_VAR_SQL_READABLE_SECONDARIES" ] } }, { "label": "%arc.sql.cost.summary.estimated.cost.per.month%", "type": "readonly_text", "defaultValue": "0.00 USD", "valueProvider": { "providerId": "params-to-estimated-cost", "triggerFields": [ "AZDATA_NB_VAR_SQL_REPLICAS", "AZDATA_NB_VAR_SQL_CORES_LIMIT", "AZDATA_NB_VAR_SQL_DEV_USE", "AZDATA_NB_VAR_SQL_SERVICE_TIER", "AZDATA_NB_VAR_SQL_LICENSE_TYPE", "AZDATA_NB_VAR_SQL_READABLE_SECONDARIES" ] } } ] }, { "title": "%arc.sql.instance.retention.policy.title%", "fields": [ { "type": "readonly_text", "label": "%arc.sql.pitr.retention.description%", "labelWidth": "600px", "enabled": true, "fieldHeight": "10px", "links": [ { "text": "%arc.agreement.sql.help.text.learn.more%", "url": "https://docs.microsoft.com/azure/azure-arc/data/point-in-time-restore" } ] }, { "label": "%arc.sql.retention.days.label%", "description": "%arc.sql.retention.days.description%", "variableName": "AZDATA_NB_VAR_SQL_RETENTION_DAYS", "type": "number", "defaultValue": 7, "min": 1, "max": 35, "required": false } ] } ] } ] }, "requiredTools": [ { "name": "kubectl" }, { "name": "azure-cli" } ], "when": "mi-type=arc-mi" }, "agreement": { "template": "%arc.agreement%", "links": [ { "text": "%microsoft.agreement.privacy.statement%", "url": "https://go.microsoft.com/fwlink/?LinkId=853010" }, { "text": "%arc.agreement.sql.terms.conditions%", "url": "https://go.microsoft.com/fwlink/?linkid=2045708" } ], "when": "mi-type=arc-mi" }, "helpText": { "template": "%arc.agreement.sql.help.text%", "links": [ { "text": "%arc.agreement.sql.help.text.learn.more%", "accessibilityInformation": { "label": "%arc.agreement.sql.help.text.learn.more.ariaLabel%" }, "url": "https://go.microsoft.com/fwlink/?linkid=2141849" } ], "when": "mi-type=arc-mi" } } ], "resourceDeploymentOptionsSources": [ { "id": "arc.controllers" }, { "id": "arc.logAnalyticsWorkspaceNames" } ] }, "dependencies": { "uuid": "^8.3.0", "vscode-nls": "^4.1.2", "yamljs": "^0.3.0" }, "devDependencies": { "@types/mocha": "^7.0.2", "@types/node": "^12.11.7", "@types/sinon": "^9.0.4", "@types/uuid": "^8.3.0", "@types/yamljs": "^0.2.31", "@microsoft/azdata-test": "^1.5.1", "mocha": "^7.1.1", "mocha-junit-reporter": "^1.17.0", "mocha-multi-reporters": "^1.1.7", "should": "^13.2.3", "sinon": "^9.0.2", "typemoq": "2.1.0", "@microsoft/vscodetestcover": "^1.2.1" }, "__metadata": { "id": "68", "publisherDisplayName": "Microsoft", "publisherId": "Microsoft" } }