This commit is contained in:
parent
79e75ba819
commit
dadb5076f2
7 changed files with 10 additions and 164 deletions
19
Dockerfile
19
Dockerfile
|
|
@ -1,15 +1,6 @@
|
||||||
FROM docker.io/golang:alpine
|
FROM golang AS builder
|
||||||
|
COPY . .
|
||||||
|
RUN go build -o /main main.go
|
||||||
|
|
||||||
WORKDIR /root
|
FROM ghcr.io/cloudbase/garm:nightly
|
||||||
USER root
|
COPY --from=builder ./main /opt/garm/providers.d/garm-provider-edge-connect
|
||||||
|
|
||||||
RUN apk add musl-dev gcc libtool m4 autoconf g++ make libblkid util-linux-dev git linux-headers mingw-w64-gcc
|
|
||||||
|
|
||||||
RUN wget http://musl.cc/aarch64-linux-musl-cross.tgz -O /tmp/aarch64-linux-musl-cross.tgz && \
|
|
||||||
tar --strip-components=1 -C /usr/local -xzf /tmp/aarch64-linux-musl-cross.tgz && \
|
|
||||||
rm /tmp/aarch64-linux-musl-cross.tgz
|
|
||||||
|
|
||||||
ADD ./scripts/build-static.sh /build-static.sh
|
|
||||||
RUN chmod +x /build-static.sh
|
|
||||||
|
|
||||||
CMD ["/bin/sh"]
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
FROM golang AS builder
|
|
||||||
COPY . .
|
|
||||||
RUN go build -o /main main.go
|
|
||||||
|
|
||||||
FROM ghcr.io/cloudbase/garm:nightly
|
|
||||||
COPY --from=builder ./main /opt/garm/providers.d/garm-provider-edge-connect
|
|
||||||
COPY mockprovider.sh /opt/garm/providers.d/mockprovider
|
|
||||||
25
Makefile
25
Makefile
|
|
@ -13,21 +13,13 @@ GARM_PROVIDER_NAME := garm-provider-edge-connect
|
||||||
|
|
||||||
default: build
|
default: build
|
||||||
|
|
||||||
.PHONY : build build-static test install-lint-deps lint go-test fmt fmtcheck verify-vendor verify create-release-files release
|
.PHONY : build test install-lint-deps lint go-test fmt fmtcheck verify
|
||||||
|
|
||||||
build:
|
build:
|
||||||
@$(GO) build .
|
@$(GO) build .
|
||||||
|
|
||||||
clean: ## Clean up build artifacts
|
clean: ## Clean up build artifacts
|
||||||
@rm -rf ./bin ./build ./release
|
@rm -rf ./bin ./build ./release
|
||||||
|
|
||||||
build-static:
|
|
||||||
@echo Building
|
|
||||||
$(IMAGE_BUILDER) build --tag $(IMAGE_TAG) .
|
|
||||||
mkdir -p build
|
|
||||||
$(IMAGE_BUILDER) run --rm -e GARM_PROVIDER_NAME=$(GARM_PROVIDER_NAME) -e USER_ID=$(USER_ID) -e USER_GROUP=$(USER_GROUP) -v $(PWD)/build:/build/output:z -v $(PWD):/build/$(GARM_PROVIDER_NAME):z -v /etc/ssl/certs/ca-certificates.crt:/etc/ssl/certs/ca-certificates.crt $(IMAGE_TAG) /build-static.sh
|
|
||||||
@echo Binaries are available in $(PWD)/build
|
|
||||||
|
|
||||||
test: install-lint-deps verify go-test
|
test: install-lint-deps verify go-test
|
||||||
|
|
||||||
install-lint-deps:
|
install-lint-deps:
|
||||||
|
|
@ -45,17 +37,4 @@ fmt:
|
||||||
fmtcheck:
|
fmtcheck:
|
||||||
@gofmt -l -s $$(go list ./... | sed -n 's/github.com\/cloudbase\/'$(GARM_PROVIDER_NAME)'\/\(.*\)/\1/p') | grep ".*\.go"; if [ "$$?" -eq 0 ]; then echo "gofmt check failed; please tun gofmt -w -s"; exit 1;fi
|
@gofmt -l -s $$(go list ./... | sed -n 's/github.com\/cloudbase\/'$(GARM_PROVIDER_NAME)'\/\(.*\)/\1/p') | grep ".*\.go"; if [ "$$?" -eq 0 ]; then echo "gofmt check failed; please tun gofmt -w -s"; exit 1;fi
|
||||||
|
|
||||||
verify-vendor: ## verify if all the go.mod/go.sum files are up-to-date
|
verify: lint fmtcheck
|
||||||
$(eval TMPDIR := $(shell mktemp -d))
|
|
||||||
@cp -R ${ROOTDIR} ${TMPDIR}
|
|
||||||
@(cd ${TMPDIR}/$(GARM_PROVIDER_NAME) && ${GO} mod tidy)
|
|
||||||
@diff -r -u -q ${ROOTDIR} ${TMPDIR}/$(GARM_PROVIDER_NAME) >/dev/null 2>&1; if [ "$$?" -ne 0 ];then echo "please run: go mod tidy && go mod vendor"; exit 1; fi
|
|
||||||
@rm -rf ${TMPDIR}
|
|
||||||
|
|
||||||
verify: verify-vendor lint fmtcheck
|
|
||||||
|
|
||||||
##@ Release
|
|
||||||
create-release-files:
|
|
||||||
./scripts/make-release.sh
|
|
||||||
|
|
||||||
release: build-static create-release-files ## Create a release
|
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
Use this project in conjunction with the DevFW-CICD/garm project. (It is assumed that project is cloned to the folder 'garm'.)
|
Use this project in conjunction with the DevFW-CICD/garm project. (It is assumed that project is cloned to the folder 'garm'.)
|
||||||
|
|
||||||
Edit the credentials for access to Telekom Edge Cloud and set new Tag:
|
Edit the credentials for access to Telekom Edge Cloud and set new Tag:
|
||||||
In the garm project edit the file deploy.yaml:
|
In the garm project edit the file deploy.yaml:
|
||||||
- Edit the credentials inside the Secret with name 'edge-connect-creds' by setting values (inside stringData.creds.toml) for username and password.
|
- Edit the credentials inside the Secret with name 'edge-connect-creds' by setting values (inside stringData.creds.toml) for username and password.
|
||||||
- Edit the Deployment with name 'garm' by setting a new value (inside spec.template.spec.containers[0]) for the image (tag) of the form garm:provider-ec-[new_number].
|
- Edit the Deployment with name 'garm' by setting a new value (inside spec.template.spec.containers[0]) for the image (tag) of the form garm:provider-ec-[new_number].
|
||||||
|
|
||||||
|
|
@ -12,7 +12,7 @@ In the garm project edit the file deploy.yaml:
|
||||||
Use these commands in the current project.
|
Use these commands in the current project.
|
||||||
|
|
||||||
´´´bash
|
´´´bash
|
||||||
docker buildx build -t edp.buildth.ing/devfw-cicd/garm:provider-ec-[new_number] -f Dockerfile.kaesekuchen --push .
|
docker buildx build -t edp.buildth.ing/devfw-cicd/garm:provider-ec-[new_number] --push .
|
||||||
|
|
||||||
kubectl apply -f ../garm/deploy.yaml
|
kubectl apply -f ../garm/deploy.yaml
|
||||||
´´´
|
´´´
|
||||||
|
|
|
||||||
|
|
@ -1,13 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
LOG_FILE=./mock.log
|
|
||||||
env | sort | grep -v PASSWORD >> $LOG_FILE
|
|
||||||
echo Parameters $@ >> $LOG_FILE
|
|
||||||
|
|
||||||
while read line
|
|
||||||
do
|
|
||||||
echo stdin "$line" >> $LOG_FILE
|
|
||||||
done < "/dev/stdin"
|
|
||||||
|
|
||||||
echo ======================================================================================= >> $LOG_FILE
|
|
||||||
|
|
||||||
|
|
@ -1,48 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
GARM_PROVIDER_NAME=${GARM_PROVIDER_NAME:-garm-provider-edge-connect}
|
|
||||||
GARM_SOURCE="/build/$GARM_PROVIDER_NAME"
|
|
||||||
git config --global --add safe.directory /build/$GARM_PROVIDER_NAME
|
|
||||||
cd $GARM_SOURCE
|
|
||||||
|
|
||||||
CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
|
|
||||||
if [ ! -z "$GARM_REF" ] && [ "$GARM_REF" != "$CURRENT_BRANCH" ];then
|
|
||||||
git checkout $GARM_REF
|
|
||||||
fi
|
|
||||||
|
|
||||||
cd $GARM_SOURCE
|
|
||||||
|
|
||||||
OUTPUT_DIR="/build/output"
|
|
||||||
VERSION=$(git describe --tags --match='v[0-9]*' --dirty --always)
|
|
||||||
BUILD_DIR="$OUTPUT_DIR/$VERSION"
|
|
||||||
|
|
||||||
|
|
||||||
[ ! -d "$BUILD_DIR/linux" ] && mkdir -p "$BUILD_DIR/linux"
|
|
||||||
[ ! -d "$BUILD_DIR/windows" ] && mkdir -p "$BUILD_DIR/windows"
|
|
||||||
|
|
||||||
export CGO_ENABLED=1
|
|
||||||
USER_ID=${USER_ID:-$UID}
|
|
||||||
USER_GROUP=${USER_GROUP:-$(id -g)}
|
|
||||||
|
|
||||||
# Garm
|
|
||||||
cd $GARM_SOURCE
|
|
||||||
|
|
||||||
# Linux
|
|
||||||
GOOS=linux GOARCH=amd64 go build -mod vendor \
|
|
||||||
-o $BUILD_DIR/linux/amd64/$GARM_PROVIDER_NAME \
|
|
||||||
-tags osusergo,netgo,sqlite_omit_load_extension \
|
|
||||||
-ldflags "-extldflags '-static' -s -w -X edp.buildth.ing/DevFW-CICD/garm-provider-edge-connect/provider.Version=$VERSION" .
|
|
||||||
GOOS=linux GOARCH=arm64 CC=aarch64-linux-musl-gcc go build \
|
|
||||||
-mod vendor \
|
|
||||||
-o $BUILD_DIR/linux/arm64/$GARM_PROVIDER_NAME \
|
|
||||||
-tags osusergo,netgo,sqlite_omit_load_extension \
|
|
||||||
-ldflags "-extldflags '-static' -s -w -X edp.buildth.ing/DevFW-CICD/garm-provider-edge-connect/provider.Version=$VERSION" .
|
|
||||||
|
|
||||||
# Windows
|
|
||||||
GOOS=windows GOARCH=amd64 CC=x86_64-w64-mingw32-cc go build -mod vendor \
|
|
||||||
-o $BUILD_DIR/windows/amd64/$GARM_PROVIDER_NAME.exe \
|
|
||||||
-tags osusergo,netgo,sqlite_omit_load_extension \
|
|
||||||
-ldflags "-s -w -X edp.buildth.ing/DevFW-CICD/garm-provider-edge-connect/provider.Version=$VERSION" .
|
|
||||||
|
|
||||||
git checkout $CURRENT_BRANCH || true
|
|
||||||
chown $USER_ID:$USER_GROUP -R "$OUTPUT_DIR"
|
|
||||||
|
|
@ -1,56 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
echo $GARM_REF
|
|
||||||
GARM_PROVIDER_NAME=${GARM_PROVIDER_NAME:-garm-provider-edge-connect}
|
|
||||||
|
|
||||||
VERSION=$(git describe --tags --match='v[0-9]*' --dirty --always)
|
|
||||||
RELEASE="$PWD/release"
|
|
||||||
|
|
||||||
[ ! -d "$RELEASE" ] && mkdir -p "$RELEASE"
|
|
||||||
|
|
||||||
if [ ! -z "$GARM_REF" ]; then
|
|
||||||
VERSION=$(git describe --tags --match='v[0-9]*' --always $GARM_REF)
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo $VERSION
|
|
||||||
|
|
||||||
if [ ! -d "build/$VERSION" ]; then
|
|
||||||
echo "missing build/$VERSION"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Windows
|
|
||||||
|
|
||||||
if [ ! -d "build/$VERSION/windows/amd64" ];then
|
|
||||||
echo "missing build/$VERSION/windows/amd64"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -f "build/$VERSION/windows/amd64/$GARM_PROVIDER_NAME.exe" ];then
|
|
||||||
echo "missing build/$VERSION/windows/amd64/$GARM_PROVIDER_NAME.exe"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
pushd build/$VERSION/windows/amd64
|
|
||||||
zip $GARM_PROVIDER_NAME-windows-amd64.zip $GARM_PROVIDER_NAME.exe
|
|
||||||
sha256sum $GARM_PROVIDER_NAME-windows-amd64.zip > $GARM_PROVIDER_NAME-windows-amd64.zip.sha256
|
|
||||||
mv $GARM_PROVIDER_NAME-windows-amd64.zip $RELEASE
|
|
||||||
mv $GARM_PROVIDER_NAME-windows-amd64.zip.sha256 $RELEASE
|
|
||||||
popd
|
|
||||||
|
|
||||||
# Linux
|
|
||||||
OS_ARCHES=("amd64" "arm64")
|
|
||||||
|
|
||||||
for arch in ${OS_ARCHES[@]};do
|
|
||||||
if [ ! -f "build/$VERSION/linux/$arch/$GARM_PROVIDER_NAME" ];then
|
|
||||||
echo "missing build/$VERSION/linux/$arch/$GARM_PROVIDER_NAME"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
pushd build/$VERSION/linux/$arch
|
|
||||||
tar czf $GARM_PROVIDER_NAME-linux-$arch.tgz $GARM_PROVIDER_NAME
|
|
||||||
sha256sum $GARM_PROVIDER_NAME-linux-$arch.tgz > $GARM_PROVIDER_NAME-linux-$arch.tgz.sha256
|
|
||||||
mv $GARM_PROVIDER_NAME-linux-$arch.tgz $RELEASE
|
|
||||||
mv $GARM_PROVIDER_NAME-linux-$arch.tgz.sha256 $RELEASE
|
|
||||||
popd
|
|
||||||
done
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue