Skip to content

Commit c994f90

Browse files
authored
Add changelog, codeowners, makefile and schema (#225)
Signed-off-by: Mihai Criveti <[email protected]>
1 parent b2b9e49 commit c994f90

File tree

6 files changed

+2533
-0
lines changed

6 files changed

+2533
-0
lines changed

charts/mcp-stack/.helmignore

Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
# Patterns to ignore when building packages.
2+
# This supports shell glob matching, relative path matching, and
3+
# negation (prefixed with !). Only one pattern per line.
4+
5+
# Common VCS dirs
6+
.git/
7+
.gitignore
8+
.bzr/
9+
.bzrignore
10+
.hg/
11+
.hgignore
12+
.svn/
13+
14+
# Common backup files
15+
*.swp
16+
*.bak
17+
*.tmp
18+
*.orig
19+
*~
20+
21+
# Various IDEs
22+
.project
23+
.idea/
24+
*.tmproj
25+
.vscode/
26+
27+
# OS generated files
28+
.DS_Store
29+
.DS_Store?
30+
._*
31+
.Spotlight-V100
32+
.Trashes
33+
ehthumbs.db
34+
Thumbs.db
35+
36+
# Helm-specific
37+
*.tgz
38+
.helmignore
39+
40+
# Generated schema files (keep manually curated schema)
41+
values.schema.generated.json
42+
43+
# Chart development and testing
44+
my-values.yaml
45+
*-values.yaml
46+
values-*.yaml
47+
test-values.yaml
48+
dev-values.yaml
49+
local-values.yaml
50+
override-values.yaml
51+
52+
# Temporary files
53+
tmp/
54+
temp/
55+
.tmp/
56+
57+
# Documentation that shouldn't be in the chart package
58+
CONTRIBUTING.md
59+
README.md
60+
CHANGELOG.md
61+
LICENSE
62+
docs/
63+
examples/
64+
65+
# CI/CD files
66+
.github/
67+
.gitlab-ci.yml
68+
.travis.yml
69+
Jenkinsfile
70+
.circleci/
71+
72+
# Package manager files
73+
package.json
74+
package-lock.json
75+
yarn.lock
76+
Gemfile
77+
Gemfile.lock
78+
requirements.txt
79+
pyproject.toml
80+
poetry.lock
81+
82+
# Build artifacts
83+
dist/
84+
build/
85+
target/
86+
87+
# Logs
88+
*.log
89+
logs/
90+
91+
# Environment files
92+
.env
93+
.env.local
94+
.env.development
95+
.env.test
96+
.env.production
97+
98+
# Chart testing
99+
ct.yaml
100+
chart-testing.yaml
101+
102+
# Helm diff plugin output
103+
*.diff
104+
105+
# Helmfile
106+
helmfile.yaml
107+
helmfile.yml
108+
109+
# Terraform
110+
*.tfstate
111+
*.tfstate.backup
112+
.terraform/
113+
terraform.tfvars
114+
115+
# Ansible
116+
ansible.cfg
117+
hosts
118+
inventory
119+
120+
# Security scanning
121+
.trivyignore
122+
.snyk
123+
124+
# Custom values files (add your own patterns)
125+
secrets.yaml
126+
credentials.yaml
127+
passwords.yaml

charts/mcp-stack/CHANGELOG.md

Lines changed: 138 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,138 @@
1+
# Changelog
2+
3+
All notable changes to the MCP Stack Helm Chart will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and this project **adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html)**.
6+
7+
---
8+
9+
## [0.3.0] - 2025-07-08 (pending)
10+
11+
### Added
12+
* **values.schema.json** – Complete JSON schema validation for all chart values with proper validation rules, descriptions, and type checking
13+
* **NetworkPolicy support** – Optional network policies for pod-to-pod communication restrictions
14+
* **ServiceMonitor CRD** – Optional Prometheus ServiceMonitor for metrics collection
15+
* **Pod Security Standards** – Enhanced security contexts following Kubernetes Pod Security Standards
16+
* **Multi-architecture support** – Chart now supports ARM64 and AMD64 architectures
17+
* **Backup and restore** – Optional backup job for PostgreSQL data with configurable retention
18+
19+
### Changed
20+
* **Improved resource management** – Better default resource requests/limits based on production usage patterns
21+
* **Enhanced probe configuration** – More flexible health check configuration with support for custom headers and paths
22+
* **Streamlined template structure** – Consolidated related templates and improved template helper functions
23+
* **Better secret management** – Support for external secret management systems (External Secrets Operator)
24+
25+
### Fixed
26+
* **Ingress path handling** – Fixed path routing issues when deploying under subpaths
27+
* **PVC storage class** – Resolved issues with dynamic storage class provisioning
28+
* **Secret references** – Fixed circular dependency issues in secret template generation
29+
30+
31+
## [0.2.1] - 2025-07-03 (pending)
32+
33+
### Added
34+
* **Horizontal Pod Autoscaler** – Full HPA support for mcpgateway with CPU and memory metrics
35+
* **Fast Time Server** – Optional high-performance Go-based time server deployment
36+
* **Advanced ingress configuration** – Support for multiple ingress controllers and path-based routing
37+
* **Migration job** – Automated database migration job using Alembic with proper startup dependencies
38+
* **Comprehensive health checks** – Detailed readiness and liveness probes for all components
39+
40+
### Changed
41+
* **Enhanced NOTES.txt** – Comprehensive post-installation guidance with troubleshooting commands
42+
* **Improved resource defaults** – Better resource allocation based on component requirements
43+
* **Simplified configuration** – Consolidated environment variable management via ConfigMaps and Secrets
44+
45+
### Fixed
46+
* **Service selector consistency** – Fixed label selectors across all service templates
47+
* **Template rendering** – Resolved issues with conditional template rendering
48+
* **Secret name generation** – Fixed helper template for PostgreSQL secret name resolution
49+
50+
51+
## [0.2.0] - 2025-06-24
52+
53+
### Added
54+
* **Complete Helm chart** – Full-featured Helm chart for MCP Stack deployment
55+
* **Multi-service architecture** – Deploy MCP Gateway, PostgreSQL, Redis, PgAdmin, and Redis Commander
56+
* **Configurable deployments** – Comprehensive values.yaml with ~100 configuration options
57+
* **Template helpers** – Reusable template functions for consistent naming and labeling
58+
* **Ingress support** – NGINX ingress controller support with SSL termination
59+
* **Persistent storage** – PostgreSQL persistent volume claims with configurable storage classes
60+
* **Resource management** – CPU and memory limits/requests for all components
61+
* **Health monitoring** – Readiness and liveness probes for reliable deployments
62+
63+
### Infrastructure
64+
* **Container registry** – Chart packages published to GitHub Container Registry
65+
* **Documentation** – Comprehensive README with installation and configuration guide
66+
* **Template validation** – Helm lint and template testing in CI/CD pipeline
67+
* **Multi-environment support** – Development, staging, and production value configurations
68+
69+
### Components
70+
* **MCP Gateway** – FastAPI-based gateway with configurable replicas and scaling
71+
* **PostgreSQL 17** – Production-ready database with backup and recovery options
72+
* **Redis** – In-memory cache for sessions and temporary data
73+
* **PgAdmin** – Web-based PostgreSQL administration interface
74+
* **Redis Commander** – Web-based Redis management interface
75+
* **Migration Jobs** – Automated database schema migrations with Alembic
76+
77+
### Security
78+
* **RBAC support** – Kubernetes role-based access control configuration
79+
* **Secret management** – Secure handling of passwords, JWT keys, and connection strings
80+
* **Network policies** – Optional pod-to-pod communication restrictions
81+
* **Security contexts** – Non-root containers with proper security settings
82+
83+
### Configuration
84+
* **Environment-specific values** – Separate configuration for different deployment environments
85+
* **External dependencies** – Support for external PostgreSQL and Redis instances
86+
* **Scaling configuration** – Horizontal pod autoscaling and resource optimization
87+
* **Monitoring integration** – Prometheus metrics and health check endpoints
88+
89+
### Changed
90+
* **Naming convention** – Consistent resource naming using Helm template helpers
91+
* **Label management** – Standardized Kubernetes labels across all resources
92+
* **Documentation structure** – Improved README with troubleshooting and best practices
93+
94+
### Fixed
95+
* **Template consistency** – Resolved naming conflicts and selector mismatches
96+
* **Resource dependencies** – Fixed startup order and dependency management
97+
* **Configuration validation** – Proper validation of required and optional values
98+
99+
---
100+
101+
## Release Notes
102+
103+
### Upgrading from 0.1.x to 0.2.x
104+
105+
**Breaking Changes:**
106+
- Chart structure completely redesigned
107+
- New values.yaml format with nested configuration
108+
- Resource naming convention changed to use template helpers
109+
- Ingress configuration restructured
110+
111+
**Migration Steps:**
112+
1. Export existing configuration: `helm get values <release-name> > old-values.yaml`
113+
2. Update values to new format (see README.md for examples)
114+
3. Test upgrade in non-production environment
115+
4. Perform rolling upgrade: `helm upgrade <release-name> mcp-stack -f new-values.yaml`
116+
117+
### Compatibility Matrix
118+
119+
| Chart Version | App Version | Kubernetes | Helm |
120+
|---------------|-------------|------------|------|
121+
| 0.3.x | 0.3.x | 1.23+ | 3.8+ |
122+
| 0.2.x | 0.2.x | 1.21+ | 3.7+ |
123+
| 0.1.x | 0.1.x | 1.19+ | 3.5+ |
124+
125+
### Support Policy
126+
127+
- **Current version (0.3.x)**: Full support with new features and bug fixes
128+
- **Previous version (0.2.x)**: Security updates and critical bug fixes only
129+
- **Older versions (0.1.x)**: Best effort support, upgrade recommended
130+
131+
---
132+
133+
### Release Links
134+
135+
* **Chart Repository**: [OCI Registry](https://github.com/IBM/mcp-context-forge/pkgs/container/mcp-context-forge%2Fmcp-stack)
136+
* **Documentation**: [Helm Deployment Guide](https://ibm.github.io/mcp-context-forge/deployment/helm/)
137+
* **Source Code**: [GitHub Repository](https://github.com/IBM/mcp-context-forge/tree/main/charts/mcp-stack)
138+
* **Issue Tracker**: [GitHub Issues](https://github.com/IBM/mcp-context-forge/issues)

charts/mcp-stack/CODEOWNERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
* @crivetimihai

0 commit comments

Comments
 (0)