Skip To Content
ArcGIS Developers
Dashboard

Configure

  • URL:https://<root>/configure(POST only)
  • Version Introduced:10.9

Description

The configure operation is the first operation that must be invoked when ArcGIS Enterprise on Kubernetes is installed for the first time. During configuration, a number of tasks are performed, including the following:

  • Esri Docker images are downloaded for ArcGIS Enterprise on Kubernetes.
  • ArcGIS Enterprise containers are deployed to your Kubernetes cluster.
  • An organization is created.

Due to the number of tasks and processes performed during organization creation, the configure operation can be time consuming. Once the organization has been created, you can publish GIS services and begin administering and configuring your organization.

Request parameters

ParameterDetails
username

(Required)

The initial administrator account user name. Eligible user names must be at least 6 characters in length, using alphanumeric values with only the following symbols allowed:

  • @
  • _
  • ,
  • -

Example

jsmithadmin
password

(Required)

The password for the initial administrator account. Eligible passwords must be at least 8 characters in length, contain at least one letter (A-Z, a-z), and one number (0-9). All special characters are supported.

Example

test.pass1
email

(Required)

The email address associated with the initial administrator account.

Example

jsmith@domain.com
fullName

(Required)

The full name of the user being designated as the initial administrator.

Example

John Smith
firstName

(Optional)

The first name of the user being designated as the initial administrator.

Example

John
lastName

(Optional)

The last name of the user being designated as the initial administrator.

Example

Smith
description

(Optional)

An optional description for the account

securityQuestionIdx

(Required)

The index of the secret question to retrieve a forgotten password. The list of possible secret question indexes is below.

Example

1
securityQuestionAns

(Required)

The answer to the secret question specified in the securityQuestionIdx parameter.

Example

Redlands
userLicenseType

(Required)

The user type for the initial administrator account. The values listed below are the user types that are compatible with the Administrator role. For more information about roles and user types, see User types, roles, and privileges.

Values: creatorUT | GISProfessionalBasicUT | GISProfessionalStdUT | GISProfessionalAdvUT

licenseFile

(Required)

The ArcGIS Enterprise portal license file (.json). These license files—which contain information regarding your user types, apps, and app bundles—are obtained from My Esri. For more information, see Obtain a portal license file.

serverLicenseFile

(Required)

A valid ArcGIS GIS Server license file (either .ecp or .prvc license files).

volumesConfig

(Required)

A JSON array of default storage configurations for the seven persistent volumes that are required for the deployment, including the metric app (Prometheus) and the metrics viewer (Grafana). By default, the storage provisioning types for each persistent volume is DYNAMIC, though they can be manually changed to STATIC to support static provisioning types.

Note:

When using static provisioning, label selectors (labels) and size for each persistent volume must be defined, as both properties are required for static provisioning types. The labels and size properties can be manually updated to reflect custom label selectors and sizes for each persistent volume. Storage class names are required for dynamic provisioning types; if custom storage class names are used, update the storageClass property to reflect the user-specified names.

Example

{
  "volumesConfig": [
    {
      "provisioningType": "DYNAMIC",
      "component": "RELATIONAL_PRIMARY",
      "size": "16Gi",
      "storageClass": "arcgis-storage-default",
      "labels": {
        "arcgis/tier": "storage",
        "arcgis/app": "postgres"
      }
    },
    {
      "provisioningType": "DYNAMIC",
      "component": "RELATIONAL_SECONDARY",
      "size": "16Gi",
      "storageClass": "arcgis-storage-default",
      "labels": {
        "arcgis/tier": "storage",
        "arcgis/app": "postgres"
      }
    },
    {
      "provisioningType": "DYNAMIC",
      "component": "BLOB",
      "size": "16Gi",
      "storageClass": "arcgis-storage-default",
      "labels": {
        "arcgis/tier": "storage",
        "arcgis/app": "minio"
      }
    },
    {
      "provisioningType": "DYNAMIC",
      "component": "IN_MEM_CACHE",
      "size": "16Gi",
      "storageClass": "arcgis-storage-default",
      "labels": {
        "arcgis/tier": "storage",
        "arcgis/app": "ignite"
      }
    },
    {
      "provisioningType": "DYNAMIC",
      "component": "QUEUE",
      "size": "16Gi",
      "storageClass": "arcgis-storage-default",
      "labels": {
        "arcgis/tier": "queue",
        "arcgis/app": "rabbitmq"
      }
    },
    {
      "provisioningType": "DYNAMIC",
      "component": "INDEXER",
      "size": "16Gi",
      "storageClass": "arcgis-storage-default",
      "labels": {
        "arcgis/tier": "storage",
        "arcgis/app": "elasticsearch"
      }
    },
    {
      "provisioningType": "DYNAMIC",
      "component": "SHARING",
      "size": "16Gi",
      "storageClass": "arcgis-storage-default",
      "labels": {
        "arcgis/tier": "api",
        "arcgis/app": "sharing"
      }
    },
    {
      "provisioningType": "DYNAMIC",
      "component": "METRICS_VIEWER",
      "size": "1Gi",
      "storageClass": "arcgis-storage-default",
      "labels": {
        "arcgis/tier": "storage",
        "arcgis/app": "grafana"
      }
    },
    {
      "provisioningType": "DYNAMIC",
      "component": "REST_METRICS_API",
      "size": "30Gi",
      "storageClass": "arcgis-storage-default",
      "labels": {
        "arcgis/tier": "storage",
        "arcgis/app": "prometheus"
      }
    }
  ]
}
logSettings

