- 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.
Step-by-Step Deployment Guide
Navigate to Deployments
Log in to your TrueFoundry dashboard and click on Deployments in the
left sidebar, then click New to create a new deployment.

Choose Your Chart Source
Now you need to tell TrueFoundry where your Helm chart is located. You have three options:

Option 1: Public Helm Repository
Option 1: Public Helm Repository
You can use this option to deploy charts from public helm repositories like Bitnami, Helm Charts, etc.
What you need to fill:

Helm repository URL: The URL of the chart repository (e.g.,https://charts.bitnami.com/bitnami)Chart name: The name of the chart (e.g.,redis,postgresql)Version: The specific version you want to deploy
Option 2: Container Registry (OCI)
Option 2: Container Registry (OCI)
You can use this option to deploy charts from container registries like Docker Hub, Google Container Registry, etc.
What you need to fill:
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.

OCI chart URL: The OCI URL of your chart (e.g.,oci://registry-1.docker.io/bitnamicharts/redis)Version: The specific version of the chartContainer 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.
Option 3: Git Repository
Option 3: Git Repository
You can use this option to deploy charts from your own Git repositories.
What you need to fill:
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.

Git repository URL: The URL of your Git repositoryRevision: 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)
Configure Your Application
This is where you can update the values file, add kustomize patches and additional manifests.
Basic Values Configuration
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.

Using Secrets (Recommended)
Using Secrets (Recommended)
Instead of putting passwords directly in your configuration, you can use TrueFoundry’s secure secret management.How to use secrets:
Example: Using a secret for Redis password, as you can see in the above image, the password is referenced using the secret FQN.
- 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.
This is much more secure than putting passwords directly in your configuration files!
Advanced Customization (Optional)
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:

Example: Expose Redis with a custom endpoint
- 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.)

Private Repository Configuration
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
GitHub Private Repository
Configure access to private GitHub repositories containing Helm charts.
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.
Create GitHub Personal Access Token
First, create a personal access token in GitHub:
- Go to https://github.com/settings/tokens (click on “Generate new token (classic)”)
- Select scopes:
repo(for private repositories) - Copy the generated token
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:Before deploying, replace:
https://github.com/your-org/helm-charts.gitwith your actual repository URLgithub_pat_11BAP2UBQ0tDSEVgbtphEM_18bH8fYWa6qhGCIWZsZIeIMm5NAEKYUIOfdfdfdfdfHER7RDDfbTAawith your actual GitHub tokenrepo-1752233801with a unique name for your secret

Complete Example: Deploying Redis
Let’s walk through a real example of deploying Redis (a popular caching database) with proper configuration and security:Step 1: Choose Redis Chart
Step 1: Choose Redis Chart
First, we’ll tell TrueFoundry to use the Redis chart from Bitnami (a popular chart repository):
This tells TrueFoundry: “Use the Redis chart from Bitnami’s repository, version 22.0.5”

Step 2: Set Up Secure Password
Step 2: Set Up Secure Password
Instead of putting a password directly in our configuration, we’ll use TrueFoundry’s secure secret management:
-
Create a secret in TrueFoundry:
- Go to Secrets in the left sidebar
- Create a new secret called
redis-secrets - Add a key called
passwordwith your desired password

-
Copy the secret reference: It will look like
tfy-secret://truefoundry:redis-secrets:password
Step 3: Add additional manifests to create a redis password secret
Step 3: Add additional manifests to create a redis password secret
Now we’ll configure how Redis should run - with a password, persistent storage, and external access:Before deploying, replace:
redis-secretwith a unique name for your secretredis-passwordwith your desired password

Step 4: Configure Redis Settings
Step 4: Configure Redis Settings
Now we’ll configure how Redis should run - with a password, persistent storage, and external access:What this does:
- Sets up a secure password using our secret
- Makes Redis accessible from outside (LoadBalancer)
- Saves data permanently (persistence)
- Runs backup instances for reliability
- Enables monitoring
Step 5: Custom Endpoint (Optional)
Step 5: Custom Endpoint (Optional)
If you want to access Redis through a custom URL (like When to use this: Only if you need a custom domain name for your Redis instance.
redis.your-app.com), you can add this advanced configuration:

