How to upgrade the OSM Platform: Difference between revisions

From OSM Public Wiki
Jump to: navigation, search
No edit summary
Line 52: Line 52:
  git clone https://osm.etsi.org/gerrit/osm/RO
  git clone https://osm.etsi.org/gerrit/osm/RO
  #you can then work in the cloned repo, apply patches with git pull, etc.
  #you can then work in the cloned repo, apply patches with git pull, etc.
  docker build RO -f RO/docker/Dockerfile-local -t opensourcemano/ro --no-cache
  docker build RO -f RO/docker/Dockerfile-local -t opensourcemano/ro:develop --no-cache
  docker service update osm_ro --force --image opensourcemano/ro
  docker service update osm_ro --force --image opensourcemano/ro:develop
# In order to make this change persistent after reboots or restart of the docker stack
# you will have to update the file /etc/osm/docker/docker-compose.yaml to reflect the change
# in the docker image, for instance:
# sed -i "s/ro\:\${TAG\:-latest}/ro\:\${TAG\:-develop}/" /etc/osm/docker/docker-compose.yaml


For LCM:
For LCM:
  git clone https://osm.etsi.org/gerrit/osm/LCM
  git clone https://osm.etsi.org/gerrit/osm/LCM
  #you can then work in the cloned repo, apply patches with git pull, etc.
  #you can then work in the cloned repo, apply patches with git pull, etc.
  docker build LCM -f LCM/Dockerfile.local -t opensourcemano/lcm --no-cache
  docker build LCM -f LCM/Dockerfile.local -t opensourcemano/lcm:develop --no-cache
  docker service update osm_lcm --force --image opensourcemano/lcm
  docker service update osm_lcm --force --image opensourcemano/lcm:develop
# In order to make this change persistent after reboots or restart of the docker stack
# you will have to update the file /etc/osm/docker/docker-compose.yaml to reflect the change
# in the docker image, for instance:
# sed -i "s/lcm\:\${TAG\:-latest}/lcm\:\${TAG\:-develop}/" /etc/osm/docker/docker-compose.yaml


For MON:
For MON:
  git clone https://osm.etsi.org/gerrit/osm/MON
  git clone https://osm.etsi.org/gerrit/osm/MON
  #you can then work in the cloned repo, apply patches with git pull, etc.
  #you can then work in the cloned repo, apply patches with git pull, etc.
  docker build MON -f MON/docker/Dockerfile -t opensourcemano/mon --no-cache
  docker build MON -f MON/docker/Dockerfile -t opensourcemano/mon:develop --no-cache
  docker service update osm_mon --force --image opensourcemano/mon
  docker service update osm_mon --force --image opensourcemano/mon:develop
# In order to make this change persistent after reboots or restart of the docker stack
# you will have to update the file /etc/osm/docker/docker-compose.yaml to reflect the change
# in the docker image, for instance:
# sed -i "s/mon\:\${TAG\:-latest}/mon\:\${TAG\:-develop}/" /etc/osm/docker/docker-compose.yaml


For POL:
For POL:
  git clone https://osm.etsi.org/gerrit/osm/POL
  git clone https://osm.etsi.org/gerrit/osm/POL
  #you can then work in the cloned repo, apply patches with git pull, etc.
  #you can then work in the cloned repo, apply patches with git pull, etc.
  docker build MON -f MON/docker/Dockerfile -t opensourcemano/pol --no-cache
  docker build MON -f MON/docker/Dockerfile -t opensourcemano/pol:develop --no-cache
  docker service update osm_mon --force --image opensourcemano/pol
  docker service update osm_mon --force --image opensourcemano/pol:develop
# In order to make this change persistent after reboots or restart of the docker stack
# you will have to update the file /etc/osm/docker/docker-compose.yaml to reflect the change
# in the docker image, for instance:
# sed -i "s/pol\:\${TAG\:-latest}/pol\:\${TAG\:-develop}/" /etc/osm/docker/docker-compose.yaml


For NBI:
For NBI:
  git clone https://osm.etsi.org/gerrit/osm/NBI
  git clone https://osm.etsi.org/gerrit/osm/NBI
  #you can then work in the cloned repo, apply patches with git pull, etc.
  #you can then work in the cloned repo, apply patches with git pull, etc.
  docker build NBI -f NBI/Dockerfile.local -t opensourcemano/nbi --no-cache
  docker build NBI -f NBI/Dockerfile.local -t opensourcemano/nbi:develop --no-cache
  docker service update osm_nbi --force --image opensourcemano/nbi
  docker service update osm_nbi --force --image opensourcemano/nbi:develop
# In order to make this change persistent after reboots or restart of the docker stack
# you will have to update the file /etc/osm/docker/docker-compose.yaml to reflect the change
# in the docker image, for instance:
# sed -i "s/nbi\:\${TAG\:-latest}/nbi\:\${TAG\:-develop}/" /etc/osm/docker/docker-compose.yaml


For light UI:
For light UI:
  git clone https://osm.etsi.org/gerrit/osm/LW-UI
  git clone https://osm.etsi.org/gerrit/osm/LW-UI
  #you can then work in the cloned repo, apply patches with git pull, etc.
  #you can then work in the cloned repo, apply patches with git pull, etc.
  docker build LW-UI -f LW-UI/docker/Dockerfile -t opensourcemano/light-ui --no-cache
  docker build LW-UI -f LW-UI/docker/Dockerfile -t opensourcemano/light-ui:develop --no-cache
  docker service update osm_light-ui --force --image opensourcemano/light-ui
  docker service update osm_light-ui --force --image opensourcemano/light-ui:develop
