stackabletech / stackabletech/hdfs-operator
Allow Setting Both Memory Requests and Limits for HdfsCluster Pods
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 53
- Forks
- 9
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 10
Description
Current Behavior
The HdfsCluster Custom Resource Definition (CRD) currently only allows specifying memory.limit under HdfsCluster.spec.nameNodes.config.resources.memory. This configuration automatically sets memory.request equal to memory.limit for pods.
Problem
This behavior is problematic for CI platforms with limited memory resources. Forcing the memory request to match the limit can lead to resource scheduling issues, making it difficult to run HdfsCluster pods in resource-constrained environments.
Desired Behavior
Allow users to independently set both memory.request and memory.limit under HdfsCluster.spec.nameNodes.config.resources. For example:
spec:
nameNodes:
config:
resources:
memory:
request: "512Mi"
limit: "1Gi"
This flexibility ensures that pods can be scheduled even on CI platforms with tight resource constraints.
Proposed Solution
- Update the
HdfsClusterCRD to support separaterequestandlimitfields for memory underresources. - Ensure backward compatibility by defaulting
requestto the same value aslimitifrequestis not explicitly set.
Impact
This change would make the HdfsCluster CRD more usable in diverse environments, including CI platforms with restricted memory resources.
Additional Context
This enhancement would enable more efficient use of resources while maintaining compatibility with existing configurations.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Locate the HdfsCluster CRD definition and the resource defaulting or reconciliation path that builds pod resources. Check how the current memory limit is represented and propagated, then verify the schema and behavior for separate request and limit values. Done means explicit requests are honored while omitted requests retain the existing default behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- kubernetes, rust
- Domain
- infrastructure
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100