Skip to content

Commit

Permalink
Collect data for catalog source and updated collection for subscripti…
Browse files Browse the repository at this point in the history
…ons, install plans, and csv (#124)

* Misc postmortem Improvements

- Added commands to collect catalogsource + yaml across all namespaces
- Updated previous commands for collecting subscriptions, install plans, and csv so it will now be collected from all namespaces after checking to see if the stack is OCP
- Adjusted ingress, routes collection area to collect based on OCP check value
  • Loading branch information
ReggieRichardson committed Feb 15, 2024
1 parent 74a3ba4 commit bd7aa0f
Showing 1 changed file with 63 additions and 43 deletions.
106 changes: 63 additions & 43 deletions generate_postmortem.sh
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,12 @@ function is_kubectl_cnp_plugin {
fi
}

#Check to see if this is an OCP cluster
IS_OCP=false
if oc api-resources | grep -q "route.openshift.io"; then
IS_OCP=true
fi

for switch in $@; do
case $switch in
*"-h"*|*"--help"*)
Expand Down Expand Up @@ -979,17 +985,15 @@ for NAMESPACE in $NAMESPACE_LIST; do
[[ $? -ne 0 || ${#OUTPUT} -eq 0 ]] || echo "$OUTPUT" > "${K8S_NAMESPACES_LIST_DATA}/hpa.out"

#grab ingress/routes then check each
OUTPUT=`$KUBECTL get ingress -n $NAMESPACE 2>/dev/null`
if [[ ${#OUTPUT} -gt 0 ]]; then
ir_outfile="ingress.out"
ir_checks_outfile="ingress-checks.out"
IS_OCP=0
else
if [[ $IS_OCP ]]; then
OUTPUT=`$KUBECTL get routes -n $NAMESPACE 2>/dev/null`
ir_outfile="routes.out"
ir_checks_outfile="routes-checks.out"
IS_OCP=1
fi
else
OUTPUT=`$KUBECTL get ingress -n $NAMESPACE 2>/dev/null`
ir_outfile="ingress.out"
ir_checks_outfile="ingress-checks.out"
fi

IR_OUTFILE="${K8S_NAMESPACES_LIST_DATA}/${ir_outfile}"
IR_CHECKS_OUTFILE="${K8S_NAMESPACES_LIST_DATA}/${ir_checks_outfile}"
Expand Down Expand Up @@ -1788,75 +1792,91 @@ for NAMESPACE in $NAMESPACE_LIST; do
fi

#------------------------------------ Pull Data CP4i specific data ------------------------------------
if [[ "$NAMESPACE" == "ibm-common-services" ]]; then
ICS_NAMESPACE="${K8S_NAMESPACES}/ibm-common-services"
if [[ $IS_OCP ]]; then
OCP_INSTALL_PLAN_DATA="${K8S_NAMESPACES_SPECIFIC}/install_plans"
OCP_INSTALL_PLAN_DESCRIBE_DATA="${OCP_INSTALL_PLAN_DATA}/describe"
OCP_INSTALL_PLAN_YAML_OUTPUT="${OCP_INSTALL_PLAN_DATA}/yaml"

ICS_INSTALL_PLAN_DATA="${ICS_NAMESPACE}/install_plans"
ICS_INSTALL_PLAN_DESCRIBE_DATA="${ICS_INSTALL_PLAN_DATA}/describe"
ICS_INSTALL_PLAN_YAML_OUTPUT="${ICS_INSTALL_PLAN_DATA}/yaml"
OCP_SUBSCRIPTION_DATA="${K8S_NAMESPACES_SPECIFIC}/subscriptions"
OCP_SUBSCRIPTION_DESCRIBE_DATA="${OCP_SUBSCRIPTION_DATA}/describe"
OCP_SUBSCRIPTION_YAML_OUTPUT="${OCP_SUBSCRIPTION_DATA}/yaml"

ICS_SUBSCRIPTION_DATA="${ICS_NAMESPACE}/subscriptions"
ICS_SUBSCRIPTION_DESCRIBE_DATA="${ICS_SUBSCRIPTION_DATA}/describe"
ICS_SUBSCRIPTION_YAML_OUTPUT="${ICS_SUBSCRIPTION_DATA}/yaml"
OCP_CLUSTER_SERVICE_VERSION_DATA="${K8S_NAMESPACES_SPECIFIC}/cluster_service_version"
OCP_CLUSTER_SERVICE_VERSION_DESCRIBE_DATA="${OCP_CLUSTER_SERVICE_VERSION_DATA}/describe"
OCP_CLUSTER_SERVICE_VERSION_YAML_OUTPUT="${OCP_CLUSTER_SERVICE_VERSION_DATA}/yaml"

ICS_CLUSTER_SERVICE_VERSION_DATA="${ICS_NAMESPACE}/cluster_service_version"
ICS_CLUSTER_SERVICE_VERSION_DESCRIBE_DATA="${ICS_CLUSTER_SERVICE_VERSION_DATA}/describe"
ICS_CLUSTER_SERVICE_VERSION_YAML_OUTPUT="${ICS_CLUSTER_SERVICE_VERSION_DATA}/yaml"
OCP_CATALOG_SOURCE_DATA="${K8S_NAMESPACES_SPECIFIC}/catalog_source"
OCP_CATALOG_SOURCE_DATA_YAML_OUTPUT="${OCP_CATALOG_SOURCE_DATA}/yaml"

mkdir -p $ICS_INSTALL_PLAN_DESCRIBE_DATA
mkdir -p $ICS_INSTALL_PLAN_YAML_OUTPUT
mkdir -p $OCP_INSTALL_PLAN_DESCRIBE_DATA
mkdir -p $OCP_INSTALL_PLAN_YAML_OUTPUT

mkdir -p $ICS_SUBSCRIPTION_DESCRIBE_DATA
mkdir -p $ICS_SUBSCRIPTION_YAML_OUTPUT
mkdir -p $OCP_SUBSCRIPTION_DESCRIBE_DATA
mkdir -p $OCP_SUBSCRIPTION_YAML_OUTPUT

mkdir -p $ICS_CLUSTER_SERVICE_VERSION_DESCRIBE_DATA
mkdir -p $ICS_CLUSTER_SERVICE_VERSION_YAML_OUTPUT
mkdir -p $OCP_CLUSTER_SERVICE_VERSION_DESCRIBE_DATA
mkdir -p $OCP_CLUSTER_SERVICE_VERSION_YAML_OUTPUT

mkdir -p $OCP_CATALOG_SOURCE_DATA_YAML_OUTPUT

OUTPUT=`$KUBECTL get InstallPlan -n $NAMESPACE 2>/dev/null`
if [[ $? -eq 0 && ${#OUTPUT} -gt 0 ]]; then
echo "$OUTPUT" > "${ICS_INSTALL_PLAN_DATA}/install_plans.out"
echo "$OUTPUT" > "${OCP_INSTALL_PLAN_DATA}/install_plans.out"
while read line; do
ip=`echo "$line" | cut -d' ' -f1`
$KUBECTL describe InstallPlan $ip -n $NAMESPACE &>"${ICS_INSTALL_PLAN_DESCRIBE_DATA}/${ip}.out"
[ $? -eq 0 ] || rm -f "${ICS_INSTALL_PLAN_DESCRIBE_DATA}/${ip}.out"
$KUBECTL describe InstallPlan $ip -n $NAMESPACE &>"${OCP_INSTALL_PLAN_DESCRIBE_DATA}/${ip}.out"
[ $? -eq 0 ] || rm -f "${OCP_INSTALL_PLAN_DESCRIBE_DATA}/${ip}.out"

$KUBECTL get InstallPlan $ip -o yaml -n $NAMESPACE &>"${ICS_INSTALL_PLAN_YAML_OUTPUT}/${ip}.out"
[ $? -eq 0 ] || rm -f "${ICS_INSTALL_PLAN_YAML_OUTPUT}/${ip}.out"
$KUBECTL get InstallPlan $ip -o yaml -n $NAMESPACE &>"${OCP_INSTALL_PLAN_YAML_OUTPUT}/${ip}.out"
[ $? -eq 0 ] || rm -f "${OCP_INSTALL_PLAN_YAML_OUTPUT}/${ip}.out"
done <<< "$OUTPUT"
else
rm -fr $ICS_INSTALL_PLAN_DATA
rm -fr $OCP_INSTALL_PLAN_DATA
fi

OUTPUT=`$KUBECTL get Subscription -n $NAMESPACE 2>/dev/null`
if [[ $? -eq 0 && ${#OUTPUT} -gt 0 ]]; then
echo "$OUTPUT" > "${ICS_SUBSCRIPTION_DATA}/subscriptions.out"
echo "$OUTPUT" > "${OCP_SUBSCRIPTION_DATA}/subscriptions.out"
while read line; do
sub=`echo "$line" | cut -d' ' -f1`
$KUBECTL describe Subscription $sub -n $NAMESPACE &>"${ICS_SUBSCRIPTION_DESCRIBE_DATA}/${sub}.out"
[ $? -eq 0 ] || rm -f "${ICS_SUBSCRIPTION_DESCRIBE_DATA}/${sub}.out"
$KUBECTL describe Subscription $sub -n $NAMESPACE &>"${OCP_SUBSCRIPTION_DESCRIBE_DATA}/${sub}.out"
[ $? -eq 0 ] || rm -f "${OCP_SUBSCRIPTION_DESCRIBE_DATA}/${sub}.out"

$KUBECTL get Subscription $sub -o yaml -n $NAMESPACE &>"${ICS_SUBSCRIPTION_YAML_OUTPUT}/${sub}.out"
[ $? -eq 0 ] || rm -f "${ICS_SUBSCRIPTION_YAML_OUTPUT}/${sub}.out"
$KUBECTL get Subscription $sub -o yaml -n $NAMESPACE &>"${OCP_SUBSCRIPTION_YAML_OUTPUT}/${sub}.out"
[ $? -eq 0 ] || rm -f "${OCP_SUBSCRIPTION_YAML_OUTPUT}/${sub}.out"
done <<< "$OUTPUT"
else
rm -fr $ICS_SUBSCRIPTION_DATA
rm -fr $OCP_SUBSCRIPTION_DATA
fi

OUTPUT=`$KUBECTL get ClusterServiceVersion -n $NAMESPACE 2>/dev/null`
if [[ $? -eq 0 && ${#OUTPUT} -gt 0 ]]; then
echo "$OUTPUT" > "${ICS_CLUSTER_SERVICE_VERSION_DATA}/cluster_service_version.out"
echo "$OUTPUT" > "${OCP_CLUSTER_SERVICE_VERSION_DATA}/cluster_service_version.out"
while read line; do
csv=`echo "$line" | cut -d' ' -f1`
$KUBECTL describe ClusterServiceVersion $csv -n $NAMESPACE &>"${ICS_CLUSTER_SERVICE_VERSION_DESCRIBE_DATA}/${csv}.out"
[ $? -eq 0 ] || rm -f "${ICS_CLUSTER_SERVICE_VERSION_DESCRIBE_DATA}/${csv}.out"
$KUBECTL describe ClusterServiceVersion $csv -n $NAMESPACE &>"${OCP_CLUSTER_SERVICE_VERSION_DESCRIBE_DATA}/${csv}.out"
[ $? -eq 0 ] || rm -f "${OCP_CLUSTER_SERVICE_VERSION_DESCRIBE_DATA}/${csv}.out"

$KUBECTL get ClusterServiceVersion $csv -o yaml -n $NAMESPACE &>"${ICS_CLUSTER_SERVICE_VERSION_YAML_OUTPUT}/${csv}.out"
[ $? -eq 0 ] || rm -f "${ICS_CLUSTER_SERVICE_VERSION_YAML_OUTPUT}/${csv}.out"
$KUBECTL get ClusterServiceVersion $csv -o yaml -n $NAMESPACE &>"${OCP_CLUSTER_SERVICE_VERSION_YAML_OUTPUT}/${csv}.out"
[ $? -eq 0 ] || rm -f "${OCP_CLUSTER_SERVICE_VERSION_YAML_OUTPUT}/${csv}.out"
done <<< "$OUTPUT"
else
rm -fr $ICS_CLUSTER_SERVICE_VERSION_DATA
rm -fr $OCP_CLUSTER_SERVICE_VERSION_DATA
fi

OUTPUT=`$KUBECTL get catalogsource -n $NAMESPACE 2>/dev/null`
if [[ $? -eq 0 && ${#OUTPUT} -gt 0 ]]; then
echo "$OUTPUT" > "${OCP_CATALOG_SOURCE_DATA}/ocp-catalog-source.out"
while read line; do
cs=`echo "$line" | cut -d' ' -f1`
$KUBECTL get catalogsource $cs -o yaml -n $NAMESPACE &>"${OCP_CATALOG_SOURCE_DATA_YAML_OUTPUT}/${cs}.out"
[ $? -eq 0 ] || rm -f "${OCP_CATALOG_SOURCE_DATA_YAML_OUTPUT}/${cs}.out"
done <<< "$OUTPUT"
else
rm -fr $OCP_CATALOG_SOURCE_DATA
fi
fi

#------------------------------------------------------------------------------------------------------

done
Expand Down

0 comments on commit bd7aa0f

Please sign in to comment.