1
1
#! /bin/bash
2
2
3
- mkdir -p /must-gather/
3
+ # Create a directory for must-gather
4
+ mkdir -p must-gather/operator-pod-logs/
4
5
5
6
# Generate /must-gather/version file
6
7
DIR_NAME=$( cd -- " $( dirname -- " ${BASH_SOURCE[0]} " ) " & > /dev/null && pwd )
7
8
. ${DIR_NAME} /version
8
9
echo " node-maintenance-operator/must-gather" > /must-gather/version
9
10
version >> /must-gather/version
10
11
12
+ OPERATOR_NAME=" node-maintenance"
13
+
11
14
# Init named resource list, eg. ns/openshift-config
12
15
named_resources=()
13
16
@@ -17,21 +20,38 @@ group_resources=()
17
20
# Get namespace of node-maintenance-operator - where it is installed
18
21
NMO_NAMESPACE=$( oc get subs -A --field-selector=metadata.name=node-maintenance-operator -o jsonpath=' {.items[*].metadata.namespace}' )
19
22
20
- # Get nmo logs - Nodes, CRD, and CRs
23
+ # Get NMO Information - nodes' object, CRD, pod's logs, CRs, cluster's resource usage.
24
+
25
+ # Get Nodes' names
26
+ # NODES_NAMES=($(oc get nodes -o jsonpath='{.items[*].metadata.name}{"\n"}'))
21
27
22
- # Nodes
28
+ # Nodes' objects
23
29
group_resources+=(nodes)
24
30
25
- # NMO CRD
31
+ # NMO's CRD
26
32
NMO_CRD=$( oc get crds -o jsonpath=' {range .items[*]}{"crd/"}{.metadata.name}{"\n"}{end}' | grep ' nodemaintenance.medik8s' | sed -z ' s/\n/ /g' )
27
33
named_resources+=(${NMO_CRD} )
28
34
29
- # node maintenance CRs
35
+ # NMO's running POD name
36
+ NMO_PODS=($( oc get pods -o jsonpath=' {range .items[*]}{.metadata.name}{"\n"}{end}' -n ${NMO_NAMESPACE} | grep ' node-maintenance' ) )
37
+
38
+ # Node Maintenance CRs
30
39
group_resources+=(nm)
31
40
32
41
# Run the Collection of Resources using inspect
33
42
oc adm inspect --dest-dir must-gather --all-namespaces " ${named_resources[@]} "
34
43
group_resources_text=$( IFS=, ; echo " ${group_resources[*]} " )
35
44
oc adm inspect --dest-dir must-gather --all-namespaces " ${group_resources_text} "
36
45
46
+ # Get pod's logs for only the running pods. Dismiss drained NMO pods
47
+ for NMO_POD_NAME in ${NMO_PODS[@]} ;
48
+ do if [ $( oc get pod ${NMO_POD_NAME} -n ${NMO_NAMESPACE} -o jsonpath=' {.status.phase}' ) == " Running" ];
49
+ then oc logs ${NMO_POD_NAME} -n ${NMO_NAMESPACE} > must-gather/operator-pod-logs/${NMO_POD_NAME} ; fi ; done
50
+
51
+ # Get cluster's resource (CPU and Memory) usage
52
+ oc adm top node --use-protocol-buffers > must-gather/cluster_resoruce_statistics
53
+
54
+ # Get all journal logs from each Node (TODO: select particluar journal logs, e.g., crio )
55
+ # for NODE in ${NODES_NAMES[@]}; do oc adm node-logs ${NODE} > must-gather/nodes-logs/${NODE}; done
56
+
37
57
exit 0
0 commit comments