Multi-arch controller container (#2037)

create arm64 & amd64 images for central controller
This commit is contained in:
Grant Limberg 2023-06-29 19:45:44 -04:00 committed by GitHub
parent 9b7d13476f
commit 0962af5e72
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
313 changed files with 31474 additions and 20 deletions

View file

@ -119,6 +119,9 @@ ifeq ($(CC_MACH),x86_64)
override CFLAGS+=-msse -msse2
override CXXFLAGS+=-msse -msse2
ZT_SSO_SUPPORTED=1
ifeq ($(ZT_CONTROLLER),1)
EXT_ARCH=amd64
endif
endif
ifeq ($(CC_MACH),amd64)
ZT_ARCHITECTURE=2
@ -127,6 +130,9 @@ ifeq ($(CC_MACH),amd64)
override CFLAGS+=-msse -msse2
override CXXFLAGS+=-msse -msse2
ZT_SSO_SUPPORTED=1
ifeq ($(ZT_CONTROLLER),1)
EXT_ARCH=amd64
endif
endif
ifeq ($(CC_MACH),powerpc64le)
ZT_ARCHITECTURE=8
@ -229,12 +235,17 @@ endif
ifeq ($(CC_MACH),arm64)
ZT_ARCHITECTURE=4
ZT_SSO_SUPPORTED=1
ZT_USE_X64_ASM_ED25519=0
override DEFS+=-DZT_NO_TYPE_PUNNING -DZT_ARCH_ARM_HAS_NEON -march=armv8-a+crypto -mtune=generic -mstrict-align
endif
ifeq ($(CC_MACH),aarch64)
ZT_ARCHITECTURE=4
ZT_SSO_SUPPORTED=1
ZT_USE_X64_ASM_ED25519=0
override DEFS+=-DZT_NO_TYPE_PUNNING -DZT_ARCH_ARM_HAS_NEON -march=armv8-a+crypto -mtune=generic -mstrict-align
ifeq ($(ZT_CONTROLLER),1)
EXT_ARCH=arm64
endif
endif
ifeq ($(CC_MACH),mipsel)
ZT_ARCHITECTURE=5
@ -310,9 +321,9 @@ endif
ifeq ($(ZT_CONTROLLER),1)
override CXXFLAGS+=-Wall -Wno-deprecated -std=c++17 -pthread $(INCLUDES) -DNDEBUG $(DEFS)
override LDLIBS+=-Lext/libpqxx-7.7.3/install/ubuntu22.04/lib -lpqxx -lpq ext/hiredis-1.0.2/lib/ubuntu22.04/libhiredis.a ext/redis-plus-plus-1.3.3/install/ubuntu22.04/lib/libredis++.a -lssl -lcrypto
override LDLIBS+=-Lext/libpqxx-7.7.3/install/ubuntu22.04/$(EXT_ARCH)/lib -lpqxx -lpq ext/hiredis-1.0.2/lib/ubuntu22.04/$(EXT_ARCH)/libhiredis.a ext/redis-plus-plus-1.3.3/install/ubuntu22.04/$(EXT_ARCH)/lib/libredis++.a -lssl -lcrypto
override DEFS+=-DZT_CONTROLLER_USE_LIBPQ -DZT_NO_PEER_METRICS
override INCLUDES+=-I/usr/include/postgresql -Iext/libpqxx-7.7.3/install/ubuntu22.04/include -Iext/hiredis-1.0.2/include/ -Iext/redis-plus-plus-1.3.3/install/ubuntu22.04/include/sw/
override INCLUDES+=-I/usr/include/postgresql -Iext/libpqxx-7.7.3/install/ubuntu22.04/$(EXT_ARCH)/include -Iext/hiredis-1.0.2/include/ -Iext/redis-plus-plus-1.3.3/install/ubuntu22.04/$(EXT_ARCH)/include/sw/
endif
# ARM32 hell -- use conservative CFLAGS
@ -397,11 +408,19 @@ official: FORCE
docker: FORCE
docker build --no-cache -f ext/installfiles/linux/zerotier-containerized/Dockerfile -t zerotier-containerized .
central-controller: FORCE
make -j4 ZT_CONTROLLER=1 ZT_USE_X64_ASM_ED25519=1 one
_buildx:
@echo "docker buildx create"
# docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
docker run --privileged --rm tonistiigi/binfmt --install all
@echo docker buildx create --name multiarch --driver docker-container --use
@echo docker buildx inspect --bootstrap
central-controller-docker: FORCE
docker build --no-cache -t registry.zerotier.com/zerotier-central/ztcentral-controller:${TIMESTAMP} -f ext/central-controller-docker/Dockerfile --build-arg git_branch=`git name-rev --name-only HEAD` .
central-controller: FORCE
make -j4 ZT_CONTROLLER=1 one
central-controller-docker: _buildx FORCE
docker buildx build --platform linux/amd64,linux/arm64 --no-cache -t us-central1-docker.pkg.dev/zerotier-central/zerotier/ztcentral-controller:${TIMESTAMP} -f ext/central-controller-docker/Dockerfile --build-arg git_branch=`git name-rev --name-only HEAD` . --push
@echo Image: us-central1-docker.pkg.dev/zerotier-central/zerotier/ztcentral-controller:${TIMESTAMP}
debug: FORCE
make ZT_DEBUG=1 one