- URL:
- https://<root>/system/deployments/properties/<propertyTemplateID>/edit
- Methods:
POST
- Required Capability:
- Access allowed only with the default administrator role
- 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
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 Example
|
| 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.
Tolerations
|
| The minimum and maximum resource allocations for the microservice, including the minimum memory ( Example
Starting at ArcGIS Enterprise 11.3 on Kubernetes, organizations can implement device plugins to enable GPU nodes in their cluster to optimize workflows for raster analytics and deep learning. Requests and limits for GPU are set using the The following deployments will need to have
Values for The example below shows the accepted values for both 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-xtq3h0Nb4VfYNtJRjwoKUUkgaaJSEUtilXj936p1yNBnPYQWb7dDjVuSVr502EzjvB
JSON Response example
{"status": "success"}