#!/bin/bash TARGET_IP="192.168.12.1" for ns in $(oc get ns --no-headers | awk '{print $1}'); do for epname in gfs glusterfs-dynamic-etcd glusterfs-dynamic-metrics-cassandra-1 glusterfs-dynamic-mongodb glusterfs-dynamic-registry-claim glusterfs-dynamic-sharelatex-docker; do ep=$(oc get endpoints "$epname" -n "$ns" -o json 2>/dev/null) || continue modified="$(printf '%s' "$ep" | jq \ --arg ip "$TARGET_IP" \ '(.subsets[]?.addresses |= map(select(.ip != $ip)))' )" if diff <(echo "$ep") <(echo "$modified") >/dev/null; then continue fi echo -n "Namespace: $ns/$epname:" echo -n "$ep" | jq '.subsets[].addresses' echo -n " ===> " echo -n "$modified" | jq '.subsets[].addresses' echo # When verified, uncomment the following line to APPLY: echo "$modified" | oc replace -f - -n "$ns" done done