Skip to content

Conversation

@JakeSCahill
Copy link
Collaborator

@JakeSCahill JakeSCahill commented Jan 9, 2026

Add new Envoy + Shadowing lab demonstrating combined DR approach

Envoy + Shadowing Lab (docker-compose/envoy-shadowing/) - Adapted from #271

  • Complete DR setup combining Shadowing (data replication) with Envoy (client routing)
  • Demonstrates: shadow link creation, automatic Envoy failover, rpk shadow failover to enable writes
  • Shadowing handles offset-preserving replication, Envoy handles transparent client routing

CI/CD

  • Added path filters and test steps for lab in .github/workflows/test-docs.yml
  • Added test-envoy-shadowing npm scripts

Test plan

  • npm run test-envoy-shadowing passes (23/23 steps)

Previews

https://deploy-preview-277--redpanda-labs-preview.netlify.app/redpanda-labs/docker-compose/envoy-shadowing/

@JakeSCahill JakeSCahill requested a review from vuldin January 9, 2026 14:39
@netlify
Copy link

netlify bot commented Jan 9, 2026

Deploy Preview for redpanda-labs-preview ready!

Name Link
🔨 Latest commit 3251cee
🔍 Latest deploy log https://app.netlify.com/projects/redpanda-labs-preview/deploys/69654500771dab0008377f71
😎 Deploy Preview https://deploy-preview-277--redpanda-labs-preview.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@JakeSCahill JakeSCahill force-pushed the add-envoy-proxy-example-jake branch from 170be8e to 286e262 Compare January 9, 2026 14:54
Envoy Proxy Lab:
- Convert README to AsciiDoc with Doc Detective test annotations
- Replace rpk scripts with Python (kafka-python) due to Envoy protocol compatibility
- Add code comments explaining architecture and configuration
- Add "When to use Envoy vs Shadowing" section with links to combined lab

Envoy + Shadowing Lab (new):
- Complete DR setup combining Shadowing (data replication) with Envoy (client routing)
- Demonstrates shadow link creation, failover workflow, and rpk shadow failover
- Uses Python clients with retry logic for robust testing

CI/CD:
- Add path filters and test steps for both envoy-proxy and envoy-shadowing labs
- Add npm test scripts for running Doc Detective tests

Docs:
- Add symlinks for Antora navigation
- Use conditionals for env-site xrefs vs external URLs
@JakeSCahill JakeSCahill force-pushed the add-envoy-proxy-example-jake branch from 286e262 to 4ac76dd Compare January 9, 2026 15:06
Redpanda uses Linux AIO (Async I/O). With 6 brokers each needing ~10000
events, they exceed the default fs.aio-max-nr limit of 65536. This was
causing broker startup failures in CI, not timeout issues.

Added sysctl command to increase aio-max-nr to 1048576 before running
envoy tests.
The full 6-broker setup was too resource-intensive for GitHub Actions
runners. This adds a CI-specific configuration:

- docker-compose.ci.yml: 2 brokers total (1 primary + 1 secondary)
- envoy.ci.yaml: Simplified Envoy config for single-broker clusters
- README.ci.adoc: CI test spec with adjusted expectations

Also includes documentation on using `act` for local CI testing.
JakeSCahill and others added 6 commits January 10, 2026 09:48
- Remove docker-compose/envoy-proxy directory and all files
- Remove envoy-proxy references from GitHub workflow
- Remove envoy-proxy test scripts from package.json
- Remove envoy-proxy documentation symlinks
- Fix disaster-recovery xrefs in envoy-shadowing README
  (ROOT:manage:disaster-recovery.adoc → ROOT:manage:disaster-recovery/shadowing/index.adoc)
- Add explanation of Envoy contrib image requirement in docker-compose.yml
- Add Envoy introduction and link in envoy-shadowing README
@vuldin
Copy link
Member

vuldin commented Jan 16, 2026

Sorry for the delay @JakeSCahill, I will review this by Monday morning.

Copy link
Member

@vuldin vuldin left a comment

Choose a reason for hiding this comment

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

This looks great! I just wanted to point out one limitation I see, which is that the envoy proxy config only focuses on the Kafka port. This is fine for some Kafka clients, but others also would need to use the schema registry. I think it is fine in it's current form (and it has already been useful to customers that don't make use of schemas), but maybe we can plan a future improvement to this demo that adds in schema registry config to Envoy.

@JakeSCahill JakeSCahill merged commit 36fed20 into main Jan 20, 2026
4 checks passed
@JakeSCahill JakeSCahill deleted the add-envoy-proxy-example-jake branch January 20, 2026 19:29
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.

3 participants