Skip to content

Commit 6056fd1

Browse files
Merge branch 'main' into diamonwiggins/improve-mlflow-docs
2 parents fa1ead1 + 7e9345b commit 6056fd1

38 files changed

+2486
-1
lines changed

.gitignore

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
# Helm-specific ignores
22
**/charts/*.tgz
33
**/.specstory/
4-
**/charts/.rendered-templates/
54

65

76
# Ignore Helm dependency directories
@@ -31,4 +30,14 @@ Thumbs.db
3130
*.pyo
3231
*.pyd
3332
__pycache__/
33+
34+
# Mlflow specific
3435
applications/mlflow/tests/.venv/
36+
**/charts/.rendered-templates/
37+
38+
# wg-easy specific
39+
*.kubeconfig
40+
applications/wg-easy/release/
41+
applications/wg-easy/*/charts/
42+
applications/wg-easy/*/Chart.lock
43+
.aider*

applications/wg-easy/README.md

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
# WG-Easy Helm Chart Development Pattern
2+
3+
This repository demonstrates a structured approach to developing and deploying Helm charts with Replicated integration. It focuses on a progressive development workflow that builds complexity incrementally, allowing developers to get fast feedback at each stage.
4+
5+
## Core Principles
6+
7+
The WG-Easy Helm Chart pattern is built on five fundamental principles:
8+
9+
### 1. Progressive Complexity
10+
11+
Start simple with individual chart validation and progressively move to more complex environments. This allows issues to be caught early when they are easier to fix.
12+
13+
- Begin with local chart validation
14+
- Move to single chart deployments
15+
- Progress to multi-chart integration
16+
- Finally test in production-like environments
17+
18+
### 2. Fast Feedback Loops
19+
20+
Get immediate feedback at each development stage by automating testing and validation. This shortens the overall development cycle.
21+
22+
- Automated chart validation
23+
- Quick cluster creation and deployment
24+
- Standardized testing at each stage
25+
- Fast iteration between changes
26+
27+
### 3. Reproducible Steps
28+
29+
Ensure consistent environments and processes across all stages of development, eliminating "works on my machine" issues.
30+
31+
- Consistent chart configurations
32+
- Automated environment setup
33+
- Deterministic dependency management
34+
- Standardized deployment procedures
35+
36+
### 4. Modular Configuration
37+
38+
Allow different components to own their configuration independently, which can be merged at release time.
39+
40+
- Per-chart configuration files
41+
- Automatic configuration merging
42+
- Clear ownership boundaries
43+
- Simplified collaborative development
44+
45+
### 5. Automation First
46+
47+
Use tools to automate repetitive tasks, reducing human error and increasing development velocity.
48+
49+
- Task-based workflow automation
50+
- Helmfile for orchestration
51+
- Automated validation and testing
52+
- Streamlined release process
53+
54+
## Repository Structure
55+
56+
```
57+
applications/wg-easy/
58+
├── charts/templates/ # Common templates shared across charts
59+
├── cert-manager/ # Wrapped cert-manager chart
60+
├── cert-manager-issuers/ # Chart for cert-manager issuers
61+
├── replicated/ # Root Replicated configuration
62+
├── replicated-sdk/ # Replicated SDK chart
63+
├── taskfiles/ # Task utility functions
64+
├── traefik/ # Wrapped Traefik chart
65+
├── wg-easy/ # Main application chart
66+
├── helmfile.yaml # Defines chart installation order
67+
└── Taskfile.yaml # Main task definitions
68+
```
69+
70+
## Architecture Overview
71+
72+
![Architecture Diagram](docs/architecture.png)
73+
74+
Key components:
75+
- **Taskfile**: Orchestrates the workflow with automated tasks
76+
- **Helmfile**: Manages chart dependencies and installation order
77+
- **Wrapped Charts**: Encapsulate upstream charts for consistency
78+
- **Shared Templates**: Provide reusable components across charts
79+
- **Replicated Integration**: Enables enterprise distribution
80+
81+
## Learn More
82+
83+
- [Chart Structure Guide](docs/chart-structure.md)
84+
- [Development Workflow](docs/development-workflow.md)
85+
- [Task Reference](docs/task-reference.md)
86+
- [Replicated Integration](docs/replicated-integration.md)
87+
- [Example Patterns](docs/examples.md)
88+
89+
---
90+
91+
This pattern is designed to be adaptable to different applications and requirements. Feel free to modify it to suit your specific needs.

0 commit comments

Comments
 (0)