#!/bin/bash # # Copyright (c) 2018 Wind River Systems, Inc. # # SPDX-License-Identifier: Apache-2.0 # # This script takes the names of packaged helm charts as arguments. # It installs them in the on-node helm chart repository and regenerates # the repository index. # We want to run as the "www" user and scripts can't be setuid. The # sudoers permissions are set up to allow sysadmin to run this script # as the "www" user without a password. if [ $USER != "www" ]; then exec sudo -u www $0 $@ fi RETVAL=0 REINDEX=0 REPO_BASE='/www/pages/helm_charts' # First argument is always the repo where the charts need to be placed if [ $# -lt 2 ]; then echo "Usage: helm-upload .. " exit 1 fi # Make sure the repo directory exists REPO_DIR="${REPO_BASE}/$1" if [ ! -e $REPO_DIR ]; then echo "$REPO_DIR doesn't exist." exit 1 fi shift 1 for FILE in "$@"; do if [ -r $FILE ]; then # QUESTION: should we disallow overwriting an existing file? # The versions are embedded in the filename, so it shouldn't # cause problems. cp $FILE $REPO_DIR if [ $? -ne 0 ]; then echo Problem adding $FILE to helm chart registry. RETVAL=1 else REINDEX=1 fi else echo Cannot read file ${FILE}. RETVAL=1 fi done # Now re-index the helm repository if we successfully copied in # any new charts. if [ $REINDEX -eq 1 ]; then /usr/sbin/helm repo index $REPO_DIR fi exit $RETVAL