Charmed-Kubernetes/calico/script/upload

54 lines
1.5 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-calico-resource.sh
touch calico-node-image.tar.gz
charm attach cs:~"$NAMESPACE"/"$CHARM" --channel unpublished \
calico-node-image=calico-node-image.tar.gz
charm attach cs:~"$NAMESPACE"/"$CHARM" --channel unpublished \
calico=calico-amd64.tar.gz
charm attach cs:~"$NAMESPACE"/"$CHARM" --channel unpublished \
calico-arm64=calico-arm64.tar.gz
charm attach cs:~"$NAMESPACE"/"$CHARM" --channel unpublished \
calico-upgrade=calico-upgrade-amd64.tar.gz
charm attach cs:~"$NAMESPACE"/"$CHARM" --channel unpublished \
calico-upgrade-arm64=calico-upgrade-arm64.tar.gz
}
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