# In order to make this change persistent after reboots or restart of the docker stack
# you will have to update the file /etc/osm/docker/docker-compose.yaml to reflect the change
# in the docker image, for instance:
# sed -i "s/light-ui\:\${TAG\:-latest}/light-ui\:\${TAG\:-develop}/" /etc/osm/docker/docker-compose.yaml


 
Optionally, you can restart the whole stack (as long as you have conveniently changed the file "/etc/osm/docker/docker-compose.yaml"):
Optionally, you can restart the whole stack:
  docker stack rm osm && sleep 60
  docker stack rm osm && sleep 60
  docker stack deploy -c /etc/osm/docker/docker-compose.yaml osm
  docker stack deploy -c /etc/osm/docker/docker-compose.yaml osm

Revision as of 10:53, 21 December 2018

Upgrading the OSM platform

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

wget https://osm-download.etsi.org/ftp/osm-5.0-five/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)

Upgrading a specific OSM component without upgrading the others accordingly may lead to potential inconsistencies. Unless you are really sure about what you are doing, please use this procedure with caution.

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/v5.0.2

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

Upgrading a specific OSM component without upgrading the others accordingly may lead to potential inconsistencies. Unless you are really sure about what you are doing, please use this procedure with caution.

For RO (ro and ro-db):

docker pull mysql:5
git clone https://osm.etsi.org/gerrit/osm/RO
#you can then work in the cloned repo, apply patches with git pull, etc.
docker build RO -f RO/docker/Dockerfile-local -t opensourcemano/ro:develop --no-cache
docker service update osm_ro --force --image opensourcemano/ro:develop
# In order to make this change persistent after reboots or restart of the docker stack
# you will have to update the file /etc/osm/docker/docker-compose.yaml to reflect the change
# in the docker image, for instance:
# sed -i "s/ro\:\${TAG\:-latest}/ro\:\${TAG\:-develop}/" /etc/osm/docker/docker-compose.yaml

For LCM:

git clone https://osm.etsi.org/gerrit/osm/LCM
#you can then work in the cloned repo, apply patches with git pull, etc.
docker build LCM -f LCM/Dockerfile.local -t opensourcemano/lcm:develop --no-cache
docker service update osm_lcm --force --image opensourcemano/lcm:develop
# In order to make this change persistent after reboots or restart of the docker stack
# you will have to update the file /etc/osm/docker/docker-compose.yaml to reflect the change
# in the docker image, for instance:
# sed -i "s/lcm\:\${TAG\:-latest}/lcm\:\${TAG\:-develop}/" /etc/osm/docker/docker-compose.yaml

For MON:

git clone https://osm.etsi.org/gerrit/osm/MON
#you can then work in the cloned repo, apply patches with git pull, etc.
docker build MON -f MON/docker/Dockerfile -t opensourcemano/mon:develop --no-cache
docker service update osm_mon --force --image opensourcemano/mon:develop
# In order to make this change persistent after reboots or restart of the docker stack
# you will have to update the file /etc/osm/docker/docker-compose.yaml to reflect the change
# in the docker image, for instance:
# sed -i "s/mon\:\${TAG\:-latest}/mon\:\${TAG\:-develop}/" /etc/osm/docker/docker-compose.yaml

For POL:

git clone https://osm.etsi.org/gerrit/osm/POL
#you can then work in the cloned repo, apply patches with git pull, etc.
docker build MON -f MON/docker/Dockerfile -t opensourcemano/pol:develop --no-cache
docker service update osm_mon --force --image opensourcemano/pol:develop
# In order to make this change persistent after reboots or restart of the docker stack
# you will have to update the file /etc/osm/docker/docker-compose.yaml to reflect the change
# in the docker image, for instance:
# sed -i "s/pol\:\${TAG\:-latest}/pol\:\${TAG\:-develop}/" /etc/osm/docker/docker-compose.yaml

For NBI:

git clone https://osm.etsi.org/gerrit/osm/NBI
#you can then work in the cloned repo, apply patches with git pull, etc.
docker build NBI -f NBI/Dockerfile.local -t opensourcemano/nbi:develop --no-cache
docker service update osm_nbi --force --image opensourcemano/nbi:develop
# In order to make this change persistent after reboots or restart of the docker stack
# you will have to update the file /etc/osm/docker/docker-compose.yaml to reflect the change
# in the docker image, for instance:
# sed -i "s/nbi\:\${TAG\:-latest}/nbi\:\${TAG\:-develop}/" /etc/osm/docker/docker-compose.yaml

For light UI:

git clone https://osm.etsi.org/gerrit/osm/LW-UI
#you can then work in the cloned repo, apply patches with git pull, etc.
docker build LW-UI -f LW-UI/docker/Dockerfile -t opensourcemano/light-ui:develop --no-cache
docker service update osm_light-ui --force --image opensourcemano/light-ui:develop
# In order to make this change persistent after reboots or restart of the docker stack
# you will have to update the file /etc/osm/docker/docker-compose.yaml to reflect the change
# in the docker image, for instance:
# sed -i "s/light-ui\:\${TAG\:-latest}/light-ui\:\${TAG\:-develop}/" /etc/osm/docker/docker-compose.yaml

Optionally, you can restart the whole stack (as long as you have conveniently changed the file "/etc/osm/docker/docker-compose.yaml"):

docker stack rm osm && sleep 60
docker stack deploy -c /etc/osm/docker/docker-compose.yaml osm