mirror of
https://github.com/sablierapp/sablier.git
synced 2025-12-31 10:07:20 +01:00
feat(plugin): add proxywasm plugin (#284)
* feat(plugin): add `proxywasm` plugin The `proxywasm` plugin is a WASM Filter following the ProxyWasm ABI Specification using the proxywasm go sdk This allows extensibility with any reverse proxy who implements the ProxyWasm ABI Specification. The current WASM Filter was successfully tested with APISIX, Envoy, Nginx with ngx_wasm_module from Kong and Istio. Fixes #145
This commit is contained in:
149
.github/workflows/plugins.yml
vendored
149
.github/workflows/plugins.yml
vendored
@@ -209,4 +209,151 @@ jobs:
|
||||
run: docker load --input /tmp/caddy.tar
|
||||
|
||||
- name: Test ${{ matrix.provider }}
|
||||
run: cd plugins/caddy/e2e/${{ matrix.provider }} && bash ./run.sh
|
||||
run: cd plugins/caddy/e2e/${{ matrix.provider }} && bash ./run.sh
|
||||
|
||||
build-proxywasm:
|
||||
name: Build ProxyWasm Plugin once and share it to ProxyWasm E2E jobs
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup TinyGo
|
||||
uses: acifani/setup-tinygo@v2
|
||||
with:
|
||||
tinygo-version: '0.31.2'
|
||||
|
||||
- name: Build
|
||||
run: make proxywasm
|
||||
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: proxywasm-plugin-wasm
|
||||
path: ./plugins/proxywasm/sablierproxywasm.wasm
|
||||
|
||||
proxywasm_apisix_e2e:
|
||||
name: Run Sablier E2E tests for Proxywasm middleware on Apache APISIX
|
||||
runs-on: ubuntu-latest
|
||||
needs:
|
||||
- build
|
||||
- build-proxywasm
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
provider: [ docker ] #, docker_swarm, kubernetes]
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Go 1.22
|
||||
uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version: 1.22
|
||||
cache-dependency-path: |
|
||||
go.sum
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
- name: Download artifact
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: sablier-image-tar
|
||||
path: /tmp
|
||||
|
||||
- name: Load Docker image
|
||||
run: docker load --input /tmp/sablier.tar
|
||||
|
||||
- name: Download Proxywasm artifact
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: proxywasm-plugin-wasm
|
||||
path: ./plugins/proxywasm
|
||||
|
||||
- name: Test ${{ matrix.provider }}
|
||||
run: cd plugins/proxywasm/e2e/apacheapisix/${{ matrix.provider }} && bash ./run.sh
|
||||
|
||||
proxywasm_envoy_e2e:
|
||||
name: Run Sablier E2E tests for Proxywasm middleware on Envoy
|
||||
runs-on: ubuntu-latest
|
||||
needs:
|
||||
- build
|
||||
- build-proxywasm
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
provider: [ docker ] #, docker_swarm, kubernetes]
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Go 1.22
|
||||
uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version: 1.22
|
||||
cache-dependency-path: |
|
||||
go.sum
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
- name: Download artifact
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: sablier-image-tar
|
||||
path: /tmp
|
||||
|
||||
- name: Load Docker image
|
||||
run: docker load --input /tmp/sablier.tar
|
||||
|
||||
- name: Download Proxywasm artifact
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: proxywasm-plugin-wasm
|
||||
path: ./plugins/proxywasm
|
||||
|
||||
- name: Test ${{ matrix.provider }}
|
||||
run: cd plugins/proxywasm/e2e/envoy/${{ matrix.provider }} && bash ./run.sh
|
||||
|
||||
proxywasm_nginx_e2e:
|
||||
name: Run Sablier E2E tests for Proxywasm middleware on Nginx
|
||||
runs-on: ubuntu-latest
|
||||
needs:
|
||||
- build
|
||||
- build-proxywasm
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
provider: [ docker ] #, docker_swarm, kubernetes]
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Go 1.22
|
||||
uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version: 1.22
|
||||
cache-dependency-path: |
|
||||
go.sum
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
- name: Download artifact
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: sablier-image-tar
|
||||
path: /tmp
|
||||
|
||||
- name: Load Docker image
|
||||
run: docker load --input /tmp/sablier.tar
|
||||
|
||||
- name: Download Proxywasm artifact
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: proxywasm-plugin-wasm
|
||||
path: ./plugins/proxywasm
|
||||
|
||||
- name: Test ${{ matrix.provider }}
|
||||
run: cd plugins/proxywasm/e2e/nginx/${{ matrix.provider }} && bash ./run.sh
|
||||
|
||||
Reference in New Issue
Block a user