(Optional)

The log level at which logs will be recorded during configuration. If no log level is specified, the level will default to WARNING once the organization is configured. The log level can be changed after configuration using the edit operation.

Values: SEVERE | WARNING | INFO | FINE | VERBOSE | DEBUG

systemProperties

(Optional)

A JSON object that can be used to set up the system properties for the organization before it is configured. System properties can be set, updated, or removed after the organization has been configured using the update operation.

systemArchitectureProfile

The architecture profile set for your organization. Architecture profiles are predefined deployment profiles that correlate to varying levels of redundancy across pods. A brief summary for each of the three profiles is provided in the System architecture profiles section below. For more detailed information on the available architecture profiles, see Architecture Profiles. The default profile is standard-availability.

Example

{"name": "standard-availability"}
folderPathsToRegister

(Optional)

The root folder paths for data stores. Registering folder paths during site creation allows you to avoid disruptions, such as the stopping of multiple services, that typically occur when registering folder paths after the organization has been configured.

Example

{"paths": ["/path/to/register", "/additional/folder/path"]}
f

The response format. The default response format is html.

Values: html | json | pjson

Secret questions and indexes

The securityQuestionIdx parameter defines a security question that will be used when retrieving forgotten passwords. The security questions and their associated index numbers are as follows:

  1. What city were you born in?
  2. What was your high school mascot?
  3. What is your mother's maiden name?
  4. What was the make of your first car?
  5. What high school did you go to?
  6. What is the last name of your best friend?
  7. What is the middle name of your youngest sibling?
  8. What is the name of the street on which you grew up?
  9. What is the name of your favorite fictional character?
  10. What is the name of your favorite pet?
  11. What is the name of your favorite restaurant?
  12. What is the title of your favorite book?
  13. What is your dream job?
  14. Where did you go on your first date?

System architecture profiles

The predefined architecture profiles are described below. Both enhanced-availability & standard-availability are for high availability, while development is for development and nonproduction use. For more detailed information, see Architecture Profiles.

enhanced-availability

The enhanced-availability profile is designed for use in business or mission-critical production environments, designed for the highest level of availability. Replicated pods are provided for publishing tools, storage, APIs, and ingress controllers with increased redundancy to support uninterrupted use in the event of unexpected failure or downtime. Of the three available profiles, enhanced-availability has maximum hardware requirements and the most predefined redundancy across pods.

standard-availability

The standard-availability profile is the default profile when configuring your organization, and is designed for use in production environments and those wanting to minimize unplanned downtime with redundancy across many pods. Replicated pods are provided for publishing tools and other essential pods such as storage, APIs, and ingress controllers to support continued use in the event of unexpected failure or downtime. The standard-availability profile has a moderate level of hardware requirements and moderate predefined redundancy across pods.

development

The development profile is designed for use in nonproduction environments, including those for testing and evaluation, and is not supported for production environments. Publishing tools are replicated to support multiple publishers in an organization. The development profile has minimal hardware requirements and minimal predefined redundancy across pods.

Example usage

The following is a sample multipart POST request for the configure operation:

POST /context/admin/configure HTTP/1.1
Host: organization.domain.com
Content-Type: multipart/form-data; boundary=------boundary

------boundary
Content-Disposition: form-data; name="username"

jsmithadmin
------boundary
Content-Disposition: form-data; name="password"

test.pass1
------boundary
Content-Disposition: form-data; name="email"

jsmith@domain.com
------boundary
Content-Disposition: form-data; name="fullName"

John Smith
------boundary
Content-Disposition: form-data; name="firstName"


------boundary
Content-Disposition: form-data; name="lastName"


------boundary
Content-Disposition: form-data; name="description"

Initial Administrator Account
------boundary
Content-Disposition: form-data; name="securityQuestionIdx"

