- URL:
- https://<root>/configure
- Methods:
POST
- Required Capability:
- Access allowed only with the default administrator role
- 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:
- EsriDocker 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 is created, you can publish GIS services and begin administering and configuring your organization.
Request parameters
Parameter | Details |
---|---|
(Required) | The initial administrator account username. Valid usernames must be at least six characters in length, using alphanumeric values with only the following symbols allowed:
Example
|
(Required) | The password for the initial administrator account. Valid passwords must be at least eight characters in length and contain at least one letter (A-Z, a-z) and one number (0-9). All special characters are supported. Example
|
(Required) | The email address associated with the initial administrator account. Example
|
(Required) | The full name of the user being designated as the initial administrator. Example
|
(Optional) | The first name of the user being designated as the initial administrator. Example
|
(Optional) | The last name of the user being designated as the initial administrator. Example
|
(Optional) | A description of the account. |
(Required) | The index of the secret question used to retrieve a forgotten password. The list of possible secret question indexes is below. Example
|
(Required) | The answer to the secret question specified in the Example
|
(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: |
(Required) | The ArcGIS Enterprise on Kubernetes license file ( |
| A valid ArcGIS Server license file (either |
(Required) | A JSON object containing the default storage configurations for the eight persistent volumes that are required for the deployment. By default, the storage provisioning type for each persistent volume is Example
|
| Introduced at 11.2. A JSON object containing the deployment's cloud storage configuration. For more information, see the Cloud storage configuration section below. Example
|
(Optional) | Specifies the level that can be used to override some log settings for your organization. Currently, you can update the level at which logs will be recorded during configuration. The default log level is Values: |
(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. |
| The architecture profile set for the organization. Architecture profiles are predefined deployment profiles that correlate to varying levels of redundancy across pods. A brief summary of each of the three profiles is provided in the System architecture profiles section below. For more information about the available architecture profiles, see Architecture Profiles. The default profile is Example
|
(Optional) | Registers 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
|
| Introduced at 10.9.1. A JSON array that provides information to register the root folder paths for data stores using Network File Sharing (NFS). To register the root folder path, the following user-defined information must be provided:
Example
|
| The response format. The default response format is Values: |
Secret questions and indexes
The security
parameter defines a security question that is used when retrieving forgotten passwords. The security questions and their associated index numbers are as follows:
- What city were you born in?
- What was your high school mascot?
- What is your mother's maiden name?
- What was the make of your first car?
- What high school did you go to?
- What is the last name of your best friend?
- What is the middle name of your youngest sibling?
- What is the name of the street on which you grew up?
- What is the name of your favorite fictional character?
- What is the name of your favorite pet?
- What is the name of your favorite restaurant?
- What is the title of your favorite book?
- What is your dream job?
- Where did you go on your first date?
System architecture profiles
The predefined architecture profiles are described below. Both enhanced-availability and standard-availability are for high availability, and development is for development and nonproduction use. For more information, see Architecture Profiles.
enhanced-availability
The enhanced-availability
profile is used in business or mission-critical production environments and is 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 the most hardware requirements and predefined redundancy across pods.
standard-availability
The standard-availability
profile is the default profile when configuring an 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 predefined redundancy across pods.
development
The development
profile is used 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 predefined redundancy across pods.
Cloud configuration properties
At 11.2, ArcGIS Enterprise on Kubernetes supports cloud-native storage. This can be configured by providing cloud storage configuration information in the cloud
parameter.
Each cloud storage configuration is composed of two main nested JSON elements:
-
provider
—This JSON object defines how to connect to the cloud storage location and the required credentials. -
service
—This JSON array includes the bucket or container to use, the root prefix, and any applicable region information.
ArcGIS Enterprise on Kubernetes supports Amazon Simple Storage Service (S3), Azure Blob Storage, and Google Cloud Storage as cloud storage locations. The following sections provide JSON examples for the cloud
parameter for each cloud storage option.
Amazon S3
The following is a sample JSON object for the cloud
parameter demonstrating the configuration properties for Amazon S3 when using AWS Identity and Access Management (IAM) roles:
[
{
"name": "AWS",
"credential": {
"type": "IAM-ROLE"
},
"cloudServices": [
{
"name": "AWS S3",
"type": "objectStore",
"usage": "DEFAULT",
"connection": {
"bucketName": "<bucket_name>",
"region": "<region>",
"regionEndpointUrl": "<region_endpoint_url>",
"rootDir": "<rootDir>"
},
"category": "storage"
}
]
}
]
The following is a sample JSON object for the cloud
parameter demonstrating the configuration properties for Amazon S3 when using an access key:
[
{
"name": "AWS",
"credential": {
"type": "ACCESS-KEY",
"secret": {
"secretKey": "<secret_key>",
"accessKey": "<access_key>"
}
},
"cloudServices": [
{
"name": "AWS S3",
"type": "objectStore",
"usage": "DEFAULT",
"connection": {
"bucket_name": "<bucket_name>",
"region": "<region>",
"regionEndpointUrl": "<region_endpoint_url>",
"rootDir": "<rootDir>"
},
"category": "storage"
}
]
}
]
Azure Blob Storage
The following is a sample JSON object for the cloud
parameter demonstrating the configuration properties for Azure Blob Storage when using system-assigned managed identities:
[
{
"name": "AZURE",
"credential": {
"type": "SYSTEM-ASSIGNED-IDENTITY",
"secret": {
"storageAccountName": "<account_name>"
}
},
"cloudServices": [
{
"name": "Azure Blob Store",
"type": "objectStore",
"usage": "DEFAULT",
"connection": {
"containerName": "<container_name>",
"accountEndpointUrl": "<account_endpoint_url>",
"regionEndpointUrl": "<region_endpoint_url>",
"rootDir": "<rootDir>"
},
"category": "storage"
}
]
}
]
The following is a sample JSON object for the cloud
parameter demonstrating the configuration properties for Azure Blob Storage when using user-assigned managed identities, which are supported starting at ArcGIS Enterprise 11.3 on Kubernetes:
[
{
"name": "AZURE",
"credential": {
"type": "USER-ASSIGNED-IDENTITY",
"managedIdentityClientId": "<managed_identity_client_id>",
"secret": {
"storageAccountName": "<account_name>"
}
},
"cloudServices": [
{
"name": "Azure Blob Store",
"type": "objectStore",
"usage": "DEFAULT",
"connection": {
"containerName": "<container_name>",
"accountEndpointUrl": "<account_endpoint_url>",
"regionEndpointUrl": "<region_endpoint_url>",
"rootDir": "<rootDir>"
},
"category": "storage"
}
]
}
]
The following is a sample JSON object for the cloud
parameter demonstrating the configuration properties for Azure Blob Storage when using an Azure storage account key:
[
{
"name": "AZURE",
"credential": {
"type": "STORAGE-ACCOUNT-KEY",
"secret": {
"storageAccountName": "<account_name>",
"storageAccountKey": "<account_key>"
}
},
"cloudServices": [
{
"name": "Azure Blob Store",
"type": "objectStore",
"usage": "DEFAULT",
"connection": {
"containerName": "<container_name>",
"accountEndpointUrl": "<account_endpoint_url>",
"regionEndpointUrl": "<region_endpoint_url>",
"rootDir": "<rootDir>"
},
"category": "storage"
}
]
}
]
Google Cloud Storage
The following is a sample JSON object for the cloud
parameter demonstrating the configuration properties for Google Cloud Storage when using Hash-Based Authentication Codes (HMAC) keys:
[
{
"name": "GCP",
"credential": {
"type": "HMAC-KEYS",
"secret": {
"secretKey": "<secret_key>",
"accessKey": "<access_key>"
}
},
"cloudServices": [
{
"name": "Google Cloud Storage",
"type": "objectStore",
"usage": "DEFAULT",
"connection": {
"bucketName": "<bucket_name>",
"rootDir": "<rootDir>"
},
"category": "storage"
}
]
}
]
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="kubernetesLicenseExample.json"
Content-Type: application/octet-stream
kubernetesLicenseExample.json
------boundary
Content-Disposition: form-data; name="logSettings"
{"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
------boundary
Content-Disposition: form-data; name=userManagedStores
[
{
"clientPath": "\\\\sample_server\\SharedPath\Data",
"type": "folder",
"info": {
"fileServerHost": "host.domain.com",
"fileServerType": "nfs",
"fileServerPath": "/SharedPath/Data"
}
}
]
------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": "ozone"
}
},
{
"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": "REST_METRICS_API",
"size": "30Gi",
"storageClass": "arcgis-storage-default",
"labels": {
"arcgis/tier": "storage",
"arcgis/app": "prometheus"
}
}
]
}
------boundary
Content-Disposition: form-data; name="cloudConfig"
[
{
"name": "AWS",
"credential": {
"type": "IAM-ROLE"
},
"cloudServices": [
{
"name": "AWS S3",
"type": "objectStore",
"usage": "DEFAULT",
"connection": {
"bucketName": "XXXXXXXXX",
"region": "XXXXXXXXX",
"regionEndpointUrl": "XXXXXXXXX",
"rootDir": "XXXXXXXXX"
},
"category": "storage"
}
]
}
]
------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": "11.2.0",
"resources": [
"orgs",
"logs",
"system",
"datastores",
"uploads",
"services"
],
"currentVersion": 11.2,
"status": {
"stages": [
{
"lastUpdated": 1687990855948,
"name": "License validation",
"state": "not_started"
},
{
"lastUpdated": 1687990855948,
"name": "Configuration store",
"state": "not_started"
},
{
"lastUpdated": 1687990855948,
"name": "Relational store",
"state": "not_started"
},
{
"lastUpdated": 1687990973648,
"name": "Cloud Native Storage",
"state": "not_applicable"
},
{
"lastUpdated": 1687990855948,
"name": "Queue store",
"state": "not_started"
},
{
"lastUpdated": 1687990855948,
"name": "In-memory store",
"state": "not_started"
},
{
"lastUpdated": 1687990855948,
"name": "Object store",
"state": "not_started"
},
{
"lastUpdated": 1687990855948,
"name": "Spatiotemporal and index store",
"state": "not_started"
},
{
"lastUpdated": 1687990855948,
"name": "Portal REST API",
"state": "not_started"
},
{
"lastUpdated": 1687990855948,
"name": "Services REST API",
"state": "not_started"
},
{
"lastUpdated": 1687990855948,
"name": "Service lifecycle manager",
"state": "not_started"
},
{
"lastUpdated": 1687990855948,
"name": "Usage Statistics",
"state": "not_started"
},
{
"lastUpdated": 1687990855948,
"name": "System and utility services",
"state": "not_started"
},
{
"lastUpdated": 1687990855948,
"name": "Pod replicas",
"state": "not_started"
}
],
"state": "in_progress",
"message": "Creating a new organization."
},
"info": {"build": "4938"}
}
The following response example illustrates the messages returned during configuration:
{
"fullVersion": "11.2.0",
"resources": [
"orgs",
"logs",
"system",
"datastores",
"uploads",
"services"
],
"currentVersion": 11.2,
"status": {
"warnings": [],
"stages": [
{
"lastUpdated": 1687990973551,
"name": "License validation",
"startTime": 1687990973435,
"state": "completed"
},
{
"lastUpdated": 1687990951001,
"name": "Configuration store",
"startTime": 1687990944565,
"state": "completed"
},
{
"lastUpdated": 1687990974847,
"name": "Relational store",
"startTime": 1687990974847,
"state": "in_progress"
},
{
"lastUpdated": 1687990973648,
"name": "Cloud Native Storage",
"startTime": 0,
"state": "not_applicable"
},
{
"lastUpdated": 1687991103134,
"name": "Queue store",
"startTime": 1687990975235,
"state": "completed"
},
{
"lastUpdated": 1687991043732,
"name": "In-memory store",
"startTime": 1687990974125,
"state": "completed"
},
{
"lastUpdated": 1687991149750,
"name": "Object store",
"startTime": 1687990973839,
"state": "completed"
},
{
"lastUpdated": 1687991113527,
"name": "Spatiotemporal and index store",
"startTime": 1687990974441,
"state": "completed"
},
{
"lastUpdated": 1687990855948,
"name": "Portal REST API",
"startTime": 0,
"state": "not_started"
},
{
"lastUpdated": 1687990855948,
"name": "Services REST API",
"startTime": 0,
"state": "not_started"
},
{
"lastUpdated": 1687990855948,
"name": "Service lifecycle manager",
"startTime": 0,
"state": "not_started"
},
{
"lastUpdated": 1687990976324,
"name": "Usage statistics",
"startTime": 1687990974642,
"state": "completed"
},
{
"lastUpdated": 1687990855948,
"name": "System and utility services",
"startTime": 0,
"state": "not_started"
},
{
"lastUpdated": 1687990855948,
"name": "Pod replicas",
"startTime": 0,
"state": "not_started"
}
],
"state": "in_progress",
"message": "Creating a new organization."
},
"info": {"build": "4938"}
}
The following response is returned by the root
resource when configuration is complete:
{
"fullVersion": "11.2.0",
"resources": [
"orgs",
"logs",
"system",
"datastores",
"uploads",
"services"
],
"currentVersion": 11.2,
"status": {
"warnings": [],
"stages": [
{
"lastUpdated": 1687948742412,
"name": "License validation",
"startTime": 1687948742290,
"state": "completed"
},
{
"lastUpdated": 1687948729565,
"name": "Configuration store",
"startTime": 1687948725322,
"state": "completed"
},
{
"lastUpdated": 1687948963682,
"name": "Relational store",
"startTime": 1687948743564,
"state": "completed"
},
{
"lastUpdated": 1687948742513,
"name": "Cloud Native Storage",
"startTime": 0,
"state": "not_applicable"
},
{
"lastUpdated": 1687948872082,
"name": "Queue store",
"startTime": 1687948743965,
"state": "completed"
},
{
"lastUpdated": 1687948804496,
"name": "In-memory store",
"startTime": 1687948744562,
"state": "completed"
},
{
"lastUpdated": 1687948879736,
"name": "Object store",
"startTime": 1687948743106,
"state": "completed"
},
{
"lastUpdated": 1687948888802,
"name": "Spatiotemporal and index store",
"startTime": 1687948744274,
"state": "completed"
},
{
"lastUpdated": 1687949385630,
"name": "Portal REST API",
"startTime": 1687948967043,
"state": "completed"
},
{
"lastUpdated": 1687949777879,
"name": "Services REST API",
"startTime": 1687949416130,
"state": "completed"
},
{
"lastUpdated": 1687949748757,
"name": "Service lifecycle manager",
"startTime": 1687949416334,
"state": "completed"
},
{
"lastUpdated": 1687948745274,
"name": "Usage statistics",
"startTime": 1687948742864,
"state": "completed"
},
{
"lastUpdated": 1687950918528,
"name": "System and utility services",
"startTime": 1687949778875,
"state": "completed"
},
{
"lastUpdated": 1687949470153,
"name": "Pod replicas",
"startTime": 1687949416536,
"state": "completed"
}
],
"state": "ready",
"message": "The process to create a new organization has completed successfully."
},
"info": {"build": "4938"}
}