From af65c8f9bcccf599ad24fafc8afa01ee73cb7663 Mon Sep 17 00:00:00 2001 From: zhipengl Date: Fri, 22 Nov 2019 20:05:08 +0800 Subject: [PATCH] Add a document about how to move to new openstack version for starlingx This document take openstack train upgrade for example, and give out detail upgrade step. It can guide other contributor to upgrade openstack version in the future. Patchset 3: Formatting to make doc consistent with rest of docs, grammar edits. Patchset 4: Wording adjustments Patchset 6: Wording adjustments, added link to CLI ref. Story: 2006877 Task: 37495 Change-Id: Ie8d9097cb16c450805b96d14280b1e3315bc76f8 Signed-off-by: zhipengl Signed-off-by: Kristal Dale --- doc/source/cli_ref/system.rst | 2 + doc/source/developer_resources/index.rst | 2 +- ..._to_new_openstack_version_in_starlingx.rst | 229 ++++++++++++++++++ .../developer_resources/move_version.rst | 16 -- 4 files changed, 232 insertions(+), 17 deletions(-) create mode 100644 doc/source/developer_resources/move_to_new_openstack_version_in_starlingx.rst delete mode 100644 doc/source/developer_resources/move_version.rst diff --git a/doc/source/cli_ref/system.rst b/doc/source/cli_ref/system.rst index b1d6ac876..39139279f 100644 --- a/doc/source/cli_ref/system.rst +++ b/doc/source/cli_ref/system.rst @@ -189,6 +189,8 @@ Host IPMI configuration and management ``host-sensorgroup-show`` Show host sensor group attributes. +.. _sys_app_management: + ********************** Application management ********************** diff --git a/doc/source/developer_resources/index.rst b/doc/source/developer_resources/index.rst index d12f4cb20..9f4578758 100644 --- a/doc/source/developer_resources/index.rst +++ b/doc/source/developer_resources/index.rst @@ -14,6 +14,6 @@ source code, and to understand the development process. navigate_source_code architecture_docs starlingx_patching - move_version + move_to_new_openstack_version_in_starlingx Project Specifications diff --git a/doc/source/developer_resources/move_to_new_openstack_version_in_starlingx.rst b/doc/source/developer_resources/move_to_new_openstack_version_in_starlingx.rst new file mode 100644 index 000000000..77491e4ab --- /dev/null +++ b/doc/source/developer_resources/move_to_new_openstack_version_in_starlingx.rst @@ -0,0 +1,229 @@ +========================================== +Move to new OpenStack version in StarlingX +========================================== + +This section describes how to move from OpenStack Stein to OpenStack Train in +StarlingX. + +.. contents:: + :local: + :depth: 1 + +------------ +Introduction +------------ + +When you apply the OpenStack application in StarlingX, the following OpenStack +services are launched in containers: + +* stx-keystone +* stx-nova +* stx-neutron +* stx-horizon +* stx-placement +* stx-cinder +* stx-glance +* stx-aodh +* stx-ironic +* stx-panko +* stx-barbican +* stx-ceilometer +* stx-heat + +Moving to a new OpenStack release in StarlingX applies updates to the already +installed OpenStack services. The examples in this section show the upgrade from +OpenStack Stein to OpenStack Train. + +------------------------------- +OpenStack Train upgrade patches +------------------------------- + +The following patches are included in the upgrade to OpenStack Train. + +************************* +OpenStack service upgrade +************************* + +#. https://review.opendev.org/#/q/topic:train_upgrade+(status:open+OR+status:merged) + +#. https://review.opendev.org/#/c/683886/ + +************************************************* +OpenStack-helm & OpenStack-helm-infra RPM upgrade +************************************************* + +#. https://review.opendev.org/#/c/687197/ + +#. https://review.opendev.org/#/c/683886/ + +#. https://review.opendev.org/#/c/683910/ + +.. note:: + + There is no tag for this 2-project release. You will need to select the + latest commit. + +-------------------------- +Upgrade to OpenStack Train +-------------------------- + +****************************** +Update targeted branch/version +****************************** + +Update the targeted branch/version in the directives files for each project. + +#. Update the + ``cgcs-root/stx/upstream/openstack/python-nova/centos/stx-nova.dev_docker_image`` + file: + + :: + + BUILDER=loci + LABEL=stx-nova + PROJECT=nova + PROJECT_REPO=https://opendev.org/openstack/nova.git + PIP_PACKAGES="pycrypto httplib2 pylint python-ironicclient" + DIST_PACKAGES="openssh-clients openssh-server libvirt e2fsprogs" + PROFILES="fluent nova ceph linuxbridge openvswitch configdrive qemu apache" + CUSTOMIZATION="yum install -y openssh-clients" + +#. Update the + ``cgcs-root/stx/upstream/openstack/python-nova/centos/stx-nova.stable_docker_image`` + file: + + :: + + BUILDER=loci + LABEL=stx-nova + PROJECT=nova + PROJECT_REPO=https://opendev.org/openstack/nova.git + PROJECT_REF=stable/train + PIP_PACKAGES="pycrypto httplib2 pylint python-ironicclient" + DIST_PACKAGES="openssh-clients openssh-server libvirt e2fsprogs" + PROFILES="fluent nova ceph linuxbridge openvswitch configdrive qemu apache" + CUSTOMIZATION="yum install -y openssh-clients" + +******************************************* +Build wheels for specific OpenStack version +******************************************* + +#. Change the release in ``${MY_REPO}//build-tools/build-wheels/build-wheel-tarball.sh``: + + :: + + CURRENT_STABLE_OPENSTACK=train + +#. Use the following script to get specific version information for dependent packages: + + :: + + https://raw.githubusercontent.com/openstack/requirements/stable/train/upper-constraints.txt + +#. Update the ``build-tools/build-wheels/docker/stable-wheels.cfg`` file with + the related entries, as shown below: + + :: + + django_floppyforms-1.7.0-py2.py3-none-any.whl|tar|https://files.pythonhosted.org/packages/8c/18/30a9137c7ae279a27ccdeb10f6fe8be18ee98551d01ec030b6cfe8b2d2e2/django-floppyforms-1.7.0.tar.gz|django-floppyforms-1.7.0 + cmd2-0.8.9-py2.py3-none-any.whl|pypi|https://files.pythonhosted.org/packages/e9/40/a71caa2aaff10c73612a7106e2d35f693e85b8cf6e37ab0774274bca3cf9/cmd2-0.8.9-py2.py3-none-any.whl + pyngus-2.3.0-py2-none-any.whl|zip|https://files.pythonhosted.org/packages/58/b1/336b8f64e7e4efa9b95027af71e02cd4cfacca8f919345badb852381878a/pyngus-2.3.0.zip|pyngus-2.3.0 + +#. Build wheels with the following command: + + :: + + export OS=centos + export BUILD_STREAM=stable + export MY_REPO=/home/wrsroot/starlingx/workspace/localdisk/designer/wrsroot/starlingx/cgcs-root/ + export MY_WORKSPACE=/home/wrsroot/starlingx/workspace/localdisk/loadbuild/wrsroot/starlingx/ + ${MY_REPO}//build-tools/build-wheels/build-wheel-tarball.sh \ + --os ${OS} \ + --stream ${BUILD_STREAM} + +********************************* +Build Docker images for OpenStack +********************************* + +#. Build Docker images with the following command: + + :: + + export OS=centos + export BUILD_STREAM=stable + export MY_REPO=/home/wrsroot/starlingx/workspace/localdisk/designer/wrsroot/starlingx/cgcs-root/ + export MY_WORKSPACE=/home/wrsroot/starlingx/workspace/localdisk/loadbuild/wrsroot/starlingx/ + export BRANCH=master + export CENTOS_BASE=starlingx/stx-centos:${BRANCH}-${BUILD_STREAM}-latest + export WHEELS=http://mirror.starlingx.cengn.ca/mirror/starlingx/master/centos/latest_docker_image_build/outputs/wheels/stx-centos-stable-wheels.tar + time $MY_REPO/build-tools/build-docker-images/build-stx-images.sh \ + --os centos \ + --stream ${BUILD_STREAM} \ + --base ${CENTOS_BASE} \ + --wheels ${WHEELS} \ + --latest \ + --only $1 //stx-nova,stx-horizon + +For additional information on building Docker images, refer to the +`StarlingX wiki entry for Building Images `_ + +************************************* +Tag and push image to Docker registry +************************************* + +First tag and push your new image to docker.io. Then tag and push to your local +registry for verification. For example: + +:: + + docker images + root/stx-horizon dev-centos-stable-build ccce6df31a58 30 minutes ago 868MB + docker tag ccce6df31a58 username/stx-horizon:dev-centos-stable-train + docker push username/stx-heat:dev-centos-stable-train // push to docker.io + +******************** +Update manifest.yaml +******************** + +You will need to update the ``manifest.yaml`` file for the OpenStack upgrade. + +The exact updates needed are determined on a case-by-case basis. + +Please refer to this patch: https://review.opendev.org/#/c/684166 + +************** +Test and debug +************** + +Here are some tips for testing and debugging your upgrade: + +#. Refer to the + `StarlingX wiki entry for general container and debugging info `_. + +#. You will need to create a test patch to perform pre-merge verification of your + test image. For example: https://review.opendev.org/#/c/688025 + +#. Use `system application management `_ commands to manage + the application. For example: + + :: + + system application-upload -n stx-openstack stx-openstack-1.0-16.tgz + system application-apply stx-openstack + system application-remove stx-openstack + system application-delete stx-openstack + watch -n 5 system application-list + +#. Use kubectl commands for log analysis. For example: + + :: + + tail -f /var/log/sysinv.log + tail -f /var/log/armada/stx-openstack-apply.log + kubectl -n openstack get po + kubectl -n openstack logs nova-compute-compute-0-75ea0372-nmtz2 + kubectl -n openstack exec -it nova-compute-compute-0-31b0f4b3-2rqgf -- bash + kubectl -n openstack describe pod nova-compute-compute-0-31b0f4b3-2rqgf + kubectl -n openstack get pod nova-compute-compute-0-31b0f4b3-2rqgf -o yaml + /var/log/container/*.log //To see related pod logs for issue debug + diff --git a/doc/source/developer_resources/move_version.rst b/doc/source/developer_resources/move_version.rst deleted file mode 100644 index 108357c5b..000000000 --- a/doc/source/developer_resources/move_version.rst +++ /dev/null @@ -1,16 +0,0 @@ -================================ -Move to New Version of StarlingX -================================ - -This is a stub page for the topic: Move to New Version of StarlingX. You can help StarlingX by -expanding the content. - -See the story for additional information about what is needed: -`Add Move to New Version Guide `_ - -For information about contributing to the StarlingX documentation, see the -:doc:`/contributor/doc_contribute_guide`. - -.. contents:: - :local: - :depth: 1 \ No newline at end of file