Skip to content

Upgrade from v1.2 to v1.3

This documentation consider that Prelude is installed on two hosts in the /opt/prelude folder. It can be easily adapted for a single host installation.

Backup

Start by a backup of OneBoard database:

docker compose exec -it db-oneboard pg_dump --dbname=prelude --username=prelude > oneboard.backup.sql

Then, Stop both Prelude OneBoard and Prelude Foundation components.

docker compose down

Upgrade: Prelude OneBoard

Add the following volume to the OneBoard container in docker-compose.yml:

- ./volumes/nats:/app/storage/nats

And remove the seed file binding:

- ./seed-oneboard.txt:/app/seed.txt

The OneBoard container definition should look like this:

oneboard:
    image: registry.arolo-solutions.com/<setup-name>/prelude-oneboard:1.2
    restart: unless-stopped
    volumes:
      - ./oneboard-config.json:/app/config.json
      - ./volumes/oneboard-storage/:/app/storage/
      - ./volumes/nats:/app/storage/nats
      - ./ssl:/ssl
    ports:
      - 443:443
      - 4010:4010
    depends_on:
      - oneboard-db
      - nats

Edit the NATS configuration file volumes/nats/nats-server.conf to match the following:

server_name: "prelude-nats"

host: 0.0.0.0
port: 4222
https_port: 8222

tls: {
  cert_file: "/tls/<your tls cert file>"
  key_file: "/tls/<your tls key file>"
  handshake_first: true
}

system_account: SYS

include ./nats-auth.conf

Then, set the OneBoard container tag to v1.3 in docker-compose.yml.

image: registry.arolo-solutions.com/<setup-name>/prelude-oneboard:1.3

Pull the new images and start OneBoard :

docker compose pull
docker compose up -d

Generate the NATS authentication file:

docker compose run --entrypoint="/app/prelude-oneboard init-nats" oneboard
docker compose up -d --remove-orphans

Finally, migrate the database:

docker compose exec -it oneboard /app/prelude-oneboard migrate

Check that all containers are up and running (the name could be slightly different depending on the setup):

NAME                    IMAGE                                                      COMMAND                  SERVICE       CREATED         STATUS                   PORTS
prelude-oneboard-db-1   postgres:16.1-alpine                                       "docker-entrypoint.s…"   db-oneboard   6 minutes ago   Up 6 minutes             5432/tcp
prelude-nats-1          nats:2.10-linux                                            "/nats-server -c /et…"   nats          6 minutes ago   Up 6 minutes             6222/tcp, 0.0.0.0:4222->4222/tcp, [::]:4222->4222/tcp, 8222/tcp
prelude-oneboard-1      registry.arolo-solutions.com/demo/prelude-oneboard:1.3     "/app/prelude-oneboa…"   prelude       6 minutes ago   Up 6 minutes             0.0.0.0:443->443/tcp, [::]:443->443/tcp, 0.0.0.0:4010->4010/tcp, [::]:4010->4010/tcp

OneBoard upgrade is done.

Upgrade: Prelude Foundation

Remove the following volume of the Gateway container in docker-compose.yml:

- ./seed-gateway.txt:/app/seed.txt

The Gateway container definition should look like this:

gateway:
    image: registry.arolo-solutions.com/prelude/prelude-gateway:1.2
    restart: unless-stopped
    volumes:
      - ./gateway-config.json:/app/config.json
      - ./volumes/gateway-storage/:/app/storage/
      - ./ssl:/ssl
    ports:
      - 4020:4020
      - 4021:4021
      - 67:67/UDP
    depends_on:
      - gateway-db
      - prelude

Start by setting Gateway container tag to v1.3 in docker-compose.yml.

image: registry.arolo-solutions.com/prelude/prelude-gateway:1.3

Then pull the new images and start Gateway:

docker compose pull
docker compose up -d

Migrate the database:

docker compose exec -it gateway /app/prelude-gateway migrate

Connect to OneBoard UI, navigate to the Gateway connector and click on "Reset Onboarding", then copy the onboarding certificate and run the following command on the foundation host:

docker compose exec -it gateway /app/prelude-gateway onboard -force true -cert <onboarding-cert>

Check that all containers are up and running (the name could be slightly different depending on the setup):

NAME                    IMAGE                                                      COMMAND                  SERVICE       CREATED         STATUS                   PORTS
prelude-gateway-db-1    postgres:16.1-alpine                                       "docker-entrypoint.s…"   db-gateway    6 minutes ago   Up 6 minutes             5432/tcp
prelude-gateway-1       registry.arolo-solutions.com/prelude/prelude-gateway:1.3   "/app/prelude-gatewa…"   gateway       6 minutes ago   Up 6 minutes             0.0.0.0:67->67/udp, [::]:67->67/udp, 0.0.0.0:4020-4021->4020-4021/tcp, [::]:4020-4021->4020-4021/tcp
prelude-nso-1           cisco-nso-prod:6.1.12                                      "/run-nso.sh"            nso           6 minutes ago   Up 6 minutes (healthy)   0.0.0.0:2022->2022/tcp, [::]:2022->2022/tcp

NSO packages upgrade

On the OneBoard host, get the NSO packages:

docker compose cp oneboard:/nso-packages ./

Copy all the packages from the OneBoard host to the foundation host:

scp -r ./nso-packages user@foundation:/home/user

Remove previous version packages:

sudo rm /opt/prelude/volumes/nso/run/packages/ncs-*-prelude-*.tar.gz
Then, move the new files to the NSO packages folder:
sudo cp /home/user/nso-packages/* /opt/prelude/volumes/nso/run/packages

Finally, reload NSO packages

docker compose exec -it nso ncs_cli -u admin
> request packages reload

Foundation upgrade is done.