Skip to content

[gateway] Add binary distribution and container release flow - #4098

Merged
fresh-borzoni merged 8 commits into
apache:mainfrom
naivedogger:feature/issue-4085-gateway-release
Aug 28, 2026
Merged

[gateway] Add binary distribution and container release flow#4098
fresh-borzoni merged 8 commits into
apache:mainfrom
naivedogger:feature/issue-4085-gateway-release

Conversation

@naivedogger

Copy link
Copy Markdown
Contributor

Purpose

Linked issue: close #4085

Brief change log

Tests

API and Format

Documentation

@naivedogger
naivedogger marked this pull request as ready for review August 25, 2026 09:24
Comment thread fluss-gateway/conf/gateway.yaml Outdated
gateway.rest.header-read-timeout: 10s

# Server-side deadline for one REST write request.
gateway.rest.write.request-timeout: 30s

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

gateway.rest.request-timeout
gateway.rest.metadata.max-concurrent-requests
gateway.cluster.default.connection.security.protocol

@naivedogger
naivedogger force-pushed the feature/issue-4085-gateway-release branch from 6d84c55 to 9e7ce56 Compare August 28, 2026 03:48
Comment thread docker/fluss-gateway/build.sh Outdated
"${SCRIPT_DIR}/prepare_build.sh"

image_version="${FLUSS_VERSION:-${gateway_version}}"
image_revision="${VCS_REF:-$(git -C "${REPOSITORY_ROOT}" rev-parse HEAD)}"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The documented just image path should also work from the official source tarball, which intentionally excludes .git. When VCS_REF is unset, git rev-parse HEAD may causes the build to fail; please fall back to unknown when Git metadata is unavailable.

Comment thread fluss-gateway/README.md Outdated

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It looks like this status section may be outdated now that the DDL and write PRs have been merged. Could we update the supported API list accordingly?

```bash
docker buildx imagetools create apache/fluss:${RELEASE_VERSION}-rc${RC_NUM} --tag apache/fluss:${RELEASE_VERSION}

docker buildx imagetools create apache/fluss-gateway:${RELEASE_VERSION}-rc${RC_NUM} --tag apache/fluss-gateway:${RELEASE_VERSION}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since the final release reuses the RC manifest, this may leave the final image with an -rcN version label. Could we use ${RELEASE_VERSION} for FLUSS_VERSION and keep the RC suffix only in the image tag?



def indent(text: str) -> str:
return "\n".join("| " + line for line in text.rstrip().splitlines())

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems the generated LICENSE-bin contains trailing spaces on empty quoted lines, which makes git diff --check fail. Could we emit | for empty lines and regenerate the file?

Comment thread fluss-gateway/README.md
never builds the `fluss-rust` workspace. The container job builds the Gateway
against the in-tree client on native `amd64` and `arm64` runners, packages the
binary distribution, assembles the image from that distribution, and exercises
startup, health, readiness, non-root execution, configuration errors, and

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The README mentions that configuration errors are covered by the container job, but I may have missed the corresponding check in smoke-test.sh. Could we either add this check or adjust the description?

@naivedogger
naivedogger force-pushed the feature/issue-4085-gateway-release branch from 5cfa2c0 to ede321c Compare August 28, 2026 10:13

@fresh-borzoni fresh-borzoni left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@naivedogger Thank you for the PR, LGTM overall, one minor comment, PTAL

if [[ "${GATEWAY_NEW_VERSION}" =~ ^[0-9]+\.[0-9]+$ ]]; then
GATEWAY_NEW_VERSION="${GATEWAY_NEW_VERSION}.0"
fi
if [[ ! "${GATEWAY_NEW_VERSION}" =~ ^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z]+([.-][0-9A-Za-z]+)*)?(\+[0-9A-Za-z]+([.-][0-9A-Za-z]+)*)?$ ]]; then

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This strips -SNAPSHOT, so 1.1-SNAPSHOT becomes gateway version 1.1.0, --version, the image label and the tarball name all claim the release while the branch is a snapshot.
The regex on line 64 would accept 1.1.0-SNAPSHOT. Should the snapshot keep its marker?

@naivedogger

Copy link
Copy Markdown
Contributor Author

@fresh-borzoni Addressed, PTAL.

@fresh-borzoni fresh-borzoni left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@naivedogger Thank you, LGTM 👍

@beryllw beryllw left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. I also validated the arm64 Gateway image with 43/43 E2E scenarios covering all 16 API operations and OpenAPI response schemas, and ran a short 600,000-row Log/KV write test with no request/row errors or client-side drops. Graceful shutdown also completed cleanly.

@fresh-borzoni
fresh-borzoni merged commit fa5b9fd into apache:main Aug 28, 2026
30 of 32 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FIP-49][gateway] Add the Gateway container image and the release pipeline

3 participants