mirror of
https://github.com/TECHNOFAB11/zfs-localpv.git
synced 2025-12-12 22:40:12 +01:00
provisioning and deprovisioning of the volumes on the node where zfs pool has already been setup. Pool name and the volume parameters has to be given in storage class which will be used to provision the volume. Signed-off-by: Pawan <pawan@mayadata.io>
102 lines
2.6 KiB
Bash
Executable file
102 lines
2.6 KiB
Bash
Executable file
#!/bin/bash
|
|
set -e
|
|
|
|
if [ -z ${DIMAGE} ];
|
|
then
|
|
echo "Error: DIMAGE is not specified";
|
|
exit 1
|
|
fi
|
|
|
|
IMAGEID=$( sudo docker images -q ${DIMAGE}:ci )
|
|
echo "${DIMAGE}:ci -> $IMAGEID"
|
|
if [ -z ${IMAGEID} ];
|
|
then
|
|
echo "Error: unable to get IMAGEID for ${DIMAGE}:ci";
|
|
exit 1
|
|
fi
|
|
|
|
# Generate a unique tag based on the commit and tag
|
|
BUILD_ID=$(git describe --tags --always)
|
|
|
|
# Determine the current branch
|
|
CURRENT_BRANCH=""
|
|
if [ -z ${TRAVIS_BRANCH} ];
|
|
then
|
|
CURRENT_BRANCH=$(git branch | grep \* | cut -d ' ' -f2)
|
|
else
|
|
CURRENT_BRANCH=${TRAVIS_BRANCH}
|
|
fi
|
|
|
|
#Depending on the branch where builds are generated,
|
|
# set the tag CI (fixed) and build tags.
|
|
BUILD_TAG="${CURRENT_BRANCH}-${BUILD_ID}"
|
|
CI_TAG="${CURRENT_BRANCH}-ci"
|
|
if [ ${CURRENT_BRANCH} = "master" ]; then
|
|
CI_TAG="ci"
|
|
fi
|
|
|
|
echo "Set the fixed ci image tag as: ${CI_TAG}"
|
|
echo "Set the build/unique image tag as: ${BUILD_TAG}"
|
|
|
|
function TagAndPushImage() {
|
|
REPO="$1"
|
|
TAG="$2"
|
|
|
|
IMAGE_URI="${REPO}:${TAG}";
|
|
sudo docker tag ${IMAGEID} ${IMAGE_URI};
|
|
echo " push ${IMAGE_URI}";
|
|
sudo docker push ${IMAGE_URI};
|
|
}
|
|
|
|
|
|
if [ ! -z "${DNAME}" ] && [ ! -z "${DPASS}" ];
|
|
then
|
|
sudo docker login -u "${DNAME}" -p "${DPASS}";
|
|
|
|
# Push CI tagged image - :ci or :branch-ci
|
|
TagAndPushImage "${DIMAGE}" "${CI_TAG}"
|
|
|
|
# Push unique tagged image - :master-<uuid> or :branch-<uuid>
|
|
# This unique/build image will be pushed to corresponding ci repo.
|
|
TagAndPushImage "${DIMAGE}-ci" "${BUILD_TAG}"
|
|
|
|
if [ ! -z "${TRAVIS_TAG}" ] ;
|
|
then
|
|
# Push with different tags if tagged as a release
|
|
# When github is tagged with a release, then Travis will
|
|
# set the release tag in env TRAVIS_TAG
|
|
TagAndPushImage "${DIMAGE}" "${TRAVIS_TAG}"
|
|
TagAndPushImage "${DIMAGE}" "latest"
|
|
fi;
|
|
else
|
|
echo "No docker credentials provided. Skip uploading ${DIMAGE} to docker hub";
|
|
fi;
|
|
|
|
# Push ci image to quay.io for security scanning
|
|
if [ ! -z "${QNAME}" ] && [ ! -z "${QPASS}" ];
|
|
then
|
|
sudo docker login -u "${QNAME}" -p "${QPASS}" quay.io;
|
|
|
|
# Push CI tagged image - :ci or :branch-ci
|
|
TagAndPushImage "quay.io/${DIMAGE}" "${CI_TAG}"
|
|
|
|
if [ ! -z "${TRAVIS_TAG}" ] ;
|
|
then
|
|
# Push with different tags if tagged as a release
|
|
# When github is tagged with a release, then Travis will
|
|
# set the release tag in env TRAVIS_TAG
|
|
TagAndPushImage "quay.io/${DIMAGE}" "${TRAVIS_TAG}"
|
|
TagAndPushImage "quay.io/${DIMAGE}" "latest"
|
|
fi;
|
|
else
|
|
echo "No docker credentials provided. Skip uploading ${DIMAGE} to quay";
|
|
fi;
|
|
|
|
#Push image to run openebs-e2e based on git commit
|
|
if [ ! -z "${COMMIT}" ];
|
|
then
|
|
sudo docker login -u "${GITLAB_DNAME}" -p "${GITLAB_DPASS}";
|
|
|
|
# Push COMMIT tagged image - :COMMIT
|
|
TagAndPushImage "${DIMAGE}" "${COMMIT}"
|
|
fi;
|