1
------boundary
Content-Disposition: form-data; name="securityQuestionAns"

Redlands
------boundary
Content-Disposition: form-data; name="userLicenseTypeId"

creatorUT
------boundary
Content-Disposition: form-data; name="licenseFile"; filename="portalLicenseExample.json"
Content-Type: application/octet-stream

portalLicenseFile.json
------boundary
Content-Disposition: form-data; name="serverLicenseFile"; filename="serverLicenseExample.ecp"
Content-Type: application/octet-stream

serverLicenseFile.prvc
------boundary
Content-Disposition: form-data; name="logLevel"

{"logLevel": "VERBOSE"}
------boundary
Content-Disposition: form-data; name="systemProperties"

{}
------boundary
Content-Disposition: form-data; name="systemArchitectureProfile"

{"name": "standard-availability"}
------boundary
Content-Disposition: form-data; name=folderPathsToRegister

{"paths": ["/path/to/register", "/additional/folder/path"]}
------boundary
Content-Disposition: form-data; name="volumesConfig"

{
  "volumesConfig": [
    {
      "provisioningType": "DYNAMIC",
      "component": "RELATIONAL_PRIMARY",
      "size": "16Gi",
      "storageClass": "arcgis-storage-default",
      "labels": {
        "arcgis/tier": "storage",
        "arcgis/app": "postgres"
      }
    },
    {
      "provisioningType": "DYNAMIC",
      "component": "RELATIONAL_SECONDARY",
      "size": "16Gi",
      "storageClass": "arcgis-storage-default",
      "labels": {
        "arcgis/tier": "storage",
        "arcgis/app": "postgres"
      }
    },
    {
      "provisioningType": "DYNAMIC",
      "component": "BLOB",
      "size": "16Gi",
      "storageClass": "arcgis-storage-default",
      "labels": {
        "arcgis/tier": "storage",
        "arcgis/app": "minio"
      }
    },
    {
      "provisioningType": "DYNAMIC",
      "component": "IN_MEM_CACHE",
      "size": "16Gi",
      "storageClass": "arcgis-storage-default",
      "labels": {
        "arcgis/tier": "storage",
        "arcgis/app": "ignite"
      }
    },
    {
      "provisioningType": "DYNAMIC",
      "component": "QUEUE",
      "size": "16Gi",
      "storageClass": "arcgis-storage-default",
      "labels": {
        "arcgis/tier": "queue",
        "arcgis/app": "rabbitmq"
      }
    },
    {
      "provisioningType": "DYNAMIC",
      "component": "INDEXER",
      "size": "16Gi",
      "storageClass": "arcgis-storage-default",
      "labels": {
        "arcgis/tier": "storage",
        "arcgis/app": "elasticsearch"
      }
    },
    {
      "provisioningType": "DYNAMIC",
      "component": "SHARING",
      "size": "16Gi",
      "storageClass": "arcgis-storage-default",
      "labels": {
        "arcgis/tier": "api",
        "arcgis/app": "sharing"
      }
    },
    {
      "provisioningType": "DYNAMIC",
      "component": "METRICS_VIEWER",
      "size": "1Gi",
      "storageClass": "arcgis-storage-default",
      "labels": {
        "arcgis/tier": "storage",
        "arcgis/app": "grafana"
      }
    },
    {
      "provisioningType": "DYNAMIC",
      "component": "REST_METRICS_API",
      "size": "30Gi",
      "storageClass": "arcgis-storage-default",
      "labels": {
        "arcgis/tier": "storage",
        "arcgis/app": "prometheus"
      }
    }
  ]
}
------boundary
Content-Disposition: form-data; name="f"

pjson
------boundary--

JSON Response example

The following response is returned immediately once the configure operation has been submitted:

{
  "fullVersion": "10.9.0",
  "resources": [
    "orgs",
    "logs",
    "system",
    "datastores",
    "uploads",
    "services"
  ],
  "currentVersion": 10.9,
  "status": {
    "stages": [
      {
        "lastUpdated": 1617220064600,
        "name": "License validation",
        "state": "not_started"
      },
      {
        "lastUpdated": 1617220064600,
        "name": "Configuration store",
        "state": "not_started"
      },
      {
        "lastUpdated": 1617220064600,
        "name": "Relational store",
        "state": "not_started"
      },
      {
        "lastUpdated": 1617220064600,
        "name": "Queue store",
        "state": "not_started"
      },
      {
        "lastUpdated": 1617220064600,
        "name": "In-memory store",
        "state": "not_started"
      },
      {
        "lastUpdated": 1617220064600,
        "name": "Object store",
        "state": "not_started"
      },
      {
        "lastUpdated": 1617220064600,
        "name": "Spatiotemporal and index store",
        "state": "not_started"
      },
      {
        "lastUpdated": 1617220064600,
        "name": "Usage Statistics",
        "state": "not_started"
      },
      {
        "lastUpdated": 1617220064600,
        "name": "Portal REST API",
        "state": "not_started"
      },
      {
        "lastUpdated": 1617220064600,
        "name": "Services REST API",
        "state": "not_started"
      },
      {
        "lastUpdated": 1617220064600,
        "name": "Service lifecycle manager",
        "state": "not_started"
      },
      {
        "lastUpdated": 1617220064600,
        "name": "System and utility services",
        "state": "not_started"
      },
      {
        "lastUpdated": 1617220064600,
        "name": "Pod replicas",
        "state": "not_started"
      }
    ],
    "state": "in_progress",
    "message": "Creating a new organization."
  },
  "info": {"build": "1068"}
}

