Skip To Content
ArcGIS Developer
Dashboard

Deployment

Description

An individual deployment resource returns a list of properties for an individual microservice. Some of these properties can be updated using the edit operation.

Request parameters

ParameterDetails
f

The response format. The default format is html.

Values: html | json | pjson

Response properties

PropertyDetails
mode

The microservice mode. A mode type of Undefined is returned when the microservice is system related (Admin API, portal sharing, ingress controller, and so on). Only microservices related to an ArcGIS service type return Dedicated or Shared for this property.

Values: Shared | Dedicated | Undefined | Primary | Standby | Coordinator

provider

The microservice provider. Only microservices related to an ArcGIS service type have a provider type. A provider type of Undefined is returned for microservices that are not service related (Admin API, portal sharing, ingress controller, and so on).

Values: SDS | ArcObjects11 | DMaps | Undefined | Postgres | Tiles | Ignite | MinIO | Elasticsearch | RabbitMQ | ArcObjectsRasterRendering

deploymentId

The microservice ID.

name

The microservice name.

type

The microservice type. For example, if the microservice is a shared feature server containing feature services, FeatureServer is returned. For microservices that are not service related, System is returned.

Values: FeatureServer | GeometryServer | GPServer | GPSyncServer | MapServer | TileServer |System | InMemoryStore | ObjectStore | SpatiotemporalIndexStore | QueueServer | RelationalStore | WebhookProcessor (Added at 11.0)

spec

The JSON object representation of the template's specifications, including replicas, container resources, and managed Kubernetes resources. At ArcGIS Enterprise 11.2 on Kubernetes, the JSON object can also include the volumes and podPlacementPolicy.

Example


"spec": {
  "servicesFilter": {
    "serviceType": "MapServer",
    "providerType": "DMaps"
  },
  "replicas": {
    "min": 3,
    "max": 3,
    "scalingMode": "manual"
  },
  "podPlacementPolicy": {
    "tolerations": [{"effect": "NoSchedule","key": "label1","operator": "Equal","value": "test1"}]
    "nodeAffinity": {}
  },
  "volumes": [
    {
      "volumeId": "uadwuaj4pwkjhcst6spxx"
    }
  ],
  ...
},
...
replicas

The number of replicas for the microservice. For manual scaling, the values for both min and max must be the same. Organizations using a version of ArcGIS Enterprise on Kubernetes at 10.9.1 have the option to enable autoscaling. For more information on manual scaling and autoscaling, see the edit scaling operation.

Caution:

Though scaling properties can be updated using the edit default properties and edit deployment operations, to reduce risk of errors it is recommended that changes to scaling information is performed using the edit scaling operation.

Example


"replicas": {
  "min": 3,
  "max": 3,
  "scalingMode": "manual" //Added at 11.0
},
podPlacementPolicy

Introduced at 11.2. The node affinity or tolerations applied to the pods of a GIS service deployment. For more information on node affinity and tolerations, see the Edit (Placement Policy) operation.

Example


...
"podPlacementPolicy": { //Added at 11.2
  "tolerations": [{"effect": "NoSchedule","key": "label1","operator": "Equal","value": "test1"}]
  "nodeAffinity": {}
},
...
volumes

Introduced at 11.2. An array that sets additional volumes for the deployment's pods to pull from. Administrators have the option to configure PVC volumes, which create a singular PVC volume that the pods of a deployment can directly request resources from, or configure PVC volume templates with the deployment, which will create separate volumes for each pod to use.

For singular PVC volumes, administrators will only need to provide the volume's ID:

Example


...
"volumes": [
  {
    "volumeId": "uadwuaj4pwkjhcst6spxx"
  }
],
...

For PVC volume templates, administrators need to provide the volume template's ID as well as the volume's purpose. The purpose specifies the types of volumes being created. Currently, the only supported purpose is GIS_SERVICE_TEMP, which designates the volumes created from the template as ephemeral volumes:

Example


...
"volumes": [
  {
    "purpose": "GIS_SERVICE_TEMP"
    "volumeConfig": "oi72y1m4q2exgzfr9uppg"
  }
],
...
resources

