Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
2418b59
Add bssl-compat: BoringSSL compatibility layer for OpenSSL
jwendell Oct 22, 2025
7f10f80
Configure Bazel build system for OpenSSL and multi-architecture support
jwendell Oct 22, 2025
7975b78
Adapt Envoy source code for OpenSSL compatibility
jwendell Oct 22, 2025
126b941
Add CI/CD automation and update documentation for envoy-openssl
jwendell Oct 22, 2025
19b23d7
Add missing OpenSSL functions
jwendell Oct 30, 2025
259070d
Ability to build both SSL variants
jwendell Oct 23, 2025
99f0c9b
Convert bssl-compat build from CMake to Bazel
tedjpoole Nov 6, 2025
f0d9ea8
Remove rules_go patch
jwendell Dec 8, 2025
8a2aba1
Fix zlib location
jwendell Dec 8, 2025
b9c7738
Remove our own patch for v8 and ppc
jwendell Dec 8, 2025
e2608f7
Remove our own grpc patch for s390x
jwendell Dec 8, 2025
1374ae9
Use llvm toolchain from bazel rather than the system
jwendell Dec 9, 2025
0f0e10e
Added missing bssl-compat functions
tedjpoole Dec 8, 2025
8eb12f0
Use clang instead of gcc; Adjust CI flags
jwendell Dec 9, 2025
75a63c8
Removed bssl-compat dependency on cmake && gawk
tedjpoole Dec 10, 2025
3b2e944
Fix leak in bssl-compat SSL_get_servername()
tedjpoole Dec 3, 2025
f9b7e26
Fix leak in bssl-compat SSL_set_ocsp_response()
tedjpoole Dec 9, 2025
5cad3c2
Reduce differences
jwendell Dec 11, 2025
1e18831
Fix tests under OpenSSL
jwendell Dec 15, 2025
acfd9cd
Tidy up certificate ownership in SSL_set_chain_and_key()
tedjpoole Dec 17, 2025
41158db
fix system library error messages
dgn Nov 14, 2025
b64b954
Reduce differences
jwendell Dec 17, 2025
cff5694
Reduce differences - remove quiche patch for s390x
jwendell Dec 17, 2025
de97b2e
fix ssl flags
jwendell Dec 18, 2025
cd6a395
reduce differences
jwendell Dec 18, 2025
f6bbeb8
reduce differences
jwendell Dec 18, 2025
63c21b2
reduce differences: remove luajit2
jwendell Dec 18, 2025
691dd4f
reduce differences: remove s390x patches
jwendell Dec 18, 2025
26ce548
reduce differences
jwendell Dec 18, 2025
5458422
skip a failng test in openssl
jwendell Dec 18, 2025
7682dd3
Fixed potential leaks in SSL_set_ocsp_response()
tedjpoole Dec 12, 2025
4637c3e
Fixed potential leak in certificate selection callback
tedjpoole Dec 12, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 6 additions & 0 deletions .bazelrc
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,8 @@ build --copt=-DABSL_MIN_LOG_LEVEL=4
build --cxxopt=-std=c++20 --host_cxxopt=-std=c++20
build --copt=-Wno-deprecated-declarations
build --define envoy_mobile_listener=enabled
# Default to BoringSSL. Use --config=openssl to switch to OpenSSL.
build --define=ssl=boringssl
build --experimental_repository_downloader_retries=2
build --experimental_cc_static_library
build --enable_platform_specific_config
Expand Down Expand Up @@ -491,3 +493,7 @@ try-import %workspace%/repo.bazelrc
try-import %workspace%/clang.bazelrc
try-import %workspace%/user.bazelrc
try-import %workspace%/local_tsan.bazelrc

# OpenSSL-specific configuration (use with --config=openssl)
# To use the default BoringSSL backend, simply don't specify this config
try-import %workspace%/openssl/openssl.bazelrc
103 changes: 0 additions & 103 deletions .github/dependabot.yml

This file was deleted.

70 changes: 70 additions & 0 deletions .github/workflows/envoy-openssl-auto-merge.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
name: Auto-merge Bot PRs

on:
workflow_run:
workflows: ["OpenSSL testing"]
types:
- completed

permissions:
pull-requests: write
contents: write

jobs:
enable-auto-merge:
if: |
github.repository == 'envoyproxy/envoy-openssl'
&& github.event.workflow_run.conclusion == 'success'
&& github.event.workflow_run.repository.full_name == github.repository
runs-on: ubuntu-latest

steps:
- name: Get PR info
id: pr
uses: actions/github-script@v7
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const prs = context.payload.workflow_run.pull_requests;
if (prs.length === 0) {
core.notice("No pull request associated with this workflow_run (likely from a fork). Skipping workflow.");
// Explicitly set a flag so next steps can check
core.setOutput("skip", "true");
return;
}
const prNumber = prs[0].number;
const { data: pr } = await github.rest.pulls.get({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: prNumber
});
core.setOutput("pr_number", pr.number);
core.setOutput("pr_author", pr.user.login);
core.setOutput("labels", pr.labels.map(l => l.name).join(","));

