test: stop collecting logs outside CI
diff --git a/molecule/default/destroy.yml b/molecule/default/destroy.yml
index b1c3516..b0d735c 100644
--- a/molecule/default/destroy.yml
+++ b/molecule/default/destroy.yml
@@ -25,116 +25,6 @@
when:
- ansible_host is not defined
- - name: Describe all cluster-scoped objects
- become: true
- shell: |-
- set -e
- export OBJECT_TYPE=node,clusterrole,clusterrolebinding,storageclass,namespace
- export PARALLELISM_FACTOR=4
- function list_objects () {
- printf ${OBJECT_TYPE} | xargs -d ',' -I {} -P1 -n1 bash -c 'echo "$@"' _ {}
- }
- export -f list_objects
- function name_objects () {
- export OBJECT=$1
- kubectl get ${OBJECT} -o name | xargs -L1 -I {} -P1 -n1 bash -c 'echo "${OBJECT} ${1#*/}"' _ {}
- }
- export -f name_objects
- function get_objects () {
- input=($1)
- export OBJECT=${input[0]}
- export NAME=${input[1]#*/}
- echo "${OBJECT}/${NAME}"
- DIR="{{ logs_dir }}/objects/cluster/${OBJECT}"
- mkdir -p ${DIR}
- kubectl get ${OBJECT} ${NAME} -o yaml > "${DIR}/${NAME}.yaml"
- kubectl describe ${OBJECT} ${NAME} > "${DIR}/${NAME}.txt"
- }
- export -f get_objects
- list_objects | \
- xargs -r -n 1 -P ${PARALLELISM_FACTOR} -I {} bash -c 'name_objects "$@"' _ {} | \
- xargs -r -n 1 -P ${PARALLELISM_FACTOR} -I {} bash -c 'get_objects "$@"' _ {}
- args:
- executable: /bin/bash
- ignore_errors: True
-
- - name: Describe all namespace-scoped objects
- become: true
- shell: |-
- set -e
- export OBJECT_TYPE=configmaps,cronjobs,daemonsets,deployment,endpoints,ingresses,jobs,networkpolicies,pods,podsecuritypolicies,persistentvolumeclaims,rolebindings,roles,secrets,serviceaccounts,services,statefulsets
- export PARALLELISM_FACTOR=4
- function get_namespaces () {
- kubectl get namespaces -o name | awk -F '/' '{ print $NF }'
- }
- function list_namespaced_objects () {
- export NAMESPACE=$1
- printf ${OBJECT_TYPE} | xargs -d ',' -I {} -P1 -n1 bash -c 'echo "${NAMESPACE} $@"' _ {}
- }
- export -f list_namespaced_objects
- function name_objects () {
- input=($1)
- export NAMESPACE=${input[0]}
- export OBJECT=${input[1]}
- kubectl get -n ${NAMESPACE} ${OBJECT} -o name | xargs -L1 -I {} -P1 -n1 bash -c 'echo "${NAMESPACE} ${OBJECT} $@"' _ {}
- }
- export -f name_objects
- function get_objects () {
- input=($1)
- export NAMESPACE=${input[0]}
- export OBJECT=${input[1]}
- export NAME=${input[2]#*/}
- echo "${NAMESPACE}/${OBJECT}/${NAME}"
- DIR="{{ logs_dir }}/objects/namespaced/${NAMESPACE}/${OBJECT}"
- mkdir -p ${DIR}
- kubectl get -n ${NAMESPACE} ${OBJECT} ${NAME} -o yaml > "${DIR}/${NAME}.yaml"
- kubectl describe -n ${NAMESPACE} ${OBJECT} ${NAME} > "${DIR}/${NAME}.txt"
- }
- export -f get_objects
- get_namespaces | \
- xargs -r -n 1 -P ${PARALLELISM_FACTOR} -I {} bash -c 'list_namespaced_objects "$@"' _ {} | \
- xargs -r -n 1 -P ${PARALLELISM_FACTOR} -I {} bash -c 'name_objects "$@"' _ {} | \
- xargs -r -n 1 -P ${PARALLELISM_FACTOR} -I {} bash -c 'get_objects "$@"' _ {}
- args:
- executable: /bin/bash
- ignore_errors: True
-
- - name: Retrieve all container logs, current and previous (if they exist)
- become: true
- shell: |-
- set -e
- PARALLELISM_FACTOR=4
- function get_namespaces () {
- kubectl get namespaces -o name | awk -F '/' '{ print $NF }'
- }
- function get_pods () {
- NAMESPACE=$1
- kubectl get pods -n ${NAMESPACE} -o name | awk -F '/' '{ print $NF }' | xargs -L1 -P 1 -I {} echo ${NAMESPACE} {}
- }
- export -f get_pods
- function get_pod_logs () {
- NAMESPACE=${1% *}
- POD=${1#* }
- INIT_CONTAINERS=$(kubectl get pod $POD -n ${NAMESPACE} -o jsonpath="{.spec.initContainers[*].name}")
- CONTAINERS=$(kubectl get pod $POD -n ${NAMESPACE} -o jsonpath="{.spec.containers[*].name}")
- for CONTAINER in ${INIT_CONTAINERS} ${CONTAINERS}; do
- echo "${NAMESPACE}/${POD}/${CONTAINER}"
- mkdir -p "{{ logs_dir }}/pod-logs/${NAMESPACE}/${POD}"
- mkdir -p "{{ logs_dir }}/pod-logs/failed-pods/${NAMESPACE}/${POD}"
- kubectl logs ${POD} -n ${NAMESPACE} -c ${CONTAINER} > "{{ logs_dir }}/pod-logs/${NAMESPACE}/${POD}/${CONTAINER}.txt"
- kubectl logs --previous ${POD} -n ${NAMESPACE} -c ${CONTAINER} > "{{ logs_dir }}/pod-logs/failed-pods/${NAMESPACE}/${POD}/${CONTAINER}.txt"
- done
- find {{ logs_dir }} -type f -empty -print -delete
- find {{ logs_dir }} -empty -type d -delete
- }
- export -f get_pod_logs
- get_namespaces | \
- xargs -r -n 1 -P ${PARALLELISM_FACTOR} -I {} bash -c 'get_pods "$@"' _ {} | \
- xargs -r -n 2 -P ${PARALLELISM_FACTOR} -I {} bash -c 'get_pod_logs "$@"' _ {}
- args:
- executable: /bin/bash
- ignore_errors: True
-
- name: Upload logs to object storage
ignore_errors: True
when:
@@ -144,6 +34,113 @@
build_id: "{{ lookup('env', 'GITHUB_RUN_ID') }}-{{ lookup('env', 'GITHUB_RUN_NUMBER') }}"
container_name: atmosphere-ci-logs
block:
+ - name: Describe all cluster-scoped objects
+ become: true
+ shell: |-
+ set -e
+ export OBJECT_TYPE=node,clusterrole,clusterrolebinding,storageclass,namespace
+ export PARALLELISM_FACTOR=4
+ function list_objects () {
+ printf ${OBJECT_TYPE} | xargs -d ',' -I {} -P1 -n1 bash -c 'echo "$@"' _ {}
+ }
+ export -f list_objects
+ function name_objects () {
+ export OBJECT=$1
+ kubectl get ${OBJECT} -o name | xargs -L1 -I {} -P1 -n1 bash -c 'echo "${OBJECT} ${1#*/}"' _ {}
+ }
+ export -f name_objects
+ function get_objects () {
+ input=($1)
+ export OBJECT=${input[0]}
+ export NAME=${input[1]#*/}
+ echo "${OBJECT}/${NAME}"
+ DIR="{{ logs_dir }}/objects/cluster/${OBJECT}"
+ mkdir -p ${DIR}
+ kubectl get ${OBJECT} ${NAME} -o yaml > "${DIR}/${NAME}.yaml"
+ kubectl describe ${OBJECT} ${NAME} > "${DIR}/${NAME}.txt"
+ }
+ export -f get_objects
+ list_objects | \
+ xargs -r -n 1 -P ${PARALLELISM_FACTOR} -I {} bash -c 'name_objects "$@"' _ {} | \
+ xargs -r -n 1 -P ${PARALLELISM_FACTOR} -I {} bash -c 'get_objects "$@"' _ {}
+ args:
+ executable: /bin/bash
+
+ - name: Describe all namespace-scoped objects
+ become: true
+ shell: |-
+ set -e
+ export OBJECT_TYPE=configmaps,cronjobs,daemonsets,deployment,endpoints,ingresses,jobs,networkpolicies,pods,podsecuritypolicies,persistentvolumeclaims,rolebindings,roles,secrets,serviceaccounts,services,statefulsets
+ export PARALLELISM_FACTOR=4
+ function get_namespaces () {
+ kubectl get namespaces -o name | awk -F '/' '{ print $NF }'
+ }
+ function list_namespaced_objects () {
+ export NAMESPACE=$1
+ printf ${OBJECT_TYPE} | xargs -d ',' -I {} -P1 -n1 bash -c 'echo "${NAMESPACE} $@"' _ {}
+ }
+ export -f list_namespaced_objects
+ function name_objects () {
+ input=($1)
+ export NAMESPACE=${input[0]}
+ export OBJECT=${input[1]}
+ kubectl get -n ${NAMESPACE} ${OBJECT} -o name | xargs -L1 -I {} -P1 -n1 bash -c 'echo "${NAMESPACE} ${OBJECT} $@"' _ {}
+ }
+ export -f name_objects
+ function get_objects () {
+ input=($1)
+ export NAMESPACE=${input[0]}
+ export OBJECT=${input[1]}
+ export NAME=${input[2]#*/}
+ echo "${NAMESPACE}/${OBJECT}/${NAME}"
+ DIR="{{ logs_dir }}/objects/namespaced/${NAMESPACE}/${OBJECT}"
+ mkdir -p ${DIR}
+ kubectl get -n ${NAMESPACE} ${OBJECT} ${NAME} -o yaml > "${DIR}/${NAME}.yaml"
+ kubectl describe -n ${NAMESPACE} ${OBJECT} ${NAME} > "${DIR}/${NAME}.txt"
+ }
+ export -f get_objects
+ get_namespaces | \
+ xargs -r -n 1 -P ${PARALLELISM_FACTOR} -I {} bash -c 'list_namespaced_objects "$@"' _ {} | \
+ xargs -r -n 1 -P ${PARALLELISM_FACTOR} -I {} bash -c 'name_objects "$@"' _ {} | \
+ xargs -r -n 1 -P ${PARALLELISM_FACTOR} -I {} bash -c 'get_objects "$@"' _ {}
+ args:
+ executable: /bin/bash
+
+ - name: Retrieve all container logs, current and previous (if they exist)
+ become: true
+ shell: |-
+ set -e
+ PARALLELISM_FACTOR=4
+ function get_namespaces () {
+ kubectl get namespaces -o name | awk -F '/' '{ print $NF }'
+ }
+ function get_pods () {
+ NAMESPACE=$1
+ kubectl get pods -n ${NAMESPACE} -o name | awk -F '/' '{ print $NF }' | xargs -L1 -P 1 -I {} echo ${NAMESPACE} {}
+ }
+ export -f get_pods
+ function get_pod_logs () {
+ NAMESPACE=${1% *}
+ POD=${1#* }
+ INIT_CONTAINERS=$(kubectl get pod $POD -n ${NAMESPACE} -o jsonpath="{.spec.initContainers[*].name}")
+ CONTAINERS=$(kubectl get pod $POD -n ${NAMESPACE} -o jsonpath="{.spec.containers[*].name}")
+ for CONTAINER in ${INIT_CONTAINERS} ${CONTAINERS}; do
+ echo "${NAMESPACE}/${POD}/${CONTAINER}"
+ mkdir -p "{{ logs_dir }}/pod-logs/${NAMESPACE}/${POD}"
+ mkdir -p "{{ logs_dir }}/pod-logs/failed-pods/${NAMESPACE}/${POD}"
+ kubectl logs ${POD} -n ${NAMESPACE} -c ${CONTAINER} > "{{ logs_dir }}/pod-logs/${NAMESPACE}/${POD}/${CONTAINER}.txt"
+ kubectl logs --previous ${POD} -n ${NAMESPACE} -c ${CONTAINER} > "{{ logs_dir }}/pod-logs/failed-pods/${NAMESPACE}/${POD}/${CONTAINER}.txt"
+ done
+ find {{ logs_dir }} -type f -empty -print -delete
+ find {{ logs_dir }} -empty -type d -delete
+ }
+ export -f get_pod_logs
+ get_namespaces | \
+ xargs -r -n 1 -P ${PARALLELISM_FACTOR} -I {} bash -c 'get_pods "$@"' _ {} | \
+ xargs -r -n 2 -P ${PARALLELISM_FACTOR} -I {} bash -c 'get_pod_logs "$@"' _ {}
+ args:
+ executable: /bin/bash
+
- name: Authenticate to cloud to get token to use in Swift client
delegate_to: localhost
openstack.cloud.auth: