Skip to main content

Installing Platform Manager

1. Before installing

  1. Consider getting familiar with:

  2. Make sure the necessary preparation steps are completed:

    1. Preparation for installation
    2. Fetching installation artifacts
    3. Installing API Keys service
    4. Installing maps API
    5. Installing search API
    6. Installing navigation API
  3. Collect the necessary information that was set or retrieved on previous steps:

    ObjectExample valueHow to get value
    Docker Registry mirror endpointdocker.storage.example.local:5000See Fetching installation artifacts
    MapGL JS API endpointhttp://mapgl-js-apiSee Installing maps API
    Catalog APIs endpointhttp://catalog-apiSee Installing search API
    Navigation API endpointhttp://navi-frontSee Installing navigation API
    API KeysMAPGL_KEY
    CATALOG_KEY
    NAVI_KEY
    See Installing API Keys service
  4. Make sure that the resource requirements specified in the Helm chart are met.

    For more information on how to do this, refer to the System requirements document.

    Note

    Contents of the Helm chart described in this chapter are relevant for the latest On-Premise version (see Release notes). To find parameters for earlier versions, open values.yaml on GitHub and enter the required version number (for example, 1.18.0) in the tag switcher on the left.

  5. Choose the domain name for the service. For example, platform.example.com.

2. Install Platform Manager

  1. Create a Helm configuration file. See here for more details on the available settings.

    The example is prefilled with the necessary data collected on previous steps.

    values-platform.yaml
    dgctlDockerRegistry: ''

    imagePullSecrets: [onpremise-registry-creds]

    ui:
    brand: ''
    defaultLocale: en
    pages: ''
    playgrounds: ''

    status:
    mapgl: ''
    search: ''
    navi: ''
    pro: ''
    gisPlatform: ''
    keys: ''
    mapStyles: ''

    platform:
    api:
    url: 'https://keys-api.example.com'

    mapgl:
    url: 'https://mapgl-js-api.example.com'
    scriptPath: /api.js
    key: 'MAPGL_KEY'
    initCenter: ''

    catalog:
    url: 'https://catalog.example.com'
    key: 'CATALOG_KEY'

    navi:
    url: 'https://navi.example.com'
    key: 'NAVI_KEY'

    resources:
    requests:
    cpu: 300m
    memory: 384M
    limits:
    cpu: 1100m
    memory: 512M

    ingress:
    enabled: true
    className: nginx
    hosts:
    - host: platform.example.com
    paths:
    - path: /
    pathType: Prefix
    tls: []
    #- hosts:
    # - platform.example.com
    # secretName: secret.tls

    Where:

    • dgctlDockerRegistry: endpoint of your Docker Registry with the images of the On-Premise services. Example: HOST:PORT.

    • imagePullSecrets: Kubernetes Secrets to access the Docker Registry with the images of the On-Premise services.

    • ui: common application settings:

      • brand: branding inside the application. Possible values: 2gis, urbi.

      • defaultLocale: default application language. Possible values: en.

      • pages: list of available pages in the application. Possible values: profile, signup, status, playground, map_styles. Values are separated by commas and written in one string, for example: 'status, playground'. First value in the list is the default page.

      • playgrounds: list of available playgrounds in the application. Possible values: mapgl (you additionally need to specify the ui.mapgl.url parameter), geocoder (you additionally need to specify the ui.catalog.url parameter), directions (you additionally need to specify the ui.navi.url parameter). Values are separated by commas and written in one string, for example: 'mapgl, geocoder'.

      • status: list of statuses of On-Premise services.

        Each entry in a string containing pairs of the service name and its healthcheck URL. Pairs are separated by commas. Values inside a pair are joined by the "=" symbol. For example, mapgl: 'MapGL JS=https://example.com/healthcheck'. URL must be absolute. You can specify only the URL, for example: mapgl: 'https://example.com/healthcheck'.

      • platform: access settings for the API Keys service service:

        • api.url: address of the service host in the HTTP(S)://HOST format.
      • mapgl: access settings for the MapGL JS API service:

        • url: address of the service host in the HTTP(S)://HOST format.
        • scriptPath: path to the service initialization script. The path is built relatively to ui.mapgl.url. Possible values: /api.js.
        • key: access key for the service.
        • initCenter: default map coordinates presented as two numbers in an array: [lng, lat]. For example: [55.27, 25.2] for Dubai, [37.64, 55.74] for Moscow.
      • catalog: access settings for the Catalog APIs service:

        • url: address of the service host in the HTTP(S)://HOST format.
        • key: access key for the service.
      • navi: access settings for the navigation API service:

        • url: address of the service host in the HTTP(S)://HOST format.
        • key: access key for the service.
      • resources: computational resources settings for the service. To find out recommended resource values, see Computational resources.

      • ingress: configuration of the Ingress resource. Adapt it to your Ingress installation. The URL specified in the ingress.hosts.host parameter should be accessible from the outside of your Kubernetes cluster, so that users in the private network can browse the URL.

  2. Deploy the service with Helm using the created values-platform.yaml configuration file:

    helm upgrade --install --version=1.32.0 --atomic --values ./values-platform.yaml platform 2gis-on-premise/platform

3. Test deployment

Go to https://platform.example.com in a browser. You should be successfully logged into the web interface.

In the Platform Manager, you can check the status of installed services, upload custom styles, and test key APIs: for more details, see the Working with the Platform Manager instruction.

What's next?