PiwHelm is a reusable Helm template chart designed to streamline the deployment of various Kubernetes objects, including deployments, configmaps, secrets, and ingress configurations. This Helm library is specifically tailored for deploying applications with Traefik through Cloudflare tunnels within Kubernetes environments.
PiwHelm simplifies the deployment process of Kubernetes applications with Traefik and Cloudflare tunnels, enabling efficient and consistent setup of essential resources.
-
Incorporate PiwHelm as a dependency in your Helm chart's
Chart.yaml
file:dependencies: - name: piwhelm version: "0.0.6" # or specify the latest version repository: "https://raw.githubusercontent.com/Piwero/piwhelm/gh-pages"
-
Update dependencies using
helm dependency build
orhelm dependency update
if the version is updated. -
Create a
config/
directory within your chart and populate it with yourconfig.yaml
, containing the necessary configmap keys and values. -
Duplicate the existing
values.tpl
file and rename it tovalues.yaml
in your desired directory. -
Customize the values in
values.yaml
to match the requirements of your application. Ensure to replace thepiwhelm
value underglobal
with the name of your new repository. -
Selectively copy required files from
piwhelm/usable-templates/
toyour-chart/templates/
directory based on your application's needs. -
Rebuild dependencies with
helm dependency build
. -
Install your new application using Helm with the following command:
helm install <NAME_OF_NEW_APP> . --namespace <NAME_OF_NEW_NS> --create-namespace
-
Grant execution permissions to all shell scripts within the project:
find . -name '*.sh' | xargs git update-index --chmod=+x
-
Set up pre-commit hooks for consistent code quality:
sh tools/pre-commit-setup.sh
By following these steps, you can seamlessly integrate PiwHelm into your Helm charts, ensuring smooth and efficient deployment of Kubernetes applications with Traefik and Cloudflare tunnels.
Feel free to contribute and improve PiwHelm by submitting pull requests or reporting issues on the GitHub repository. Your feedback and contributions are greatly appreciated!