Skip to content

Commit

Permalink
chore(version) added Kong open source version 2.8.5 artifacts
Browse files Browse the repository at this point in the history
  • Loading branch information
locao authored and Tieske committed Jun 24, 2024
1 parent 3652bf5 commit 75fedb4
Show file tree
Hide file tree
Showing 196 changed files with 42,230 additions and 0 deletions.
298 changes: 298 additions & 0 deletions kong-versions/2.8.5/kong/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,298 @@
OS := $(shell uname | awk '{print tolower($$0)}')
MACHINE := $(shell uname -m)

DEV_ROCKS = "busted 2.0.0" "busted-htest 1.0.0" "luacheck 0.25.0" "lua-llthreads2 0.1.6" "http 0.4" "ldoc 1.4.6"
WIN_SCRIPTS = "bin/busted" "bin/kong"
BUSTED_ARGS ?= -v
TEST_CMD ?= bin/busted $(BUSTED_ARGS)

BUILD_NAME ?= kong-dev
BAZEL_ARGS ?= --verbose_failures --action_env=BUILD_NAME=$(BUILD_NAME) --//:skip_webui=true

ifeq ($(OS), darwin)
OPENSSL_DIR ?= /usr/local/opt/openssl
GRPCURL_OS ?= osx
else
OPENSSL_DIR ?= /usr
GRPCURL_OS ?= $(OS)
endif

ifeq ($(MACHINE), aarch64)
GRPCURL_MACHINE ?= arm64
H2CLIENT_MACHINE ?= arm64
else
GRPCURL_MACHINE ?= $(MACHINE)
H2CLIENT_MACHINE ?= $(MACHINE)
endif

ifeq ($(MACHINE), aarch64)
BAZELISK_MACHINE ?= arm64
else ifeq ($(MACHINE), x86_64)
BAZELISK_MACHINE ?= amd64
else
BAZELISK_MACHINE ?= $(MACHINE)
endif

.PHONY: install dependencies dev remove grpcurl \
setup-ci setup-kong-build-tools \
lint test test-integration test-plugins test-all \
pdk-phase-check functional-tests \
fix-windows release \
nightly-release release

ROOT_DIR:=$(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
KONG_SOURCE_LOCATION ?= $(ROOT_DIR)
KONG_BUILD_TOOLS_LOCATION ?= $(KONG_SOURCE_LOCATION)/../kong-build-tools
RESTY_VERSION ?= `grep RESTY_VERSION $(KONG_SOURCE_LOCATION)/.requirements | awk -F"=" '{print $$2}'`
RESTY_LUAROCKS_VERSION ?= `grep RESTY_LUAROCKS_VERSION $(KONG_SOURCE_LOCATION)/.requirements | awk -F"=" '{print $$2}'`
RESTY_OPENSSL_VERSION ?= `grep RESTY_OPENSSL_VERSION $(KONG_SOURCE_LOCATION)/.requirements | awk -F"=" '{print $$2}'`
RESTY_PCRE_VERSION ?= `grep RESTY_PCRE_VERSION $(KONG_SOURCE_LOCATION)/.requirements | awk -F"=" '{print $$2}'`
KONG_BUILD_TOOLS ?= `grep KONG_BUILD_TOOLS_VERSION $(KONG_SOURCE_LOCATION)/.requirements | awk -F"=" '{print $$2}'`
GRPCURL_VERSION ?= 1.8.5
BAZLISK_VERSION ?= 1.18.0
OPENRESTY_PATCHES_BRANCH ?= master
KONG_NGINX_MODULE_BRANCH ?= master
BAZEL := $(shell command -v bazel 2> /dev/null)
VENV = /dev/null # backward compatibility when no venv is built

# Use x86_64 grpcurl v1.8.5 for Apple silicon chips
ifeq ($(GRPCURL_OS)_$(MACHINE)_$(GRPCURL_VERSION), osx_arm64_1.8.5)
GRPCURL_MACHINE = x86_64
endif

H2CLIENT_VERSION ?= 0.4.0

PACKAGE_TYPE ?= deb
REPOSITORY_NAME ?= kong-${PACKAGE_TYPE}
REPOSITORY_OS_NAME ?= ${RESTY_IMAGE_BASE}
KONG_PACKAGE_NAME ?= kong
# This logic should mirror the kong-build-tools equivalent
KONG_VERSION ?= `echo $(KONG_SOURCE_LOCATION)/kong-*.rockspec | sed 's,.*/,,' | cut -d- -f2`

TAG := $(shell git describe --exact-match HEAD || true)

ifneq ($(TAG),)
# We're building a tag
ISTAG = true
POSSIBLE_PRERELEASE_NAME = $(shell git describe --tags --abbrev=0 | awk -F"-" '{print $$2}')
ifneq ($(POSSIBLE_PRERELEASE_NAME),)
# We're building a pre-release tag
OFFICIAL_RELEASE = false
REPOSITORY_NAME = kong-prerelease
else
# We're building a semver release tag
OFFICIAL_RELEASE = true
KONG_VERSION ?= `cat $(KONG_SOURCE_LOCATION)/kong-*.rockspec | grep -m1 tag | awk '{print $$3}' | sed 's/"//g'`
ifeq ($(PACKAGE_TYPE),apk)
REPOSITORY_NAME = kong-alpine-tar
endif
endif
else
OFFICIAL_RELEASE = false
ISTAG = false
BRANCH ?= $(shell git rev-parse --abbrev-ref HEAD)
REPOSITORY_NAME = kong-${BRANCH}
REPOSITORY_OS_NAME = ${BRANCH}
KONG_PACKAGE_NAME ?= kong-${BRANCH}
KONG_VERSION ?= `date +%Y-%m-%d`
endif

release-docker-images:
cd $(KONG_BUILD_TOOLS_LOCATION); \
$(MAKE) \
KONG_SOURCE_LOCATION=${KONG_SOURCE_LOCATION} \
package-kong && \
$(MAKE) \
KONG_SOURCE_LOCATION=${KONG_SOURCE_LOCATION} \
release-kong-docker-images

bin/bazel:
@curl -s -S -L \
https://github.com/bazelbuild/bazelisk/releases/download/v$(BAZLISK_VERSION)/bazelisk-$(OS)-$(BAZELISK_MACHINE) -o bin/bazel
@chmod +x bin/bazel

bin/grpcurl:
@curl -s -S -L \
https://github.com/fullstorydev/grpcurl/releases/download/v$(GRPCURL_VERSION)/grpcurl_$(GRPCURL_VERSION)_$(GRPCURL_OS)_$(GRPCURL_MACHINE).tar.gz | tar xz -C bin;
@$(RM) bin/LICENSE

bin/h2client:
@curl -s -S -L \
https://github.com/Kong/h2client/releases/download/v$(H2CLIENT_VERSION)/h2client_$(H2CLIENT_VERSION)_$(OS)_$(H2CLIENT_MACHINE).tar.gz | tar xz -C bin;
@$(RM) bin/README.md

release:
ifeq ($(ISTAG),false)
sed -i -e '/return string\.format/,/\"\")/c\return "$(KONG_VERSION)\"' kong/meta.lua
endif
cd $(KONG_BUILD_TOOLS_LOCATION); \
$(MAKE) \
KONG_VERSION=${KONG_VERSION} \
KONG_PACKAGE_NAME=${KONG_PACKAGE_NAME} \
package-kong && \
$(MAKE) \
KONG_VERSION=${KONG_VERSION} \
KONG_PACKAGE_NAME=${KONG_PACKAGE_NAME} \
REPOSITORY_NAME=${REPOSITORY_NAME} \
REPOSITORY_OS_NAME=${REPOSITORY_OS_NAME} \
KONG_PACKAGE_NAME=${KONG_PACKAGE_NAME} \
KONG_VERSION=${KONG_VERSION} \
OFFICIAL_RELEASE=$(OFFICIAL_RELEASE) \
release-kong

setup-ci:
OPENRESTY=$(RESTY_VERSION) \
LUAROCKS=$(RESTY_LUAROCKS_VERSION) \
OPENSSL=$(RESTY_OPENSSL_VERSION) \
OPENRESTY_PATCHES_BRANCH=$(OPENRESTY_PATCHES_BRANCH) \
KONG_NGINX_MODULE_BRANCH=$(KONG_NGINX_MODULE_BRANCH) \
.ci/setup_env.sh

package/deb: setup-kong-build-tools
cd $(KONG_BUILD_TOOLS_LOCATION); \
PACKAGE_TYPE=deb RESTY_IMAGE_BASE=ubuntu RESTY_IMAGE_TAG=22.04 $(MAKE) package-kong && \
cp $(KONG_BUILD_TOOLS_LOCATION)/output/*.deb .

package/apk: setup-kong-build-tools
cd $(KONG_BUILD_TOOLS_LOCATION); \
PACKAGE_TYPE=apk RESTY_IMAGE_BASE=alpine RESTY_IMAGE_TAG=3 $(MAKE) package-kong && \
cp $(KONG_BUILD_TOOLS_LOCATION)/output/*.apk.* .

package/rpm: setup-kong-build-tools
cd $(KONG_BUILD_TOOLS_LOCATION); \
PACKAGE_TYPE=rpm RESTY_IMAGE_BASE=rhel RESTY_IMAGE_TAG=8.6 $(MAKE) package-kong && \
cp $(KONG_BUILD_TOOLS_LOCATION)/output/*.rpm .

package/test/deb: package/deb
cd $(KONG_BUILD_TOOLS_LOCATION); \
PACKAGE_TYPE=deb RESTY_IMAGE_BASE=ubuntu RESTY_IMAGE_TAG=22.04 $(MAKE) test

package/test/apk: package/apk
cd $(KONG_BUILD_TOOLS_LOCATION); \
PACKAGE_TYPE=apk RESTY_IMAGE_BASE=alpine RESTY_IMAGE_TAG=3 $(MAKE) test

package/test/rpm: package/rpm
cd $(KONG_BUILD_TOOLS_LOCATION); \
PACKAGE_TYPE=rpm RESTY_IMAGE_BASE=rhel RESTY_IMAGE_TAG=8.6 $(MAKE) test

package/docker/deb: package/deb
cd $(KONG_BUILD_TOOLS_LOCATION); \
PACKAGE_TYPE=deb RESTY_IMAGE_BASE=ubuntu RESTY_IMAGE_TAG=22.04 $(MAKE) build-test-container

package/docker/apk: package/apk
cd $(KONG_BUILD_TOOLS_LOCATION); \
PACKAGE_TYPE=apk RESTY_IMAGE_BASE=alpine RESTY_IMAGE_TAG=3 $(MAKE) build-test-container

package/docker/rpm: package/rpm
cd $(KONG_BUILD_TOOLS_LOCATION); \
PACKAGE_TYPE=rpm RESTY_IMAGE_BASE=rhel RESTY_IMAGE_TAG=8.6 $(MAKE) build-test-container

release/docker/deb: package/docker/deb
cd $(KONG_BUILD_TOOLS_LOCATION); \
PACKAGE_TYPE=deb RESTY_IMAGE_BASE=ubuntu RESTY_IMAGE_TAG=22.04 $(MAKE) release-kong-docker-images

release/docker/apk: package/docker/apk
cd $(KONG_BUILD_TOOLS_LOCATION); \
PACKAGE_TYPE=apk RESTY_IMAGE_BASE=alpine RESTY_IMAGE_TAG=3 $(MAKE) release-kong-docker-images

release/docker/rpm: package/docker/rpm
cd $(KONG_BUILD_TOOLS_LOCATION); \
PACKAGE_TYPE=rpm RESTY_IMAGE_BASE=rhel RESTY_IMAGE_TAG=8.6 $(MAKE) release-kong-docker-images

setup-kong-build-tools:
-rm -rf $(KONG_BUILD_TOOLS_LOCATION)
-git clone https://github.com/Kong/kong-build-tools.git --recursive $(KONG_BUILD_TOOLS_LOCATION)
cd $(KONG_BUILD_TOOLS_LOCATION); \
git reset --hard && git checkout $(KONG_BUILD_TOOLS); \

functional-tests: setup-kong-build-tools
cd $(KONG_BUILD_TOOLS_LOCATION); \
$(MAKE) setup-build && \
$(MAKE) build-kong && \
$(MAKE) test

install:
@luarocks make OPENSSL_DIR=$(OPENSSL_DIR) CRYPTO_DIR=$(OPENSSL_DIR)

remove:
-@luarocks remove kong

dependencies: bin/grpcurl
@for rock in $(DEV_ROCKS) ; do \
if luarocks list --porcelain $$rock | grep -q "installed" ; then \
echo $$rock already installed, skipping ; \
else \
echo $$rock not found, installing via luarocks... ; \
luarocks install $$rock OPENSSL_DIR=$(OPENSSL_DIR) CRYPTO_DIR=$(OPENSSL_DIR) || exit 1; \
fi \
done;

build-kong: check-bazel
$(BAZEL) build //build:kong --verbose_failures --action_env=BUILD_NAME=$(BUILD_NAME)

build-venv: check-bazel
$(eval VENV := bazel-bin/build/$(BUILD_NAME)-venv.sh)

@if [ ! -e bazel-bin/build/$(BUILD_NAME)-venv.sh ]; then \
$(BAZEL) build //build:venv $(BAZEL_ARGS); \
fi

install-dev-rocks: build-venv
@. $(VENV) ;\
for rock in $(DEV_ROCKS) ; do \
if luarocks list --porcelain $$rock | grep -q "installed" ; then \
echo $$rock already installed, skipping ; \
else \
echo $$rock not found, installing via luarocks... ; \
LIBRARY_PREFIX=$$(pwd)/bazel-bin/build/$(BUILD_NAME)/kong ; \
luarocks install $$rock OPENSSL_DIR=$$LIBRARY_PREFIX CRYPTO_DIR=$$LIBRARY_PREFIX YAML_DIR=$(YAML_DIR) || exit 1; \
fi \
done;

dev: remove install dependencies

venv-dev: build-venv install-dev-rocks bin/grpcurl bin/h2client

check-bazel: bin/bazel
ifndef BAZEL
$(eval BAZEL := bin/bazel)
endif

clean: check-bazel
$(BAZEL) clean
$(RM) bin/bazel bin/grpcurl bin/h2client


lint:
@luacheck -q . --exclude-files=bazel-*
@!(grep -R -E -I -n -w '#only|#o' spec && echo "#only or #o tag detected") >&2
@!(grep -R -E -I -n -- '---\s+ONLY' t && echo "--- ONLY block detected") >&2

test:
@$(TEST_CMD) spec/01-unit

test-integration:
@$(TEST_CMD) spec/02-integration

test-plugins:
@$(TEST_CMD) spec/03-plugins

test-all:
@$(TEST_CMD) spec/

pdk-phase-checks:
rm -f t/phase_checks.stats
rm -f t/phase_checks.report
PDK_PHASE_CHECKS_LUACOV=1 prove -I. t/01*/*/00-phase*.t
luacov -c t/phase_checks.luacov
grep "ngx\\." t/phase_checks.report
grep "check_" t/phase_checks.report

fix-windows:
@for script in $(WIN_SCRIPTS) ; do \
echo Converting Windows file $$script ; \
mv $$script $$script.win ; \
tr -d '\015' <$$script.win >$$script ; \
rm $$script.win ; \
chmod 0755 $$script ; \
done;
65 changes: 65 additions & 0 deletions kong-versions/2.8.5/kong/bin/busted
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
#!/usr/bin/env resty

setmetatable(_G, nil)

local pl_path = require("pl.path")

local cert_path = pl_path.abspath("spec/fixtures/kong_spec.crt")

local DEFAULT_RESTY_FLAGS=string.format(" -c 4096 --http-conf 'lua_ssl_trusted_certificate %s;' ", cert_path)

if not os.getenv("KONG_BUSTED_RESPAWNED") then
-- initial run, so go update the environment
local script = {}
for line in io.popen("set"):lines() do
local ktvar, val = line:match("^KONG_TEST_([^=]*)=(.*)")
if ktvar then
-- reinserted KONG_TEST_xxx as KONG_xxx; append
table.insert(script, "export KONG_" .. ktvar .. "=" ..val)
end

local var = line:match("^(KONG_[^=]*)")
local var_for_spec = line:match("^(KONG_SPEC_[^=]*)")
if var and not var_for_spec then
-- remove existing KONG_xxx and KONG_TEST_xxx variables; prepend
table.insert(script, 1, "unset " .. var)
end
end
-- add cli recursion detection
table.insert(script, "export KONG_BUSTED_RESPAWNED=1")

-- rebuild the invoked commandline, while inserting extra resty-flags
local resty_flags = DEFAULT_RESTY_FLAGS
local cmd = { "exec", "/usr/bin/env", "resty" }
local cmd_prefix_count = #cmd
for i = 0, #arg do
if arg[i]:sub(1, 12) == "RESTY_FLAGS=" then
resty_flags = arg[i]:sub(13, -1)

else
table.insert(cmd, "'" .. arg[i] .. "'")
end
end

if resty_flags then
table.insert(cmd, cmd_prefix_count+1, resty_flags)
end

table.insert(script, table.concat(cmd, " "))

-- recurse cli command, with proper variables (un)set for clean testing
local _, _, rc = os.execute(table.concat(script, "; "))
os.exit(rc)
end

pcall(require, "luarocks.loader")

require("kong.globalpatches")({
cli = true,
rbusted = true
})

-- Busted command-line runner
require 'busted.runner'({ standalone = false })

-- vim: set ft=lua ts=2 sw=2 sts=2 et :
9 changes: 9 additions & 0 deletions kong-versions/2.8.5/kong/bin/kong
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#!/usr/bin/env resty

setmetatable(_G, nil)

pcall(require, "luarocks.loader")

package.path = (os.getenv("KONG_LUA_PATH_OVERRIDE") or "") .. "./?.lua;./?/init.lua;" .. package.path

require("kong.cmd.init")(arg)
Loading

0 comments on commit 75fedb4

Please sign in to comment.