diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..2cd5291 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,2 @@ +# v0.2.2 +- Fix for unschedulable nodes showing in utilization. [Issue #34](https://github.com/etopeter/kubectl-view-utilization/issues/34) diff --git a/kubectl-view-utilization b/kubectl-view-utilization index d0198ae..0fa8389 100755 --- a/kubectl-view-utilization +++ b/kubectl-view-utilization @@ -17,7 +17,7 @@ # Prints cluster resource utilization -PLUGIN_VERSION="v0.2.1" +PLUGIN_VERSION="v0.2.2" VIEW_UTILIZATION_NAMESPACE="" VIEW_UTILIZATION_NODE_LABEL="" VIEW_UTILIZATION_OUTPUT="text" @@ -116,7 +116,7 @@ get_node_data() { fi # shellcheck disable=SC2086 - kubectl get nodes $node_label -o=jsonpath="{range .items[*]}{.metadata.name}{'\t'}{.status.allocatable.cpu}{'\t'}{.status.allocatable.memory}{'\n'}{end}" + kubectl get nodes $node_label --field-selector=spec.unschedulable=false -o=jsonpath="{range .items[*]}{.metadata.name}{'\t'}{.status.allocatable.cpu}{'\t'}{.status.allocatable.memory}{'\n'}{end}" } diff --git a/test/kubectl.bats b/test/kubectl.bats index d74e215..0211df8 100644 --- a/test/kubectl.bats +++ b/test/kubectl.bats @@ -8,7 +8,7 @@ load mocks/kubectl switch_context cluster-small - run kubectl get nodes -o=jsonpath="{range .items[*]}{.metadata.name}{'\t'}{.status.allocatable.cpu}{'\t'}{.status.allocatable.memory}{'\n'}{end}" + run kubectl get nodes --field-selector=spec.unschedulable=false -o=jsonpath="{range .items[*]}{.metadata.name}{'\t'}{.status.allocatable.cpu}{'\t'}{.status.allocatable.memory}{'\n'}{end}" [ $status -eq 0 ] [[ "${lines[0]}" == "ip-10-1-1-10.us-west-2.compute.internal 449m 1351126Ki" ]] @@ -19,7 +19,7 @@ load mocks/kubectl switch_context cluster-medium - run kubectl get nodes -o=jsonpath="{range .items[*]}{.metadata.name}{'\t'}{.status.allocatable.cpu}{'\t'}{.status.allocatable.memory}{'\n'}{end}" + run kubectl get nodes --field-selector=spec.unschedulable=false -o=jsonpath="{range .items[*]}{.metadata.name}{'\t'}{.status.allocatable.cpu}{'\t'}{.status.allocatable.memory}{'\n'}{end}" [ $status -eq 0 ] [[ "${lines[0]}" == "ip-10-1-1-10.us-west-2.compute.internal 940m 2702252Ki" ]] @@ -30,7 +30,7 @@ load mocks/kubectl switch_context cluster-big - run kubectl get nodes -o=jsonpath="{range .items[*]}{.metadata.name}{'\t'}{.status.allocatable.cpu}{'\t'}{.status.allocatable.memory}{'\n'}{end}" + run kubectl get nodes --field-selector=spec.unschedulable=false -o=jsonpath="{range .items[*]}{.metadata.name}{'\t'}{.status.allocatable.cpu}{'\t'}{.status.allocatable.memory}{'\n'}{end}" [ $status -eq 0 ] [[ "${lines[2]}" == "ip-10-1-1-14.us-west-2.compute.internal 4 15850212Ki" ]] diff --git a/test/mocks/kubectl.bash b/test/mocks/kubectl.bash index 227c724..eb95369 100644 --- a/test/mocks/kubectl.bash +++ b/test/mocks/kubectl.bash @@ -12,12 +12,12 @@ kubectl() { fi # get all nodes requests - if [ "${1}" == "get" ] && [ "${2}" == "nodes" ] && [ "${3}" == "-o=jsonpath={range .items[*]}{.metadata.name}{'\t'}{.status.allocatable.cpu}{'\t'}{.status.allocatable.memory}{'\n'}{end}" ]; then + if [ "${1}" == "get" ] && [ "${2}" == "nodes" ] && [ "${3}" == "--field-selector=spec.unschedulable=false" ] && [ "${4}" == "-o=jsonpath={range .items[*]}{.metadata.name}{'\t'}{.status.allocatable.cpu}{'\t'}{.status.allocatable.memory}{'\n'}{end}" ]; then kubectl_get_all_nodes_requests fi # get master nodes requests - if [ "${1}" == "get" ] && [ "${2}" == "nodes" ] && [ "${3}" == "-l" ] && [ "${4}" == "node-role.kubernetes.io/master=true" ] && [ "${5}" == "-o=jsonpath={range .items[*]}{.metadata.name}{'\t'}{.status.allocatable.cpu}{'\t'}{.status.allocatable.memory}{'\n'}{end}" ]; then + if [ "${1}" == "get" ] && [ "${2}" == "nodes" ] && [ "${3}" == "-l" ] && [ "${4}" == "node-role.kubernetes.io/master=true" ] && [ "${5}" == "--field-selector=spec.unschedulable=false" ] && [ "${6}" == "-o=jsonpath={range .items[*]}{.metadata.name}{'\t'}{.status.allocatable.cpu}{'\t'}{.status.allocatable.memory}{'\n'}{end}" ]; then kubectl_get_master_nodes_requests fi