[TASK][EASY] Engine supports to bind only a specific range of ports
- 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
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