
Migrate tests from microk8s to ck8s. Bootstrap a controller on a manual cloud, and add ck8s to available clouds. Upgrade juju to 3.5 Configure ephemeral device when available, configure k8s to use it for local storage. Change-Id: Ief491f8b339307f0c43d11639336b02d9f6479b4 Signed-off-by: Guillaume Boutry <guillaume.boutry@canonical.com>
56 lines
2.5 KiB
YAML
56 lines
2.5 KiB
YAML
- name: collect k8s logs
|
|
args:
|
|
executable: /bin/bash
|
|
shell: |
|
|
snap logs -n all k8s > "{{ zuul.project.src_dir }}/log/k8s-logs.txt"
|
|
become: true
|
|
failed_when: false
|
|
- name: get main resources state
|
|
args:
|
|
executable: /bin/bash
|
|
shell: |
|
|
k8s kubectl get all --all-namespaces > "{{ zuul.project.src_dir }}/log/k8s-get-all.txt"
|
|
become: true
|
|
failed_when: false
|
|
- name: debug describe resources
|
|
args:
|
|
executable: /bin/bash
|
|
shell: |
|
|
set -o pipefail
|
|
sudo k8s kubectl describe nodes > {{ zuul.project.src_dir }}/log/describe-nodes.txt
|
|
sudo k8s kubectl describe pods -n kube-system > {{ zuul.project.src_dir }}/log/describe-pods-kube-system.txt
|
|
MODEL="$(juju models --format=json | jq -r '.models[]["short-name"]' | grep '^zaza-')"
|
|
sudo k8s kubectl describe -n $MODEL pods > {{ zuul.project.src_dir }}/log/describe-pods.txt
|
|
CONTROLLER_MODEL="$(sudo k8s kubectl get ns | grep controller | awk '{print $1}')"
|
|
sudo k8s kubectl describe -n $CONTROLLER_MODEL pods > {{ zuul.project.src_dir }}/log/describe-controller-pods.txt
|
|
exit 0
|
|
- 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=$(sudo k8s 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: Collect pods logs
|
|
args:
|
|
executable: /bin/bash
|
|
shell: |
|
|
set -o pipefail
|
|
LOG_FOLDER={{ zuul.project.src_dir }}/log/pods/
|
|
mkdir -p $LOG_FOLDER
|
|
sudo k8s kubectl logs -n kube-system deployment/coredns --all-containers > $LOG_FOLDER/coredns.log
|
|
MODEL_NAME=$(juju models --format=json | jq -r '.models[]["short-name"]' | grep '^zaza-')
|
|
for pod in $(sudo k8s kubectl get pods -n $MODEL_NAME -o=jsonpath='{.items[*].metadata.name}');
|
|
do
|
|
echo Collecting logs: $pod
|
|
sudo k8s kubectl logs --ignore-errors -n $MODEL_NAME --all-containers $pod > $LOG_FOLDER/$pod.log
|
|
done
|