RHOSP Upgrade

Clone updated triliovault-cfg-scripts github repo

Note: Run all the commands with 'stack' user.

  • Clone updated repo\

    cd /home/stack
    mv triliovault-cfg-scripts triliovault-cfg-scripts-old
    git clone -b v4.0maintenance https://github.com/trilioData/triliovault-cfg-scripts.git
    cd triliovault-cfg-scripts/redhat-director-scripts/
  • If your backup target is Ceph S3 with self signed certs If your backup target is ceph S3 with SSL and SSL certificates are self signed or authorized by private CA, then user needs to provide CA chain certificate to validate the SSL requests. For that, user needs to rename his ca chain cert file to 's3-cert.pem' and copy it into directory - 'triliovault-cfg-scripts/redhat-director-scripts/redhat-director-scripts/puppet/trilio/files'

## If it's RHOSP13
cp s3-cert.pem /home/stack/triliovault-cfg-scripts/redhat-director-scripts/puppet/trilio/files/

## If it's RHOSP16
cp s3-cert.pem /home/stack/triliovault-cfg-scripts/redhat-director-scripts/puppet5/trilio/files/
  • Upload triliovault puppet module

## If it's RHOSP13
./upload_puppet_module.sh

## If it's RHOSP16
./upload_puppet_module_puppet5.sh

## Output of above command looks like following.
Creating tarball...
Tarball created.
Creating heat environment file: /home/stack/.tripleo/environments/puppet-modules-url.yaml
Uploading file to swift: /tmp/puppet-modules-8Qjya2X/puppet-modules.tar.gz
+-----------------------+---------------------+----------------------------------+
| object                | container           | etag                             |
+-----------------------+---------------------+----------------------------------+
| puppet-modules.tar.gz | overcloud-artifacts | 368951f6a4d39cfe53b5781797b133ad |
+-----------------------+---------------------+----------------------------------+

## Above command creates following file.
ls -ll /home/stack/.tripleo/environments/puppet-modules-url.yaml
  • Copy old trilio env file to new repository

    - If it's RHOSP13, copy 'trilio_env.yaml 
      cp /home/stack/triliovault-cfg-scripts-old/redhat-director-scripts/trilio_env.yaml .
    - If it's RHOSP16 the copy 'trilio_env_osp16.yaml'
      cp /home/stack/triliovault-cfg-scripts-old/redhat-director-scripts/trilio_env_osp16.yaml .

Pull latest triliovault container images and update triliovault environment yaml file

Note: Run all the commands with 'stack' user.

Trilio containers are pushed to 'RedHat Container Registry'. Registry URL is 'registry.connect.redhat.com'. Following are the triliovault container pull urls.

Trilio container urls for RHOSP13:

Trilio Datamove container:        registry.connect.redhat.com/trilio/trilio-datamover:4.0.115-rhosp13
Trilio Datamover Api Container:   registry.connect.redhat.com/trilio/trilio-datamover-api:4.0.115-rhosp13
Trilio horizon plugin:            registry.connect.redhat.com/trilio/trilio-horizon-plugin:4.0.115-rhosp13

Trilio container urls for RHOSP16:

Trilio Datamove container:        registry.connect.redhat.com/trilio/trilio-datamover:4.0.115-rhosp16
Trilio Datamover Api Container:   registry.connect.redhat.com/trilio/trilio-datamover-api:4.0.115-rhosp16
Trilio horizon plugin:            registry.connect.redhat.com/trilio/trilio-horizon-plugin:4.0.115-rhosp16
Note: '4.0.115' is Trilio 4.0 build version. Container tag: 4.0.115-rhosp16

There are three registry methods available in RedHat Openstack Platform.

  1. Remote Registry 2. Local Registry 3. Satellite Server

Identify which method you are using. Below we have explained all three methods to pull and configure trilioVault's container images for overcloud deployment.

Remote Registry:

If you are using 'Remote Registry' method follow this section. You don't need to pull anything. You just need to populate following container urls in trilio env yaml.

  • If it’s RHOSP13, populate 'trilio_env.yaml' file with triliovault container urls. Changes looks like following.\

