#!/bin/bash

IFS=$'\n'

BASE_COLLECTION_PATH="/must-gather"

IMAGES_PATH=${BASE_COLLECTION_PATH}/cluster-scoped-resources
NAMESPACE_PATH=${BASE_COLLECTION_PATH}/namespaces

mkdir -p ${IMAGES_PATH}
for name in $(oc get image -o=custom-columns=NAME:.metadata.name --no-headers)
do
    echo "Gathering image $name"
    oc get image $name -o yaml >> ${IMAGES_PATH}/images
    echo '---------------' >> ${IMAGES_PATH}/images
done

for line in $(oc get imagestreams -o=custom-columns=NAMESPACE:.metadata.namespace,NAME:.metadata.name --no-headers --all-namespaces)
do
    IFS=$' '
    read namespace name <<< $line
    IFS=$'\n'
    echo "Gathering imagestream $namespace/$name"
    mkdir -p ${NAMESPACE_PATH}/${namespace}
    oc get imagestream ${name} -n ${namespace} -o yaml >> ${NAMESPACE_PATH}/${namespace}/imagestreams
    echo '---------------' >> ${NAMESPACE_PATH}/${namespace}/imagestreams
done

for line in $(oc get imagestreamtags -o=custom-columns=NAMESPACE:.metadata.namespace,NAME:.metadata.name --no-headers --all-namespaces)
do
    IFS=$' '
    read namespace name <<< $line
    IFS=$'\n'
    echo "Gathering imagestreamtag $namespace/$name"
    mkdir -p ${NAMESPACE_PATH}/${namespace}
    oc get imagestreamtag ${name} -n ${namespace} -o yaml >> ${NAMESPACE_PATH}/${namespace}/imagestreamtags
    echo '---------------' >> ${NAMESPACE_PATH}/${namespace}/imagestreamtags
done
