- URL:
- https://<root>/system/deployments/properties/<propertyTemplateID>/edit
- Methods:
POST- Version Introduced:
- 10.9
Description
The edit operation modifies the default scaling and resource allocation properties for a specific microservice within your organization. Once the default properties have been updated, all newly published microservices that match the type , provider , and mode values of the default template will have the updated properties assigned to them. You'll need to update preexisting deployment properties individually using the edit deployment operation.
Starting at ArcGIS Enterprise 11.2 on Kubernetes, the edit operation can also be used to set the default node affinity and toleration values on GIS service microservices.
Scaling in ArcGIS Enterprise on Kubernetes
Either manual scaling or autoscaling can be set for a microservice using the property parameter. Introduced at ArcGIS Enterprise on Kubernetes 10.9.1, autoscaling allows administrators to configure and deploy systems that respond to unexpected performance demands with minimal intervention and overhead. The ArcGIS Enterprise on Kubernetes autoscaling capability uses horizontal pod autoscaling, which, in response to an increase in resource usage, deploys additional pods according to the values set by the administrator.
When a specific CPU utilization threshold (average ) is crossed, ArcGIS Enterprise on Kubernetes scales the number of pods up to the maximum (max ) value set in the replicas JSON object. When utilization drops, and the additional resources are no longer needed, the system scales itself back down to no lower than the minimum (min ) value set in the replicas JSON object. For more information about enabling autoscaling, see the Editable properties section below.
Request parameters
| Parameter | Details |
|---|---|
| The JSON object representing the default property template that specifies the scaling ( Example |
| The response format. The default format is Values: |
Template properties
The example below demonstrates a full JSON object of a property template.
{
"mode": "Dedicated",
"provider": "ArcObjects11",
"id": "pflhvjnd6z3hy56dkfo55",
"type": "GPSyncServer",
"spec": {
"replicas": {
"min": 3,
"max": 3,
"scalingMode": "manual" //Added at 11.0
},
"containers": [
{
"name": "main-container",
"resources": {
"memoryMin": "1.5Gi",
"memoryMax": "5Gi",
"cpuMin": "0.125",
"cpuMax": "2"
},
"containerImageKey": "GP_SERVER"
},
{
"name": "filebeat",
"resources": {
"memoryMin": "32Mi",
"memoryMax": "50Mi",
"cpuMin": "0.05",
"cpuMax": "0.25"
},
"containerImageKey": "FILEBEAT"
}
]
},
"revision": 1618223886566
}The subsections below describe the individual properties included in the property template JSON object that can, and cannot, be updated using this operation.
Editable properties
The properties below can be updated using the edit operation.
| Property | Details |
|---|---|
| The number of replicas for the microservice. The default value for Example of manual scaling For organizations using ArcGIS Enterprise 11.2 on Kubernetes or later versions, version 2 (v2) of the autoscaling feature can be enabled by passing in the JSON object below and modifying the Autoscaling can be enabled by adjusting the Example Organizations using ArcGIS Enterprise on Kubernetes 10.9.1 can enable version 1 of the autoscaling feature by passing in the JSON object below and modifying the |
| Introduced at 11.2. Sets the node affinity or tolerations applied that will be applied the pods of a GIS service deployment. For more information on configuring node affinity or tolerations, see the Edit (Placement Policy) operation. Example for nodeAffinity Example for tolerations |
| The minimum and maximum resource allocations for the microservice, including the minimum memory ( Example |
Uneditable properties
The following properties cannot be edited but are required to be passed through in the property object:
| Property | Details |
|---|---|
| The microservice mode. A mode type of Values: |
| The microservice provider. Only microservices related to an ArcGIS service type have a provider type. A provider type of Values: |
| The template ID. Example |
| The microservice type. For example, if the microservice is a shared feature server containing feature services, the Values: |
| The JSON object representation of the template's specifications, including replicas and container resources. Example |
| The date, in milliseconds from epoch format, of the latest revision to the template. Example |
Example usage
The following is a sample POST request for the edit operation that demonstrates autoscaling, formatted for readability:
POST /context/admin/system/deployments/properties/9375dd81-30d1-41c0-a802-cabb425159a9/edit HTTP/1.1
Host: organization.domain.com
Content-Type: application/x-www-form-urlencoded
Content-Length: []
propertyJson={
"mode": "Dedicated",
"provider": "ArcObjects11",
"id": "pflhvjnd6z3hy56dkfo55",
"type": "GPSyncServer",
"spec": {
"replicas": {
"min": 1,
"max": 4,
"scalingMode": "auto",
"autoscaling": {
"hpaSpec": {
"metrics": [
{
"resource": {
"name": "cpu",
"target": {
"averageUtilization": "50",
"type": "Utilization"
}
},
"type": "Resource"
}
],
"hpaVersion": "autoscaling/v2"
}
}
},
"containers": [
{
"name": "main-container",
"resources": {
"memoryMin": "1.5Gi",
"memoryMax": "5Gi",
"cpuMin": "0.125",
"cpuMax": "2"
},
"containerImageKey": "GP_SERVER"
},
{
"name": "filebeat",
"resources": {
"memoryMin": "32Mi",
"memoryMax": "50Mi",
"cpuMin": "0.05",
"cpuMax": "0.25"
},
"containerImageKey": "FILEBEAT"
}
]
},
"revision": 1618223886566
}
&f=pjson&token=ShyoW_1p9PjJNuVfR0D3a4qpLSAOJKVPoFWS6cEC6J3rXVkEWKEbD82VjAB0VQ_hWImd9pd-1h7AsHTt0m45N1_mzyzR-66Rqhu2Ydl7zc1Yk7JVRneVmQORFy2efBnc1ZndpXfuoKe41XRFGz3wl9LI8kG35lqAPGjM5F7v_hQMkhC1Ky37BDLizZCR4-xtq3h0Nb4VfYNtJRjwoKUUkgaaJSEUtilXj936p1yNBnPYQWb7dDjVuSVr502EzjvBJSON Response example
{"status": "success"}