The following response example illustrates the messages returned during configuration:

{
  "fullVersion": "10.9.0",
  "resources": [
    "orgs",
    "logs",
    "system",
    "datastores",
    "uploads",
    "services"
  ],
  "currentVersion": 10.9,
  "status": {
    "stages": [
      {
        "lastUpdated": 1617220075488,
        "name": "License validation",
        "state": "completed"
      },
      {
        "lastUpdated": 1617220156821,
        "name": "Configuration store",
        "state": "completed"
      },
      {
        "lastUpdated": 1617220441887,
        "name": "Relational store",
        "state": "completed"
      },
      {
        "lastUpdated": 1617220397336,
        "name": "Queue store",
        "state": "completed"
      },
      {
        "lastUpdated": 1617220316318,
        "name": "In-memory store",
        "state": "completed"
      },
      {
        "lastUpdated": 1617220394397,
        "name": "Object store",
        "state": "completed"
      },
      {
        "lastUpdated": 1617220180254,
        "name": "Spatiotemporal and index store",
        "state": "in_progress"
      },
      {
        "lastUpdated": 1617220064600,
        "name": "Usage Statistics",
        "state": "not_started"
      },
      {
        "lastUpdated": 1617220064600,
        "name": "Portal REST API",
        "state": "not_started"
      },
      {
        "lastUpdated": 1617220064600,
        "name": "Services REST API",
        "state": "not_started"
      },
      {
        "lastUpdated": 1617220182126,
        "name": "Service lifecycle manager",
        "state": "completed"
      },
      {
        "lastUpdated": 1617220064600,
        "name": "System and utility services",
        "state": "not_started"
      },
      {
        "lastUpdated": 1617220064600,
        "name": "Pod replicas",
        "state": "not_started"
      }
    ],
    "state": "in_progress",
    "message": "Creating a new organization."
  },
  "info": {"build": "1068"}
}

The following response is returned by the root resource when configuration is complete:

{
  "fullVersion": "10.9.0",
  "resources": [
    "orgs",
    "logs",
    "system",
    "datastores",
    "uploads",
    "services"
  ],
  "currentVersion": 10.9,
  "status": {
    "stages": [
      {
        "lastUpdated": 1617618356580,
        "name": "License validation",
        "state": "completed"
      },
      {
        "lastUpdated": 1617618418617,
        "name": "Configuration store",
        "state": "completed"
      },
      {
        "lastUpdated": 1617618650035,
        "name": "Relational store",
        "state": "completed"
      },
      {
        "lastUpdated": 1617618583071,
        "name": "Queue store",
        "state": "completed"
      },
      {
        "lastUpdated": 1617618478209,
        "name": "In-memory store",
        "state": "completed"
      },
      {
        "lastUpdated": 1617618533529,
        "name": "Object store",
        "state": "completed"
      },
      {
        "lastUpdated": 1617618568548,
        "name": "Spatiotemporal and index store",
        "state": "completed"
      },
      {
        "lastUpdated": 1617619386543,
        "name": "Portal REST API",
        "state": "completed"
      },
      {
        "lastUpdated": 1617619884644,
        "name": "Services REST API",
        "state": "completed"
      },
      {
        "lastUpdated": 1617619823957,
        "name": "Service lifecycle manager",
        "state": "completed"
      },
      {
        "lastUpdated": 1617618437743,
        "name": "Usage statistics",
        "state": "completed"
      },
      {
        "lastUpdated": 1617620838344,
        "name": "System and utility services",
        "state": "completed"
      },
      {
        "lastUpdated": 1617619729948,
        "name": "Pod replicas",
        "state": "completed"
      }
    ],
    "state": "ready",
    "message": "The process to create a new organization has completed successfully."
  },
  "info": {"build": "1068"}
}