Update

Make a reserve copy beforehand.

See also: compatibility policy of the versions.

BGP announcements

If MITIGATOR is configured to announce protected prefixes over BGP, then before updating the instance, disable the BGP connection for the instance being updated in the «Local BGP Settings» on the «BGP» page.

After completing the update of the instance, you should restore the BGP connection.

Isolated instance update

After the update, it may take some time to enable protection and visualize graphs. Do not enable protection manually, it will turn on after spilling all the settings.

  1. Write a line with the version to the .env file:

    VERSION=vXX.XX
    

    Where vXX.XX is a target version (for example: v20.08 or v20.12.1).

  2. Download the latest Compose file:

    wget https://docs.mitigator.ru/vXX.XX/dist/docker-compose.yml
    

    Where vXX.XX is a target major version (for example: v20.08 or v20.12).

    If edits for Mellanox adapters, were made in it, reproduce them in the new version of the file.

  3. Log in to the image repository with your credentials:

    docker login docker.mitigator.ru
    
  4. Download images:

    docker-compose pull
    
  5. Reboot all of the MITIGATOR components:

    docker-compose down && docker-compose up -d
    

Cluster update with shared non-redundant storage

After the update, it may take some time to enable protection and visualize graphs. Do not enable protection manually, it will turn on after spilling all the settings.

  1. Stop all instances of MITIGATOR:

    docker-compose down
    
  2. On all instances, write a line with the version to the .env file:

    VERSION=vXX.XX
    

    Where vXX.XX is a target version (for example: v20.08 or v20.12.1).

  3. Download the latest docker-compose.yml on all instances:

    wget https://docs.mitigator.ru/vXX.XX/dist/docker-compose.yml
    

    Where vXX.XX is a target major version (for example: v20.08 or v20.12).

    If edits for Mellanox adapters, were made in it, reproduce them in the new version of the file.

  4. On all instances except the base one, download the latest file docker-compose.worker.yml:

    wget https://docs.mitigator.ru/vXX.XX/dist/multi/docker-compose.worker.yml \
       -O docker-compose.worker.yml
    
  5. Enable Postgres on the base instance:

    docker-compose up -d postgres
    
  6. Starting with the leader, run on all instances sequentially:

    docker-compose up -d
    

Updating a cluster with internal failover storage

After the update, it may take some time to enable protection and visualize graphs. Do not enable protection manually, it will turn on after spilling all the settings.

  1. Stop all MITIGATOR instances running Postgres in standby mode, then stop the instance with Postgres in active mode:

    docker-compose down
    
  2. On all instances, write a line with the version to the .env file:

    VERSION=vXX.XX
    

    Where vXX.XX is a target version (for example: v20.08 or v20.12.1).

  3. Download the latest docker-compose.yml on all instances:

    wget https://docs.mitigator.ru/vXX.XX/dist/docker-compose.yml
    

    Where vXX.XX is a target major version (for example: v20.08 or v20.12).

    If edits for Mellanox adapters, were made in it, reproduce them in the new version of the file.

  4. Activate an instance with Postgres in active mode, then activate all MITIGATOR instances with Postgres in standby mode:

    docker-compose up -d
    

Updating a Cluster with External Failover Storage

After the update, it may take some time to enable protection and visualize graphs. Do not enable protection manually, it will turn on after spilling all the settings.

Steps 1, 6 and 13 depend on the actual organization of the DBMS on the external server.

  1. Disable database access for all instances.

  2. On all instances, write a line with the version to the .env file:

    VERSION=vXX.XX
    

    Where vXX.XX is a target version (for example: v20.08 or v20.12.1).

  3. Download the latest docker-compose.yml on all instances:

    wget https://docs.mitigator.ru/vXX.XX/dist/docker-compose.yml
    

    Where vXX.XX is a target major version (for example: v20.08 or v20.12).

    If edits for Mellanox adapters, were made in it, reproduce them in the new version of the file.

  4. Log in to the image store with your credentials:

    docker login docker.mitigator.ru
    
  5. Download images:

    docker-compose pull
    
  6. Make sure that database access is disabled on all instances:

  7. Reboot all of the MITIGATORcomponents:

    docker-compose down && docker-compose up -d
    
  8. Perform the necessary database migrations (the actions are similar to those performed during the initial postgres setup postgres), , for which:

  9. Run command:

    docker-compose create postgres
    
  10. Copy migration scripts:

    docker cp mitigator_postgres_1:/schema schema
    
  11. Execute scripts using the utility SHMIG.

  12. Run command:

    docker-compose rm -sf postgres
    
  13. Enable DB access for all instances.