diff --git a/tools/deployment/armada/035-armada-update-uuid.sh b/tools/deployment/armada/035-armada-update-uuid.sh new file mode 100755 index 0000000000..7e0cee2233 --- /dev/null +++ b/tools/deployment/armada/035-armada-update-uuid.sh @@ -0,0 +1,55 @@ +#!/bin/bash + +# Copyright 2017 The Openstack-Helm Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +set -xe + +# NOTE(srwilkers): source all passwords and environment variables used in the original +# manifests +while read -r line; do $line; done < /tmp/osh-passwords.env +: ${OSH_INFRA_PATH:="../openstack-helm-infra"} +: ${OSH_PATH:="./"} + +export CEPH_NETWORK=$(./tools/deployment/multinode/kube-node-subnet.sh) +export CEPH_FS_ID="$(cat /tmp/ceph-fs-uuid.txt)" +export RELEASE_UUID=$(uuidgen) +export TUNNEL_DEVICE=$(ip -4 route list 0/0 | awk '{ print $5; exit }') +export OSH_INFRA_PATH +export OSH_PATH + +# NOTE(srwilkers): We add this here due to envsubst expanding the ${tag} placeholder in +# fluentd's configuration. This ensures the placeholder value gets rendered appropriately +export tag='${tag}' + +manifests="armada-cluster-ingress armada-ceph" +for manifest in $manifests; do + echo "Rendering updated-$manifest manifest" + envsubst < ${OSH_INFRA_PATH}/tools/deployment/armada/manifests/$manifest.yaml > /tmp/updated-$manifest.yaml + + echo "Validating updated-$manifest manifest" + armada validate /tmp/updated-$manifest.yaml + + echo "Applying updated-$manifest manifest" + armada apply /tmp/updated-$manifest.yaml +done + +echo "Rendering updated-armada-osh manifest" +envsubst < ./tools/deployment/armada/manifests/armada-osh.yaml > /tmp/updated-armada-osh.yaml + +echo "Validating updated-armada-osh manifest" +armada validate /tmp/updated-armada-osh.yaml + +echo "Applying updated-armada-osh manifest" +armada apply /tmp/updated-armada-osh.yaml diff --git a/tools/gate/playbooks/armada-update-uuid-deploy.yaml b/tools/gate/playbooks/armada-update-uuid-deploy.yaml new file mode 100644 index 0000000000..3a73603591 --- /dev/null +++ b/tools/gate/playbooks/armada-update-uuid-deploy.yaml @@ -0,0 +1,84 @@ +# Copyright 2017 The Openstack-Helm Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +- hosts: primary + gather_facts: True + tasks: + - name: installing ipcalc on Ubuntu + become: true + become_user: root + when: ansible_distribution == 'Debian' or ansible_distribution == 'Ubuntu' + apt: + name: ipcalc + state: present + - name: Install python3-pip for armada + environment: + OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}" + OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}" + zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}" + shell: | + set xe; + ./tools/deployment/armada/010-armada-host-setup.sh + args: + chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}" + - name: Build armada + environment: + OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}" + OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}" + zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}" + shell: | + set xe; + ./tools/deployment/armada/015-armada-build.sh + args: + chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}" + - name: Render all Armada manifests + environment: + OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}" + OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}" + zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}" + shell: | + set -xe; + ./tools/deployment/armada/020-armada-render-manifests.sh + args: + chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}" + - name: Validate all Armada manifests + environment: + OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}" + OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}" + zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}" + shell: | + set -xe; + ./tools/deployment/armada/025-armada-validate-manifests.sh + args: + chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}" + - name: Apply all Armada manifests + environment: + OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}" + OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}" + zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}" + shell: | + set -xe; + ./tools/deployment/armada/030-armada-apply-manifests.sh + args: + chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}" + - name: Updated release uuid for all manifests and reapply + environment: + OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args_relative_path | default('') }}" + OSH_INFRA_PATH: "{{ zuul_osh_infra_relative_path | default('') }}" + zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}" + shell: | + set -xe; + ./tools/deployment/armada/035-armada-update-uuid.sh + args: + chdir: "{{ zuul_osh_relative_path | default(zuul.project.src_dir) }}" diff --git a/tools/gate/playbooks/gather-armada-manifests.yaml b/tools/gate/playbooks/gather-armada-manifests.yaml index 7be17497a7..46da1ff959 100644 --- a/tools/gate/playbooks/gather-armada-manifests.yaml +++ b/tools/gate/playbooks/gather-armada-manifests.yaml @@ -26,6 +26,10 @@ - armada-cluster-ingress - armada-ceph - armada-osh + - updated-armada-cluster-ingress + - updated-armada-ceph + - updated-armada-lma + - updated-armada-osh args: executable: /bin/bash ignore_errors: True diff --git a/zuul.d/jobs-openstack-helm.yaml b/zuul.d/jobs-openstack-helm.yaml index 731a02caa3..6144659ae4 100644 --- a/zuul.d/jobs-openstack-helm.yaml +++ b/zuul.d/jobs-openstack-helm.yaml @@ -201,6 +201,34 @@ - ./tools/deployment/armada/025-armada-validate-manifests.sh - ./tools/deployment/armada/030-armada-apply-manifests.sh +- job: + timeout: 9600 + name: openstack-helm-armada-update-uuid + parent: openstack-helm-functional-temp + nodeset: openstack-helm-five-node-ubuntu + roles: + - zuul: openstack/openstack-helm-infra + pre-run: + - tools/gate/playbooks/osh-infra-upgrade-host.yaml + - tools/gate/playbooks/osh-infra-deploy-docker.yaml + - tools/gate/playbooks/osh-infra-build.yaml + - tools/gate/playbooks/osh-infra-deploy-k8s.yaml + run: tools/gate/playbooks/osh-gate-runner.yaml + post-run: + - tools/gate/playbooks/osh-infra-collect-logs.yaml + - tools/gate/playbooks/gather-armada-manifests.yaml + required-projects: + - openstack/openstack-helm-infra + vars: + zuul_osh_infra_relative_path: ../openstack-helm-infra/ + gate_scripts: + - ./tools/deployment/armada/010-armada-host-setup.sh + - ./tools/deployment/armada/015-armada-build.sh + - ./tools/deployment/armada/020-armada-render-manifests.sh + - ./tools/deployment/armada/025-armada-validate-manifests.sh + - ./tools/deployment/armada/030-armada-apply-manifests.sh + - ./tools/deployment/armada/035-armada-update-uuid.sh + - job: name: openstack-helm-multinode-temp-ubuntu parent: openstack-helm-multinode-temp diff --git a/zuul.d/project.yaml b/zuul.d/project.yaml index da7384c3b4..4124faa71d 100644 --- a/zuul.d/project.yaml +++ b/zuul.d/project.yaml @@ -45,6 +45,7 @@ - openstack-helm-multinode-temp-ubuntu - openstack-helm-ironic-ubuntu - openstack-helm-armada-deploy + - openstack-helm-armada-update-uuid experimental: jobs: # - openstack-helm-multinode-temp-centos @@ -52,3 +53,4 @@ # - openstack-helm-multinode-temp-fedora # - openstack-helm-multinode-temp-tempest - openstack-helm-armada-deploy + - openstack-helm-armada-update-uuid