# Update Inforiver Container Instances (for 3.x users)

This guide explains how to update Inforiver container instances in an Azure on-premises environment.

Follow these steps carefully to ensure a smooth update and access to the latest features. You can refer to the screenshots provided for additional guidance.

## **1. Edit the CNI Configuration**

1. Open your Azure CLI window and run the following command:

{% code overflow="wrap" fullWidth="false" %}

```bash
az container export -g <resource group name> -n <container instance name > --file output_file
```

{% endcode %}

![Launch Azure CLI and execute the command](/files/TQM4OHPLePQPxCxNyBwj)

2. To download the output file, click on **Manage files -> Download** and enter the path of the output file. Click **Download**.

<figure><img src="/files/FOAFgzPqw0I1Bxqj90IK" alt=""><figcaption><p>Download the output file</p></figcaption></figure>

3. Click on the output file to download it to your local system.

![Download locally](/files/dfJgf3yLNoVpUHgWjwqx)

4. Now, configure the below-listed containers in this file for Inforiver container deployment.

### **Containers Instance List - 1**

The following are the set of containers required for the Inforiver deployment of Azure Container Instance-1.

{% hint style="info" %}
**Note: Transition from Default Azure Domain to Custom Domain**

When transitioning to a custom domain (e.g., <https://webapp.inforiver.com>) from the default Azure domain (e.g., <https://webapp.azurewebsites.net>), it is necessary to update the URL in the configuration settings of both the Azure App Service and the associated Container Instances. Specifically, ensure the environment variable `ADMIN_PORTAL_URL` is updated to reflect the new custom domain in both services.
{% endhint %}

#### **i) Inforiver Cron**

```yaml
- name: inforiver-cron-container
    properties:
      configMap:
        keyValuePairs: {}
      environmentVariables:
      - name: ADMIN_PORTAL_URL
        value: <Admin Portal URL>
      image: turing.azurecr.io/turing-cron:<tag>
      ports: []
      resources:
        requests:
          cpu: 0.25
          memoryInGB: 0.5
```

#### **ii) Inforiver Audit**

```yaml
- name: inforiver-audit-container
    properties:
      configMap:
        keyValuePairs: {}
      environmentVariables:
      - name: ADMIN_PORTAL_URL
        value: <Admin Portal URL>
      image: turing.azurecr.io/turing-audit:<tag>
      ports: []
      resources:
        requests:
          cpu: 0.25
          memoryInGB: 0.5
```

#### **iii) Inforiver Orchestrator**

```yaml
- name: inforiver-orchestrator-container
    properties:
      configMap:
        keyValuePairs: {}
      environmentVariables:
      - name: ADMIN_PORTAL_URL
        value: <Admin Portal URL>
      image: turing.azurecr.io/turing-orchestrator:<tag>
      ports: []
      resources:
        requests:
          cpu: 0.25
          memoryInGB: 1.0
```

#### **iv) Inforiver Worker**

```yaml
- name: inforiver-worker-container
    properties:
      configMap:
        keyValuePairs: {}
      environmentVariables:
      - name: ADMIN_PORTAL_URL
        value: <Admin Portal URL>
      image: turing.azurecr.io/turing-worker:<tag>
      ports: []
      resources:
        requests:
          cpu: 0.25
          memoryInGB: 2.0
```

#### **v) Inforiver Writeback Worker**

```yaml
- name: inforiver-writeback-worker-container
    properties:
      configMap:
        keyValuePairs: {}
      environmentVariables:
      - name: ADMIN_PORTAL_URL
        value: <Admin Portal URL>
      image: turing.azurecr.io/turing-writeback-worker:<tag>
      ports: []
      resources:
        requests:
          cpu: 0.5
          memoryInGB: 3.0
```

#### **vi) InfoBridge Writeback Worker**

```yaml
- name: inforiver-infobridge-writeback-worker
    properties:
      configMap:
        keyValuePairs: {}
      environmentVariables:
      - name: ADMIN_PORTAL_URL
        value: <Admin Portal URL>
      - name: PRODUCT_BUILD
        value: inforiver
      - name: LISTENER_MODE
        value: dataflow
      image: turing.azurecr.io/turing-writeback-worker:<tag>
      ports: []
      resources:
        requests:
          cpu: 0.5
          memoryInGB: 2.0
      volumeMounts:
      - mountPath: /mnt/azure
        name: infofile
```

#### **vii) InfoBridge Transformation Worker**

```yaml
- name: inforiver-infobridge-transformation-worker
    properties:
      configMap:
        keyValuePairs: {}
      environmentVariables:
      - name: ADMIN_PORTAL_URL
        value: <Admin Portal URL>
      - name: PRODUCT_BUILD
        value: inforiver
      - name: SERVICE_NAME
        value: infobridgeTransformationWorker
      - name: GRPC_URL
        value: localhost:9006
      image: turing.azurecr.io/turing-datasource-integration-worker:<tag>
      ports: []
      resources:
        requests:
          cpu: 1
          memoryInGB: 2.0
      volumeMounts:
      - mountPath: /mnt/azure
        name: infofile
```

#### **viii) InfoBridge Visual Worker**

```yaml
- name: inforiver-infobridge-visual-worker
    properties:
      configMap:
        keyValuePairs: {}
      environmentVariables:
      - name: ADMIN_PORTAL_URL
        value: <Admin Portal URL>
      - name: PRODUCT_BUILD
        value: inforiver
      - name: SERVICE_NAME
        value: infobridgeVisualWorker
      - name: VISUAL_WORKER_LISTENER_MODE
        value: dataFlowSourceIntegration
      - name: DEFAULT_MODE
        value: Non-Aks
      image: turing.azurecr.io/turing-visual-worker:<tag>
      ports: []
      resources:
        requests:
          cpu: 0.5
          memoryInGB: 2.0
      volumeMounts:
      - mountPath: /mnt/azure
        name: infofile
```

#### **ix) InfoBridge Engine Worker**

```yaml
- name: inforiver-infobridge-engine-worker
    properties:
      configMap:
        keyValuePairs: {}
      environmentVariables:
      - name: ADMIN_PORTAL_URL
        value: <Admin Portal URL>
      - name: DUCKDB_MOUNT_PATH
        value: /mnt/azure
      image: turing.azurecr.io/turing-infobridge-engine:<tag>
      ports:
      - port: 9006
        protocol: tcp
      resources:
        requests:
          cpu: 0.5
          memoryInGB: 2.0
      volumeMounts:
      - mountPath: /mnt/azure
        name: infofile
```

### **Containers Instance List - 2**

The following are the set of containers required for the Inforiver deployment of Azure Container Instance-2.

#### **i) Inforiver Writeback Worker-1**

```yaml
- name: inforiver-writeback-worker-container-1
    properties:
      configMap:
        keyValuePairs: {}
      environmentVariables:
      - name: ADMIN_PORTAL_URL
        value: <Admin Portal URL>
      image: turing.azurecr.io/turing-writeback-worker:<tag>
      ports: []
      resources:
        requests:
          cpu: 0.5
          memoryInGB: 3.0
```

#### **ii) Inforiver Auto Writeback Worker**

```yaml
- name: inforiver-auto-writeback-worker-container
    properties:
      configMap:
        keyValuePairs: {}
      environmentVariables:
      - name: ADMIN_PORTAL_URL
        value: <Admin Portal URL>
      - name: IS_AUTO_WRITEBACK_CONTAINER
        value: Y
      image: turing.azurecr.io/turing-writeback-worker:<tag>
      ports: []
      resources:
        requests:
          cpu: 0.25
          memoryInGB: 2.0
```

#### **iii) Inforiver Visual Worker**

```yaml
- name: inforiver-visual-worker-container
    properties:
      configMap:
        keyValuePairs: {}
      environmentVariables:
      - name: ADMIN_PORTAL_URL
        value: <Admin Portal URL>
      image: turing.azurecr.io/turing-visual-worker:<tag>
      ports: []
      resources:
        requests:
          cpu: 0.25
          memoryInGB: 2.0
```

#### **iv) Inforiver ETL Worker**

```yaml
- name: inforiver-etl-worker-container
    properties:
      configMap:
        keyValuePairs: {}
      environmentVariables:
      - name: ADMIN_PORTAL_URL
        value: <Admin Portal URL>
      image: turing.azurecr.io/turing-etl-worker:<tag>
      ports: []
      resources:
        requests:
          cpu: 0.25
          memoryInGB: 1.0
```

#### **v) Inforiver Comment Worker**

```yaml
- name: inforiver-comment-worker-container
    properties:
      configMap:
        keyValuePairs: {}
      environmentVariables:
      - name: ADMIN_PORTAL_URL
        value: <Admin Portal URL>
- name: SERVICE_NAME
        value: "commentWorker"
      image: turing.azurecr.io/turing-worker:<tag>
      ports: []
      resources:
        requests:
          cpu: 0.25
          memoryInGB: 1.0
```

5. After adding the list of container configurations in both container instances, verify these steps in both container instance configurations.
6. Provide the username and password for pulling the image from the registry. You would have received this information during the initial deployment. If not, please get in touch with our support team.
7. Remove the IP configuration section from the configuration file from both ACIs.

<figure><img src="/files/r50fSvXNeesqukvNWTrZ" alt=""><figcaption><p>Remove the IP configuration</p></figcaption></figure>

8. Provide the storage account details in the volume section for the first container instance only.

```yaml
volumes:
  - azureFile:
      shareName: <filesharename>
      storageAccountName: <storage account name>
      storageAccountKey: <storage account primary key>
    name: <volumename>
```

**Note**: Storage account keys can be obtained from the respective storage account's **Access keys** section.

![Storage account - access key](/files/6dGAU4NaANFx5hFhq85k)

9. Update the API version as specified below.

apiVersion: '2023-02-01-preview'

## **2. Create ACI**

We need to separate the ACI into two container instances.

* First, add the initial set of Inforiver containers into one configuration file and create the first ACI with a name, say **inforivercontainerinstance.**
* Then, add the second set of Inforiver containers in another configuration file and create the second ACI, say **inforivercontainerinstancenew.**

After adding all the containers in the configuration files, execute the following commands in the Azure CLI to create two separate container instances.

{% code overflow="wrap" %}

```bash
az container create -g <resource group name> -n <container instance name> --file output_file
```

{% endcode %}

{% code overflow="wrap" %}

```bash
az container create -g <resource group name> -n <container instance name> --file output_file1
```

{% endcode %}

The CNI will start provisioning with the latest configuration.&#x20;

<figure><img src="/files/hztTWO8I6vlJX2SvDyjC" alt=""><figcaption><p>Create container instance 1</p></figcaption></figure>

<figure><img src="/files/2TgA413SMV7MShazYDl4" alt=""><figcaption><p>Create container instance 2</p></figcaption></figure>

Please wait until the status is complete.

By following the above steps, you will be able to successfully update the Inforiver container instances in your Azure environment.&#x20;

If you encounter any issues or need further assistance, please contact our technical support team [here](https://inforiver.com/contact-us/).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.inforiver.com/inforiver-enterprise-on-prem/upgrade/for-legacy-versions-updating-container-instances/update-inforiver-container-instances-for-3.x-users.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