## Update trilio_env.yaml with latest triliovault image urls. Changes should look like following.
$ grep 'Image' trilio_env.yaml
   DockerTrilioDatamoverImage: registry.connect.redhat.com/trilio/trilio-datamover:4.0.115-rhosp13
   DockerTrilioDmApiImage: registry.connect.redhat.com/trilio/trilio-datamover-api:4.0.115-rhosp13

## In overcloud_images.yaml which has RHOSP container details (Generally we keep this file at /home/stack/templates/overcloud_images.yaml), 
## replace 'DockerHorizonImage:...' entry with following entry(Trilio horizon container url). This will make sure Trilio's dashboard gets deployed on OpenStack Horizon.

DockerHorizonImage: registry.connect.redhat.com/trilio/trilio-horizon-plugin:4.0.115-rhosp13

## Make sure that changes are made with following command and expected output.
  $ grep 'trilio' /home/stack/templates/overcloud_images.yaml
  DockerHorizonImage: registry.connect.redhat.com/trilio/trilio-horizon-plugin:4.0.115-rhosp13
  • If it’s RHOSP16, populate 'trilio_env_osp16.yaml' file with triliovault container urls. Changes looks like following.\

    ####################################
    ######## If it's RHOSP16
    ####################################
    $ grep 'Image' trilio_env_osp16.yaml
       DockerTrilioDatamoverImage: undercloud.ctlplane.localdomain:8787/trilio/trilio-datamover:4.0.115-rhosp16
       DockerTrilioDmApiImage: undercloud.ctlplane.localdomain:8787/trilio/trilio-datamover-api:4.0.115-rhosp16
       ContainerHorizonImage: undercloud.ctlplane.localdomain:8787/trilio/trilio-horizon-plugin:4.0.115-rhosp16

Registry on Undercloud:

If you are using 'local registry' on undercloud, follow this section.

Note: Run following script from undercloud node with 'stack' user

  • If it’s RHOSP13, run following script. Script, pulls the triliovault containers and updates the triliovault environment file with urls.

./prepare_trilio_images.sh <undercloud_ip> <container_tag>

