-
Notifications
You must be signed in to change notification settings - Fork 414
Description
🧭 Type of Feature
- Enhancement to existing functionality
- New feature or capability
- New MCP-compliant server
- New component or integration
- Developer tooling or test improvement
- Packaging, automation and deployment (ex: pypi, docker, quay.io, kubernetes, terraform)
- Other
🧭 Epic
Title: Support additional Kubernetes configuration fields through values.yaml
Goal: Provide users the ability to configure extraVolumes, extraVolumeMounts, nodeSelector, and affinity directly through the values.yaml file without modifying Helm chart templates.
Why now: When deploying the application using Helm and ArgoCD, we encountered several configuration options that currently require editing the chart templates. Allowing these to be set in values.yaml increases flexibility, aligns the chart with common practices, and simplifies ongoing maintenance.
🙋♂️ User Story 1
As a: Platform engineer deploying the application via Helm
I want: To define extraVolumes and extraVolumeMounts through values.yaml
So that: I can easily add PVCs or ConfigMaps without modifying the Helm chart templates
✅ Acceptance Criteria
Scenario: Adding extra volumes through values.yaml
Given a Helm deployment with custom extraVolumes defined in values.yaml
When the chart is rendered
Then the generated Deployment includes the additional volumes
Scenario: Adding extra volume mounts through values.yaml
Given custom extraVolumeMounts defined in values.yaml
When the pods are deployed
Then containers include the additional volumeMount entries🙋♂️ User Story 2
As a: Kubernetes operator controlling workload placement
I want: To configure nodeSelector and affinity through values.yaml
So that: I can manage pod scheduling behavior without modifying the chart templates
✅ Acceptance Criteria
Scenario: Applying nodeSelector via values.yaml
Given a values.yaml file with nodeSelector defined
When the Helm chart is rendered
Then the Deployment spec includes the provided nodeSelector
Scenario: Applying affinity rules via values.yaml
Given affinity rules are defined in values.yaml
When the application is deployed
Then the resulting workload includes the specified affinity configuration📐 Design Sketch (optional)
flowchart TD
A[values.yaml] --> B[Helm Rendering]
B --> C[Deployment with Extended Config]
C --> D[ArgoCD Sync and Apply]
🔗 MCP Standards Check
- Change adheres to current MCP specifications
- No breaking changes to existing MCP-compliant integrations
- Deviations (if any):
🔄 Alternatives Considered
- Maintaining a forked Helm chart
- Using ArgoCD patches or Kustomize overlays
- Directly modifying chart templates (not desirable for maintainability)
📓 Additional Context
We are deploying the application with Helm and ArgoCD and noticed several configuration options we would like to add through values.yaml without modifying the chart templates.
The specific ones are:
- extraVolumes and extraVolumeMounts for adding PVCs and ConfigMaps
- nodeSelector and affinity for finer pod scheduling control