-
Notifications
You must be signed in to change notification settings - Fork 2k
feat(app): Helm chart for deploying prowler in k8s #9835
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
…onfiguration options - Added PostgreSQL and Valkey as dependencies in Chart.yaml and Chart.lock. - Updated .helmignore to exclude example files. - Enhanced values.schema.json and values.yaml with new secret management options for Django keys and PostgreSQL authentication. - Refactored deployment templates to utilize new environment variable configurations. - Introduced KEDA support for worker autoscaling. - Added minimal installation example and secrets for easier deployment.
- Introduced authUrl parameter in values.yaml for UI configuration. - Updated values.schema.json to include authUrl as a string type. - Modified configmap.yaml to utilize the new authUrl variable for setting AUTH_URL.
|
✅ Conflict Markers Resolved All conflict markers have been successfully resolved in this pull request. |
|
Hello @Utwo! Thank you for this contribution! 🙏 We really appreciate the effort you've put into creating this Helm chart for the Prowler App. This will be very valuable for our community! Please note that everything within the Feel free to continue improving it, and we welcome future updates from you or other community members. Thanks again for your contribution to Prowler! 🚀 |
|
Hi again @Utwo! We've noticed that TruffleHog is failing during CI checks. After investigating, we found that the issue is coming from the According to how other projects manage Helm chart dependencies (like https://github.com/helm/charts/blob/master/.gitignore), these packaged dependency files typically aren't committed to the repository. A potential solution could be removing those .tgz files and adding a step in the README explaining how users can generate them with Let us know if you need any help with this and thanks again! |
|
Thank you for your feedback! I've removed the Regarding my TODO items, is it okay if I implement testing the chart on CI for every commit and set up a pipeline to publish the chart to Artifact Hub? This will ensure the chart is always verified and easily accessible. |
|
Okay, that sounds interesting! Before we proceed with that, could you clarify what's involved in the Artifact Hub integration? Since we'll need to maintain it if we go this route, we'll need to understand the setup requirements and ongoing maintenance responsibilities. |
|
So, for DevOps/infra people to use a Helm chart, they will need to pull it from a registry, similar to how Docker images are pushed/pulled. For the registry, we can use just plain github pages. I can help here with the CI, and you will probably need to help me with some GitHub repo settings. In the end, we will have a GitHub action CI that will:
After we have a working version, you will need to create an account on Artifact Hub and register the new GitHub page branch there. |
Context
This PR adds a complete Helm chart for deploying Prowler App to Kubernetes clusters. The chart provides a production-ready way to deploy all Prowler App components (API, UI, Workers) along with their dependencies (PostgreSQL, Valkey) using Helm.
The chart is designed to be flexible, supporting both standalone deployments with embedded dependencies and integration with existing PostgreSQL/Valkey instances. It includes comprehensive configuration options, autoscaling capabilities via HPA and KEDA, and detailed documentation with examples.
Fix #7016
Description
This PR introduces a new Helm chart located at
contrib/k8s/helm/prowler-app/that enables easy deployment of the Prowler App stack on Kubernetes. It deploys Prowler API (Django REST Framework backend), Prowler UI (Next.js frontend), Celery Workers (for async scan execution) and Celery Beat (for scheduled tasks).I've also integrated KEDA ScaledObject for Celery workers to autoscale the Worker based on the number of pending scans.
I took inspiration from https://github.com/langfuse/langfuse-k8s/ and https://github.com/promptlylabs/prowler-helm-chart in making this PR.
TODO
I'm more than happy to continue maintaining this part of the code! 🚀
Steps to review
Checklist
Community Checklist
SDK/CLI
UI
API
License
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.