apache / apache/kyuubi

[TASK][EASY] Engine supports to bind only a specific range of ports

Open
#6,295 4 comments 0 reactions 0 assignees View on GitHub
Dominant language
Scala
Stars
2.4k
Forks
1k
PR merge metrics
No merged PRs in 30d

Description

### What's the level of this task?

EASY (this assumption supposes you are familiar with Kyuubi architecture)

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct)

### Search before creating

- [X] I have searched in the [task list](https://github.com/orgs/apache/projects/343) and found no similar tasks.

### Mentor

- [ ] I have sufficient expertise on this task, and I volunteer to be a mentor of this task to guide contributors through the task.

### Skill requirements

- Knowledge of Kyuubi architecture
- Basic knowledge of Scala language and network programming

### Background and Goals

By default, Kyuubi's engine binds a random port (actually call `socket.bind(0)`) and registers itself to discovery service (zookeeper or etcd). In some cases, the Kyuubi server and engines may run in different network zones, e.g. deploying the Kyuubi Server on K8s but launching the Spark engine in a YARN cluster, for security purposes, traffic may be only allowed in a range of ports.

### Implementation steps

providing a new configuration to allow the engine to bind only a specific range of ports

### Additional context

Introduction of [2024H1 Kyuubi Code Contribution Program](https://github.com/apache/kyuubi/issues/6232)

Contributor guide

Open the contributing guide

Research direction

Start at the engine code path that currently calls socket.bind(0), then trace its configuration and discovery-service registration. Check how the engine runs across Kyuubi Server and YARN or Kubernetes network zones; done means a configuration allows binding within a specified port range and the selected port is registered correctly.

Written by the indexing model from the issue text.

Assessment

Tech stack
scala
Domain
distributed-systems, networking
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.