Skip to content

Conversation

@TartanLeGrand
Copy link

This pull request introduces a Helm chart for deploying Docmost, transitioning the Kubernetes deployment from static YAML manifests to a configurable, templated Helm-based approach. The new chart includes templates for all major Kubernetes resources, supports optional integrations (Redis, PostgreSQL), and provides automated testing and linting via GitHub Actions. The previous monolithic app.yaml manifest is removed in favor of this modular, maintainable solution.

Helm Chart Introduction and Resource Templating:

  • Added a new Helm chart in charts/docmost/, including templates for Deployment, Service, Ingress, HTTPRoute, ServiceAccount, Secret, and autoscaling (hpa.yaml). These templates use values from values.yaml for flexible configuration. (charts/docmost/templates/deployment.yaml, charts/docmost/templates/service.yaml, charts/docmost/templates/ingress.yaml, charts/docmost/templates/httproute.yaml, charts/docmost/templates/serviceaccount.yaml, charts/docmost/templates/secret.yaml, charts/docmost/templates/hpa.yaml) [1] [2] [3] [4] [5] [6] [7]

  • Defined chart metadata, dependencies (Redis, PostgreSQL), and versioning in Chart.yaml, enabling optional database and cache integration via subcharts. (charts/docmost/Chart.yaml)

DevOps and Testing Enhancements:

  • Added a GitHub Actions workflow (test-lint.yml) to automate Helm chart linting, dependency setup, and installation tests on pull requests. This ensures chart integrity and deployment reliability. (.github/workflows/test-lint.yml)

  • Included a Helm test manifest (test-connection.yaml) to verify service connectivity post-deployment. (charts/docmost/templates/tests/test-connection.yaml)

Documentation and Chart Usability:

  • Added a comprehensive NOTES.txt template to guide users on accessing the deployed application based on their chosen ingress method (HTTPRoute, Ingress, NodePort, LoadBalancer, ClusterIP). (charts/docmost/templates/NOTES.txt)

  • Provided a .helmignore file to exclude unnecessary files from chart packaging. (charts/docmost/.helmignore)

Removal of Previous Static Manifests:

  • Removed the legacy app.yaml Kubernetes manifest, fully replacing it with Helm chart templates for improved maintainability and flexibility. (app.yaml)

@TartanLeGrand
Copy link
Author

@Philipinho

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant