Charmed-Kubernetes/kubernetes-worker/script/upload

51 lines
1.3 KiB
Bash

#!/bin/bash
set -x
export PATH=/snap/bin:$PATH
: "${CHARM_BUILD_DIR:=/tmp/charms}"
charm whoami
RET=$?
if ((RET > 0)); then
echo "Not logged into charmstore"
exit 1
fi
function generate::attachments
{
./build-cni-resources.sh
for resource in *.tgz; do
charm attach cs:~"$NAMESPACE"/"$CHARM" --channel unpublished "${resource%.*}"="$resource"
done
snap_placeholders=(core kubectl kubelet kube-proxy)
mkdir -p placeholders
for snap in ${snap_placeholders[@]}; do
touch placeholders/"$snap.snap"
charm attach cs:~"$NAMESPACE"/"$CHARM" --channel unpublished "$snap"=placeholders/"$snap".snap
done
}
function generate::resource::argument
{
py_script="
import sys
import json
resources_json = json.load(sys.stdin)
resource_map = []
for item in resources_json:
resource_map.append(f\"--resource {item['Name']}-{item['Revision']}\")
print(' '.join(resource_map))
"
charm list-resources cs:~"$NAMESPACE"/"$CHARM" --channel unpublished --format json | env python3 -c "$py_script"
}
URL=$(charm push "$CHARM_BUILD_DIR"/builds/"$CHARM"/. cs:~"$NAMESPACE"/"$CHARM" | yq r - url)
generate::attachments
if [ "$CHANNEL" != unpublished ]; then
charm release "$URL" --channel "$CHANNEL" $(generate::resource::argument)
fi