1
0
mirror of https://github.com/quay/quay.git synced 2025-04-18 10:44:06 +03:00
quay/quay-entrypoint.sh
Brandon Caton b6d51e7a08
init: adding Postgres cert install to entrypoint (PROJQUAY-7694) (#3229)
Adding postgres cert install to quay-entrypoint
2024-09-17 09:19:09 -04:00

138 lines
4.8 KiB
Bash
Executable File

#!/usr/bin/env bash
QUAYENTRY=${QUAYENTRY:=$1}
QUAYENTRY=${QUAYENTRY:=registry}
if ! whoami &> /dev/null; then
if [ -w /etc/passwd ]; then
echo "${USER_NAME:-default}:x:$(id -u):0:${USER_NAME:-default} user:${HOME}:/sbin/nologin" >> /etc/passwd
fi
fi
display_usage() {
echo "Usage: ${0} <registry|config|migrate|repomirror|shell|help>"
echo
echo "If the first argument isn't one of the above modes,"
echo "the arguments will be exec'd directly, i.e.:"
echo
echo " ${0} uptime"
}
if [[ "${QUAYENTRY}" = "help" ]]
then
display_usage
exit 0
fi
cat << "EOF"
__ __
/ \ / \ ______ _ _ __ __ __
/ /\ / /\ \ / __ \ | | | | / \ \ \ / /
/ / / / \ \ | | | | | | | | / /\ \ \ /
\ \ \ \ / / | |__| | | |__| | / ____ \ | |
\ \/ \ \/ / \_ ___/ \____/ /_/ \_\ |_|
\__/ \__/ \ \__
\___\ by Red Hat
Build, Store, and Distribute your Containers
EOF
# Custom environment variables for use in conf/supervisord.conf
# The gunicorn-registry process DB_CONNECTION_POOLING must default to true
export DB_CONNECTION_POOLING_REGISTRY=${DB_CONNECTION_POOLING:-"true"}
export CONFIG_APP_PASSWORD=${CONFIG_APP_PASSWORD:-"\"\""}
export OPERATOR_ENDPOINT=${OPERATOR_ENDPOINT:-"\"\""}
export QUAY_CONFIG_READ_ONLY_FIELD_GROUPS=${QUAY_CONFIG_READ_ONLY_FIELD_GROUPS:-"\"\""}
case "$QUAYENTRY" in
"shell")
echo "Entering shell mode"
exec /bin/bash
;;
"config")
echo ""; echo "Startup timestamp: "; date; echo ""
if [ -z "${QUAY_SERVICES}" ]; then
echo "Running all default config services"
else
echo "Running services ${QUAY_SERVICES}"
fi
if [ $CONFIG_APP_PASSWORD = "\"\"" ]; then
CONFIG_APP_PASSWORD=$2
fi
: "${CONFIG_APP_PASSWORD:?Missing password argument for configuration tool}"
export CONFIG_APP_PASSWORD="${CONFIG_APP_PASSWORD}"
if [ $OPERATOR_ENDPOINT = "\"\"" ]; then
if [ -n "$3" ]; then
OPERATOR_ENDPOINT=$3
fi
fi
export OPERATOR_ENDPOINT="${OPERATOR_ENDPOINT}"
"${QUAYPATH}/conf/init/certs_install.sh" || exit
"${QUAYPATH}/conf/init/client_certs.sh" || exit
"${QUAYPATH}/conf/init/supervisord_conf_create.sh" config || exit
exec supervisord -c "${QUAYCONF}/supervisord.conf" 2>&1
;;
"migrate")
echo ""; echo "Startup timestamp: "; date; echo ""
: "${MIGRATION_VERSION:=$2}"
: "${MIGRATION_VERSION:?Missing version argument}"
"${QUAYPATH}/conf/init/client_certs.sh" || exit
echo "Entering migration mode to version: ${MIGRATION_VERSION}"
PYTHONPATH="${QUAYPATH}" alembic upgrade "${MIGRATION_VERSION}"
;;
"registry-nomigrate")
echo ""; echo "Startup timestamp: "; date; echo ""
echo "Running all default registry services without migration"
for f in "${QUAYCONF}"/init/*.sh; do
if [ "$f" != "/quay-registry/conf/init/runmigration.sh" ]; then
echo "Running init script '$f'"
ENSURE_NO_MIGRATION=true "$f" || exit
fi
done
exec supervisord -c "${QUAYCONF}/supervisord.conf" 2>&1
;;
"registry")
echo ""; echo "Startup timestamp: "; date; echo ""
if [ -z "${QUAY_SERVICES}" ]; then
echo "Running all default registry services"
else
echo "Running services ${QUAY_SERVICES}"
fi
for f in "${QUAYCONF}"/init/*.sh; do
echo "Running init script '$f'"
"$f" || exit
done
exec supervisord -c "${QUAYCONF}/supervisord.conf" 2>&1
;;
"repomirror-nomigrate")
echo ""; echo "Startup timestamp: "; date; echo ""
echo "Entering repository mirroring mode"
export QUAY_SERVICES="${QUAY_SERVICES}${QUAY_SERVICES:+,}repomirrorworker,pushgateway"
echo "Running services ${QUAY_SERVICES}"
for f in "${QUAYCONF}"/init/*.sh; do
if [ "$f" != "/quay-registry/conf/init/runmigration.sh" ]; then
echo "Running init script '$f'"
ENSURE_NO_MIGRATION=true "$f" || exit
fi
done
exec supervisord -c "${QUAYCONF}/supervisord.conf" 2>&1
;;
"repomirror")
echo ""; echo "Startup timestamp: "; date; echo ""
echo "Entering repository mirroring mode"
export QUAY_SERVICES="${QUAY_SERVICES}${QUAY_SERVICES:+,}repomirrorworker,pushgateway"
echo "Running services ${QUAY_SERVICES}"
for f in "${QUAYCONF}"/init/*.sh; do
echo "Running init script '$f'"
"$f" || exit
done
exec supervisord -c "${QUAYCONF}/supervisord.conf" 2>&1
;;
*)
echo "Running '$QUAYENTRY'"
eval exec "$@"
;;
esac