Skip to content

Instantly share code, notes, and snippets.

@rhopp
Created June 14, 2022 11:11
Show Gist options
  • Save rhopp/81695d8b2db11a26ccd70f2ea541e207 to your computer and use it in GitHub Desktop.
Save rhopp/81695d8b2db11a26ccd70f2ea541e207 to your computer and use it in GitHub Desktop.
#!/bin/bash
help()
{
# Display Help
echo "This script adds docker.io pull secret to your openshift instance."
echo
echo "Usage: $0 -u <dockerhub_user> -p <dockerhub_password> -n <target_namespace> -s <target_secret>"
echo
echo "Example for adding docker.io credentials to cluster pull secret:"
echo "$ $0 -u rhopp -p mypassword -n openshift-config -s pull-secret"
}
while getopts ":hu:p:n:s:" arg; do
case $arg in
h)
help
exit 1
;;
u)
USERNAME=${OPTARG}
;;
p)
PASSWORD=${OPTARG}
;;
n)
NAMESPACE=${OPTARG}
;;
s)
SECRET=${OPTARG}
;;
*)
help
exit 1
;;
esac
done
if [ -z "$USERNAME" ] || [ -z "$PASSWORD" ] || [ -z "$NAMESPACE" ] || [ -z "$SECRET" ]; then
help
exit 1
fi
CLUSTER_URL=$(oc whoami --show-console)
echo "Logged in to cluster $CLUSTER_URL"
TEMP_DIR=$(mktemp -d /tmp/dockerhubscriptXXX)
oc get "secret/${SECRET}" -n "${NAMESPACE}" --template='{{index .data ".dockerconfigjson" | base64decode}}' > "$TEMP_DIR/pull_secret.yaml"
oc registry login --registry="docker.io" --auth-basic="${USERNAME}:${PASSWORD}" --to="$TEMP_DIR/pull_secret.yaml"
oc set data "secret/${SECRET}" -n "${NAMESPACE}" --from-file=.dockerconfigjson="$TEMP_DIR/pull_secret.yaml"
rm -rf "$TEMP_DIR"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment