Multiarch release (#1929)
* Adding release script for multiarch Signed-off-by: Harsh Thakur <harshthakur9030@gmail.com> * Comment on buildx Signed-off-by: Harsh Thakur <harshthakur9030@gmail.com> * Remove need of triggering buildx script explicitly in build Signed-off-by: Sanket Sudake <sanketsudake@gmail.com> Co-authored-by: Sanket Sudake <sanketsudake@gmail.com>
This commit is contained in:
co-authored by
Sanket Sudake
parent
4c9b67ead4
commit
5f47a25711
@@ -15,7 +15,7 @@
|
||||
.DEFAULT_GOAL := check
|
||||
|
||||
# Platforms to build in multi-architecture images.
|
||||
PLATFORMS ?= linux/amd64,linux/arm64,linux/arm
|
||||
PLATFORMS ?= linux/amd64,linux/arm64,linux/arm/v7
|
||||
|
||||
# Repository prefix and tag to push multi-architecture images to.
|
||||
REPO ?= fission
|
||||
@@ -43,6 +43,9 @@ build:
|
||||
install-cli: build
|
||||
mv cmd/fission-cli/fission $(GOPATH)/bin
|
||||
|
||||
verify-builder:
|
||||
@./hack/buildx.sh
|
||||
|
||||
# build images (environment images are not included)
|
||||
image:
|
||||
docker build -t fission-bundle -f cmd/fission-bundle/Dockerfile.fission-bundle .
|
||||
@@ -51,13 +54,28 @@ image:
|
||||
docker build -t reporter -f cmd/builder/Dockerfile.reporter .
|
||||
|
||||
# build multi-architecture images for release.
|
||||
image-multiarch:
|
||||
image-multiarch: verify-builder
|
||||
docker buildx build --platform=$(PLATFORMS) -t $(REPO)/fission-bundle:$(TAG) --push -f cmd/fission-bundle/Dockerfile.fission-bundle .
|
||||
docker buildx build --platform=$(PLATFORMS) -t $(REPO)/fetcher:$(TAG) --push -f cmd/fetcher/Dockerfile.fission-fetcher .
|
||||
docker buildx build --platform=$(PLATFORMS) -t $(REPO)/builder:$(TAG) --push -f cmd/builder/Dockerfile.fission-builder .
|
||||
docker buildx build --platform=$(PLATFORMS) -t $(REPO)/preupgradechecks:$(TAG) --push -f cmd/preupgradechecks/Dockerfile.fission-preupgradechecks .
|
||||
docker buildx build --platform=$(PLATFORMS) -t $(REPO)/reporter:$(TAG) --push -f cmd/reporter/Dockerfile.reporter .
|
||||
|
||||
multiarch-bundle: verify-builder
|
||||
docker buildx build --platform=$(PLATFORMS) -t $(REPO)/fission-bundle:$(TAG) --push -f cmd/fission-bundle/Dockerfile.fission-bundle .
|
||||
|
||||
multiarch-fetcher: verify-builder
|
||||
docker buildx build --platform=$(PLATFORMS) -t $(REPO)/fetcher:$(TAG) --push -f cmd/fetcher/Dockerfile.fission-fetcher .
|
||||
|
||||
multiarch-builder: verify-builder
|
||||
docker buildx build --platform=$(PLATFORMS) -t $(REPO)/builder:$(TAG) --push -f cmd/builder/Dockerfile.fission-builder .
|
||||
|
||||
multiarch-preupgrade: verify-builder
|
||||
docker buildx build --platform=$(PLATFORMS) -t $(REPO)/pre-upgrade-checks:$(TAG) --push -f cmd/preupgradechecks/Dockerfile.fission-preupgradechecks .
|
||||
|
||||
multiarch-reporter: verify-builder
|
||||
docker buildx build --platform=$(PLATFORMS) -t $(REPO)/reporter:$(TAG) --push -f cmd/reporter/Dockerfile.reporter .
|
||||
|
||||
generate-crds:
|
||||
controller-gen crd:trivialVersions=false,preserveUnknownFields=false paths=./pkg/apis/core/v1 output:crd:artifacts:config=crds/v1
|
||||
|
||||
|
||||
Executable
+26
@@ -0,0 +1,26 @@
|
||||
set -e
|
||||
## This script needs to be run to start the emulator for multiarch builds
|
||||
create_docker_builder() {
|
||||
if ! $(docker buildx inspect --bootstrap | grep "^Driver" | grep -q "docker-container"); then
|
||||
echo "Starting docker builder fission"
|
||||
docker buildx create --name=fission --use --driver=docker-container
|
||||
docker buildx inspect --bootstrap
|
||||
fi
|
||||
}
|
||||
|
||||
check_platform() {
|
||||
if ! $(docker buildx inspect --bootstrap | grep "^Platforms:" | grep -q "$1"); then
|
||||
echo "Platform $1 not supported by builder"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
create_docker_builder
|
||||
PLATFORMS=(
|
||||
linux/amd64
|
||||
linux/arm6455
|
||||
linux/arm/v7
|
||||
)
|
||||
for platform in "${PLATFORMS[@]}"; do
|
||||
check_platform $platform
|
||||
done
|
||||
+31
-1
@@ -70,6 +70,36 @@ push_all() {
|
||||
push_pre_upgrade_checks_image latest
|
||||
}
|
||||
|
||||
|
||||
|
||||
# Build and push fission-bundle image
|
||||
push_multiarch_fission_bundle_image() {
|
||||
TAG=$1 make multiarch-bundle
|
||||
}
|
||||
|
||||
push_multiarch_fetcher_image() {
|
||||
TAG=$1 make multiarch-fetcher
|
||||
}
|
||||
|
||||
|
||||
push_builder_image() {
|
||||
TAG=$1 make multiarch-builder
|
||||
}
|
||||
|
||||
# Push pre-upgrade-checks image
|
||||
push_pre_upgrade_checks_image() {
|
||||
TAG=$1 make multiarch-preupgrade
|
||||
}
|
||||
|
||||
push_builder_image() {
|
||||
TAG=$1 make multiarch-reporter
|
||||
}
|
||||
|
||||
push_multiarch_all() {
|
||||
TAG=$version make image-multiarch
|
||||
TAG=latest make image-multiarch
|
||||
}
|
||||
|
||||
tag_and_release() {
|
||||
local version=$1
|
||||
local gittag=$version
|
||||
@@ -285,7 +315,7 @@ release_environment_check $version $chartsrepo
|
||||
docker run --rm -it -v $FISSION_HOME:/go/src/github.com/fission -v /var/run/docker.sock:/var/run/docker.sock \
|
||||
-e VERSION=$version -w "/go/src/github.com/fission/fission/hack" fission-release-builder sh -c "./release-build.sh"
|
||||
|
||||
push_all $version
|
||||
push_multiarch_all $version
|
||||
|
||||
tag_and_release $version
|
||||
attach_github_release_cli $version
|
||||
|
||||
Reference in New Issue
Block a user