How to upgrade the OSM Platform

From OSM Public Wiki
Revision as of 15:36, 13 June 2018 by Garciadeblas (talk | contribs)
Jump to: navigation, search

Upgrading the OSM platform

Due to the new architecture and dockerized components in OSM Release FOUR, OSM platform upgrade is easier than ever. Upgrading from v4.0.0 to the latest minor version is as simple as running again the installer:

wget https://osm-download.etsi.org/ftp/osm-4.0-four/install_osm.sh
chmod +x install_osm.sh
./install_osm.sh

You will be asked if you want to proceed with the installation and configuration of LXD, juju, docker CE and the initialization of a local docker swarm, as pre-requirements. Please answer "y".

Then, some dialog messages related to LXD configuration will be shown. This is what you have to answer:

  • Do you want to configure the LXD bridge? Yes
  • Do you want to setup an IPv4 subnet? Yes
  • << Default values apply for next questions >>
  • Do you want to setup an IPv6 subnet? No

That's all. You will have the newest OSM version installed.

Upgrading only a specific component to use the latest stable version, the master branch or an old version (advanced users)

You can use options -b and -m in the installer:

./install_osm.sh --help
usage: ./install_osm.sh [OPTIONS]
Install OSM from binaries or source code (by default, from binaries)
 OPTIONS
...
    -b <refspec>:   install OSM from source code using a specific branch (master, v2.0, ...) or tag
                    -b master          (main dev branch)
                    -b v2.0            (v2.0 branch)
                    -b tags/v1.1.0     (a specific tag)
                    ...
    -m <MODULE>:    install OSM but only rebuild the specified docker images (RO, LCM, NBI, LW-UI, MON, KAFKA, MONGO, NONE)

For instance, to upgrade the RO to the latest stable version:

./install_osm.sh -m RO

Or to use master branch in LCM:

./install_osm.sh -m LCM -b master

Or to use an old version of MON:

./install_osm.sh -m mon -b tags/v4.0.0

Upgrading a specific component to use your own cloned repo (e.g. for developing purposes)

For the RO (ro and ro-db):

docker pull mysql:5
git clone https://osm.etsi.org/gerrit/osm/RO
docker build RO -f RO/docker/Dockerfile-local -t osm/ro --no-cache
docker stack rm osm
docker stack deploy -c /etc/osm/docker/docker-compose.yaml osm

For LCM:

git clone https://osm.etsi.org/gerrit/osm/LCM
docker build LCM -f LCM/Dockerfile.local -t osm/lcm --no-cache
docker stack rm osm
docker stack deploy -c /etc/osm/docker/docker-compose.yaml osm

For MON and PM:

git clone https://osm.etsi.org/gerrit/osm/MON
docker build MON -f MON/docker/Dockerfile -t osm/mon --no-cache
docker build MON/policy_module -f MON/policy_module/Dockerfile -t osm/pm --no-cache
docker stack rm osm
docker stack deploy -c /etc/osm/docker/docker-compose.yaml osm

For NBI:

git clone https://osm.etsi.org/gerrit/osm/NBI
docker build NBI -f NBI/Dockerfile.local -t osm/nbi --no-cache
docker stack rm osm
docker stack deploy -c /etc/osm/docker/docker-compose.yaml osm

For light UI:

git clone https://osm.etsi.org/gerrit/osm/LW-UI
docker build LW-UI -t osm/light-ui -f LW-UI/Dockerfile --no-cache
docker stack rm osm
docker stack deploy -c /etc/osm/docker/docker-compose.yaml osm