From 21ab49ddecaef0629cf3e63ed421d7e345705504 Mon Sep 17 00:00:00 2001 From: Bitnami Bot Date: Thu, 22 Dec 2022 01:38:07 +0100 Subject: [PATCH] [bitnami/chartmuseum] Release 0.15.0-debian-11-r52 (#17697) Signed-off-by: Bitnami Containers Signed-off-by: Bitnami Containers --- bitnami/chartmuseum/0/debian-11/Dockerfile | 4 +- .../opt/bitnami/.bitnami_components.json | 4 +- .../opt/bitnami/scripts/chartmuseum-env.sh | 30 ++ .../bitnami/scripts/chartmuseum/entrypoint.sh | 6 +- .../bitnami/scripts/chartmuseum/postunpack.sh | 13 +- .../opt/bitnami/scripts/chartmuseum/run.sh | 21 +- .../opt/bitnami/scripts/chartmuseum/setup.sh | 7 +- .../rootfs/opt/bitnami/scripts/libharbor.sh | 497 +++++++++++++++++- 8 files changed, 557 insertions(+), 25 deletions(-) create mode 100644 bitnami/chartmuseum/0/debian-11/rootfs/opt/bitnami/scripts/chartmuseum-env.sh diff --git a/bitnami/chartmuseum/0/debian-11/Dockerfile b/bitnami/chartmuseum/0/debian-11/Dockerfile index d96028b7d200..c270d685a951 100644 --- a/bitnami/chartmuseum/0/debian-11/Dockerfile +++ b/bitnami/chartmuseum/0/debian-11/Dockerfile @@ -4,7 +4,7 @@ ARG TARGETARCH LABEL org.opencontainers.image.authors="https://bitnami.com/contact" \ org.opencontainers.image.description="Application packaged by Bitnami" \ - org.opencontainers.image.ref.name="0.15.0-debian-11-r51" \ + org.opencontainers.image.ref.name="0.15.0-debian-11-r52" \ org.opencontainers.image.source="https://github.com/bitnami/containers/tree/main/bitnami/chartmuseum" \ org.opencontainers.image.title="chartmuseum" \ org.opencontainers.image.vendor="VMware, Inc." \ @@ -21,7 +21,7 @@ SHELL ["/bin/bash", "-o", "pipefail", "-c"] RUN install_packages ca-certificates curl procps RUN mkdir -p /tmp/bitnami/pkg/cache/ && cd /tmp/bitnami/pkg/cache/ && \ COMPONENTS=( \ - "gosu-1.14.0-156-linux-${OS_ARCH}-debian-11" \ + "gosu-1.16.0-0-linux-${OS_ARCH}-debian-11" \ "chartmuseum-0.15.0-3-linux-${OS_ARCH}-debian-11" \ ) && \ for COMPONENT in "${COMPONENTS[@]}"; do \ diff --git a/bitnami/chartmuseum/0/debian-11/prebuildfs/opt/bitnami/.bitnami_components.json b/bitnami/chartmuseum/0/debian-11/prebuildfs/opt/bitnami/.bitnami_components.json index 850e0b7faaf1..9ac04bde5804 100644 --- a/bitnami/chartmuseum/0/debian-11/prebuildfs/opt/bitnami/.bitnami_components.json +++ b/bitnami/chartmuseum/0/debian-11/prebuildfs/opt/bitnami/.bitnami_components.json @@ -8,9 +8,9 @@ }, "gosu": { "arch": "amd64", - "digest": "7969f4cc8ad0a260f891cccf5694686a513f4706b48771d605645be1f3f072e2", + "digest": "c42abbc5d57ba4c33c89e4daf46c33b0173565fbf533ef7a60281cf3283f611f", "distro": "debian-11", "type": "NAMI", - "version": "1.14.0-156" + "version": "1.16.0-0" } } \ No newline at end of file diff --git a/bitnami/chartmuseum/0/debian-11/rootfs/opt/bitnami/scripts/chartmuseum-env.sh b/bitnami/chartmuseum/0/debian-11/rootfs/opt/bitnami/scripts/chartmuseum-env.sh new file mode 100644 index 000000000000..b02518b7277f --- /dev/null +++ b/bitnami/chartmuseum/0/debian-11/rootfs/opt/bitnami/scripts/chartmuseum-env.sh @@ -0,0 +1,30 @@ +#!/bin/bash +# +# Environment configuration for chartmuseum + +# The values for all environment variables will be set in the below order of precedence +# 1. Custom environment variables defined below after Bitnami defaults +# 2. Constants defined in this file (environment variables with no default), i.e. BITNAMI_ROOT_DIR +# 3. Environment variables overridden via external files using *_FILE variables (see below) +# 4. Environment variables set externally (i.e. current Bash context/Dockerfile/userdata) + +# Load logging library +# shellcheck disable=SC1090,SC1091 +. /opt/bitnami/scripts/liblog.sh + +export BITNAMI_ROOT_DIR="/opt/bitnami" +export BITNAMI_VOLUME_DIR="/bitnami" + +# Logging configuration +export MODULE="${MODULE:-chartmuseum}" +export BITNAMI_DEBUG="${BITNAMI_DEBUG:-false}" + +# Paths +export CHARTMUSEUM_BASE_DIR="${BITNAMI_ROOT_DIR}/chartmuseum" +export CHARTMUSEUM_VOLUME_DIR="/bitnami/data" + +# System users +export CHARTMUSEUM_DAEMON_USER="harbor" +export CHARTMUSEUM_DAEMON_GROUP="harbor" + +# Custom environment variables may be defined below diff --git a/bitnami/chartmuseum/0/debian-11/rootfs/opt/bitnami/scripts/chartmuseum/entrypoint.sh b/bitnami/chartmuseum/0/debian-11/rootfs/opt/bitnami/scripts/chartmuseum/entrypoint.sh index d360390c7c22..b990c53467d3 100755 --- a/bitnami/chartmuseum/0/debian-11/rootfs/opt/bitnami/scripts/chartmuseum/entrypoint.sh +++ b/bitnami/chartmuseum/0/debian-11/rootfs/opt/bitnami/scripts/chartmuseum/entrypoint.sh @@ -5,7 +5,7 @@ set -o errexit set -o nounset set -o pipefail -#set -o xtrace +# set -o xtrace # Uncomment this line for debugging purposes # Load libraries . /opt/bitnami/scripts/libbitnami.sh @@ -13,9 +13,9 @@ set -o pipefail print_welcome_page if [[ "$*" = *"/opt/bitnami/scripts/chartmuseum/run.sh"* ]]; then - info "** Starting chartmuseum setup **" + info "** Starting ChartMuseum setup **" /opt/bitnami/scripts/chartmuseum/setup.sh - info "** chartmuseum setup finished! **" + info "** ChartMuseum setup finished! **" fi echo "" diff --git a/bitnami/chartmuseum/0/debian-11/rootfs/opt/bitnami/scripts/chartmuseum/postunpack.sh b/bitnami/chartmuseum/0/debian-11/rootfs/opt/bitnami/scripts/chartmuseum/postunpack.sh index f6888c967794..ec195512e980 100755 --- a/bitnami/chartmuseum/0/debian-11/rootfs/opt/bitnami/scripts/chartmuseum/postunpack.sh +++ b/bitnami/chartmuseum/0/debian-11/rootfs/opt/bitnami/scripts/chartmuseum/postunpack.sh @@ -1,20 +1,25 @@ #!/bin/bash -# -# Bitnami Chartmuseum postunpack # shellcheck disable=SC1091 set -o errexit set -o nounset set -o pipefail -# set -o xtrace # Uncomment this line for debugging purpose +# set -o xtrace # Uncomment this line for debugging purposes # Load libraries . /opt/bitnami/scripts/libfs.sh +. /opt/bitnami/scripts/libos.sh +. /opt/bitnami/scripts/libservice.sh . /opt/bitnami/scripts/libharbor.sh +# Load environment +. /opt/bitnami/scripts/chartmuseum-env.sh + +ensure_user_exists "$CHARTMUSEUM_DAEMON_USER" --group "$CHARTMUSEUM_DAEMON_GROUP" + read -r -a directories <<<"$(get_system_cert_paths)" -directories+=("/bitnami/data") +directories+=("$CHARTMUSEUM_VOLUME_DIR") for dir in "${directories[@]}"; do ensure_dir_exists "$dir" diff --git a/bitnami/chartmuseum/0/debian-11/rootfs/opt/bitnami/scripts/chartmuseum/run.sh b/bitnami/chartmuseum/0/debian-11/rootfs/opt/bitnami/scripts/chartmuseum/run.sh index 4b91ab42fad6..b972494e4a0e 100755 --- a/bitnami/chartmuseum/0/debian-11/rootfs/opt/bitnami/scripts/chartmuseum/run.sh +++ b/bitnami/chartmuseum/0/debian-11/rootfs/opt/bitnami/scripts/chartmuseum/run.sh @@ -1,31 +1,32 @@ #!/bin/bash -# -# Bitnami Chartmuseum run # shellcheck disable=SC1091 set -o errexit set -o nounset set -o pipefail -#set -o xtrace # Uncomment this line for debugging purpose +# set -o xtrace # Uncomment this line for debugging purposes # Load libraries . /opt/bitnami/scripts/libfs.sh +. /opt/bitnami/scripts/libos.sh . /opt/bitnami/scripts/liblog.sh -FLAGS=() +# Load environment +. /opt/bitnami/scripts/chartmuseum-env.sh + +CMD=("/opt/bitnami/chartmuseum/bin/chartmuseum") STORAGE="${STORAGE:-local}" if [[ "$STORAGE" = "local" ]]; then info "Using local storage into /bitnami/data directory" STORAGE_LOCAL_ROOTDIR='/bitnami/data' - FLAGS+=("--storage" "$STORAGE" "--storage-local-rootdir" "$STORAGE_LOCAL_ROOTDIR") + CMD+=("--storage" "$STORAGE" "--storage-local-rootdir" "$STORAGE_LOCAL_ROOTDIR") fi -info "** Starting chartmuseum **" -EXEC=/opt/bitnami/chartmuseum/bin/chartmuseum -if [[ "${#FLAGS[@]}" -gt 0 ]]; then - exec "$EXEC" "${FLAGS[@]}" +info "** Starting ChartMuseum **" +if am_i_root; then + exec gosu "$CHARTMUSEUM_DAEMON_USER" "${CMD[@]}" else - exec "$EXEC" + exec "${CMD[@]}" "$@" fi diff --git a/bitnami/chartmuseum/0/debian-11/rootfs/opt/bitnami/scripts/chartmuseum/setup.sh b/bitnami/chartmuseum/0/debian-11/rootfs/opt/bitnami/scripts/chartmuseum/setup.sh index dbb790fe96e2..9e3c5dc1dc2c 100755 --- a/bitnami/chartmuseum/0/debian-11/rootfs/opt/bitnami/scripts/chartmuseum/setup.sh +++ b/bitnami/chartmuseum/0/debian-11/rootfs/opt/bitnami/scripts/chartmuseum/setup.sh @@ -1,19 +1,20 @@ #!/bin/bash -# -# Bitnami Chartmuseum setup # shellcheck disable=SC1091 set -o errexit set -o nounset set -o pipefail -# set -o xtrace # Uncomment this line for debugging purpose +# set -o xtrace # Uncomment this line for debugging purposes # Load libraries . /opt/bitnami/scripts/libfs.sh . /opt/bitnami/scripts/liblog.sh . /opt/bitnami/scripts/libharbor.sh +# Load environment +. /opt/bitnami/scripts/chartmuseum-env.sh + chart_museum_validate() { info "Validating ChartMuseum parameters" diff --git a/bitnami/chartmuseum/0/debian-11/rootfs/opt/bitnami/scripts/libharbor.sh b/bitnami/chartmuseum/0/debian-11/rootfs/opt/bitnami/scripts/libharbor.sh index 2965dc02ad82..c33761e3e2e4 100644 --- a/bitnami/chartmuseum/0/debian-11/rootfs/opt/bitnami/scripts/libharbor.sh +++ b/bitnami/chartmuseum/0/debian-11/rootfs/opt/bitnami/scripts/libharbor.sh @@ -6,6 +6,8 @@ # Load Generic Libraries . /opt/bitnami/scripts/liblog.sh +. /opt/bitnami/scripts/libos.sh +. /opt/bitnami/scripts/libservice.sh ######################## # Get the paths relevant to CA certs depending @@ -76,7 +78,6 @@ install_cert() { # None ######################### install_custom_certs() { - local installed=false # Install any internalTLS CA authority certificate, found under @@ -117,3 +118,497 @@ install_custom_certs() { info "No custom certificates were installed in the system" fi } + +######################## +# Generate an .env file contents given an input string containing all envvars +# Arguments: +# None +# Returns: +# String +######################### +harbor_generate_env_file_contents() { + local -r envvars_string="${1:?missing envvars}" + echo "#!/bin/bash" + while IFS= read -r ENV_VAR_LINE; do + if [[ ! "$ENV_VAR_LINE" =~ ^[A-Z_] ]]; then + continue + fi + ENV_VAR_NAME="${ENV_VAR_LINE/=*}" + ENV_VAR_VALUE="${ENV_VAR_LINE#*=}" + # Use single quotes to avoid shell expansion, and escape to be parsed properly (even if it contains quotes) + # Escape the value, so it can be parsed as a variable even with quotes set + echo "export ${ENV_VAR_NAME}='${ENV_VAR_VALUE//\'/\'\\\'\'}'" + done <<< "$envvars_string" +} + +######################## +# Print harbor-core runtime environment +# Arguments: +# None +# Returns: +# Boolean +######################### +harbor_core_print_env() { + # The CSRF key can only be up to 32 characters long + HARBOR_CORE_CFG_CSRF_KEY="${HARBOR_CORE_CFG_CSRF_KEY:0:32}" + for var in "${!HARBOR_CORE_CFG_@}"; do + echo "${var/HARBOR_CORE_CFG_/}=${!var}" + done +} + +######################## +# Check if harbor-core is running +# Arguments: +# None +# Returns: +# Boolean +######################### +is_harbor_core_running() { + # harbor-core does not create any PID file + # We regenerate the PID file for each time we query it to avoid getting outdated + pgrep -f "$(command -v harbor_core)" > "$HARBOR_CORE_PID_FILE" + + pid="$(get_pid_from_file "$HARBOR_CORE_PID_FILE")" + if [[ -n "$pid" ]]; then + is_service_running "$pid" + else + false + fi +} + +######################## +# Check if harbor-core is not running +# Arguments: +# None +# Returns: +# Boolean +######################### +is_harbor_core_not_running() { + ! is_harbor_core_running +} + +######################## +# Stop harbor-core +# Arguments: +# None +# Returns: +# None +######################### +harbor_core_stop() { + ! is_harbor_core_running && return + stop_service_using_pid "$HARBOR_CORE_PID_FILE" +} + +######################## +# Print harbor-jobservice runtime environment +# Arguments: +# None +# Returns: +# Boolean +######################### +harbor_jobservice_print_env() { + for var in "${!HARBOR_JOBSERVICE_CFG_@}"; do + echo "${var/HARBOR_JOBSERVICE_CFG_/}=${!var}" + done +} + +######################## +# Check if harbor-jobservice is running +# Arguments: +# None +# Returns: +# Boolean +######################### +is_harbor_jobservice_running() { + # harbor-jobservice does not create any PID file + # We regenerate the PID file for each time we query it to avoid getting outdated + pgrep -f "$(command -v harbor_jobservice)" > "$HARBOR_JOBSERVICE_PID_FILE" + + pid="$(get_pid_from_file "$HARBOR_JOBSERVICE_PID_FILE")" + if [[ -n "$pid" ]]; then + is_service_running "$pid" + else + false + fi +} + +######################## +# Check if harbor-jobservice is not running +# Arguments: +# None +# Returns: +# Boolean +######################### +is_harbor_jobservice_not_running() { + ! is_harbor_jobservice_running +} + +######################## +# Stop harbor-jobservice +# Arguments: +# None +# Returns: +# None +######################### +harbor_jobservice_stop() { + ! is_harbor_jobservice_running && return + stop_service_using_pid "$HARBOR_JOBSERVICE_PID_FILE" +} + +######################## +# Print harbor-notary-server runtime environment +# Arguments: +# None +# Returns: +# Boolean +######################### +harbor_notary_server_print_env() { + if [[ -n "${HARBOR_NOTARY_SERVER_DATABASE_NAME:-}" ]]; then + HARBOR_NOTARY_SERVER_CFG_DB_URL="postgres://${HARBOR_NOTARY_SERVER_DATABASE_USERNAME:-}:${HARBOR_NOTARY_SERVER_DATABASE_PASSWORD:-}@${HARBOR_NOTARY_SERVER_DATABASE_HOST:-127.0.0.1}:${HARBOR_NOTARY_SERVER_DATABASE_PORT_NUMBER:-5432}/${HARBOR_NOTARY_SERVER_DATABASE_NAME}?sslmode=${HARBOR_NOTARY_SERVER_DATABASE_SSLMODE:-disable}" + fi + for var in "${!HARBOR_NOTARY_SERVER_CFG_@}"; do + echo "${var/HARBOR_NOTARY_SERVER_CFG_/}=${!var}" + done +} + +######################## +# Check if harbor-notary-server is running +# Arguments: +# None +# Returns: +# Boolean +######################### +is_harbor_notary_server_running() { + # harbor-notary-server does not create any PID file + # We regenerate the PID file for each time we query it to avoid getting outdated + pgrep -f "$(command -v notary-server)" > "$HARBOR_NOTARY_SERVER_PID_FILE" + + pid="$(get_pid_from_file "$HARBOR_NOTARY_SERVER_PID_FILE")" + if [[ -n "$pid" ]]; then + is_service_running "$pid" + else + false + fi +} + +######################## +# Check if harbor-notary-server is not running +# Arguments: +# None +# Returns: +# Boolean +######################### +is_harbor_notary_server_not_running() { + ! is_harbor_notary_server_running +} + +######################## +# Stop harbor-notary-server +# Arguments: +# None +# Returns: +# None +######################### +harbor_notary_server_stop() { + ! is_harbor_notary_server_running && return + stop_service_using_pid "$HARBOR_NOTARY_SERVER_PID_FILE" +} + +######################## +# Print harbor-notary-signer runtime environment +# Arguments: +# None +# Returns: +# Boolean +######################### +harbor_notary_signer_print_env() { + if [[ -n "${HARBOR_NOTARY_SIGNER_DATABASE_NAME:-}" ]]; then + HARBOR_NOTARY_SIGNER_CFG_DB_URL="postgres://${HARBOR_NOTARY_SIGNER_DATABASE_USERNAME:-}:${HARBOR_NOTARY_SIGNER_DATABASE_PASSWORD:-}@${HARBOR_NOTARY_SIGNER_DATABASE_HOST:-127.0.0.1}:${HARBOR_NOTARY_SIGNER_DATABASE_PORT_NUMBER:-5432}/${HARBOR_NOTARY_SIGNER_DATABASE_NAME}?sslmode=${HARBOR_NOTARY_SIGNER_DATABASE_SSLMODE:-disable}" + fi + for var in "${!HARBOR_NOTARY_SIGNER_CFG_@}"; do + echo "${var/HARBOR_NOTARY_SIGNER_CFG_/}=${!var}" + done +} + +######################## +# Check if harbor-notary-signer is running +# Arguments: +# None +# Returns: +# Boolean +######################### +is_harbor_notary_signer_running() { + # harbor-notary-signer does not create any PID file + # We regenerate the PID file for each time we query it to avoid getting outdated + pgrep -f "$(command -v notary-signer)" > "$HARBOR_NOTARY_SIGNER_PID_FILE" + + pid="$(get_pid_from_file "$HARBOR_NOTARY_SIGNER_PID_FILE")" + if [[ -n "$pid" ]]; then + is_service_running "$pid" + else + false + fi +} + +######################## +# Check if harbor-notary-signer is not running +# Arguments: +# None +# Returns: +# Boolean +######################### +is_harbor_notary_signer_not_running() { + ! is_harbor_notary_signer_running +} + +######################## +# Stop harbor-notary-signer +# Arguments: +# None +# Returns: +# None +######################### +harbor_notary_signer_stop() { + ! is_harbor_notary_signer_running && return + stop_service_using_pid "$HARBOR_NOTARY_SIGNER_PID_FILE" +} + +######################## +# Print harbor-registry runtime environment +# Arguments: +# None +# Returns: +# Boolean +######################### +harbor_registry_print_env() { + if [[ -n "$HARBOR_REGISTRY_USER" && -n "$HARBOR_REGISTRY_PASSWORD" ]]; then + HARBOR_REGISTRY_CFG_REGISTRY_HTPASSWD="$(htpasswd -nbBC10 "$HARBOR_REGISTRY_USER" "$HARBOR_REGISTRY_PASSWORD")" + # Update passwd file + echo "$HARBOR_REGISTRY_CFG_REGISTRY_HTPASSWD" >/etc/registry/passwd + fi + for var in "${!HARBOR_REGISTRY_CFG_@}"; do + echo "${var/HARBOR_REGISTRY_CFG_/}=${!var}" + done +} + +######################## +# Check if harbor-registry is running +# Arguments: +# None +# Returns: +# Boolean +######################### +is_harbor_registry_running() { + # harbor-registry does not create any PID file + # We regenerate the PID file for each time we query it to avoid getting outdated + pgrep -f "$(command -v registry)" > "$HARBOR_REGISTRY_PID_FILE" + + pid="$(get_pid_from_file "$HARBOR_REGISTRY_PID_FILE")" + if [[ -n "$pid" ]]; then + is_service_running "$pid" + else + false + fi +} + +######################## +# Check if harbor-registry is not running +# Arguments: +# None +# Returns: +# Boolean +######################### +is_harbor_registry_not_running() { + ! is_harbor_registry_running +} + +######################## +# Stop harbor-registry +# Arguments: +# None +# Returns: +# None +######################### +harbor_registry_stop() { + ! is_harbor_registry_running && return + stop_service_using_pid "$HARBOR_REGISTRY_PID_FILE" +} + +######################## +# Print harbor-registryctl runtime environment +# Arguments: +# None +# Returns: +# Boolean +######################### +harbor_registryctl_print_env() { + if [[ -n "$HARBOR_REGISTRYCTL_USER" && -n "$HARBOR_REGISTRYCTL_PASSWORD" ]]; then + HARBOR_REGISTRYCTL_CFG_REGISTRY_HTPASSWD="$(htpasswd -nbBC10 "$HARBOR_REGISTRYCTL_USER" "$HARBOR_REGISTRYCTL_PASSWORD")" + # Update passwd file + echo "$HARBOR_REGISTRYCTL_CFG_REGISTRY_HTPASSWD" >/etc/registry/passwd + fi + for var in "${!HARBOR_REGISTRYCTL_CFG_@}"; do + echo "${var/HARBOR_REGISTRYCTL_CFG_/}=${!var}" + done +} + +######################## +# Check if harbor-registryctl is running +# Arguments: +# None +# Returns: +# Boolean +######################### +is_harbor_registryctl_running() { + # harbor-registryctl does not create any PID file + # We regenerate the PID file for each time we query it to avoid getting outdated + pgrep -f "$(command -v harbor_registryctl)" > "$HARBOR_REGISTRYCTL_PID_FILE" + + pid="$(get_pid_from_file "$HARBOR_REGISTRYCTL_PID_FILE")" + if [[ -n "$pid" ]]; then + is_service_running "$pid" + else + false + fi +} + +######################## +# Check if harbor-registryctl is not running +# Arguments: +# None +# Returns: +# Boolean +######################### +is_harbor_registryctl_not_running() { + ! is_harbor_registryctl_running +} + +######################## +# Stop harbor-registryctl +# Arguments: +# None +# Returns: +# None +######################### +harbor_registryctl_stop() { + ! is_harbor_registryctl_running && return + stop_service_using_pid "$HARBOR_REGISTRYCTL_PID_FILE" + # The service may not respond properly to the default kill signal, so send a SIGKILL if it fails + local -r retries=5 + local -r sleep_time=1 + if ! retry_while "is_harbor_registryctl_not_running" "$retries" "$sleep_time"; then + stop_service_using_pid "$HARBOR_REGISTRYCTL_PID_FILE" SIGKILL + fi +} + +######################## +# Print harbor-adapter-trivy runtime environment +# Arguments: +# None +# Returns: +# Boolean +######################### +harbor_adapter_trivy_print_env() { + for var in "${!SCANNER_TRIVY_CFG_@}"; do + echo "${var/SCANNER_TRIVY_CFG_/}=${!var}" + done +} + +######################## +# Check if harbor-adapter-trivy is running +# Arguments: +# None +# Returns: +# Boolean +######################### +is_harbor_adapter_trivy_running() { + # harbor-adapter-trivy does not create any PID file + # We regenerate the PID file for each time we query it to avoid getting outdated + pgrep -f "$(command -v scanner-trivy)" > "$SCANNER_TRIVY_PID_FILE" + + pid="$(get_pid_from_file "$SCANNER_TRIVY_PID_FILE")" + if [[ -n "$pid" ]]; then + is_service_running "$pid" + else + false + fi +} + +######################## +# Check if harbor-adapter-trivy is not running +# Arguments: +# None +# Returns: +# Boolean +######################### +is_harbor_adapter_trivy_not_running() { + ! is_harbor_adapter_trivy_running +} + +######################## +# Stop harbor-adapter-trivy +# Arguments: +# None +# Returns: +# None +######################### +harbor_adapter_trivy_stop() { + ! is_harbor_adapter_trivy_running && return + stop_service_using_pid "$SCANNER_TRIVY_PID_FILE" +} + +######################## +# Print chartmuseum runtime environment +# Arguments: +# None +# Returns: +# Boolean +######################### +chartmuseum_print_env() { + for var in "${!CHARTMUSEUM_CFG_@}"; do + echo "${var/CHARTMUSEUM_CFG_/}=${!var}" + done +} + +######################## +# Check if chartmuseum is running +# Arguments: +# None +# Returns: +# Boolean +######################### +is_chartmuseum_running() { + # chartmuseum does not create any PID file + # We regenerate the PID file for each time we query it to avoid getting outdated + pgrep -f "$(command -v chartmuseum)" > "$CHARTMUSEUM_PID_FILE" + + pid="$(get_pid_from_file "$CHARTMUSEUM_PID_FILE")" + if [[ -n "$pid" ]]; then + is_service_running "$pid" + else + false + fi +} + +######################## +# Check if chartmuseum is not running +# Arguments: +# None +# Returns: +# Boolean +######################### +is_chartmuseum_not_running() { + ! is_chartmuseum_running +} + +######################## +# Stop chartmuseum +# Arguments: +# None +# Returns: +# None +######################### +chartmuseum_stop() { + ! is_chartmuseum_running && return + stop_service_using_pid "$CHARTMUSEUM_PID_FILE" +}