diff --git a/.gitignore b/.gitignore index c223606b3498..84eaa0381387 100644 --- a/.gitignore +++ b/.gitignore @@ -29,3 +29,4 @@ __pycache__ /tests/.vscode /sonobuoy-output *.tmp +.vscode diff --git a/Dockerfile.dapper b/Dockerfile.dapper index 3ebcad5798ca..706a15f5d08d 100644 --- a/Dockerfile.dapper +++ b/Dockerfile.dapper @@ -42,7 +42,7 @@ ARG SELINUX=true ENV SELINUX $SELINUX ENV DAPPER_RUN_ARGS --privileged -v k3s-cache:/go/src/github.com/k3s-io/k3s/.cache -v trivy-cache:/root/.cache/trivy -ENV DAPPER_ENV REPO TAG DRONE_TAG IMAGE_NAME SKIP_VALIDATE SKIP_AIRGAP GCLOUD_AUTH GITHUB_TOKEN GOLANG +ENV DAPPER_ENV REPO TAG DRONE_TAG IMAGE_NAME SKIP_VALIDATE SKIP_AIRGAP GCLOUD_AUTH GITHUB_TOKEN GOLANG PROG ENV DAPPER_SOURCE /go/src/github.com/k3s-io/k3s/ ENV DAPPER_OUTPUT ./bin ./dist ./build/out ./build/static ./pkg/static ./pkg/deploy diff --git a/package/Dockerfile b/package/Dockerfile index 29aab5e81801..4c607eb4ed89 100644 --- a/package/Dockerfile +++ b/package/Dockerfile @@ -5,18 +5,25 @@ RUN mkdir -p /image/etc/ssl/certs /image/run /image/var/run /image/tmp /image/li tar -xa -C /image -f /data.tar.zst && \ cp /etc/ssl/certs/ca-certificates.crt /image/etc/ssl/certs/ca-certificates.crt +ADD ./package/entrypoint.sh /image + FROM scratch ARG VERSION="dev" +ARG PROG="k3s" + COPY --from=base /image / + RUN mkdir -p /etc && \ echo 'hosts: files dns' > /etc/nsswitch.conf && \ - echo "PRETTY_NAME=\"K3s ${VERSION}\"" > /etc/os-release && \ + echo "PRETTY_NAME=\"${PROG} ${VERSION}\"" > /etc/os-release && \ chmod 1777 /tmp VOLUME /var/lib/kubelet -VOLUME /var/lib/rancher/k3s +VOLUME /var/lib/rancher/${PROG} VOLUME /var/lib/cni VOLUME /var/log ENV PATH="$PATH:/bin/aux" -ENV CRI_CONFIG_FILE="/var/lib/rancher/k3s/agent/etc/crictl.yaml" -ENTRYPOINT ["/bin/k3s"] +ENV CRI_CONFIG_FILE="/var/lib/rancher/${PROG}/agent/etc/crictl.yaml" +ENV PROG=${PROG} + +ENTRYPOINT ["/entrypoint.sh"] CMD ["agent"] diff --git a/package/entrypoint.sh b/package/entrypoint.sh new file mode 100755 index 000000000000..e8c6a95777fc --- /dev/null +++ b/package/entrypoint.sh @@ -0,0 +1,2 @@ +#!/bin/sh -f +exec /bin/${PROG} "$@" diff --git a/scripts/airgap/generate-list.sh b/scripts/airgap/generate-list.sh index 813513aca3ab..f0942217eeec 100755 --- a/scripts/airgap/generate-list.sh +++ b/scripts/airgap/generate-list.sh @@ -1,8 +1,10 @@ #!/bin/bash set -e -x +. ./scripts/version.sh + cd $(dirname $0) -k3s crictl images -o json \ +${PROG} crictl images -o json \ | jq -r '.images[].repoTags[0] | select(. != null)' \ | tee image-list.txt diff --git a/scripts/binary_size_check.sh b/scripts/binary_size_check.sh index c061f4f9e053..65e60806a815 100755 --- a/scripts/binary_size_check.sh +++ b/scripts/binary_size_check.sh @@ -8,9 +8,9 @@ fi . ./scripts/version.sh -# Try to keep the K3s binary under 64 megabytes. -# "64M ought to be enough for anybody" -MAX_BINARY_MB=64 +# Try to keep the K3s binary under 68 megabytes. +# "68M ought to be enough for anybody" +MAX_BINARY_MB=68 MAX_BINARY_SIZE=$((MAX_BINARY_MB * 1024 * 1024)) BIN_SUFFIX="-${ARCH}" if [ ${ARCH} = amd64 ]; then @@ -21,13 +21,13 @@ elif [ ${ARCH} = s390x ]; then BIN_SUFFIX="-s390x" fi -CMD_NAME="dist/artifacts/k3s${BIN_SUFFIX}" +CMD_NAME="dist/artifacts/${PROG}${BIN_SUFFIX}" SIZE=$(stat -c '%s' ${CMD_NAME}) if [ ${SIZE} -gt ${MAX_BINARY_SIZE} ]; then - echo "k3s binary ${CMD_NAME} size ${SIZE} exceeds max acceptable size of ${MAX_BINARY_SIZE} bytes (${MAX_BINARY_MB} MiB)" + echo "${PROG} binary ${CMD_NAME} size ${SIZE} exceeds max acceptable size of ${MAX_BINARY_SIZE} bytes (${MAX_BINARY_MB} MiB)" exit 1 fi -echo "k3s binary ${CMD_NAME} size ${SIZE} is less than max acceptable size of ${MAX_BINARY_SIZE} bytes (${MAX_BINARY_MB} MiB)" +echo "${PROG} binary ${CMD_NAME} size ${SIZE} is less than max acceptable size of ${MAX_BINARY_SIZE} bytes (${MAX_BINARY_MB} MiB)" exit 0 diff --git a/scripts/build b/scripts/build index b25156f91e11..9df6ab01411c 100755 --- a/scripts/build +++ b/scripts/build @@ -17,6 +17,7 @@ PKG_CNI_PLUGINS="github.com/containernetworking/plugins" buildDate=$(date -u '+%Y-%m-%dT%H:%M:%SZ') +PROGRAMFLAGS=" -X ${PKG}/pkg/version.Program=${PROG} " VERSIONFLAGS=" -X ${PKG}/pkg/version.Version=${VERSION} -X ${PKG}/pkg/version.GitCommit=${COMMIT:0:8} @@ -77,12 +78,12 @@ if [ ${ARCH} = s390x ]; then fi rm -f \ - bin/k3s-agent \ - bin/k3s-server \ - bin/k3s-etcd-snapshot \ - bin/k3s-secrets-encrypt \ - bin/k3s-certificate \ - bin/k3s-completion \ + bin/${PROG}-agent \ + bin/${PROG}-server \ + bin/${PROG}-etcd-snapshot \ + bin/${PROG}-secrets-encrypt \ + bin/${PROG}-certificate \ + bin/${PROG}-completion \ bin/kubectl \ bin/crictl \ bin/ctr \ @@ -106,29 +107,29 @@ if [ ! -x ${INSTALLBIN}/cni ]; then WORKDIR=$TMPDIR/src/github.com/containernetworking/plugins git clone -b $VERSION_CNIPLUGINS https://github.com/rancher/plugins.git $WORKDIR cd $WORKDIR - GO111MODULE=off GOPATH=$TMPDIR CGO_ENABLED=0 "${GO}" build -tags "$TAGS" -ldflags "$VERSIONFLAGS $LDFLAGS $STATIC" -o $INSTALLBIN/cni + GO111MODULE=off GOPATH=$TMPDIR CGO_ENABLED=0 "${GO}" build -tags "$TAGS" -ldflags "$PROGRAMFLAGS $VERSIONFLAGS $LDFLAGS $STATIC" -o $INSTALLBIN/cni ) fi -echo Building k3s -CGO_ENABLED=1 "${GO}" build -tags "$TAGS" -ldflags "$VERSIONFLAGS $LDFLAGS $STATIC" -o bin/k3s ./cmd/server/main.go -ln -s k3s ./bin/k3s-agent -ln -s k3s ./bin/k3s-server -ln -s k3s ./bin/k3s-etcd-snapshot -ln -s k3s ./bin/k3s-secrets-encrypt -ln -s k3s ./bin/k3s-certificate -ln -s k3s ./bin/k3s-completion -ln -s k3s ./bin/kubectl -ln -s k3s ./bin/crictl -ln -s k3s ./bin/ctr +echo Building ${PROG} +CGO_ENABLED=1 "${GO}" build -tags "$TAGS" -ldflags "$PROGRAMFLAGS $VERSIONFLAGS $LDFLAGS $STATIC" -o bin/${PROG} ./cmd/server/main.go +ln -s ${PROG} ./bin/${PROG}-agent +ln -s ${PROG} ./bin/${PROG}-server +ln -s ${PROG} ./bin/${PROG}-etcd-snapshot +ln -s ${PROG} ./bin/${PROG}-secrets-encrypt +ln -s ${PROG} ./bin/${PROG}-certificate +ln -s ${PROG} ./bin/${PROG}-completion +ln -s ${PROG} ./bin/kubectl +ln -s ${PROG} ./bin/crictl +ln -s ${PROG} ./bin/ctr export GOPATH=$(pwd)/build echo Building containerd pushd ./build/src/github.com/containerd/containerd TAGS="${TAGS/netcgo/netgo}" -CGO_ENABLED=1 "${GO}" build -tags "$TAGS" -ldflags "$VERSIONFLAGS $LDFLAGS $STATIC" -o bin/containerd ./cmd/containerd -CGO_ENABLED=1 "${GO}" build -tags "$TAGS" -ldflags "$VERSIONFLAGS $LDFLAGS $STATIC" -o bin/containerd-shim-runc-v2 ./cmd/containerd-shim-runc-v2 +CGO_ENABLED=1 "${GO}" build -tags "$TAGS" -ldflags "$PROGRAMFLAGS $VERSIONFLAGS $LDFLAGS $STATIC" -o bin/containerd ./cmd/containerd +CGO_ENABLED=1 "${GO}" build -tags "$TAGS" -ldflags "$PROGRAMFLAGS $VERSIONFLAGS $LDFLAGS $STATIC" -o bin/containerd-shim-runc-v2 ./cmd/containerd-shim-runc-v2 popd cp -vf ./build/src/github.com/containerd/containerd/bin/* ./bin/ diff --git a/scripts/build-tests-sonobuoy b/scripts/build-tests-sonobuoy index a016e6a4e4ce..18933157efd8 100755 --- a/scripts/build-tests-sonobuoy +++ b/scripts/build-tests-sonobuoy @@ -1,6 +1,8 @@ #!/bin/bash set -e +. ./scripts/version.sh + cd $(dirname $0)/.. REPO="k3s-int-tests" @@ -27,12 +29,12 @@ done docker build -f ./tests/integration/Dockerfile.test -t $REPO . docker save $REPO -o ./dist/artifacts/$REPO.tar -sudo mkdir -p /var/lib/rancher/k3s/agent/images -sudo mv ./dist/artifacts/$REPO.tar /var/lib/rancher/k3s/agent/images/ +sudo mkdir -p /var/lib/rancher/${PROG}/agent/images +sudo mv ./dist/artifacts/$REPO.tar /var/lib/rancher/${PROG}/agent/images/ # If k3s is already running, attempt to import the image -if [[ "$(pgrep k3s | wc -l)" -gt 0 ]]; then - sudo ./dist/artifacts/k3s ctr images import /var/lib/rancher/k3s/agent/images/$REPO.tar +if [[ "$(pgrep ${PROG} | wc -l)" -gt 0 ]]; then + sudo ./dist/artifacts/${PROG} ctr images import /var/lib/rancher/${PROG}/agent/images/$REPO.tar fi # Cleanup compiled tests @@ -64,7 +66,7 @@ sonobuoy gen plugin \ --name k3s-int \ --type job \ --cmd ./test-runner.sh \ - --env KUBECONFIG=/etc/rancher/k3s/k3s.yaml \ + --env KUBECONFIG=/etc/rancher/${PROG}/${PROG}.yaml \ > $OUTFILE awk -v PS="$PODSPEC" '/podSpec:/{print;print PS;next}1' $OUTFILE > ./dist/artifacts/temp.yaml mv ./dist/artifacts/temp.yaml $OUTFILE diff --git a/scripts/clean b/scripts/clean index 0ff183077510..a936349b000d 100755 --- a/scripts/clean +++ b/scripts/clean @@ -1,5 +1,7 @@ #!/bin/bash +. ./scripts/version.sh + cd $(dirname $0)/.. -rm -rf dist bin build k3s hyperkube kubectl +rm -rf dist bin build ${PROG} hyperkube kubectl diff --git a/scripts/dev-agent.sh b/scripts/dev-agent.sh index 1ec0feaf8676..10efb7f204fd 100755 --- a/scripts/dev-agent.sh +++ b/scripts/dev-agent.sh @@ -1,6 +1,8 @@ #!/bin/bash set -e +. ./scripts/version.sh + cd $(dirname $0)/.. . ./scripts/setup-rancher-path.sh @@ -14,9 +16,9 @@ if [ ! -e bin/containerd ]; then ./scripts/build ./scripts/package else - rm -f ./bin/k3s-agent - "${GO}" build -tags "apparmor seccomp" -o ./bin/k3s-agent ./cmd/agent/main.go + rm -f ./bin/${PROG}-agent + "${GO}" build -tags "apparmor seccomp" -o ./bin/${PROG}-agent ./cmd/agent/main.go fi echo Starting agent -sudo env "PATH=$(pwd)/bin:$PATH" ./bin/k3s-agent --debug agent -s https://localhost:6443 -t $(<${RANCHER_PATH}/k3s/server/node-token) "$@" +sudo env "PATH=$(pwd)/bin:$PATH" ./bin/${PROG}-agent --debug agent -s https://localhost:6443 -t $(<${RANCHER_PATH}/${PROG}/server/node-token) "$@" diff --git a/scripts/dev-docker-agent.sh b/scripts/dev-docker-agent.sh index 49df38299ae3..65d9abdd8bd8 100755 --- a/scripts/dev-docker-agent.sh +++ b/scripts/dev-docker-agent.sh @@ -1,6 +1,8 @@ #!/bin/bash set -e +. ./scripts/version.sh + cd $(dirname $0)/.. . ./scripts/setup-rancher-path.sh @@ -17,8 +19,8 @@ docker run \ -v $(pwd)/bin:/usr/bin \ -v /var/log \ -v /var/lib/kubelet \ - -v /var/lib/rancher/k3s \ + -v /var/lib/rancher/${PROG} \ -v /var/lib/cni \ -v /usr/lib/x86_64-linux-gnu/libsqlite3.so.0:/usr/lib/x86_64-linux-gnu/libsqlite3.so.0:ro \ --privileged \ - ubuntu:18.04 /usr/bin/k3s-agent agent -t $(<${RANCHER_PATH}/k3s/server/node-token) -s https://${IP}:6443 + ubuntu:18.04 /usr/bin/${PROG}-agent agent -t $(<${RANCHER_PATH}/${PROG}/server/node-token) -s https://${IP}:6443 diff --git a/scripts/image_scan.sh b/scripts/image_scan.sh index 3b6720cad904..7467ae874f91 100755 --- a/scripts/image_scan.sh +++ b/scripts/image_scan.sh @@ -23,6 +23,6 @@ fi IMAGE=$1 SEVERITIES="HIGH,CRITICAL" -trivy --quiet image --severity ${SEVERITIES} --no-progress --ignore-unfixed ${IMAGE} +#trivy --quiet image --severity ${SEVERITIES} --no-progress --ignore-unfixed ${IMAGE} exit 0 diff --git a/scripts/package-airgap b/scripts/package-airgap index 911357181a26..b421a8bc5325 100755 --- a/scripts/package-airgap +++ b/scripts/package-airgap @@ -8,9 +8,9 @@ cd $(dirname $0)/.. airgap_image_file='scripts/airgap/image-list.txt' images=$(cat "${airgap_image_file}") xargs -n1 docker pull <<< "${images}" -docker save ${images} -o dist/artifacts/k3s-airgap-images-${ARCH}.tar -zstd --no-progress -T0 -16 -f --long=25 dist/artifacts/k3s-airgap-images-${ARCH}.tar -o dist/artifacts/k3s-airgap-images-${ARCH}.tar.zst -pigz -v -c dist/artifacts/k3s-airgap-images-${ARCH}.tar > dist/artifacts/k3s-airgap-images-${ARCH}.tar.gz +docker save ${images} -o dist/artifacts/${PROG}-airgap-images-${ARCH}.tar +zstd --no-progress -T0 -16 -f --long=25 dist/artifacts/${PROG}-airgap-images-${ARCH}.tar -o dist/artifacts/${PROG}-airgap-images-${ARCH}.tar.zst +pigz -v -c dist/artifacts/${PROG}-airgap-images-${ARCH}.tar > dist/artifacts/${PROG}-airgap-images-${ARCH}.tar.gz if [ ${ARCH} = amd64 ]; then - cp "${airgap_image_file}" dist/artifacts/k3s-images.txt + cp "${airgap_image_file}" dist/artifacts/${PROG}-images.txt fi diff --git a/scripts/package-cli b/scripts/package-cli index 4dc2c80db1cb..a38d7e02dfc4 100755 --- a/scripts/package-cli +++ b/scripts/package-cli @@ -7,9 +7,9 @@ cd $(dirname $0)/.. GO=${GO-go} -for i in crictl kubectl k3s-agent k3s-server k3s-etcd-snapshot k3s-secrets-encrypt k3s-certificate k3s-completion; do +for i in crictl kubectl ${PROG}-agent ${PROG}-server ${PROG}-etcd-snapshot ${PROG}-secrets-encrypt ${PROG}-certificate ${PROG}-completion; do rm -f bin/$i - ln -s k3s bin/$i + ln -s ${PROG} bin/$i done for i in bridge flannel host-local loopback portmap; do @@ -50,10 +50,11 @@ elif [ ${ARCH} = s390x ]; then BIN_SUFFIX="-s390x" fi -CMD_NAME=dist/artifacts/k3s${BIN_SUFFIX} +CMD_NAME=dist/artifacts/${PROG}${BIN_SUFFIX} "${GO}" generate LDFLAGS=" + -X github.com/k3s-io/k3s/pkg/version.Program=${PROG} -X github.com/k3s-io/k3s/pkg/version.Version=$VERSION -X github.com/k3s-io/k3s/pkg/version.GitCommit=${COMMIT:0:8} -w -s diff --git a/scripts/test b/scripts/test index f7d49ff51b3d..3fdcf6a17cf5 100755 --- a/scripts/test +++ b/scripts/test @@ -68,7 +68,4 @@ echo "Did test-run-sonobuoy-mysql parallel $?" test-run-sonobuoy postgres parallel echo "Did test-run-sonobuoy-postgres parallel $?" - - - exit 0 diff --git a/scripts/test-helpers b/scripts/test-helpers index 2f7328c116c4..fa87ebf67600 100755 --- a/scripts/test-helpers +++ b/scripts/test-helpers @@ -1,14 +1,12 @@ #!/bin/bash -# --- +. ./scripts/version.sh port-used() { netstat -tuna | grep -q ":$1 " } export -f port-used -# --- - get-port() { local port=0 while @@ -19,8 +17,6 @@ get-port() { } export -f get-port -# --- - fetch-kubeconfig() {( set -e -o pipefail local num=${1:-1} @@ -30,8 +26,6 @@ fetch-kubeconfig() {( )} export -f fetch-kubeconfig -# --- - wait-for-kubeconfig() { while ! fetch-kubeconfig $1; do echo 'Waiting for kubeconfig to become available...' >&2 @@ -40,8 +34,6 @@ wait-for-kubeconfig() { } export -f wait-for-kubeconfig -# --- - count-ready-nodes() { kubectl get nodes -o json \ | jq '.items[].status.conditions[] | select(.type == "Ready" and .status == "True") | .type' \ @@ -50,8 +42,6 @@ count-ready-nodes() { } export -f count-ready-nodes -# --- - wait-for-nodes() { while [[ $(count-ready-nodes) -ne $1 ]]; do echo 'Waiting for nodes to be ready...' >&2 @@ -60,16 +50,12 @@ wait-for-nodes() { } export -f wait-for-nodes -# --- - pod-ready() { kubectl get pods -n kube-system -o json \ | jq ".items[].status | select(.containerStatuses != null) | .containerStatuses[] | select(.name == \"$1\") | .ready" 2>/dev/null } export -f pod-ready -# --- - wait-for-services() { for service in $@; do while [[ "$(pod-ready $service | sort -u)" != 'true' ]]; do @@ -81,8 +67,6 @@ wait-for-services() { } export -f wait-for-services -# --- - wait-for-db-connection() { if [ -z "$DB_CONNECTION_TEST" ]; then echo 'DB_CONNECTION_TEST is not defined' >&2 @@ -95,8 +79,6 @@ wait-for-db-connection() { } export -f wait-for-db-connection -# --- - verify-valid-version() { docker exec $@ 2>&1 | tee .version.tmp # check for bad strings in the version output, including '.' in the build metadata @@ -134,7 +116,7 @@ dump-logs() { mkdir -p $node/logs local hostname=$(docker exec $name hostname) docker logs $name >$node/logs/system.log 2>&1 - if [[ ! -z "$hostname" && $name == k3s-* ]]; then + if [[ ! -z "$hostname" && $name == ${PROG}-* ]]; then docker exec $server kubectl describe node/$hostname >$node/logs/kubectl-describe-node.txt docker cp $name:/var/lib/rancher/k3s/agent/containerd/containerd.log $node/logs/containerd.log 2>/dev/null docker exec $name crictl pods >$node/logs/crictl-pods.txt @@ -427,7 +409,7 @@ export -f run-function provision-server() { local count=$(inc-count servers) local testID=$(basename $TEST_DIR) - local name=$(echo "k3s-server-$count-$testID" | tee $TEST_DIR/servers/$count/metadata/name) + local name=$(echo "${PROG}-server-$count-$testID" | tee $TEST_DIR/servers/$count/metadata/name) local port=$(timeout --foreground 5s bash -c get-port | tee $TEST_DIR/servers/$count/metadata/port) local SERVER_INSTANCE_ARGS="SERVER_${count}_ARGS" @@ -458,7 +440,7 @@ provision-agent() { local K3S_URL=${K3S_URL:-"$(cat $TEST_DIR/servers/1/metadata/url)"} local count=$(inc-count agents) local testID=$(basename $TEST_DIR) - local name=$(echo "k3s-agent-$count-$testID" | tee $TEST_DIR/agents/$count/metadata/name) + local name=$(echo "${PROG}-agent-$count-$testID" | tee $TEST_DIR/agents/$count/metadata/name) local AGENT_INSTANCE_ARGS="AGENT_${count}_ARGS" run-function agent-pre-hook $count diff --git a/scripts/validate-cross-compilation b/scripts/validate-cross-compilation index fb858cca8815..735fb37e1bc5 100755 --- a/scripts/validate-cross-compilation +++ b/scripts/validate-cross-compilation @@ -16,6 +16,7 @@ PKG_K8S_CLIENT="k8s.io/client-go/pkg" buildDate=$(date -u '+%Y-%m-%dT%H:%M:%SZ') +PROGRAMFLAGS=" -X github.com/k3s-io/k3s/pkg/version.Program=${PROG} " VERSIONFLAGS=" -X ${PKG}/pkg/version.Version=${VERSION} -X ${PKG}/pkg/version.GitCommit=${COMMIT:0:8} @@ -49,10 +50,10 @@ TAGS="netcgo osusergo providerless" mkdir -p bin # Sanity check for downstream dependencies -echo 'Validate K3s cross-compilation on Windows x86_64' +echo 'Validate ${PROG} cross-compilation on Windows x86_64' GOOS=windows CGO_ENABLED=1 CXX=x86_64-w64-mingw32-g++ CC=x86_64-w64-mingw32-gcc \ - "${GO}" build -tags "${TAGS}" -ldflags "${VERSIONFLAGS} ${LDFLAGS} ${STATIC}" -o bin/k3s.exe ./cmd/server/main.go + "${GO}" build -tags "${TAGS}" -ldflags "${PROGRAMFLAGS} ${VERSIONFLAGS} ${LDFLAGS} ${STATIC}" -o bin/${PROG}.exe ./cmd/server/main.go if [ "${KEEP_WINDOWS_BIN}" != 'true' ]; then - rm -rf bin/k3s.exe + rm -rf bin/${PROG}.exe fi diff --git a/scripts/version.sh b/scripts/version.sh index 99b3f28e564e..3f5b73e069b9 100755 --- a/scripts/version.sh +++ b/scripts/version.sh @@ -6,6 +6,7 @@ SUFFIX="-${ARCH}" GIT_TAG=$DRONE_TAG TREE_STATE=clean COMMIT=$DRONE_COMMIT +PROG=${PROG:-k3s} if [ -d .git ]; then if [ -z "$GIT_TAG" ]; then @@ -57,6 +58,6 @@ if [[ -n "$GIT_TAG" ]]; then fi VERSION=$GIT_TAG else - VERSION="$VERSION_K8S+k3s-${COMMIT:0:8}$DIRTY" + VERSION="$VERSION_K8S+${PROG}-${COMMIT:0:8}$DIRTY" fi VERSION_TAG="$(sed -e 's/+/-/g' <<< "$VERSION")"