Installing Urbi Pro
1. Before installing
-
Consider getting familiar with:
-
Make sure the necessary preparation steps are completed:
-
Collect the necessary information that was set or retrieved on previous steps:
Object Example value How to get value Docker Registry mirror endpoint docker.storage.example.local:5000
See Fetching installation artifacts API Keys service endpoint keys.example.local
See Installing API Keys service MapGL JS API endpoint mapgl.example.local
See Installing maps API Catalog APIs endpoint catalog.example.local
See Installing search API Isochrone API endpoint isochrone.example.local
See Installing navigation API API Keys MAPGL_KEY
CATALOG_KEY
ISOCHRONE_KEY
See Installing API Keys service -
Make sure that the resource requirements specified in the Helm charts are met:
For more information on how to do this, refer to the System requirements document.
-
Choose domain names for the Urbi Pro services. For example:
- Domain name for the API backend:
pro-api.example.local
- Domain name for the frontend:
pro-ui.example.com
- Domain name for the API backend:
2. Prepare infrastructure
Configure PostgreSQL
Place a PostgreSQL cluster with the domain name pro-postgresql.storage.example.local
in the private network. This instruction assumes that the cluster works on the standard port 5432
.
Configure the PostgreSQL cluster for usage as a storage:
-
Connect to the cluster a superuser (usually
postgres
). -
Create a database user that will be used for the service. Set a password for the user:
create user dbuser_pro password '';
-
Create a database owned by this user:
create database onpremise_pro owner dbuser_pro;
Configure S3 storage
Place an S3-compatible storage (e.g., Ceph) with the domain name pro-s3.storage.example.local
in the private network. This instruction assumes that the storage works on the standard port 80
.
Configure the S3-compatible storage:
-
Create a user that will be used for the service. Remember the credentials for the user:
- Access key: ``
- Secret key: ``
Remember the credentials for the user.
-
Choose bucket names that will be used for the service. For example:
- Bucket with common assets, aggregations, and filters:
assets
. - Bucket with prepared layer data:
layer_data
. - Bucket with user-created assets, aggregations, and filters:
user_assets
.
- Bucket with common assets, aggregations, and filters:
Configure Elasticsearch
Place an Elasticsearch cluster with the domain name pro-elastic.storage.example.local
in the private network. This instruction assumes that the cluster works on the standard port 9200
.
Configure the cluster:
-
Create a user that will be used for the service. Remember the credentials for the user:
- Username: ``
- Password: ``
Remember the credentials for the user.
3. Install Urbi Pro
Install Pro API
To install Pro API, use Helm chart. All parameters are described in values.yaml.
To install Pro API:
-
Create configuration file
values-pro-ui.yaml
:values-pro-api.yaml
dgctlDockerRegistry: '' s3: layerDataBucket: '' userAssetsDataBucket: '' api: serviceAccount: '' tempPath: /tmp allowAnyOrigin: false loggingFormat: simple postgresql: connectionString: '' connectionStringReadonly: '' password: '' key: url: '' token: '' elastic: host: '' credentials: '' redis: host: '' port: '' catalog: url: '' key: '' navi: url: '' key: '' search: url: '' appAssetImporterName: asset-importer appUserAssetImporterName: user-asset-importer assetImporter: repository: 2gis-on-premise/pro-importer tag: 1.0.23 schedule: 0 18 * * * backoffLimit: 2 successfulJobsHistoryLimit: 3 nodeSelector: {} maxParallelJobs: 4 enabled: true startOnDeploy: true resources: requests: cpu: 400m memory: 256M limits: cpu: 1 memory: 1024M
Where:
-
dgctlDockerRegistry
: your Docker Registry endpoint where On-Premise services' images reside. Example:HOST:PORT
. -
s3
: S3 storage settings.layerDataBucket
: S3 bucket with prepared layer data.userAssetsDataBucket
: S3 bucket with user-created assets, aggregations, and filters.
-
api
: environment variables.serviceAccount
: Kubernetes service account.tempPath
: path to directory used for temp data.allowAnyOrigin
: CORS policy — allow any origin to perform requests to Pro API service.loggingFormat
: logging format. Possible options:default
— compact JSON,renderedCompactJson
— rendered JSON format,simple
— just text.
-
postgresql
: access settings for the PostgreSQL server.connectionString
: connection string to the PostgreSQL database —Server=SERVER_URL;Database=DB_NAME;UID=USER_NAME;
.connectionStringReadonly
: connection string to the readonly node of PostgreSQL database —Server=SERVER_URL;Database=DB_NAME;UID=USER_NAME;
.password
: user password to connect to the PostgreSQL database.
-
key
: key management service access settings.url
: API URL ofkeys.api
service for managing partners' keys to 2GIS services. Example:HTTP(S)://HOST
.token
:keys.api
access token.
-
elastic
: Elasticsearch settings.host
: Elasticsearch host address. Example:HTTP(S)://HOST:PORT
.credentials
: username and password to connect to the Elasticsearch —USER_NAME:PASSWORD
.
-
redis
: Redis settings.host
: Redis host address. Example:HTTP(S)://HOST
.port
: Redis port.
-
catalog
: Catalog APIs settings.url
: URL for Catalog APIs. Example:HTTP(S)://HOST
.key
: access key to Catalog APIs.
-
navi
: Isochrone API settings.url
: URL for Isochrone API. Example:HTTP(S)://HOST
.key
: access key to Isochrone API.
-
search
: Search API settings.url
: URL for Search API. Example:HTTP(S)://HOST
.
-
appAssetImporterName
: Data Import job name. -
appUserAssetImporterName
: User Data Import job name. -
assetImporter
: import cron job settings.repository
: Docker Repository Image.tag
: Docker image tag.schedule
: import job schedule in cron-format. Example:*/10 * * * *
.backoffLimit
: the number of retries before considering a Job as failed.successfulJobsHistoryLimit
: how many completed and failed jobs should be kept.nodeSelector
: Kubernetes node selectors.maxParallelJobs
: how many import jobs can be run simultaneously.enabled
: ifassetImporter
is enabled for the service.startOnDeploy
: indicates that asset import should start when service installed or updated.
-
resources
: limits for the application service. The actual information about the recommended settings values is provided in the system requirements table.
-
-
Deploy the service with Helm using the created
values-pro-api.yaml
configuration file:helm upgrade --install --version=1.10.0 --atomic --values ./values-pro-api.yaml pro-api 2gis-on-premise/pro-api
Install Pro UI
To install Pro UI, use Helm chart. All parameters are described in values.yaml.
To install Pro UI:
-
Create configuration file
values-pro-ui.yaml
:values-pro-ui.yaml
dgctlDockerRegistry: '' ui: appLocale: en_AE appInitialMapCenter: [37.64, 55.74] api: url: '' mapgl: host: '' key: '' resources: requests: cpu: 300m memory: 256Mi limits: cpu: 1 memory: 384Mi ingress: enabled: true hosts: - host: ''
Where:
-
dgctlDockerRegistry
: your Docker Registry endpoint where On-Premise services' images reside. Example:HOST:PORT
. -
ui.appLocale
: language in the app. Possible values:en_AE
,ru_RU
. -
ui.appInitialMapCenter
: default map coordinates, it contains of two numbers in an array:[lng, lat]
. Example:[55.27, 25.2]
for Dubai,[37.64, 55.74]
for Moscow. -
ui.api.url
: base URL for the API. Example:HTTP(S)://HOST/
. -
ui.mapgl.host
: host for the MapGL JS API service without protocol and trailing slash. Example:HOST
. -
ui.mapgl.key
: key for the MapGL JS API service. -
ui.resources
: limits for the application service. The actual information about the recommended settings values is provided in the system requirements table. -
ui.ingress
: configuration of the Ingress resource. Adapt it to your Ingress installation. The URL specified in theingress.hosts.host
parameter should be accessible from the outside of your Kubernetes cluster, so that users in the private network can browse the URL.
-
-
Deploy the service with Helm using the created
values-pro-ui.yaml
configuration file:helm upgrade --install --version=1.10.0 --atomic --values ./values-pro-ui.yaml pro-ui 2gis-on-premise/pro-ui
4. Test deployment
Send the following request using cURL or similar tool:
https://pro-api.example.local/building/items?bounds=POLYGON%20%28%2854.605596%2024.429549%2C%2054.539606%2024.429549%2C%2054.539606%2024.413378%2C%2054.605596%2024.413378%2C%2054.605596%2024.429549%29%29
The response should return a HTTP 200
status code and a list of elements in JSON format.
What's next?
Find out how to update the service:
Install other On-Premise products: