Complete guide to deploying Helm charts in TrueFoundry with support for multiple repository types, Kustomize integration, and advanced configurations
TrueFoundry provides a way to deploy Helm charts directly through the platform, making it easy to deploy any Helm chart without needing to use kubectl or other command-line tools. It also helps keep track of the helm charts that are deployed along with their versions and change history.Truefoundry also provides the following additional features for helm charts deployment:
Support for multiple repository types: Truefoundry allows deploying a Helm chart from public/private helm repository, OCI registry, and or your own Git repository.
Support for Kustomize patches and additional manifests: Truefoundry allows you to add Kustomize patches and additional manifests to the Helm chart deployment. This is specially useful in case the helm chart doesn’t allow you to customize the values you need.
Support for secrets management: While installing helm charts, we often need to create kubernetes secrets manually and then refer to them in the helm chart. Truefoundry makes this process secure by allowing you to create the secrets in Truefoundry(on your secret manager) and then add a kubernetes secret manifest via Kustomize to the helm chart deployment. You can read more on this in the steps below.
Validation for cluster-scoped objects: Helm-charts downloaded from the internet can have malicious code in them, which can impact the security of your cluster. Truefoundry validates the helm chart by checking for any cluster-scoped objects in the helm chart.
Cluster-scoped objects (like ClusterRole, ClusterRoleBinding, or non-namespace
scoped resources) cannot be applied when deploying Helm charts unless you have
cluster admin privileges. This restriction prevents workspace users from
creating cluster-level resources that could impact other workloads.
Pause Helm Chart: Truefoundry allows you to pause the helm chart deployment. This is useful in case you want to stop the deployment and resume it later to save cost. Pausing the helm chart will scale all the pods in the helm chart to 0.
You can use this option to deploy charts from container registries like Docker Hub, Google Container Registry, etc.
To deploy charts from private container registries, you have to add the container registry as an integration first. To do this, go to Integrations → Add Integration Provider and select your registry provider and add an integration for your registry. You can refer to the Integrations Overview guide for more details on how to add integrations.
What you need to fill:
OCI chart URL: The OCI URL of your chart (e.g., oci://registry-1.docker.io/bitnamicharts/redis)
Version: The specific version of the chart
Container Registry: This is only needed if you are deploying helm chart from your private container registry. Toggle the Show Advanced Fields and select the integration from the dropdown which contains your helm charts.
You can use this option to deploy charts from your own Git repositories.
To deploy charts from private Git repositories, you have to create a repository secret first, you can refer to the Private Repository Configuration section on how to do that.
What you need to fill:
Git repository URL: The URL of your Git repository
Revision: Branch, tag, or commit SHA to use (e.g., main, v1.0.0)
Path: Path to the chart within the repository (e.g., charts/my-app)
Example: Deploy from your own Git repo
Copy
Ask AI
source: type: git-helm-repo git_repo_url: https://github.com/your-org/helm-charts.git revision: main path: charts/redis
4
Configure Your Application
This is where you can update the values file, add kustomize patches and additional manifests.
Basic Values Configuration
You can override the default values of the helm chart by updating the values in values block. This is useful if you want to change the default values of the helm chart.
Example: Configure Redis with a password and persistent storage.
Instead of putting passwords directly in your configuration, you can use TrueFoundry’s secure secret management.How to use secrets:
First, create a secret in TrueFoundry, you can refer to the Secret Management page for more details on how to create a secret.
Copy the secret’s FQN (it looks like tfy-secret://truefoundry:secret-name:key)
Use it in your secret manifest instead of plain text password.
Truefoundry secrets are supported only in manifest block that too only for kubernetes secret manifest which are using stringData field to store the secret.
Example: Using a secret for Redis password, as you can see in the above image, the password is referenced using the secret FQN.
Copy
Ask AI
# Secret to create a redis password secretapiVersion: v1kind: Secretmetadata: name: redis-secrettype: OpaquestringData: redis-password: tfy-secret://truefoundry:redis-secrets:password
This is much more secure than putting passwords directly in your configuration files!
Advanced Customization (Optional)
When to use this: If you need to modify the Kubernetes resources that Helm creates, or add additional resources.Two main options:
Kustomize Patches: Modify existing resources (e.g., add annotations, change resource limits), you can refer to the Kustomize page for more details on how to use kustomize patches.
Additional Manifests: Add new Kubernetes resources (e.g., To expose your app with a VirtualService, you can add a VirtualService manifest here.)
TrueFoundry allows you to deploy Helm charts from private repositories by configuring repository credentials using the Kubernetes manifest deployment feature or by adding repository integrations.
GitHub Private Repository
Configure access to private GitHub repositories containing Helm charts.
1
Add GitHub as Integration
First, add your private GitHub repository as an integration in TrueFoundry, you can refer to the Github Integration guide for more details on how to add an github repository as an integration.
Store your token securely. You won’t be able to see it again after
creation.
3
Deploy Repository Secret using Kubernetes Manifest
Use TrueFoundry’s Kubernetes manifest deployment to create the repository
secret. Follow the Deploy Kubernetes
Manifests guide and deploy this manifest: