Add post-install scripts to all tests to capture failure details in GitHub workflow summary (#88)
This commit is contained in:
Executable
+69
@@ -0,0 +1,69 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
get_namespace_details () {
|
||||||
|
cat <<EOF >>"$GITHUB_STEP_SUMMARY"
|
||||||
|
### Namespace $1
|
||||||
|
|
||||||
|
#### Events
|
||||||
|
|
||||||
|
\`\`\`shell
|
||||||
|
$(kubectl --request-timeout=30s get events --output wide --namespace "$1")
|
||||||
|
\`\`\`
|
||||||
|
|
||||||
|
#### Pods
|
||||||
|
|
||||||
|
\`\`\`shell
|
||||||
|
$(kubectl --request-timeout=30s describe pods --namespace "$1")
|
||||||
|
\`\`\`
|
||||||
|
|
||||||
|
#### Logs
|
||||||
|
|
||||||
|
\`\`\`shell
|
||||||
|
$(kubectl get pods -o name -n "$1" | while read -r line; do echo logs for "${line}"; kubectl logs -n "$1" "${line}" --all-containers=true --ignore-errors=true; done)
|
||||||
|
\`\`\`
|
||||||
|
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
k_wait () {
|
||||||
|
kubectl wait --for condition=available --timeout 30s --namespace "$1" "$2" "$3" | tail -n 1
|
||||||
|
}
|
||||||
|
|
||||||
|
k_rollout_status () {
|
||||||
|
kubectl rollout status --watch --timeout 30s --namespace "$1" "$2" "$3" | tail -n 1
|
||||||
|
}
|
||||||
|
|
||||||
|
get_spire_release_name () {
|
||||||
|
helm ls -A | grep '^spire' | awk '{print $1}'
|
||||||
|
}
|
||||||
|
|
||||||
|
print_spire_workload_status () {
|
||||||
|
local ns1
|
||||||
|
local ns2
|
||||||
|
|
||||||
|
ns1="$1"
|
||||||
|
ns2="${2:-$1}"
|
||||||
|
|
||||||
|
release_name="$(get_spire_release_name)"
|
||||||
|
|
||||||
|
cat <<EOF >>"$GITHUB_STEP_SUMMARY"
|
||||||
|
### Spire
|
||||||
|
|
||||||
|
| Namespace | Workload | Status |
|
||||||
|
| --------- | ---------------------------------------------- | ------ |
|
||||||
|
| ${ns1} | ${release_name}-server | <pre>$(k_rollout_status "${ns1}" statefulset "${release_name}-server")</pre> |
|
||||||
|
| ${ns2} | ${release_name}-spiffe-csi-driver | <pre>$(k_rollout_status "${ns2}" daemonset "${release_name}-spiffe-csi-driver")</pre> |
|
||||||
|
| ${ns2} | ${release_name}-agent | <pre>$(k_rollout_status "${ns2}" daemonset "${release_name}-agent")</pre> |
|
||||||
|
| ${ns1} | ${release_name}-spiffe-oidc-discovery-provider | <pre>$(k_rollout_status "${ns1}" deployments.apps "${release_name}-spiffe-oidc-discovery-provider")</pre> |
|
||||||
|
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
print_helm_releases () {
|
||||||
|
cat <<EOF >>"$GITHUB_STEP_SUMMARY"
|
||||||
|
### Releases
|
||||||
|
|
||||||
|
$(helm ls -A | sed 's/\t/ | /g' | sed 's/^/| /' | sed 's/$/ |/' | sed '/^| NAME.*/a| - | - | - | - | - | - | - |')
|
||||||
|
|
||||||
|
EOF
|
||||||
|
}
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -x
|
||||||
|
|
||||||
|
SCRIPT="$(readlink -f "$0")"
|
||||||
|
SCRIPTPATH="$(dirname "${SCRIPT}")"
|
||||||
|
scenario="${scenario:-$(basename "${SCRIPTPATH}")}"
|
||||||
|
|
||||||
|
# shellcheck source=/dev/null
|
||||||
|
source "${SCRIPTPATH}/../common.sh"
|
||||||
|
|
||||||
|
print_helm_releases
|
||||||
|
print_spire_workload_status "${scenario}"
|
||||||
|
|
||||||
|
if [[ "$1" -ne 0 ]]; then
|
||||||
|
get_namespace_details "${scenario}"
|
||||||
|
fi
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -x
|
||||||
|
|
||||||
|
SCRIPT="$(readlink -f "$0")"
|
||||||
|
SCRIPTPATH="$(dirname "${SCRIPT}")"
|
||||||
|
scenario="${scenario:-$(basename "${SCRIPTPATH}")}"
|
||||||
|
|
||||||
|
# shellcheck source=/dev/null
|
||||||
|
source "${SCRIPTPATH}/../common.sh"
|
||||||
|
|
||||||
|
print_helm_releases
|
||||||
|
print_spire_workload_status "${scenario}"
|
||||||
|
|
||||||
|
if [[ "$1" -ne 0 ]]; then
|
||||||
|
get_namespace_details "${scenario}"
|
||||||
|
fi
|
||||||
@@ -2,60 +2,18 @@
|
|||||||
|
|
||||||
set -x
|
set -x
|
||||||
|
|
||||||
SCRIPT=$(readlink -f "$0")
|
SCRIPT="$(readlink -f "$0")"
|
||||||
SCRIPTPATH=$(dirname "${SCRIPT}")
|
SCRIPTPATH="$(dirname "${SCRIPT}")"
|
||||||
scenario="${scenario:-$(basename "${SCRIPTPATH}")}"
|
scenario="${scenario:-$(basename "${SCRIPTPATH}")}"
|
||||||
|
|
||||||
k_wait () {
|
# shellcheck source=/dev/null
|
||||||
kubectl wait --for condition=available --timeout 30s --namespace "$1" "$2" "$3" | tail -n 1
|
source "${SCRIPTPATH}/../common.sh"
|
||||||
}
|
|
||||||
|
|
||||||
k_rollout_status () {
|
print_helm_releases
|
||||||
kubectl rollout status --watch --timeout 30s --namespace "$1" "$2" "$3" | tail -n 1
|
print_spire_workload_status spire-server spire-system
|
||||||
}
|
|
||||||
|
|
||||||
RELEASE=$(helm ls --no-headers -n "${scenario}" | awk '{print $1}' | grep 'spire-[^-]*$')
|
|
||||||
|
|
||||||
cat <<EOF >>"$GITHUB_STEP_SUMMARY"
|
|
||||||
### release
|
|
||||||
| release |
|
|
||||||
| ------- |
|
|
||||||
| $RELEASE |
|
|
||||||
|
|
||||||
### spire
|
|
||||||
| workload | Status |
|
|
||||||
| -------- | ------ |
|
|
||||||
| spire-server | <pre>$(k_rollout_status spire-server statefulset "${RELEASE}-server")</pre> |
|
|
||||||
| spire-spiffe-csi-driver | <pre>$(k_rollout_status spire-system daemonset "${RELEASE}-spiffe-csi-driver")</pre> |
|
|
||||||
| spire-agent | <pre>$(k_rollout_status spire-system daemonset "${RELEASE}-agent")</pre> |
|
|
||||||
| spire-spiffe-oidc-discovery-provider | <pre>$(k_wait spire-server deployments.apps "${RELEASE}-spiffe-oidc-discovery-provider")</pre> |
|
|
||||||
EOF
|
|
||||||
|
|
||||||
if [[ "$1" -ne 0 ]]; then
|
if [[ "$1" -ne 0 ]]; then
|
||||||
echo
|
get_namespace_details spire-server
|
||||||
echo '```'
|
get_namespace_details spire-systen
|
||||||
echo '==> Events of namespace spire-server'
|
fi
|
||||||
echo '........................................................................................................................'
|
|
||||||
echo '>>> kubectl --request-timeout=30s get events --output wide --namespace spire-server'
|
|
||||||
kubectl --request-timeout=30s get events --output wide --namespace spire-server
|
|
||||||
echo '........................................................................................................................'
|
|
||||||
echo '<== Events of namespace spire-server'
|
|
||||||
echo '........................................................................................................................'
|
|
||||||
echo '>>> kubectl --request-timeout=30s describe pods --namespace spire-server'
|
|
||||||
kubectl --request-timeout=30s describe pods --namespace spire-server
|
|
||||||
echo '========================================================================================================================'
|
|
||||||
echo '==> Events of namespace spire-system'
|
|
||||||
echo '........................................................................................................................'
|
|
||||||
echo '>>> kubectl --request-timeout=30s get events --output wide --namespace spire-system'
|
|
||||||
kubectl --request-timeout=30s get events --output wide --namespace spire-system
|
|
||||||
echo '........................................................................................................................'
|
|
||||||
echo '<== Events of namespace spire-system'
|
|
||||||
echo '........................................................................................................................'
|
|
||||||
echo '>>> kubectl --request-timeout=30s describe pods --namespace spire-system'
|
|
||||||
kubectl --request-timeout=30s describe pods --namespace spire-system
|
|
||||||
echo '========================================================================================================================'
|
|
||||||
kubectl get pods -o name -n spire-server | while read -r line; do echo logs for "${line}"; kubectl logs -n spire-server "${line}"--all-containers=true --ignore-errors=true; done
|
|
||||||
kubectl get pods -o name -n spire-system | while read -r line; do echo logs for "${line}"; kubectl logs -n spire-system "${line}" --all-containers=true --ignore-errors=true; done
|
|
||||||
echo '========================================================================================================================'
|
|
||||||
echo '```'
|
|
||||||
fi | cat >> "$GITHUB_STEP_SUMMARY"
|
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -x
|
||||||
|
|
||||||
|
SCRIPT="$(readlink -f "$0")"
|
||||||
|
SCRIPTPATH="$(dirname "${SCRIPT}")"
|
||||||
|
scenario="${scenario:-$(basename "${SCRIPTPATH}")}"
|
||||||
|
|
||||||
|
# shellcheck source=/dev/null
|
||||||
|
source "${SCRIPTPATH}/../common.sh"
|
||||||
|
|
||||||
|
print_helm_releases
|
||||||
|
print_spire_workload_status "${scenario}"
|
||||||
|
|
||||||
|
if [[ "$1" -ne 0 ]]; then
|
||||||
|
get_namespace_details "${scenario}"
|
||||||
|
fi
|
||||||
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
set -xe
|
set -xe
|
||||||
|
|
||||||
SCRIPT=$(readlink -f "$0")
|
SCRIPT="$(readlink -f "$0")"
|
||||||
SCRIPTPATH=$(dirname "$SCRIPT")
|
SCRIPTPATH="$(dirname "${SCRIPT}")"
|
||||||
|
|
||||||
helm install \
|
helm install \
|
||||||
--namespace spire-server \
|
--namespace spire-server \
|
||||||
|
|||||||
@@ -2,56 +2,17 @@
|
|||||||
|
|
||||||
set -x
|
set -x
|
||||||
|
|
||||||
SCRIPT=$(readlink -f "$0")
|
SCRIPT="$(readlink -f "$0")"
|
||||||
SCRIPTPATH=$(dirname "${SCRIPT}")
|
SCRIPTPATH="$(dirname "${SCRIPT}")"
|
||||||
scenario="${scenario:-$(basename "${SCRIPTPATH}")}"
|
scenario="${scenario:-$(basename "${SCRIPTPATH}")}"
|
||||||
|
|
||||||
k_wait () {
|
# shellcheck source=/dev/null
|
||||||
kubectl wait --for condition=available --timeout 30s --namespace "$1" "$2" "$3" | tail -n 1
|
source "${SCRIPTPATH}/../common.sh"
|
||||||
}
|
|
||||||
|
|
||||||
k_rollout_status () {
|
print_helm_releases
|
||||||
kubectl rollout status --watch --timeout 30s --namespace "$1" "$2" "$3" | tail -n 1
|
print_spire_workload_status spire-server spire-system
|
||||||
}
|
|
||||||
|
|
||||||
function get_namespace_details {
|
|
||||||
cat <<EOF >>"$GITHUB_STEP_SUMMARY"
|
|
||||||
### Namespace $1
|
|
||||||
|
|
||||||
#### Events
|
|
||||||
|
|
||||||
\`\`\`shell
|
|
||||||
$(kubectl --request-timeout=30s get events --output wide --namespace "$1")
|
|
||||||
\`\`\`
|
|
||||||
|
|
||||||
#### Pods
|
|
||||||
|
|
||||||
\`\`\`shell
|
|
||||||
$(kubectl --request-timeout=30s describe pods --namespace "$1")
|
|
||||||
\`\`\`
|
|
||||||
|
|
||||||
#### Logs
|
|
||||||
|
|
||||||
\`\`\`shell
|
|
||||||
$(kubectl get pods -o name -n "$1" | while read -r line; do echo logs for "${line}"; kubectl logs -n "$1" "${line}" --all-containers=true --ignore-errors=true; done)
|
|
||||||
\`\`\`
|
|
||||||
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
|
|
||||||
cat <<EOF >>"$GITHUB_STEP_SUMMARY"
|
|
||||||
### spire
|
|
||||||
|
|
||||||
| workload | Status |
|
|
||||||
| ------------------------------------ | ------ |
|
|
||||||
| spire-server | "$(k_rollout_status spire-server statefulset spire-server)" |
|
|
||||||
| spire-controller-manager | "$(k_rollout_status spire-server statefulset spire-controller-manager)" |
|
|
||||||
| spire-spiffe-oidc-discovery-provider | "$(k_wait spire-server deployments.apps spire-spiffe-oidc-discovery-provider)" |
|
|
||||||
| spire-spiffe-csi-driver | "$(k_rollout_status spire-system daemonset spire-spiffe-csi-driver)" |
|
|
||||||
| spire-agent | "$(k_rollout_status spire-system daemonset spire-agent)" |
|
|
||||||
EOF
|
|
||||||
|
|
||||||
if [[ "$1" -ne 0 ]]; then
|
if [[ "$1" -ne 0 ]]; then
|
||||||
get_namespace_details spire-server
|
get_namespace_details spire-server
|
||||||
get_namespace_details spire-systen
|
get_namespace_details spire-system
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -x
|
||||||
|
|
||||||
|
SCRIPT="$(readlink -f "$0")"
|
||||||
|
SCRIPTPATH="$(dirname "${SCRIPT}")"
|
||||||
|
scenario="${scenario:-$(basename "${SCRIPTPATH}")}"
|
||||||
|
|
||||||
|
# shellcheck source=/dev/null
|
||||||
|
source "${SCRIPTPATH}/../common.sh"
|
||||||
|
|
||||||
|
print_helm_releases
|
||||||
|
print_spire_workload_status "${scenario}"
|
||||||
|
|
||||||
|
if [[ "$1" -ne 0 ]]; then
|
||||||
|
get_namespace_details "${scenario}"
|
||||||
|
fi
|
||||||
@@ -1,7 +1,11 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
SCRIPT=$(readlink -f "$0")
|
SCRIPT="$(readlink -f "$0")"
|
||||||
SCRIPTPATH=$(dirname "${SCRIPT}")
|
SCRIPTPATH="$(dirname "${SCRIPT}")"
|
||||||
scenario="${scenario:-$(basename "${SCRIPTPATH}")}"
|
scenario="${scenario:-$(basename "${SCRIPTPATH}")}"
|
||||||
|
|
||||||
helm install kube-prometheus-stack kube-prometheus-stack --version "${VERSION_KUBE_PROMETHEUS_STACK}" --repo "${HELM_REPO_KUBE_PROMETHEUS_STACK}" -n "${scenario}" --wait
|
helm install kube-prometheus-stack kube-prometheus-stack \
|
||||||
|
--version "${VERSION_KUBE_PROMETHEUS_STACK}" \
|
||||||
|
--repo "${HELM_REPO_KUBE_PROMETHEUS_STACK}" \
|
||||||
|
-n "${scenario}" \
|
||||||
|
--wait
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -x
|
||||||
|
|
||||||
|
SCRIPT="$(readlink -f "$0")"
|
||||||
|
SCRIPTPATH="$(dirname "${SCRIPT}")"
|
||||||
|
scenario="${scenario:-$(basename "${SCRIPTPATH}")}"
|
||||||
|
|
||||||
|
# shellcheck source=/dev/null
|
||||||
|
source "${SCRIPTPATH}/../common.sh"
|
||||||
|
|
||||||
|
print_helm_releases
|
||||||
|
print_spire_workload_status "${scenario}"
|
||||||
|
|
||||||
|
if [[ "$1" -ne 0 ]]; then
|
||||||
|
get_namespace_details "${scenario}"
|
||||||
|
fi
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
SCRIPT=$(readlink -f "$0")
|
SCRIPT="$(readlink -f "$0")"
|
||||||
SCRIPTPATH=$(dirname "${SCRIPT}")
|
SCRIPTPATH="$(dirname "${SCRIPT}")"
|
||||||
scenario="${scenario:-$(basename "${SCRIPTPATH}")}"
|
scenario="${scenario:-$(basename "${SCRIPTPATH}")}"
|
||||||
|
|
||||||
helm install ingress-nginx ingress-nginx --version "${VERSION_INGRESS_NGINX}" --repo "${HELM_REPO_INGRESS_NGINX}" -n "$scenario" --set controller.extraArgs.enable-ssl-passthrough=
|
helm install ingress-nginx ingress-nginx --version "${VERSION_INGRESS_NGINX}" --repo "${HELM_REPO_INGRESS_NGINX}" -n "$scenario" --set controller.extraArgs.enable-ssl-passthrough=
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -x
|
||||||
|
|
||||||
|
SCRIPT=$(readlink -f "$0")
|
||||||
|
SCRIPTPATH="$(dirname "${SCRIPT}")"
|
||||||
|
scenario="${scenario:-$(basename "${SCRIPTPATH}")}"
|
||||||
|
|
||||||
|
# shellcheck source=/dev/null
|
||||||
|
source "${SCRIPTPATH}/../common.sh"
|
||||||
|
|
||||||
|
print_helm_releases
|
||||||
|
print_spire_workload_status "${scenario}"
|
||||||
|
|
||||||
|
if [ "$1" != '0' ]; then
|
||||||
|
get_namespace_details "${scenario}"
|
||||||
|
fi
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
SCRIPT=$(readlink -f "$0")
|
SCRIPT="$(readlink -f "$0")"
|
||||||
SCRIPTPATH=$(dirname "${SCRIPT}")
|
SCRIPTPATH="$(dirname "${SCRIPT}")"
|
||||||
scenario="${scenario:-$(basename "${SCRIPTPATH}")}"
|
scenario="${scenario:-$(basename "${SCRIPTPATH}")}"
|
||||||
|
|
||||||
helm install cert-manager cert-manager --namespace cert-manager --create-namespace --version "$VERSION_CERT_MANAGER" --set installCRDs=true --repo "$HELM_REPO_CERT_MANAGER" --wait
|
helm install cert-manager cert-manager --namespace cert-manager --create-namespace --version "$VERSION_CERT_MANAGER" --set installCRDs=true --repo "$HELM_REPO_CERT_MANAGER" --wait
|
||||||
|
|||||||
+17
@@ -0,0 +1,17 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -x
|
||||||
|
|
||||||
|
SCRIPT=$(readlink -f "$0")
|
||||||
|
SCRIPTPATH="$(dirname "${SCRIPT}")"
|
||||||
|
scenario="${scenario:-$(basename "${SCRIPTPATH}")}"
|
||||||
|
|
||||||
|
# shellcheck source=/dev/null
|
||||||
|
source "${SCRIPTPATH}/../common.sh"
|
||||||
|
|
||||||
|
print_helm_releases
|
||||||
|
print_spire_workload_status "${scenario}"
|
||||||
|
|
||||||
|
if [ "$1" != '0' ]; then
|
||||||
|
get_namespace_details "${scenario}"
|
||||||
|
fi
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
SCRIPT=$(readlink -f "$0")
|
SCRIPT="$(readlink -f "$0")"
|
||||||
SCRIPTPATH=$(dirname "${SCRIPT}")
|
SCRIPTPATH="$(dirname "${SCRIPT}")"
|
||||||
|
|
||||||
CHARTJSON="${SCRIPTPATH}/../../tests/charts.json"
|
CHARTJSON="${SCRIPTPATH}/../../tests/charts.json"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user