Reorganise into roles
Reorganise the ansible config into distinct roles. This will make managing templates and default variables cleaner. I have tested this as best I can locally. Change-Id: Ib0be8dde453064336fd2e69afe466f4d64956743
This commit is contained in:
parent
9d61fc94c3
commit
3c4120fc28
@ -1,76 +1,3 @@
|
|||||||
- hosts: all
|
- hosts: all
|
||||||
tasks:
|
roles:
|
||||||
|
- charmbuild
|
||||||
- name: lxd apt packages are not present
|
|
||||||
apt:
|
|
||||||
name:
|
|
||||||
- lxd
|
|
||||||
- lxd-client
|
|
||||||
state: absent
|
|
||||||
purge: true
|
|
||||||
become: true
|
|
||||||
|
|
||||||
- name: snapd is installed
|
|
||||||
apt:
|
|
||||||
name: snapd
|
|
||||||
become: true
|
|
||||||
|
|
||||||
- name: lxd snap is installed
|
|
||||||
snap:
|
|
||||||
name: lxd
|
|
||||||
channel: latest/stable
|
|
||||||
become: true
|
|
||||||
|
|
||||||
- name: lxd is initialised
|
|
||||||
command: lxd init --auto
|
|
||||||
become: true
|
|
||||||
|
|
||||||
- name: current user is in lxd group
|
|
||||||
user:
|
|
||||||
name: "{{ ansible_user }}"
|
|
||||||
groups: lxd
|
|
||||||
append: true
|
|
||||||
become: true
|
|
||||||
|
|
||||||
- name: reset ssh connection to apply permissions from new group
|
|
||||||
meta: reset_connection
|
|
||||||
|
|
||||||
- name: charmcraft is installed
|
|
||||||
snap:
|
|
||||||
name: charmcraft
|
|
||||||
channel: latest/stable
|
|
||||||
classic: true
|
|
||||||
become: true
|
|
||||||
|
|
||||||
- name: charm is packed
|
|
||||||
command:
|
|
||||||
cmd: charmcraft --verbosity trace pack
|
|
||||||
chdir: "{{ zuul.project.src_dir }}"
|
|
||||||
|
|
||||||
- name: local charm is named consistently
|
|
||||||
command:
|
|
||||||
cmd: ./rename.sh
|
|
||||||
chdir: "{{ zuul.project.src_dir }}"
|
|
||||||
|
|
||||||
- name: Compress built charm
|
|
||||||
archive:
|
|
||||||
dest: "{{ zuul.project.src_dir }}/{{ charm_build_name }}.charm.gz"
|
|
||||||
path: "{{ zuul.project.src_dir }}/{{ charm_build_name }}.charm"
|
|
||||||
format: gz
|
|
||||||
|
|
||||||
- name: built charm is available in the zuul log root for auto artifact upload
|
|
||||||
fetch:
|
|
||||||
src: "{{ zuul.project.src_dir }}/{{ charm_build_name }}.charm.gz"
|
|
||||||
dest: "{{ zuul.executor.log_root }}/"
|
|
||||||
flat: true
|
|
||||||
become: true
|
|
||||||
|
|
||||||
- name: Upload artifacts
|
|
||||||
zuul_return:
|
|
||||||
data:
|
|
||||||
zuul:
|
|
||||||
artifacts:
|
|
||||||
- name: charm
|
|
||||||
url: "{{ charm_build_name }}.charm.gz"
|
|
||||||
metadata:
|
|
||||||
type: charm
|
|
||||||
|
@ -1,124 +0,0 @@
|
|||||||
- hosts: all
|
|
||||||
name: Microk8s setup
|
|
||||||
roles:
|
|
||||||
- use-docker-mirror
|
|
||||||
tasks:
|
|
||||||
- name: snapd is installed
|
|
||||||
apt:
|
|
||||||
name: snapd
|
|
||||||
become: true
|
|
||||||
|
|
||||||
- name: microk8s is installed
|
|
||||||
snap:
|
|
||||||
name: microk8s
|
|
||||||
classic: true
|
|
||||||
become: true
|
|
||||||
|
|
||||||
- name: current user is in microk8s group
|
|
||||||
user:
|
|
||||||
name: "{{ ansible_user }}"
|
|
||||||
groups: microk8s
|
|
||||||
append: true
|
|
||||||
become: true
|
|
||||||
|
|
||||||
- name: reset ssh connection to apply permissions from new group
|
|
||||||
meta: reset_connection
|
|
||||||
|
|
||||||
- name: microk8s status
|
|
||||||
command:
|
|
||||||
cmd: microk8s status
|
|
||||||
|
|
||||||
- name: Create docker.io certs dir
|
|
||||||
when:
|
|
||||||
- docker_mirror is defined
|
|
||||||
file:
|
|
||||||
path: /var/snap/microk8s/current/args/certs.d/docker.io
|
|
||||||
state: directory
|
|
||||||
owner: root
|
|
||||||
group: microk8s
|
|
||||||
mode: '0770'
|
|
||||||
|
|
||||||
- name: Render microk8s registry mirror template
|
|
||||||
when:
|
|
||||||
- docker_mirror is defined
|
|
||||||
template:
|
|
||||||
src: hosts.j2
|
|
||||||
dest: /var/snap/microk8s/current/args/certs.d/docker.io/hosts.toml
|
|
||||||
group: microk8s
|
|
||||||
vars:
|
|
||||||
mirror_location: "{{ docker_mirror }}"
|
|
||||||
server: https://docker.io
|
|
||||||
|
|
||||||
- name: Check docker.io hosts.toml
|
|
||||||
when:
|
|
||||||
- docker_mirror is defined
|
|
||||||
command:
|
|
||||||
cmd: cat /var/snap/microk8s/current/args/certs.d/docker.io/hosts.toml
|
|
||||||
|
|
||||||
- name: microk8s is started
|
|
||||||
command:
|
|
||||||
cmd: microk8s start
|
|
||||||
|
|
||||||
- name: microk8s is running and ready
|
|
||||||
command:
|
|
||||||
cmd: microk8s status --wait-ready
|
|
||||||
register: res
|
|
||||||
failed_when: '"is running" not in res.stdout'
|
|
||||||
|
|
||||||
- name: microk8s dns addon is enabled
|
|
||||||
command:
|
|
||||||
cmd: microk8s enable dns
|
|
||||||
register: res
|
|
||||||
changed_when: '"already enabled" not in res.stdout'
|
|
||||||
|
|
||||||
- name: microk8s hostpath storage addon is enabled
|
|
||||||
command:
|
|
||||||
cmd: microk8s enable hostpath-storage
|
|
||||||
register: res
|
|
||||||
changed_when: '"already enabled" not in res.stdout'
|
|
||||||
|
|
||||||
- name: microk8s metallb addon is enabled
|
|
||||||
command:
|
|
||||||
# ip range is an arbitrary choice; may need to be changed later
|
|
||||||
cmd: microk8s enable metallb:10.170.0.1-10.170.0.100
|
|
||||||
register: res
|
|
||||||
changed_when: '"already enabled" not in res.stdout'
|
|
||||||
|
|
||||||
- name: microk8s addons are ready
|
|
||||||
command:
|
|
||||||
cmd: microk8s status --format short
|
|
||||||
register: res
|
|
||||||
retries: 18
|
|
||||||
delay: 10 # 18 * 10 = 3 minutes
|
|
||||||
until: >
|
|
||||||
"core/dns: enabled" in res.stdout and
|
|
||||||
"core/hostpath-storage: enabled" in res.stdout and
|
|
||||||
"core/metallb: enabled" in res.stdout
|
|
||||||
changed_when: res.attempts > 1
|
|
||||||
|
|
||||||
- name: juju is installed
|
|
||||||
snap:
|
|
||||||
name: juju
|
|
||||||
classic: true
|
|
||||||
channel: "{{ juju_channel | default('latest/stable') }}"
|
|
||||||
become: true
|
|
||||||
|
|
||||||
- name: juju is bootstrapped on microk8s
|
|
||||||
command:
|
|
||||||
cmd: juju bootstrap --agent-version=2.9.34 microk8s microk8s
|
|
||||||
register: res
|
|
||||||
changed_when: '"already exists" not in res.stderr'
|
|
||||||
failed_when: '"ERROR" in res.stderr and "already exists" not in res.stderr'
|
|
||||||
|
|
||||||
- name: current juju controller is microk8s
|
|
||||||
command:
|
|
||||||
cmd: juju switch microk8s
|
|
||||||
register: res
|
|
||||||
changed_when: '"no change" not in res.stderr'
|
|
||||||
|
|
||||||
- name: Collect snap versions
|
|
||||||
command: snap list
|
|
||||||
register: snap_out
|
|
||||||
|
|
||||||
- name: Show snap versions
|
|
||||||
debug: msg="{{ snap_out.stdout }}"
|
|
@ -1,56 +0,0 @@
|
|||||||
- hosts: all
|
|
||||||
tasks:
|
|
||||||
- name: Create destination for logs
|
|
||||||
file:
|
|
||||||
path: "{{ zuul.project.src_dir }}/log"
|
|
||||||
state: directory
|
|
||||||
mode: 0755
|
|
||||||
- name: debug logs replay
|
|
||||||
args:
|
|
||||||
executable: /bin/bash
|
|
||||||
shell: |
|
|
||||||
set -o pipefail
|
|
||||||
MODEL="$(juju models --format=json | jq -r '.models[]["short-name"]' | grep '^zaza-')"
|
|
||||||
juju switch $MODEL
|
|
||||||
juju debug-log --replay > {{ zuul.project.src_dir }}/log/debug-hooks.txt
|
|
||||||
exit 0
|
|
||||||
- name: debug describe pods
|
|
||||||
args:
|
|
||||||
executable: /bin/bash
|
|
||||||
shell: |
|
|
||||||
set -o pipefail
|
|
||||||
MODEL="$(juju models --format=json | jq -r '.models[]["short-name"]' | grep '^zaza-')"
|
|
||||||
microk8s.kubectl describe -n $MODEL pods > {{ zuul.project.src_dir }}/log/describe-pods.txt
|
|
||||||
exit 0
|
|
||||||
- name: juju status
|
|
||||||
args:
|
|
||||||
executable: /bin/bash
|
|
||||||
shell: |
|
|
||||||
set -o pipefail
|
|
||||||
for model in $(juju models | grep zaza- | awk '{gsub(/\*?/,""); print $1}'); do
|
|
||||||
juju status -m $model > {{ zuul.project.src_dir }}/log/juju-status.$model.txt
|
|
||||||
juju status -m $model --format=yaml > {{ zuul.project.src_dir }}/log/juju-status.$model.yaml
|
|
||||||
done
|
|
||||||
- name: Collect var logs
|
|
||||||
args:
|
|
||||||
executable: /bin/bash
|
|
||||||
shell: |
|
|
||||||
set -o pipefail
|
|
||||||
MODEL_NAME=$(juju models --format=json | jq -r '.models[]["short-name"]' | grep '^zaza-')
|
|
||||||
UNITS=$(juju status --format oneline | awk '{print $2}' | sed -e 's!:!!' | grep -Ev '^$' | paste -s -d' ')
|
|
||||||
for UNIT_NAME in $UNITS; do
|
|
||||||
POD_NAME=$(echo $UNIT_NAME | sed -e 's!/!-!')
|
|
||||||
CONTAINERS=$(microk8s.kubectl get pods -n $MODEL_NAME $POD_NAME -o jsonpath='{.spec.containers[*].name}' | sed -e 's/charm //')
|
|
||||||
for CONTAINER in $CONTAINERS; do
|
|
||||||
juju ssh --container $CONTAINER -m $MODEL_NAME $UNIT_NAME "tar zcf /tmp/logs.tgz /var/log/"
|
|
||||||
juju scp --container $CONTAINER -m $MODEL_NAME $UNIT_NAME:/tmp/logs.tgz {{ zuul.project.src_dir }}/log/$POD_NAME-$CONTAINER.tgz
|
|
||||||
done
|
|
||||||
done
|
|
||||||
- name: fetch juju logs
|
|
||||||
synchronize:
|
|
||||||
dest: "{{ zuul.executor.log_root }}"
|
|
||||||
mode: pull
|
|
||||||
src: "{{ zuul.project.src_dir }}/log"
|
|
||||||
verify_host: true
|
|
||||||
owner: false
|
|
||||||
group: false
|
|
@ -1,29 +1,6 @@
|
|||||||
- hosts: all
|
- hosts: all
|
||||||
tasks:
|
roles:
|
||||||
- name: test runner packages are installed
|
- use-docker-mirror
|
||||||
apt:
|
- microk8s-cloud
|
||||||
name:
|
- zaza-smoke-test
|
||||||
- tox
|
- collect-run-data
|
||||||
- jq
|
|
||||||
- gzip
|
|
||||||
become: true
|
|
||||||
|
|
||||||
- name: built charm is present locally (artefact from previous job)
|
|
||||||
include_role:
|
|
||||||
name: download-artifact
|
|
||||||
vars:
|
|
||||||
download_artifact_api: "https://zuul.opendev.org/api/tenant/{{ zuul.tenant }}"
|
|
||||||
download_artifact_type: charm
|
|
||||||
download_artifact_pipeline: check
|
|
||||||
download_artifact_job: charmbuild
|
|
||||||
download_artifact_directory: "{{ zuul.project.src_dir }}"
|
|
||||||
|
|
||||||
- name: Gunzip built charm
|
|
||||||
command:
|
|
||||||
cmd: gunzip {{ charm_build_name }}.charm.gz
|
|
||||||
chdir: "{{ zuul.project.src_dir }}"
|
|
||||||
|
|
||||||
- name: run smoke tests
|
|
||||||
command:
|
|
||||||
cmd: tox -e func-smoke
|
|
||||||
chdir: "{{ zuul.project.src_dir }}"
|
|
||||||
|
73
roles/charmbuild/tasks/main.yaml
Normal file
73
roles/charmbuild/tasks/main.yaml
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
- name: lxd apt packages are not present
|
||||||
|
apt:
|
||||||
|
name:
|
||||||
|
- lxd
|
||||||
|
- lxd-client
|
||||||
|
state: absent
|
||||||
|
purge: true
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- name: snapd is installed
|
||||||
|
apt:
|
||||||
|
name: snapd
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- name: lxd snap is installed
|
||||||
|
snap:
|
||||||
|
name: lxd
|
||||||
|
channel: latest/stable
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- name: lxd is initialised
|
||||||
|
command: lxd init --auto
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- name: current user is in lxd group
|
||||||
|
user:
|
||||||
|
name: "{{ ansible_user }}"
|
||||||
|
groups: lxd
|
||||||
|
append: true
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- name: reset ssh connection to apply permissions from new group
|
||||||
|
meta: reset_connection
|
||||||
|
|
||||||
|
- name: charmcraft is installed
|
||||||
|
snap:
|
||||||
|
name: charmcraft
|
||||||
|
channel: latest/stable
|
||||||
|
classic: true
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- name: charm is packed
|
||||||
|
command:
|
||||||
|
cmd: charmcraft --verbosity trace pack
|
||||||
|
chdir: "{{ zuul.project.src_dir }}"
|
||||||
|
|
||||||
|
- name: local charm is named consistently
|
||||||
|
command:
|
||||||
|
cmd: ./rename.sh
|
||||||
|
chdir: "{{ zuul.project.src_dir }}"
|
||||||
|
|
||||||
|
- name: Compress built charm
|
||||||
|
archive:
|
||||||
|
dest: "{{ zuul.project.src_dir }}/{{ charm_build_name }}.charm.gz"
|
||||||
|
path: "{{ zuul.project.src_dir }}/{{ charm_build_name }}.charm"
|
||||||
|
format: gz
|
||||||
|
|
||||||
|
- name: built charm is available in the zuul log root for auto artifact upload
|
||||||
|
fetch:
|
||||||
|
src: "{{ zuul.project.src_dir }}/{{ charm_build_name }}.charm.gz"
|
||||||
|
dest: "{{ zuul.executor.log_root }}/"
|
||||||
|
flat: true
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- name: Upload artifacts
|
||||||
|
zuul_return:
|
||||||
|
data:
|
||||||
|
zuul:
|
||||||
|
artifacts:
|
||||||
|
- name: charm
|
||||||
|
url: "{{ charm_build_name }}.charm.gz"
|
||||||
|
metadata:
|
||||||
|
type: charm
|
54
roles/collect-run-data/tasks/main.yaml
Normal file
54
roles/collect-run-data/tasks/main.yaml
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
- name: Create destination for logs
|
||||||
|
file:
|
||||||
|
path: "{{ zuul.project.src_dir }}/log"
|
||||||
|
state: directory
|
||||||
|
mode: 0755
|
||||||
|
- name: debug logs replay
|
||||||
|
args:
|
||||||
|
executable: /bin/bash
|
||||||
|
shell: |
|
||||||
|
set -o pipefail
|
||||||
|
MODEL="$(juju models --format=json | jq -r '.models[]["short-name"]' | grep '^zaza-')"
|
||||||
|
juju switch $MODEL
|
||||||
|
juju debug-log --replay > {{ zuul.project.src_dir }}/log/debug-hooks.txt
|
||||||
|
exit 0
|
||||||
|
- name: debug describe pods
|
||||||
|
args:
|
||||||
|
executable: /bin/bash
|
||||||
|
shell: |
|
||||||
|
set -o pipefail
|
||||||
|
MODEL="$(juju models --format=json | jq -r '.models[]["short-name"]' | grep '^zaza-')"
|
||||||
|
microk8s.kubectl describe -n $MODEL pods > {{ zuul.project.src_dir }}/log/describe-pods.txt
|
||||||
|
exit 0
|
||||||
|
- name: juju status
|
||||||
|
args:
|
||||||
|
executable: /bin/bash
|
||||||
|
shell: |
|
||||||
|
set -o pipefail
|
||||||
|
for model in $(juju models | grep zaza- | awk '{gsub(/\*?/,""); print $1}'); do
|
||||||
|
juju status -m $model > {{ zuul.project.src_dir }}/log/juju-status.$model.txt
|
||||||
|
juju status -m $model --format=yaml > {{ zuul.project.src_dir }}/log/juju-status.$model.yaml
|
||||||
|
done
|
||||||
|
- name: Collect var logs
|
||||||
|
args:
|
||||||
|
executable: /bin/bash
|
||||||
|
shell: |
|
||||||
|
set -o pipefail
|
||||||
|
MODEL_NAME=$(juju models --format=json | jq -r '.models[]["short-name"]' | grep '^zaza-')
|
||||||
|
UNITS=$(juju status --format oneline | awk '{print $2}' | sed -e 's!:!!' | grep -Ev '^$' | paste -s -d' ')
|
||||||
|
for UNIT_NAME in $UNITS; do
|
||||||
|
POD_NAME=$(echo $UNIT_NAME | sed -e 's!/!-!')
|
||||||
|
CONTAINERS=$(microk8s.kubectl get pods -n $MODEL_NAME $POD_NAME -o jsonpath='{.spec.containers[*].name}' | sed -e 's/charm //')
|
||||||
|
for CONTAINER in $CONTAINERS; do
|
||||||
|
juju ssh --container $CONTAINER -m $MODEL_NAME $UNIT_NAME "tar zcf /tmp/logs.tgz /var/log/"
|
||||||
|
juju scp --container $CONTAINER -m $MODEL_NAME $UNIT_NAME:/tmp/logs.tgz {{ zuul.project.src_dir }}/log/$POD_NAME-$CONTAINER.tgz
|
||||||
|
done
|
||||||
|
done
|
||||||
|
- name: fetch juju logs
|
||||||
|
synchronize:
|
||||||
|
dest: "{{ zuul.executor.log_root }}"
|
||||||
|
mode: pull
|
||||||
|
src: "{{ zuul.project.src_dir }}/log"
|
||||||
|
verify_host: true
|
||||||
|
owner: false
|
||||||
|
group: false
|
119
roles/microk8s-cloud/tasks/main.yaml
Normal file
119
roles/microk8s-cloud/tasks/main.yaml
Normal file
@ -0,0 +1,119 @@
|
|||||||
|
- name: snapd is installed
|
||||||
|
apt:
|
||||||
|
name: snapd
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- name: microk8s is installed
|
||||||
|
snap:
|
||||||
|
name: microk8s
|
||||||
|
classic: true
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- name: current user is in microk8s group
|
||||||
|
user:
|
||||||
|
name: "{{ ansible_user }}"
|
||||||
|
groups: microk8s
|
||||||
|
append: true
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- name: reset ssh connection to apply permissions from new group
|
||||||
|
meta: reset_connection
|
||||||
|
|
||||||
|
- name: microk8s status
|
||||||
|
command:
|
||||||
|
cmd: microk8s status
|
||||||
|
|
||||||
|
- name: Create docker.io certs dir
|
||||||
|
when:
|
||||||
|
- docker_mirror is defined
|
||||||
|
file:
|
||||||
|
path: /var/snap/microk8s/current/args/certs.d/docker.io
|
||||||
|
state: directory
|
||||||
|
owner: root
|
||||||
|
group: microk8s
|
||||||
|
mode: '0770'
|
||||||
|
|
||||||
|
- name: Render microk8s registry mirror template
|
||||||
|
when:
|
||||||
|
- docker_mirror is defined
|
||||||
|
template:
|
||||||
|
src: hosts.j2
|
||||||
|
dest: /var/snap/microk8s/current/args/certs.d/docker.io/hosts.toml
|
||||||
|
group: microk8s
|
||||||
|
vars:
|
||||||
|
mirror_location: "{{ docker_mirror }}"
|
||||||
|
server: https://docker.io
|
||||||
|
|
||||||
|
- name: Check docker.io hosts.toml
|
||||||
|
when:
|
||||||
|
- docker_mirror is defined
|
||||||
|
command:
|
||||||
|
cmd: cat /var/snap/microk8s/current/args/certs.d/docker.io/hosts.toml
|
||||||
|
|
||||||
|
- name: microk8s is started
|
||||||
|
command:
|
||||||
|
cmd: microk8s start
|
||||||
|
|
||||||
|
- name: microk8s is running and ready
|
||||||
|
command:
|
||||||
|
cmd: microk8s status --wait-ready
|
||||||
|
register: res
|
||||||
|
failed_when: '"is running" not in res.stdout'
|
||||||
|
|
||||||
|
- name: microk8s dns addon is enabled
|
||||||
|
command:
|
||||||
|
cmd: microk8s enable dns
|
||||||
|
register: res
|
||||||
|
changed_when: '"already enabled" not in res.stdout'
|
||||||
|
|
||||||
|
- name: microk8s hostpath storage addon is enabled
|
||||||
|
command:
|
||||||
|
cmd: microk8s enable hostpath-storage
|
||||||
|
register: res
|
||||||
|
changed_when: '"already enabled" not in res.stdout'
|
||||||
|
|
||||||
|
- name: microk8s metallb addon is enabled
|
||||||
|
command:
|
||||||
|
# ip range is an arbitrary choice; may need to be changed later
|
||||||
|
cmd: microk8s enable metallb:10.170.0.1-10.170.0.100
|
||||||
|
register: res
|
||||||
|
changed_when: '"already enabled" not in res.stdout'
|
||||||
|
|
||||||
|
- name: microk8s addons are ready
|
||||||
|
command:
|
||||||
|
cmd: microk8s status --format short
|
||||||
|
register: res
|
||||||
|
retries: 18
|
||||||
|
delay: 10 # 18 * 10 = 3 minutes
|
||||||
|
until: >
|
||||||
|
"core/dns: enabled" in res.stdout and
|
||||||
|
"core/hostpath-storage: enabled" in res.stdout and
|
||||||
|
"core/metallb: enabled" in res.stdout
|
||||||
|
changed_when: res.attempts > 1
|
||||||
|
|
||||||
|
- name: juju is installed
|
||||||
|
snap:
|
||||||
|
name: juju
|
||||||
|
classic: true
|
||||||
|
channel: "{{ juju_channel | default('latest/stable') }}"
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- name: juju is bootstrapped on microk8s
|
||||||
|
command:
|
||||||
|
cmd: juju bootstrap --agent-version=2.9.34 microk8s microk8s
|
||||||
|
register: res
|
||||||
|
changed_when: '"already exists" not in res.stderr'
|
||||||
|
failed_when: '"ERROR" in res.stderr and "already exists" not in res.stderr'
|
||||||
|
|
||||||
|
- name: current juju controller is microk8s
|
||||||
|
command:
|
||||||
|
cmd: juju switch microk8s
|
||||||
|
register: res
|
||||||
|
changed_when: '"no change" not in res.stderr'
|
||||||
|
|
||||||
|
- name: Collect snap versions
|
||||||
|
command: snap list
|
||||||
|
register: snap_out
|
||||||
|
|
||||||
|
- name: Show snap versions
|
||||||
|
debug: msg="{{ snap_out.stdout }}"
|
27
roles/zaza-smoke-test/tasks/main.yaml
Normal file
27
roles/zaza-smoke-test/tasks/main.yaml
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
- name: test runner packages are installed
|
||||||
|
apt:
|
||||||
|
name:
|
||||||
|
- tox
|
||||||
|
- jq
|
||||||
|
- gzip
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- name: built charm is present locally (artefact from previous job)
|
||||||
|
include_role:
|
||||||
|
name: download-artifact
|
||||||
|
vars:
|
||||||
|
download_artifact_api: "https://zuul.opendev.org/api/tenant/{{ zuul.tenant }}"
|
||||||
|
download_artifact_type: charm
|
||||||
|
download_artifact_pipeline: check
|
||||||
|
download_artifact_job: charmbuild
|
||||||
|
download_artifact_directory: "{{ zuul.project.src_dir }}"
|
||||||
|
|
||||||
|
- name: Gunzip built charm
|
||||||
|
command:
|
||||||
|
cmd: gunzip {{ charm_build_name }}.charm.gz
|
||||||
|
chdir: "{{ zuul.project.src_dir }}"
|
||||||
|
|
||||||
|
- name: run smoke tests
|
||||||
|
command:
|
||||||
|
cmd: tox -e func-smoke
|
||||||
|
chdir: "{{ zuul.project.src_dir }}"
|
@ -3,11 +3,10 @@
|
|||||||
run: playbooks/charmbuild.yaml
|
run: playbooks/charmbuild.yaml
|
||||||
provides: charm
|
provides: charm
|
||||||
timeout: 3600
|
timeout: 3600
|
||||||
|
|
||||||
- job:
|
- job:
|
||||||
name: zaza-smoke-test
|
name: zaza-smoke-test
|
||||||
pre-run: playbooks/microk8s-cloud.yaml
|
|
||||||
run: playbooks/zaza-smoke-test.yaml
|
run: playbooks/zaza-smoke-test.yaml
|
||||||
post-run: playbooks/microk8s-juju-post.yaml
|
|
||||||
requires: charm
|
requires: charm
|
||||||
dependencies:
|
dependencies:
|
||||||
- name: charmbuild
|
- name: charmbuild
|
||||||
|
Loading…
x
Reference in New Issue
Block a user