Add support for s390x

This commit is contained in:
Manuel Alejandro de Brito Fontes 2020-05-28 14:09:44 -04:00
parent ee02d897d5
commit 85a94fc612
3 changed files with 47 additions and 58 deletions

View file

@ -21,10 +21,9 @@ SHELL=/bin/bash -o pipefail
TAG ?= 0.102 TAG ?= 0.102
REGISTRY ?= quay.io/kubernetes-ingress-controller REGISTRY ?= quay.io/kubernetes-ingress-controller
IMGNAME = nginx IMAGE = $(REGISTRY)/nginx
IMAGE = $(REGISTRY)/$(IMGNAME)
PLATFORMS = amd64 arm arm64 PLATFORMS = amd64 arm arm64 s390x
EMPTY := EMPTY :=
SPACE := $(EMPTY) $(EMPTY) SPACE := $(EMPTY) $(EMPTY)
@ -34,32 +33,16 @@ COMMA := ,
container: container:
DOCKER_CLI_EXPERIMENTAL=enabled docker buildx build \ DOCKER_CLI_EXPERIMENTAL=enabled docker buildx build \
--pull \ --pull \
--push \
--progress plain \ --progress plain \
--platform $(subst $(SPACE),$(COMMA),$(PLATFORMS)) \ --platform $(subst $(SPACE),$(COMMA),$(PLATFORMS)) \
--tag $(IMAGE):$(TAG) rootfs --tag $(IMAGE):$(TAG) rootfs
# https://github.com/docker/buildx/issues/59
$(foreach PLATFORM,$(PLATFORMS), \
DOCKER_CLI_EXPERIMENTAL=enabled docker buildx build \
--load \
--progress plain \
--platform $(PLATFORM) \
--tag $(IMAGE)-$(PLATFORM):$(TAG) rootfs;)
.PHONY: push
push: container
$(foreach PLATFORM,$(PLATFORMS), \
docker push $(IMAGE)-$(PLATFORM):$(TAG);)
.PHONY: release
release: push
echo "done"
.PHONY: init-docker-buildx .PHONY: init-docker-buildx
init-docker-buildx: init-docker-buildx:
ifneq ($(shell docker buildx 2>&1 >/dev/null; echo $?),) ifneq ($(shell docker buildx 2>&1 >/dev/null; echo $?),)
$(error "buildx not vailable. Docker 19.03 or higher is required") $(error "buildx not vailable. Docker 19.03 or higher is required")
endif endif
docker run --rm --privileged docker/binfmt:66f9012c56a8316f9244ffd7622d7c21c1f6f28d docker run --rm --privileged docker/binfmt:a7996909642ee92942dcd6cff44b9b95f08dad64
docker buildx create --name ingress-nginx --use || true docker buildx create --name ingress-nginx --use || true
docker buildx inspect --bootstrap docker buildx inspect --bootstrap

View file

@ -38,7 +38,7 @@ spec:
spec: spec:
containers: containers:
- name: nginx - name: nginx
image: quay.io/kubernetes-ingress-controller/nginx:0.102 image: quay.io/kubernetes-ingress-controller/nginx:0.103
ports: ports:
- containerPort: 80 - containerPort: 80
- containerPort: 443 - containerPort: 443

View file