# Example:
./prepare_trilio_images.sh 192.168.13.34 4.0.115-rhosp13
## Verify changes
[stack@undercloud$ grep '4.0.115-rhosp13' trilio_env.yaml
   DockerTrilioDatamoverImage: 192.168.122.10:8787/trilio/trilio-datamover:4.0.115-rhosp13
   DockerTrilioDmApiImage: 192.168.122.10:8787/trilio/trilio-datamover-api:4.0.115-rhos
  • If it’s RHOSP13, user needs to set horizon image url to triliovault horizon image url in overcloud_images.yaml. Changes looks like following.

  $ grep 'trilio' /home/stack/templates/overcloud_images.yaml
  DockerHorizonImage: registry.connect.redhat.com/trilio/trilio-horizon-plugin:4.0.115-rhosp13
  • If it’s RHOS16, run following script. Script, pulls the triliovault containers and updates the triliovault environment file with urls.\

    sudo ./podman_prepare_images.sh <UNDERCLOUD_REGISTRY_HOSTNAME> <CONTAINER_TAG> 
    
    ## Example
    sudo ./podman_prepare_images.sh trilio-undercloud.ctlplane.localdomain 4.0.115-rhosp16

## Above script pushes trilio container images to undercloud registry and sets correct trilio images urls in trilio_env_osp16.yaml. Verify the changes using following command.

(undercloud) [stack@undercloud redhat-director-scripts]$ openstack tripleo container image list | grep trilio
| docker://undercloud.ctlplane.localdomain:8787/trilio/trilio-datamover:4.0.115-rhosp16                       |                        |
| docker://undercloud.ctlplane.localdomain:8787/trilio/trilio-datamover-api:4.0.115-rhosp16                   |                   |
| docker://undercloud.ctlplane.localdomain:8787/trilio/trilio-horizon-plugin:4.0.115-rhosp16                  |

-----------------------------------------------------------------------------------------------------

(undercloud) [stack@undercloud redhat-director-scripts]$ grep 'Image' trilio_env_osp16.yaml
   DockerTrilioDatamoverImage: undercloud.ctlplane.localdomain:8787/trilio/trilio-datamover:4.0.115-rhosp16
   DockerTrilioDmApiImage: undercloud.ctlplane.localdomain:8787/trilio/trilio-datamover-api:4.0.115-rhosp16
   ContainerHorizonImage: undercloud.ctlplane.localdomain:8787/trilio/trilio-horizon-plugin:4.0.115-rhosp16

Registry on Redhat Satellite Server

If you are using 'Satellite Server' for container registry, follow this section.

Following are the pull urls for Trilio containers. You need to pull these containers on Redhat Satellite that you already have.

Trilio container urls for RHOSP13:

Trilio Datamove container:        registry.connect.redhat.com/trilio/trilio-datamover:4.0.115-rhosp13
Trilio Datamover Api Container:   registry.connect.redhat.com/trilio/trilio-datamover-api:4.0.115-rhosp13
Trilio horizon plugin:            registry.connect.redhat.com/trilio/trilio-horizon-plugin:4.0.115-rhosp13

Trilio container urls for RHOSP16:

Trilio Datamove container:        registry.connect.redhat.com/trilio/trilio-datamover:4.0.115-rhosp16
Trilio Datamover Api Container:   registry.connect.redhat.com/trilio/trilio-datamover-api:4.0.115-rhosp16
Trilio horizon plugin:            registry.connect.redhat.com/trilio/trilio-horizon-plugin:4.0.115-rhosp16
  • Pull above containers as per your RHOSP release and push to redhat satellite server. For this, you can follow process same as other openstack containers.

  • After this, if it’s RHOSP13, populate 'trilio_env.yaml' file with the urls. Changes looks like following.

$ grep 'Image' trilio_env.yaml
   DockerTrilioDatamoverImage: <SATELLITE_REGISTRY_URL>/trilio/trilio-datamover:4.0.115-rhosp13
   DockerTrilioDmApiImage: <SATELLITE_REGISTRY_URL>/trilio/trilio-datamover-api:4.0.115-rhosp13
  • If it’s RHOSP13, user needs to set horizon image url to triliovault horizon image url in overcloud_images.yaml. Changes looks like following.

  $ grep 'trilio' /home/stack/templates/overcloud_images.yaml
  DockerHorizonImage: <SATELLITE_REGISTRY_URL>/trilio/trilio-horizon-plugin:4.0.115-rhosp13
  • If it’s RHOSP16, populate 'trilio_env_osp16.yaml' file with the triliovault container urls. Changes looks like following.

$ grep 'Image' trilio_env_osp16.yaml
   DockerTrilioDatamoverImage: <SATELLITE_REGISTRY_URL>/trilio/trilio-datamover:4.0.115-rhosp16
   DockerTrilioDmApiImage: <SATELLITE_REGISTRY_URL>/trilio/trilio-datamover-api:4.0.115-rhosp16
   ContainerHorizonImage: <SATELLITE_REGISTRY_URL>/trilio/trilio-horizon-plugin:4.0.115-rhosp16

Update overcloud - This step will update the triliovault containers on overcloud

  • Run your overcloud deploy command again. It will update the triliovault containers on overcloud.

  • Command looks like following. \

    openstack overcloud deploy --templates \
    --libvirt-type qemu \
    --ntp-server 192.168.1.34 \
    -e /home/stack/triliovault-cfg-scripts/redhat-director-scripts/trilio_env_osp16.yaml \
    -e /home/stack/templates/node-info.yaml \
    -e /home/stack/containers-prepare-parameter.yaml \
    -e /usr/share/openstack-tripleo-heat-templates/environments/ssl/enable-tls.yaml \
    -e /usr/share/openstack-tripleo-heat-templates/environments/ssl/inject-trust-anchor.yaml \
    -e /usr/share/openstack-tripleo-heat-templates/environments/ssl/tls-endpoints-public-ip.yaml \
    -r /usr/share/openstack-tripleo-heat-templates/roles_data.yaml

[Optional] If you want to verify that triliovault got upgraded successfully, use following steps.

  1. Verify triliovault datamover api container got updated on nova-api nodes

- Command for RHOSP13
docker ps | grep trilio

- Command for RHOSP16
 podman ps | grep trilio

2. Verify triliovault datamover container got updated on nova-compute nodes

 - Command for RHOSP13
docker ps | grep trilio

- Command for RHOSP16
 podman ps | grep trilio 

3. Verify triliovault horizon got updated on horizon nodes

 - Command for RHOSP13
docker ps | grep horizon

- Command for RHOSP16
 podman ps | grep horizon 

Last updated