Skip to content

DRAFT: [SS-66] AWS PRIVATELINKS syntax for Kafka (Confluent Cloud)#35455

Closed
ublubu wants to merge 8 commits intoMaterializeInc:mainfrom
ublubu:privatelink
Closed

DRAFT: [SS-66] AWS PRIVATELINKS syntax for Kafka (Confluent Cloud)#35455
ublubu wants to merge 8 commits intoMaterializeInc:mainfrom
ublubu:privatelink

Conversation

@ublubu
Copy link
Copy Markdown
Contributor

@ublubu ublubu commented Mar 12, 2026

TODO

@github-actions
Copy link
Copy Markdown
Contributor

Thanks for opening this PR! Here are a few tips to help make the review process smooth for everyone.

PR title guidelines

  • Use imperative mood: "Fix X" not "Fixed X" or "Fixes X"
  • Be specific: "Fix panic in catalog sync when controller restarts" not "Fix bug" or "Update catalog code"
  • Prefix with area if helpful: compute: , storage: , adapter: , sql:

Pre-merge checklist

  • The PR title is descriptive and will make sense in the git log.
  • This PR has adequate test coverage / QA involvement has been duly considered. (trigger-ci for additional test/nightly runs)
  • If this PR includes major user-facing behavior changes, I have pinged the relevant PM to schedule a changelog post.
  • This PR has an associated up-to-date design doc, is a design doc (template), or is sufficiently small to not require a design.
  • If this PR evolves an existing $T ⇔ Proto$T mapping (possibly in a backwards-incompatible way), then it is tagged with a T-proto label.
  • If this PR will require changes to cloud orchestration or tests, there is a companion cloud PR to account for those changes that is tagged with the release-blocker label (example).

@ublubu ublubu force-pushed the privatelink branch 4 times, most recently from 71451c6 to 0f1eb7a Compare March 13, 2026 19:54
@ublubu ublubu force-pushed the privatelink branch 2 times, most recently from 3f643ef to 9fa6773 Compare March 25, 2026 17:39
@ublubu ublubu force-pushed the privatelink branch 2 times, most recently from 3830617 to b62d000 Compare April 7, 2026 21:12
@ublubu ublubu changed the title DRAFT: AWS PRIVATELINKS syntax for Kafka (Confluent Cloud) DRAFT: [SS-66] AWS PRIVATELINKS syntax for Kafka (Confluent Cloud) Apr 9, 2026
jubrad added a commit that referenced this pull request Apr 27, 2026
## Follow up of #35455

## Summary

- Adds `BOOTSTRAP BROKER 'addr' USING AWS PRIVATELINK conn (...)` — new
top-level option that provides the initial bootstrap address with an
explicit PrivateLink tunnel, preserving the real hostname for correct
TLS SNI
- Adds `MATCHING 'pattern' USING AWS PRIVATELINK conn (...)` inside
`BROKERS (...)` — pattern-based routing rules for dynamically discovered
brokers returned in Kafka metadata
- Replaces the `AWS PRIVATELINKS` syntax which used a `TO` keyword
inconsistent with the existing `USING AWS PRIVATELINK` syntax and
overloaded exact-match patterns as implicit bootstrap addresses
- Updates parser, planner, and storage layer to support the new
constructs

### Example
```sql
CREATE CONNECTION kafka TO KAFKA (
    BROKERS (
        'lkc-825730.endpoint.cloud:9092' USING AWS PRIVATELINK pl_conn,
        MATCHING '*use1-az1*' USING AWS PRIVATELINK pl_conn (AVAILABILITY ZONE 'use1-az1'),
        MATCHING '*use1-az4*' USING AWS PRIVATELINK pl_conn (AVAILABILITY ZONE 'use1-az4'),
        MATCHING '*use1-az6*' USING AWS PRIVATELINK pl_conn (AVAILABILITY ZONE 'use1-az6')
    ),
    SASL MECHANISMS 'PLAIN',
    SASL USERNAME 'key',
    SASL PASSWORD SECRET secret,
    SECURITY PROTOCOL 'SASL_SSL'
);
```

## Test plan
- [x] Parser tests updated (roundtrip, error cases)
- [x] Testdrive updated (connection-create-drop, connection-alter)
- [x] `cargo check` passes
- [x] Cloudtest validation ([see follow-up
PR](#36162))
- [ ] Manual testing against Confluent Cloud PrivateLink

## Docs
- [ ] #36163


🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@ublubu
Copy link
Copy Markdown
Contributor Author

ublubu commented Apr 27, 2026

Functional changes have been moved to #36161

Docs changes are retained here, but they are now outdated. The SQL syntax for rule-based PrivateLink routing has changed.

@ublubu ublubu closed this Apr 27, 2026
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.

1 participant