#!/bin/bash set -ex REPO_URL_S3="s3://zero-downtime-web-cdn/charts" REPO_URL="https://cdn.zero-downtime.net/charts" CHARTS=${1:-'.*'} SRCROOT="$(cd "$(dirname "$0")/.." && pwd)" TMPDIR=$(mktemp -d kubezero-repo.XXX) mkdir -p $TMPDIR [ -z "$DEBUG" ] && trap 'rm -rf $TMPDIR' ERR EXIT function reset_index() { aws s3 sync $REPO_URL_S3/ $TMPDIR/ helm repo index $TMPDIR --url $REPO_URL aws s3 cp $TMPDIR/index.yaml $REPO_URL_S3/ --cache-control max-age=1 exit 0 } function publish_chart() { for dir in $(find -L $SRCROOT/charts -mindepth 1 -maxdepth 1 -type d); do name=$(basename $dir) [[ $name =~ $CHARTS ]] || continue #if [ $(helm dep list $dir 2>/dev/null| wc -l) -gt 1 ] #then # echo "Processing chart dependencies" # rm -rf $dir/tmpcharts # helm dependency update --skip-refresh $dir #fi echo "Processing $dir" helm lint $dir helm package -d $TMPDIR $dir done curl -L -s -o $TMPDIR/index.yaml ${REPO_URL}/index.yaml helm repo index $TMPDIR --url $REPO_URL --merge $TMPDIR/index.yaml for p in $TMPDIR/*.tgz; do aws s3 cp $p $REPO_URL_S3/ done aws s3 cp $TMPDIR/index.yaml $REPO_URL_S3/ --cache-control max-age=1 } #reset_index publish_chart CF_DIST=E11OFTOA3L8IVY aws cloudfront create-invalidation --distribution $CF_DIST --paths "/charts/*"