What needs to be done?
📌 Overview
Design and implement Helm charts to deploy the complete email system on Kubernetes. This includes packaging all core services, configurations, and dependencies into reusable and configurable Helm charts to enable consistent, scalable, and automated deployments across environments.
🎯 Objectives
- Containerize and orchestrate all email system components using Helm.
- Provide a unified deployment mechanism for development, staging, and production environments.
- Ensure configuration flexibility through
values.yaml.
- Enable modular and maintainable chart structure (umbrella + subcharts).
🧩 Scope
The Helm charts should cover (but not be limited to):
- Mail Transfer Agent (e.g., Postfix)
- DKIM service (OpenDKIM)
- Spam filtering (Rspamd)
- Authentication/Identity integration (OAuth/IdP)
- Supporting services (if any: Redis, database, etc.)
🏗️ Key Requirements
1. Chart Structure
- Create an umbrella chart for the entire email system.
- Define individual subcharts for each component/service.
- Ensure proper dependency management via
Chart.yaml.
2. Configuration Management
-
Use values.yaml for all configurable parameters:
- Domains and DKIM settings
- Resource limits (CPU/memory)
- Persistence (storage classes, sizes)
- Service ports and exposure types
-
Support environment-specific overrides (e.g., values-dev.yaml, values-prod.yaml).
3. Kubernetes Resources
4. Persistence & Data Management
5. Security
- Avoid privileged containers.
- Use Kubernetes Secrets for sensitive data.
- Apply least-privilege principles (ServiceAccounts, RBAC if needed).
6. Deployment & Lifecycle
7. Observability & Reliability
- Add health checks (readiness/liveness probes).
- Ensure logs are accessible for debugging.
- Support rolling updates on configuration changes.
8. Testing & Validation
- Include Helm test hooks to validate service connectivity.
- Verify inter-service communication (e.g., Postfix → OpenDKIM).
📦 Deliverables
-
Umbrella Helm chart for the email system
-
Subcharts for each component
-
Default values.yaml and environment-specific overrides
-
Documentation (README) with:
- Installation steps
- Configuration guide
- DNS requirements (e.g., DKIM setup)
✅ Acceptance Criteria
- Email system can be deployed with a single Helm command.
- All components are correctly configured and interconnected.
- DKIM signing works with configured domains.
- Charts are reusable and configurable across environments.
- Documentation is complete and clear.
🔗 Notes
- Follow Helm best practices for naming, labels, and templating.
- Ensure compatibility with Kubernetes cluster environments used in the project.
- Design charts to be extensible for future components.
What needs to be done?
📌 Overview
Design and implement Helm charts to deploy the complete email system on Kubernetes. This includes packaging all core services, configurations, and dependencies into reusable and configurable Helm charts to enable consistent, scalable, and automated deployments across environments.
🎯 Objectives
values.yaml.🧩 Scope
The Helm charts should cover (but not be limited to):
🏗️ Key Requirements
1. Chart Structure
Chart.yaml.2. Configuration Management
Use
values.yamlfor all configurable parameters:Support environment-specific overrides (e.g.,
values-dev.yaml,values-prod.yaml).3. Kubernetes Resources
Define required resources for each component:
Ensure best practices for:
4. Persistence & Data Management
Enable persistent storage for stateful components (e.g., DKIM keys).
Support both:
5. Security
6. Deployment & Lifecycle
Support:
helm installhelm upgradehelm rollbackInclude Helm hooks where necessary (e.g., test hooks, init jobs).
7. Observability & Reliability
8. Testing & Validation
📦 Deliverables
Umbrella Helm chart for the email system
Subcharts for each component
Default
values.yamland environment-specific overridesDocumentation (README) with:
✅ Acceptance Criteria
🔗 Notes