From 061052e4f3314b6a82a2e19d4e8ae6e659271f26 Mon Sep 17 00:00:00 2001 From: Charles Gagnon Date: Fri, 21 Aug 2020 14:45:00 -0700 Subject: [PATCH] Update arc deployment wizards (#11907) --- .../deploy.arc.control.plane.ipynb | 2 +- .../deploy.postgres.existing.arc.ipynb | 76 ++++++---- .../deploy.sql.existing.arc.ipynb | 13 +- extensions/arc/package.json | 141 +++--------------- extensions/arc/package.nls.json | 34 +---- 5 files changed, 74 insertions(+), 192 deletions(-) diff --git a/extensions/arc/notebooks/arcDeployment/deploy.arc.control.plane.ipynb b/extensions/arc/notebooks/arcDeployment/deploy.arc.control.plane.ipynb index d26ee63a24..90487da749 100644 --- a/extensions/arc/notebooks/arcDeployment/deploy.arc.control.plane.ipynb +++ b/extensions/arc/notebooks/arcDeployment/deploy.arc.control.plane.ipynb @@ -192,7 +192,7 @@ "os.environ[\"DOCKER_PASSWORD\"] = arc_docker_password\n", "if os.name == 'nt':\n", " print(f'If you don\\'t see output produced by azdata, you can run the following command in a terminal window to check the deployment status:\\n\\t {os.environ[\"AZDATA_NB_VAR_KUBECTL\"]} get pods -A')\n", - "run_command(f'azdata arc dc create --connectivity-mode {arc_data_controller_connectivity_mode} -n {arc_data_controller_name} -ns {arc_data_controller_namespace} -s {arc_subscription} -g {arc_resource_group} -l {arc_data_controller_location} -p {arc_profile}')\n", + "run_command(f'azdata arc dc create --connectivity-mode {arc_data_controller_connectivity_mode} -n {arc_data_controller_name} -ns {arc_data_controller_namespace} -s {arc_subscription} -g {arc_resource_group} -l {arc_data_controller_location} --profile-name {arc_profile}')\n", "print(f'Azure Arc Data controller cluster: {arc_data_controller_name} created.') " ], "metadata": { diff --git a/extensions/arc/notebooks/arcDeployment/deploy.postgres.existing.arc.ipynb b/extensions/arc/notebooks/arcDeployment/deploy.postgres.existing.arc.ipynb index bd4c8a3bc9..7e0bd46e4c 100644 --- a/extensions/arc/notebooks/arcDeployment/deploy.postgres.existing.arc.ipynb +++ b/extensions/arc/notebooks/arcDeployment/deploy.postgres.existing.arc.ipynb @@ -75,7 +75,7 @@ { "cell_type": "markdown", "source": [ - "#### **Get required and optional parameters for the PostgreSQL server group**" + "#### **Ensure Postgres Server Group name and password exist**" ], "metadata": { "azdata_cell_guid": "68ec0760-27d1-4ded-9a9f-89077c40b8bb" @@ -85,26 +85,43 @@ "cell_type": "code", "source": [ "# Required Values\n", - "server_group_name = os.environ[\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_NAME\"]\n", - "server_group_namespace = os.environ[\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_NAMESPACE\"]\n", + "env_var = \"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_NAME\" in os.environ\n", + "if env_var:\n", + " server_group_name = os.environ[\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_NAME\"]\n", + "else:\n", + " sys.exit(f'environment variable: AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_NAME was not defined. Exiting\\n')\n", + "env_var = \"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_PASSWORD\" in os.environ\n", + "if env_var:\n", + " postgres_password = os.environ[\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_PASSWORD\"]\n", + "else:\n", + " sys.exit(f'environment variable: AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_PASSWORD was not defined. Exiting\\n') \n", + "" + ], + "metadata": { + "azdata_cell_guid": "53769960-e1f8-4477-b4cf-3ab1ea34348b", + "tags": [] + }, + "outputs": [], + "execution_count": null + }, + { + "cell_type": "markdown", + "source": [ + "#### **Get optional parameters for the PostgreSQL server group**" + ], + "metadata": { + "azdata_cell_guid": "68ec0760-27d1-4ded-9a9f-89077c40b8bb" + } + }, + { + "cell_type": "code", + "source": [ "server_group_workers = os.environ[\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_WORKERS\"]\n", - "server_group_service_type = os.environ[\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_SERVICE_TYPE\"]\n", - "server_group_data_size = os.environ[\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_DATA_SIZE\"]\n", - "\n", - "# Optional Values\n", - "server_group_data_class = os.environ.get(\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_DATA_CLASS\")\n", "server_group_port = os.environ.get(\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_PORT\")\n", - "server_group_extensions = os.environ.get(\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_EXTENSIONS\")\n", - "server_group_cpu_min = os.environ.get(\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_CPU_MIN\")\n", - "server_group_cpu_max = os.environ.get(\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_CPU_MAX\")\n", - "server_group_memory_min = os.environ.get(\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_MEMORY_MIN\")\n", - "server_group_memory_max = os.environ.get(\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_MEMORY_MAX\")\n", - "server_group_backup_classes = os.environ.get(\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_BACKUP_CLASSES\")\n", - "server_group_backup_sizes = os.environ.get(\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_BACKUP_SIZES\")\n", - "server_group_backup_full_interval = os.environ.get(\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_BACKUP_FULL_INTERVAL\")\n", - "server_group_backup_delta_interval = os.environ.get(\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_BACKUP_DELTA_INTERVAL\")\n", - "server_group_backup_retention_min = os.environ.get(\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_BACKUP_RETENTION_MIN\")\n", - "server_group_backup_retention_max = os.environ.get(\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_BACKUP_RETENTION_MAX\")" + "server_group_cores_request = os.environ.get(\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_CORES_REQUEST\")\n", + "server_group_cores_limit = os.environ.get(\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_CORES_LIMIT\")\n", + "server_group_memory_request = os.environ.get(\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_MEMORY_REQUEST\")\n", + "server_group_memory_limit = os.environ.get(\"AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_MEMORY_LIMIT\")" ], "metadata": { "azdata_cell_guid": "53769960-e1f8-4477-b4cf-3ab1ea34348b", @@ -127,20 +144,15 @@ "source": [ "print (f'Creating a PostgreSQL server group on Azure Arc')\n", "\n", - "data_class_option = f' --dataClass \"{server_group_data_class}\"' if server_group_data_class else \"\"\n", + "workers_option = f' -w {server_group_workers}' if server_group_workers else \"\"\n", "port_option = f' --port \"{server_group_port}\"' if server_group_port else \"\"\n", - "extensions_option = f' --extensions \"{server_group_extensions}\"' if server_group_extensions else \"\"\n", - "cpu_min_option = f' --minCpu \"{server_group_cpu_min}\"' if server_group_cpu_min else \"\"\n", - "cpu_max_option = f' --maxCpu \"{server_group_cpu_max}\"' if server_group_cpu_max else \"\"\n", - "memory_min_option = f' --minMemoryMb \"{server_group_memory_min}\"' if server_group_memory_min else \"\"\n", - "memory_max_option = f' --maxMemoryMb \"{server_group_memory_max}\"' if server_group_memory_max else \"\"\n", - "backup_classes_option = f' --backupClasses \"{server_group_backup_classes}\"' if server_group_backup_classes else \"\"\n", - "backup_sizes_option = f' --backupSizesMb \"{server_group_backup_sizes}\"' if server_group_backup_sizes else \"\"\n", - "backup_full_interval_option = f' --fullBackupInterval \"{server_group_backup_full_interval}\"' if server_group_backup_full_interval else \"\"\n", - "backup_delta_interval_option = f' --deltaBackupInterval \"{server_group_backup_delta_interval}\"' if server_group_backup_delta_interval else \"\"\n", - "backup_retention_min_option = f' --retentionMin \"{server_group_backup_retention_min}\"' if server_group_backup_retention_min else \"\"\n", - "backup_retention_max_option = f' --retentionMax \"{server_group_backup_retention_max}\"' if server_group_backup_retention_max else \"\"\n", - "cmd = f'azdata postgres server create --name {server_group_name} --namespace {server_group_namespace} --workers {server_group_workers} --serviceType {server_group_service_type} --dataSizeMb {server_group_data_size}{data_class_option}{port_option}{extensions_option}{cpu_min_option}{cpu_max_option}{memory_min_option}{memory_max_option}{backup_classes_option}{backup_sizes_option}{backup_full_interval_option}{backup_delta_interval_option}{backup_retention_min_option}{backup_retention_max_option}'\n", + "cores_request_option = f' -cr \"{server_group_cores_request}\"' if server_group_cores_request else \"\"\n", + "cores_limit_option = f' -cl \"{server_group_cores_limit}\"' if server_group_cores_limit else \"\"\n", + "memory_request_option = f' -mr \"{server_group_memory_request}Mi\"' if server_group_memory_request else \"\"\n", + "memory_limit_option = f' -ml \"{server_group_memory_limit}Mi\"' if server_group_memory_limit else \"\"\n", + "\n", + "os.environ[\"AZDATA_PASSWORD\"] = postgres_password\n", + "cmd = f'azdata arc postgres server create -n {server_group_name}{workers_option}{port_option}{cores_request_option}{cores_limit_option}{memory_request_option}{memory_limit_option}'\n", "out=run_command()" ], "metadata": { diff --git a/extensions/arc/notebooks/arcDeployment/deploy.sql.existing.arc.ipynb b/extensions/arc/notebooks/arcDeployment/deploy.sql.existing.arc.ipynb index 094b45b36e..2efd18cbd7 100644 --- a/extensions/arc/notebooks/arcDeployment/deploy.sql.existing.arc.ipynb +++ b/extensions/arc/notebooks/arcDeployment/deploy.sql.existing.arc.ipynb @@ -75,7 +75,7 @@ { "cell_type": "markdown", "source": [ - "#### **Ensure SQL instance name, username, password, subscription id and resource group name**" + "#### **Ensure SQL instance name, username and password exist**" ], "metadata": { "azdata_cell_guid": "68ec0760-27d1-4ded-9a9f-89077c40b8bb" @@ -95,10 +95,7 @@ " mssql_password = os.environ[\"AZDATA_NB_VAR_SQL_PASSWORD\"]\n", "else:\n", " sys.exit(f'environment variable: AZDATA_NB_VAR_SQL_PASSWORD was not defined. Exiting\\n') \n", - "\n", - "# Optional Values\n", - "subscription = os.environ[\"AZDATA_NB_VAR_ARC_SUBSCRIPTION\"] \n", - "resource_group_name = os.environ[\"AZDATA_NB_VAR_ARC_RESOURCE_GROUP_NAME\"]\n" + "" ], "metadata": { "azdata_cell_guid": "53769960-e1f8-4477-b4cf-3ab1ea34348b", @@ -121,10 +118,8 @@ "source": [ "print (f'Creating Managed SQL Server instance on Azure Arc')\n", "\n", - "os.environ[\"MSSQL_SA_PASSWORD\"] = mssql_password\n", - "subscription_option = f' -s \"{subscription}\"' if subscription else \"\"\n", - "resource_group_option = f' -r \"{resource_group_name}\"' if resource_group_name else \"\"\n", - "cmd = f'azdata sql instance create -n {mssql_instance_name}{subscription_option}{resource_group_option}'\n", + "os.environ[\"AZDATA_PASSWORD\"] = mssql_password\n", + "cmd = f'azdata arc sql mi create -n {mssql_instance_name}'\n", "out=run_command()" ], "metadata": { diff --git a/extensions/arc/package.json b/extensions/arc/package.json index 9674ae1291..07051c246f 100644 --- a/extensions/arc/package.json +++ b/extensions/arc/package.json @@ -547,7 +547,7 @@ }, { "name": "azdata", - "version": "20.0.0" + "version": "20.1.0" } ], "when": true @@ -601,17 +601,6 @@ { "title": "", "sections": [ - { - "title": "%arc.azure.section.title%", - "fields": [ - { - "subscriptionVariableName": "AZDATA_NB_VAR_ARC_SUBSCRIPTION", - "resourceGroupVariableName": "AZDATA_NB_VAR_ARC_RESOURCE_GROUP_NAME", - "type": "azure_account", - "required": true - } - ] - }, { "title": "%arc.sql.settings.section.title%", "fields": [ @@ -620,7 +609,8 @@ "variableName": "AZDATA_NB_VAR_SQL_INSTANCE_NAME", "type": "text", "defaultValue": "sqlinstance1", - "required": true + "required": true, + "labelWidth": "100%" }, { "label": "%arc.sql.username%", @@ -630,7 +620,7 @@ "enabled": false }, { - "label": "%arc.sql.password%", + "label": "%arc.password%", "variableName": "AZDATA_NB_VAR_SQL_PASSWORD", "type": "sql_password", "userName": "sa", @@ -651,7 +641,7 @@ }, { "name": "azdata", - "version": "20.0.0" + "version": "20.1.0" } ], "when": "resourceType=sql.managed.instance" @@ -723,10 +713,12 @@ "required": true }, { - "label": "%arc.postgres.server.group.namespace%", - "variableName": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_NAMESPACE", - "type": "text", - "defaultValue": "default", + "label": "%arc.password%", + "variableName": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_PASSWORD", + "type": "password", + "confirmationRequired": true, + "confirmationLabel": "%arc.confirm.password%", + "defaultValue": "", "required": true }, { @@ -734,36 +726,8 @@ "variableName": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_WORKERS", "type": "number", "defaultValue": "1", - "required": true, "min": 1 }, - { - "label": "%arc.postgres.server.group.service.type%", - "variableName": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_SERVICE_TYPE", - "type": "options", - "options": [ - "ClusterIP", - "NodePort", - "LoadBalancer" - ], - "defaultValue": "NodePort", - "required": true - }, - { - "label": "%arc.postgres.server.group.data.size%", - "description": "%arc.postgres.server.group.data.size.description%", - "variableName": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_DATA_SIZE", - "type": "number", - "defaultValue": "1024", - "required": true, - "min": 1 - }, - { - "label": "%arc.postgres.server.group.data.class%", - "description": "%arc.postgres.server.group.data.class.description%", - "variableName": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_DATA_CLASS", - "type": "text" - }, { "label": "%arc.postgres.server.group.port%", "variableName": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_PORT", @@ -771,16 +735,6 @@ "defaultValue": "5432", "min": 1, "max": 65535 - }, - { - "label": "%arc.postgres.server.group.extensions%", - "description": "%arc.postgres.server.group.extensions.description%", - "variableName": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_EXTENSIONS", - "type": "text", - "textValidationRequired": true, - "textValidationRegex": "^(?:(?:pg_cron|postgis|postgis_raster|postgis_topology)(?!\\s*,\\s*$)(?:\\s*,\\s*|$))*$", - "textValidationDescription": "%arc.postgres.server.group.extensions.validation.description%", - "defaultValue": "" } ] }, @@ -788,85 +742,30 @@ "title": "%arc.postgres.settings.scheduling.title%", "fields": [ { - "label": "%arc.postgres.server.group.cpu.min%", - "variableName": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_CPU_MIN", + "label": "%arc.postgres.server.group.cores.request%", + "variableName": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_CORES_REQUEST", "type": "number", "min": 0 }, { - "label": "%arc.postgres.server.group.cpu.max%", - "variableName": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_CPU_MAX", + "label": "%arc.postgres.server.group.cores.limit%", + "variableName": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_CORES_LIMIT", "type": "number", "min": 0 }, { - "label": "%arc.postgres.server.group.memory.min%", - "variableName": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_MEMORY_MIN", + "label": "%arc.postgres.server.group.memory.request%", + "variableName": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_MEMORY_REQUEST", "type": "number", "min": 0 }, { - "label": "%arc.postgres.server.group.memory.max%", - "variableName": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_MEMORY_MAX", + "label": "%arc.postgres.server.group.memory.limit%", + "variableName": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_MEMORY_LIMIT", "type": "number", "min": 0 } ] - }, - { - "title": "%arc.postgres.settings.backups.title%", - "fields": [ - { - "label": "%arc.postgres.server.group.backup.classes%", - "description": "%arc.postgres.server.group.backup.classes.description%", - "variableName": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_BACKUP_CLASSES", - "type": "text" - }, - { - "label": "%arc.postgres.server.group.backup.sizes%", - "description": "%arc.postgres.server.group.backup.sizes.description%", - "variableName": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_BACKUP_SIZES", - "type": "text" - }, - { - "label": "%arc.postgres.server.group.backup.claims%", - "description": "%arc.postgres.server.group.backup.claims.description%", - "variableName": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_BACKUP_CLAIMS", - "type": "text" - }, - { - "label": "%arc.postgres.server.group.backup.full.interval%", - "variableName": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_BACKUP_FULL_INTERVAL", - "type": "number", - "min": 0 - }, - { - "label": "%arc.postgres.server.group.backup.delta.interval%", - "variableName": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_BACKUP_DELTA_INTERVAL", - "type": "number", - "min": 0 - }, - { - "label": "%arc.postgres.server.group.backup.retention.min%", - "description": "%arc.postgres.server.group.backup.retention.min.description%", - "variableName": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_BACKUP_RETENTION_MIN", - "type": "text", - "textValidationRequired": true, - "textValidationRegex": "^(?:(?:\\d+|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[mMhHdDwW]|[mMgGtTpPeE][bB]))(?!\\s*[,;]\\s*$)(?:\\s*[,;]\\s*|$))*$", - "textValidationDescription": "%arc.postgres.server.group.backup.retention.min.validation.description%", - "defaultValue": "" - }, - { - "label": "%arc.postgres.server.group.backup.retention.max%", - "description": "%arc.postgres.server.group.backup.retention.max.description%", - "variableName": "AZDATA_NB_VAR_POSTGRES_SERVER_GROUP_BACKUP_RETENTION_MAX", - "type": "text", - "textValidationRequired": true, - "textValidationRegex": "^(?:(?:\\d+|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[mMhHdDwW]|[mMgGtTpPeE][bB]))(?!\\s*[,;]\\s*$)(?:\\s*[,;]\\s*|$))*$", - "textValidationDescription": "%arc.postgres.server.group.backup.retention.max.validation.description%", - "defaultValue": "" - } - ] } ] } @@ -878,7 +777,7 @@ }, { "name": "azdata", - "version": "20.0.0" + "version": "20.1.0" } ], "when": "resourceType=postgres" diff --git a/extensions/arc/package.nls.json b/extensions/arc/package.nls.json index a51fc2d3ba..5fdee223fc 100644 --- a/extensions/arc/package.nls.json +++ b/extensions/arc/package.nls.json @@ -83,7 +83,7 @@ "arc.azure.section.title": "Azure information", "arc.sql.instance.name": "Instance name (lower case letters and digits only)", "arc.sql.username": "Username", - "arc.sql.password": "Password", + "arc.password": "Password", "arc.confirm.password": "Confirm password", "arc.azure.account": "Azure account", "arc.azure.subscription": "Azure subscription", @@ -91,39 +91,15 @@ "arc.azure.location": "Azure location", "arc.postgres.new.dialog.title": "Deploy a PostgreSQL server group on Azure Arc (preview)", "arc.postgres.settings.section.title": "PostgreSQL server group settings", - "arc.postgres.settings.backups.title": "PostgreSQL server group backup settings", "arc.postgres.settings.scheduling.title": "PostgreSQL server group scheduling settings", "arc.postgres.server.group.name": "Server group name", "arc.postgres.server.group.name.validation.description": "Server group name must consist of lower case alphanumeric characters or '-', start with a letter, end with an alphanumeric character, and be 10 characters or fewer in length.", - "arc.postgres.server.group.namespace": "Kubernetes namespace", "arc.postgres.server.group.workers": "Number of workers", - "arc.postgres.server.group.service.type": "Kubernetes service type", - "arc.postgres.server.group.data.size": "Data volume size (MB)", - "arc.postgres.server.group.data.size.description": "The number of megabytes (per node) that will be requested for the PostgreSQL server group's data volumes.", - "arc.postgres.server.group.data.class": "Data volume storage class", - "arc.postgres.server.group.data.class.description": "The Kubernetes storage class to use for the PostgreSQL server group's data volumes, or empty to use the default storage class.", "arc.postgres.server.group.port": "Port", - "arc.postgres.server.group.extensions": "PostgreSQL extensions", - "arc.postgres.server.group.extensions.description": "A comma-separated list of the PostgreSQL extensions that should be added. Supported values: pg_cron, postgis, postgis_raster, postgis_topology.", - "arc.postgres.server.group.extensions.validation.description": "Supported PostgreSQL extensions: pg_cron, postgis, postgis_raster, postgis_topology.", - "arc.postgres.server.group.cpu.min": "Min CPU cores (per node) to reserve", - "arc.postgres.server.group.cpu.max": "Max CPU cores (per node) to allow", - "arc.postgres.server.group.memory.min": "Min memory MB (per node) to reserve", - "arc.postgres.server.group.memory.max": "Max memory MB (per node) to allow", - "arc.postgres.server.group.backup.classes": "Backup volume storage classes", - "arc.postgres.server.group.backup.classes.description": "A comma-separated list of existing Kubernetes storage classes to use for the PostgreSQL server group's backup volumes, one per backup tier. If provided, backup volume sizes must also be provided.", - "arc.postgres.server.group.backup.sizes": "Backup volume sizes (MB)", - "arc.postgres.server.group.backup.sizes.description": "A comma-separated list of the number of megabytes (per node) that will be requested for the PostgreSQL server group's backup volumes, one per backup tier. If specified, backups will be enabled. In this configuration a separate backup volume is used for each node.", - "arc.postgres.server.group.backup.claims": "Backup volume claims", - "arc.postgres.server.group.backup.claims.description": "A comma-separated list of existing Kubernetes persistent volume claims (in the same namespace) to use for the PostgreSQL server group's backups, one per backup tier. If specified, backups will be enabled. In this configuration the backup volumes are shared across all nodes.", - "arc.postgres.server.group.backup.full.interval": "Minutes between full backups", - "arc.postgres.server.group.backup.delta.interval": "Minutes between delta backups", - "arc.postgres.server.group.backup.retention.min": "Minimum trim settings", - "arc.postgres.server.group.backup.retention.min.description": "A list of trim settings that specifies the minimum number of days/size/counts of backups to preserve per tier. Each trim setting contains 1 or more trim values separated by commas and each tier is separated by a semicolon. Possible trim values include '7d', '10GB', or '50'.", - "arc.postgres.server.group.backup.retention.min.validation.description": "Minimum trim settings must contain 1 or more trim values separated by commas with each tier separated by a semicolon.", - "arc.postgres.server.group.backup.retention.max": "Maximum trim settings", - "arc.postgres.server.group.backup.retention.max.description": "A list of trim settings that specifies the maximum number of days/size/counts of backups to preserve per tier. Each trim setting contains 1 or more trim values separated by commas and each tier is separated by a semicolon. Possible trim values include '7d', '10GB', or '50'.", - "arc.postgres.server.group.backup.retention.max.validation.description": "Maximum trim settings must contain 1 or more trim values separated by commas with each tier separated by a semicolon.", + "arc.postgres.server.group.cores.request": "Min CPU cores (per node) to reserve", + "arc.postgres.server.group.cores.limit": "Max CPU cores (per node) to allow", + "arc.postgres.server.group.memory.request": "Min memory MB (per node) to reserve", + "arc.postgres.server.group.memory.limit": "Max memory MB (per node) to allow", "arc.agreement": "I accept {0}, {1} and {2}.", "arc.agreement.sql.terms.conditions":"Azure SQL managed instance - Azure Arc terms and conditions", "arc.agreement.postgres.terms.conditions":"PostgreSQL server groups - Azure Arc terms and conditions",