k create cm nginx-lb-config --from-file=nginx-lb.configmap --dry-run -o yaml | k replace cm nginx-lb-config -f -
kubectl get secrets w.alvaro.arilot.org -o json --namespace dev | jq 'del(.metadata.namespace)|del(.metadata.selfLink)|.metadata.name = "istio-ingressgateway-certs"' | kubectl replace --force --namespace istio-system -f -
Copy regcred:
kubectl get secrets -n identity regcred -o json | \
jq 'del(.metadata.namespace)|del(.metadata.selfLink)|.metadata.name = "regcred"' | \
kubectl replace --force -n agencysystem-api -f -
kubectl -n <namespace> create secret docker-registry regcred \
--docker-server=<registryURL> \
--docker-username=<user> \
--docker-password=<password> \
--docker-email=<email>
kubectl -n <namespace> patch serviceaccount default -p "{\"imagePullSecrets\": [{\"name\": \"regcred\"}]}"
krcp() {
local resource name opts to_ns
local usage=$(cat <<EHD
Usage:
krcp resource name [from_ns] to_ns
or
krcp resource/name [from_ns] to_ns
EHD
)
declare -a opts
## get resource name
if [[ "$1" =~ ".+/.+" ]]; then
resource="${1%/*}"
name="${1#*/}"
shift
else
resource="$1"
resource="$2"
shift 2
fi
## get namespaces
if [ $# -eq 2 ]; then
opts=(-n $1)
to_ns="$2"
elif [ $# -eq 1 ]; then
to_ns="$1"
else
>&2 echo "$usage" && return 1
fi
# break if no resource
kubectl get "$resource" "$name" "${opts[@]}" 1>/dev/null || return $?
kubectl get "$resource" "$name" "${opts[@]}" -o json | \
jq -r 'del(.metadata.namespace)|del(.metadata.selfLink)' | \
kubectl apply --force --namespace "$to_ns" -f -
}