@ -14,13 +14,10 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
set -o errexit set -o errexit
set -o nounset set -o nounset
set -o pipefail set -o pipefail
export DEBIAN_FRONTEND=noninteractive
export NGINX_VERSION=1.19.0 export NGINX_VERSION=1.19.0
export NDK_VERSION=0.3.1rc1 export NDK_VERSION=0.3.1rc1
export SETMISC_VERSION=0.32 export SETMISC_VERSION=0.32
@ -40,15 +37,20 @@ export LUA_NGX_VERSION=0.10.15
export LUA_STREAM_NGX_VERSION=0.0.7 export LUA_STREAM_NGX_VERSION=0.0.7
export LUA_UPSTREAM_VERSION=0.07 export LUA_UPSTREAM_VERSION=0.07
export LUA_BRIDGE_TRACER_VERSION=0.1.1 export LUA_BRIDGE_TRACER_VERSION=0.1.1
export LUA_CJSON_VERSION=2.1.0.7
export NGINX_INFLUXDB_VERSION=5b09391cb7b9a889687c0aa67964c06a2d933e8b export NGINX_INFLUXDB_VERSION=5b09391cb7b9a889687c0aa67964c06a2d933e8b
export GEOIP2_VERSION=3.3 export GEOIP2_VERSION=3.3
export NGINX_AJP_VERSION=bf6cd93f2098b59260de8d494f0f4b1f11a84627 export NGINX_AJP_VERSION=bf6cd93f2098b59260de8d494f0f4b1f11a84627
export RESTY_LUAROCKS_VERSION=3.1.3
export LUAJIT_VERSION=31116c4d25c4283a52b2d87fed50101cf20f5b77 export LUAJIT_VERSION=31116c4d25c4283a52b2d87fed50101cf20f5b77
export LUA_RESTY_BALANCER=0.03 export LUA_RESTY_BALANCER=0.03
export LUA_RESTY_CACHE=0.10rc1
export LUA_RESTY_CORE=0.1.17 export LUA_RESTY_CORE=0.1.17
export LUA_CJSON_VERSION=2.1.0.7
export LUA_RESTY_COOKIE_VERSION=766ad8c15e498850ac77f5e0265f1d3f30dc4027 export LUA_RESTY_COOKIE_VERSION=766ad8c15e498850ac77f5e0265f1d3f30dc4027
export LUA_RESTY_DNS=0.21
export LUA_RESTY_HTTP=0.15
export LUA_RESTY_LOCK=0.08
export BUILD_PATH=/tmp/build export BUILD_PATH=/tmp/build
@ -92,7 +94,6 @@ apk add \
alpine-sdk \ alpine-sdk \
findutils \ findutils \
curl ca-certificates \ curl ca-certificates \
geoip-dev \
patch \ patch \
libaio-dev \ libaio-dev \
openssl \ openssl \
@ -102,12 +103,12 @@ apk add \
wget \ wget \
curl-dev \ curl-dev \
libprotobuf \ libprotobuf \
git g++ pkgconf flex bison doxygen yajl-dev lmdb-dev libtool autoconf libxml2 pcre-dev libxml2-dev \ git g++ pkgconf flex bison doxygen yajl-dev lmdb-dev libtool autoconf libxml2 libxml2-dev \
python \ python \
libmaxminddb-dev \ libmaxminddb-dev \
bc \ bc \
unzip \ unzip \
dos2unix mercurial \ dos2unix \
yaml-cpp yaml-cpp
mkdir -p /etc/nginx mkdir -p /etc/nginx
@ -195,9 +196,6 @@ get_src 41378438c833e313a18869d0c4a72704b4835c30acaf7fd68013ab6732ff78a7 \
get_src 5f629a50ba22347c441421091da70fdc2ac14586619934534e5a0f8a1390a950 \ get_src 5f629a50ba22347c441421091da70fdc2ac14586619934534e5a0f8a1390a950 \
"https://github.com/yaoweibin/nginx_ajp_module/archive/$NGINX_AJP_VERSION.tar.gz" "https://github.com/yaoweibin/nginx_ajp_module/archive/$NGINX_AJP_VERSION.tar.gz"
get_src c573435f495aac159e34eaa0a3847172a2298eb6295fcdc35d565f9f9b990513 \
"https://luarocks.github.io/luarocks/releases/luarocks-${RESTY_LUAROCKS_VERSION}.tar.gz"
get_src 5d16e623d17d4f42cc64ea9cfb69ca960d313e12f5d828f785dd227cc483fcbd \ get_src 5d16e623d17d4f42cc64ea9cfb69ca960d313e12f5d828f785dd227cc483fcbd \
"https://github.com/openresty/lua-resty-upload/archive/v0.10.tar.gz" "https://github.com/openresty/lua-resty-upload/archive/v0.10.tar.gz"
@ -216,6 +214,19 @@ get_src 59d2f18ecadba48be61061004c8664eaed1111a3372cd2567cb24c5a47eb41fe \
get_src f818b5cef0881e5987606f2acda0e491531a0cb0c126d8dca02e2343edf641ef \ get_src f818b5cef0881e5987606f2acda0e491531a0cb0c126d8dca02e2343edf641ef \
"https://github.com/cloudflare/lua-resty-cookie/archive/$LUA_RESTY_COOKIE_VERSION.tar.gz" "https://github.com/cloudflare/lua-resty-cookie/archive/$LUA_RESTY_COOKIE_VERSION.tar.gz"
get_src f6b57d83a937899f97a98372c1e2631dd1ab8f580fc0ffeac0b27b4d42225a99 \
"https://github.com/openresty/lua-resty-lrucache/archive/v$LUA_RESTY_CACHE.tar.gz"
get_src 2b4683f9abe73e18ca00345c65010c9056777970907a311d6e1699f753141de2 \
"https://github.com/openresty/lua-resty-lock/archive/v$LUA_RESTY_LOCK.tar.gz"
get_src 4aca34f324d543754968359672dcf5f856234574ee4da360ce02c778d244572a \
"https://github.com/openresty/lua-resty-dns/archive/v$LUA_RESTY_DNS.tar.gz"
get_src 987d5754a366d3ccbf745d2765f82595dcff5b94ba6c755eeb6d310447996f32 \
"https://github.com/ledgetech/lua-resty-http/archive/v$LUA_RESTY_HTTP.tar.gz"
# improve compilation times # improve compilation times
CORES=$(($(grep -c ^processor /proc/cpuinfo) - 0)) CORES=$(($(grep -c ^processor /proc/cpuinfo) - 0))
@ -233,8 +244,13 @@ cd "$BUILD_PATH/luajit2-$LUAJIT_VERSION"
make CCDEBUG=-g make CCDEBUG=-g
make install make install
ln -s /usr/local/bin/luajit /usr/local/bin/lua
cd "$BUILD_PATH" cd "$BUILD_PATH"
# Git tuning
git config --global --add core.compression -1
# install openresty-gdb-utils # install openresty-gdb-utils
cd / cd /
git clone --depth=1 https://github.com/openresty/openresty-gdb-utils.git git clone --depth=1 https://github.com/openresty/openresty-gdb-utils.git
@ -375,8 +391,7 @@ sh build.sh
./configure \ ./configure \
--disable-doxygen-doc \ --disable-doxygen-doc \
--disable-doxygen-html \ --disable-doxygen-html \
--disable-examples \ --disable-examples
--enable-prce-jit
make make
make install make install
@ -534,22 +549,6 @@ WITH_MODULES="--add-module=$BUILD_PATH/ngx_devel_kit-$NDK_VERSION \
make make
make install make install
cd "$BUILD_PATH/luarocks-${RESTY_LUAROCKS_VERSION}"
./configure \
--lua-suffix=jit-2.1.0-beta3 \
--with-lua-include=/usr/local/include/luajit-2.1
make
make install
export LUA_INCLUDE_DIR=/usr/local/include/luajit-2.1
ln -s $LUA_INCLUDE_DIR /usr/include/lua5.1
if [[ ${ARCH} != "armv7l" ]]; then
luarocks install lrexlib-pcre 2.7.2-1
fi
cd "$BUILD_PATH/lua-resty-core-$LUA_RESTY_CORE" cd "$BUILD_PATH/lua-resty-core-$LUA_RESTY_CORE"
make install make install
@ -557,6 +556,9 @@ cd "$BUILD_PATH/lua-resty-balancer-$LUA_RESTY_BALANCER"
make all make all
make install make install
export LUA_INCLUDE_DIR=/usr/local/include/luajit-2.1
ln -s $LUA_INCLUDE_DIR /usr/include/lua5.1
cd "$BUILD_PATH/lua-cjson-$LUA_CJSON_VERSION" cd "$BUILD_PATH/lua-cjson-$LUA_CJSON_VERSION"
make all make all
make install make install
@ -565,13 +567,18 @@ cd "$BUILD_PATH/lua-resty-cookie-$LUA_RESTY_COOKIE_VERSION"
make all make all
make install make install
luarocks install lua-resty-iputils 0.3.0-1 cd "$BUILD_PATH/lua-resty-lrucache-$LUA_RESTY_CACHE"
luarocks install lua-resty-lrucache 0.09-2 make install
luarocks install lua-resty-lock 0.08-0
luarocks install lua-resty-dns 0.21-1 cd "$BUILD_PATH/lua-resty-dns-$LUA_RESTY_DNS"
make install
cd "$BUILD_PATH/lua-resty-lock-$LUA_RESTY_LOCK"
make install
# required for OCSP verification # required for OCSP verification
luarocks install lua-resty-http cd "$BUILD_PATH/lua-resty-http-$LUA_RESTY_HTTP"
make install
cd "$BUILD_PATH/lua-resty-upload-0.10" cd "$BUILD_PATH/lua-resty-upload-0.10"
make install make install
@ -589,9 +596,8 @@ make install
# mimalloc # mimalloc
cd "$BUILD_PATH" cd "$BUILD_PATH"
git clone https://github.com/microsoft/mimalloc git clone --depth=1 -b v1.6.3 https://github.com/microsoft/mimalloc
cd mimalloc cd mimalloc
git checkout v1.6.3
mkdir -p out/release mkdir -p out/release
cd out/release cd out/release