- name: Print info
if: ${{ steps.pr.outputs.skip != 'true' }}
run: |
echo "PR author: ${{ steps.pr.outputs.pr_author }}"
echo "Labels: ${{ steps.pr.outputs.labels }}"
if [[ "${{ steps.pr.outputs.pr_author }}" != "update-openssl-envoy[bot]" ]]; then
echo "::notice title=Skip reason::PR author is not update-openssl-envoy[bot]"
fi
if [[ "${{ steps.pr.outputs.labels }}" != *"auto-merge"* ]]; then
echo "::notice title=Skip reason::Label 'auto-merge' not found"
fi

- name: Merge PR
if: ${{ steps.pr.outputs.skip != 'true' && contains(steps.pr.outputs.labels, 'auto-merge') && steps.pr.outputs.pr_author == 'update-openssl-envoy[bot]' }}
uses: actions/github-script@v7
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const prNumber = parseInt('${{ steps.pr.outputs.pr_number }}');
await github.rest.pulls.merge({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: prNumber,
merge_method: 'merge'
});
core.notice(`✅ PR #${prNumber} merged automatically.`);
58 changes: 58 additions & 0 deletions .github/workflows/envoy-openssl.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
name: OpenSSL testing

permissions:
contents: read

on:
pull_request:

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}


jobs:
openssl:
runs-on: ubuntu-24.04
timeout-minutes: 180
permissions:
contents: read
packages: read
if: >-
${{ github.repository == 'envoyproxy/envoy-openssl' }}
steps:
- name: Free disk space
uses: envoyproxy/toolshed/gh-actions/[email protected]
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- run: |
./ci/run_envoy_docker.sh './ci/do_ci.sh dev @bssl-compat//test/... //test/...'
env:
BAZEL_BUILD_EXTRA_OPTIONS: >-
--config=rbe
--config=bes
--config=remote-ci
--config=openssl
ENVOY_RBE: 1
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

boringssl:
runs-on: ubuntu-24.04
timeout-minutes: 180
permissions:
contents: read
packages: read
if: >-
${{ github.repository == 'envoyproxy/envoy-openssl' }}
steps:
- name: Free disk space
uses: envoyproxy/toolshed/gh-actions/[email protected]
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- run: |
./ci/run_envoy_docker.sh './ci/do_ci.sh dev //test/...'
env:
BAZEL_BUILD_EXTRA_OPTIONS: >-
--config=rbe
--config=bes
--config=remote-ci
ENVOY_RBE: 1
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
54 changes: 54 additions & 0 deletions .github/workflows/envoy-sync-scheduled.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: Sync from Upstream (Scheduled)

permissions:
contents: read

on:
schedule:
- cron: "0 */6 * * *"
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}

jobs:
sync:
if: github.repository == 'envoyproxy/envoy-openssl'
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
branch_name:
- release/v1.32
- release/v1.34
- release/v1.35
steps:
- id: appauth
uses: envoyproxy/toolshed/gh-actions/[email protected]
with:
key: ${{ secrets.ENVOY_CI_UPDATE_BOT_KEY }}
app_id: ${{ secrets.ENVOY_CI_UPDATE_APP_ID }}

# Checkout the branch we're merging into
- name: "Checkout ${{ github.repository }}[${{ matrix.branch_name }}]"
uses: actions/checkout@v4
with:
token: ${{ steps.appauth.outputs.token }}
ref: ${{ matrix.branch_name }}
fetch-depth: 0

# Configure the git user info on the repository
- run: git config user.name "${{ github.actor }}"
- run: git config user.email "${{ github.actor_id }}+${{ github.actor }}@users.noreply.github.com"

# Checkout & run the script from the default branch
- name: 'Checkout ci/envoy-sync-receive.sh'
uses: actions/checkout@v4
with:
ref: ${{ github.event.repository.default_branch }}
sparse-checkout: 'ci/envoy-sync-receive.sh'
sparse-checkout-cone-mode: false
path: '.script'
- run: .script/ci/envoy-sync-receive.sh ${{ matrix.branch_name }}
env:
GH_TOKEN: ${{ steps.appauth.outputs.token }}
Empty file added .gitmodules
Empty file.
4 changes: 4 additions & 0 deletions CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -463,3 +463,7 @@ extensions/upstreams/tcp @ggreenway @mattklein123
/contrib/peak_ewma/filters/http/ @rroblak @UNOWNED
/contrib/peak_ewma/load_balancing_policies/ @rroblak @UNOWNED
/contrib/kae/ @Misakokoro @UNOWNED

# OpenSSL FIXME: Maybe create another group "owners"?
/bssl-compat/ @envoyproxy/envoy-openssl-sync
/openssl/ @envoyproxy/envoy-openssl-sync
Loading