The minimum and maximum resource allocations for the microservice, including the minimum memory (memoryMin) and minimum CPU (cpuMin) resources required for the microservice to start.

Example


"resources": {
  "memoryMin": "500Mi",
  "cpuMin": "0.125",
  "memoryMax": "8Gi",
  "cpuMax": "4"
}
revision

The date, in milliseconds from epoch format, of the latest revision to the template.

Example

"revision": 1598217421474

Example usage

The following is a sample request URL used to access an individual deployment resource:

https://organization.domain.com/context/admin/system/deployments/v4b257669-f2ee-4b14-a058-30ade76e6127?f=pjson

JSON Response example

The following is a sample JSON response for the ingress controller microservice:


{
  "mode": "Undefined",
  "configuredState": "STARTED",
  "provider": "Undefined",
  "deploymentId": "ky6vk601p5ltq41sra837",
  "name": "ingress-controller",
  "type": "System",
  "spec": {
    "replicas": {
      "min": 3,
      "max": 3,
      "scalingMode": "manual"
    },
    "containers": [
      {
        "name": "main-container",
        "resources": {
          "memoryMin": "256Mi",
          "memoryMax": "4Gi",
          "cpuMin": "0.125",
          "cpuMax": "1"
        },
        "containerImageUrl": "contanier.image.com/info:1082",
        "containerImageKey": "INGRESS_CONTROLLER"
      }
    ],
    "managedKubernetesResources": [
      {
        "purpose": "blue-deployment",
        "kind": "Deployment",
        "name": "arcgis-ingress-controller",
        "selectorInstanceName": "blue"
      },
      {
        "purpose": "service",
        "kind": "Service",
        "name": "arcgis-ingress-nginx",
        "selectorInstanceName": "blue"
      }
    ]
  },
  "labels": {},
  "revision": 1618226994937
}

The following is a sample JSON response for a shared map service:


{
  "mode": "Shared",
  "configuredState": "STARTED",
  "provider": "DMaps",
  "deploymentId": "kvymoiqt0cl52ldoma1fh",
  "name": "shared-mapserver",
  "type": "MapServer",
  "spec": {
    "servicesFilter": {
      "serviceType": "MapServer",
      "providerType": "DMaps"
    },
    "replicas": {
      "min": 3,
      "max": 3,
      "scalingMode": "manual"
    },
    "podPlacementPolicy": {
      "tolerations": [{"effect": "NoSchedule","key": "label1","operator": "Equal","value": "test1"}]
      "nodeAffinity": {}
    },
    "volumes": [
      {
        "volumeId": "uadwuaj4pwkjhcst6spxx"
      }
    ],
    "containers": [
      {
        "name": "main-container",
        "resources": {
          "memoryMin": "500Mi",
          "memoryMax": "4Gi",
          "cpuMin": "0.125",
          "cpuMax": "2"
        },
        "containerImageUrl": "container.image.com/info:1082",
        "containerImageKey": "MAP_SERVER"
      },
      {
        "name": "filebeat",
        "resources": {
          "memoryMin": "32Mi",
          "memoryMax": "50Mi",
          "cpuMin": "0.05",
          "cpuMax": "0.25"
        },
        "containerImageUrl": "container.image.com/info:1082",
        "containerImageKey": "FILEBEAT"
      }
    ],
    "initServices": {
      "serviceNames": [
        {
          "serviceType": "MapServer",
          "folderName": "System",
          "serviceName": "SharedMapServiceHost",
          "serviceId": "sf8xiz33q3g7b4o18bcrf"
        }
      ]
    },
    "managedKubernetesResources": [
      {
        "purpose": "blue-deployment",
        "kind": "Deployment",
        "name": "arcgis-kvymoiqt0cl52ldoma1fh-mapserver-z9nlp",
        "selectorInstanceName": "blue"
      },
      {
        "purpose": "service",
        "kind": "Service",
        "name": "arcgis-kvymoiqt0cl52ldoma1fh-mapserver",
        "selectorInstanceName": "blue"
      }
    ]
  },
  "labels": {},
  "revision": 1618228766421
}