What You’ll Learn
In this guide, you will learn how to deploy Flipt v2 to a local Kubernetes cluster (via Kind) using our official Helm chart. You’ll also learn how to override the default Flipt v2 configuration by providing avalues.yaml file.
By the end of this guide, we will have:
- 🚢 Created a Kind cluster locally using Docker
- 📦 Installed Flipt v2 into your cluster via Helm
- ⚙️ Configured Flipt v2 settings via a
values.yamlfile - 🔄 Explored v2’s Git-native storage capabilities
Prerequisites
- Docker installed (Download)
- Helm v3.x installed (Installation guide)
- Kind installed (Installation guide)
Deploying Flipt v2
1. Create a Local Kubernetes Cluster Using Kind
First, we need to create a local Kubernetes cluster. We’ll use Kind to accomplish this. Open a terminal and run the following command:flipt-v2. Wait for the command to complete and ensure the cluster is correctly set up.
2. Add the Flipt Helm Repository
Next, we’ll add the Flipt Helm repository which hosts the Flipt Helm charts. Run the following command:3. Update Helm Repositories
To ensure that Helm has the latest information about the charts from the Flipt Helm repository, update the repositories:4. Install Flipt v2 with Custom Configuration
Before installing Flipt v2, you can create avalues.yaml file to customize the deployment according to your preferences.
Flipt v2 works out-of-the-box without any configuration using Git-native
storage. However, you can customize various aspects of the deployment.
values.yaml file with some common v2 configurations:
- Structured JSON logging at INFO level
- CORS support for frontend integration
- Custom UI theme and branding
- Disabled telemetry and update checks
- Prometheus metrics enabled
- Memory storage backend (default)
This example uses memory storage which works out-of-the-box without requiring
a Git repository. For production use with Git-backed storage, see the Git
Storage guide for setup details.
values.yaml file (or to use default settings), install Flipt v2 with Helm:
Note the chart name is
flipt-v2, not flipt. This is the dedicated chart
for Flipt v2 which includes v2-specific configurations and defaults.values.yaml file merged with the default values from the chart.
5. Forward the Port to Access Flipt v2
After successfully installing Flipt v2 via the Helm chart, you should see instructions on how to access Flipt in your terminal. The instructions will look something like this:http://localhost:8080.
6. Verify the Installation and Configuration
To ensure that Flipt v2 has been correctly deployed to your Kubernetes cluster, you can check the running pods:Running.

Flipt v2 Features in Kubernetes
Git-Native Storage
Flipt v2’s Git-native storage works seamlessly in Kubernetes environments. The deployed instance can:- Clone repositories: Automatically clone and sync with your Git repository containing feature flag definitions
- Work offline: Continue serving flags even when the source Git repository is temporarily unavailable
- Support multiple Git providers: Works with GitHub, GitLab, Bitbucket, Azure DevOps, Gitea, and other Git platforms
Environment Support
Flipt v2 introduces environments that map to Git branches, allowing you to:- Deploy multiple environments (dev/staging/prod) from different branches
- Use branch-based workflows for flag management
- Create merge proposals through the UI that generate Git pull requests
Configuration Flexibility
The v2 Helm chart supports all v2 configuration options, including:- Storage backends: Git, local filesystem, or hybrid approaches
- Analytics: Optional ClickHouse integration for advanced analytics
- Authentication: GitHub, OIDC, and other authentication methods
- Authorization: RBAC and policy-based access control
Health and Readiness Probes
Flipt v2 exposes health checks using the standard gRPC Health Checking Protocol. You can check them over gRPC or over HTTP via the grpc-gateway. The generic check with no service name tells you the process is running. Use it as a liveness signal. The per-service checks tell you the pod is ready to serve a specific kind of traffic. Use them for readiness. Flipt reports two service names:
Branched (ephemeral) environments are excluded from the
evaluation check. The evaluation status is sticky: once it becomes SERVING, later rebuild failures keep serving the last-good snapshot instead of flapping back.
Possible statuses are UNKNOWN (starting), SERVING, and NOT_SERVING (snapshots are not ready yet, or the server is shutting down).
Check via gRPC
Check via HTTP
Use in Kubernetes
When a Flipt pod starts, it must clone or fetch your Git remotes and build an evaluation snapshot for every static environment (for example,production plus staging). With large repositories or slow networks, this takes longer than it takes for the container to start listening on its ports.
Without a gate, Kubernetes sends evaluation traffic to the pod too early. Those requests may return incorrect evaluation results during rollouts, scale-up, and restarts, even though the pod looks Running.
Add a readinessProbe on the evaluation service so Kubernetes removes the pod from Service endpoints until all static environments are ready to evaluate. You want a readiness probe here, not a liveness probe: readiness temporarily withholds traffic, while liveness restarts the container. Because evaluation stays SERVING once it is ready, transient Git or poll failures later do not flap your endpoints.
failureThreshold on the readiness probe gives Flipt time for the initial Git clone on first start. Tune it for your repository size. The liveness probe uses the generic /health check on purpose, so you do not restart a healthy pod that is still serving its last-good snapshot during a transient Git outage.
See Git Sync for how the initial fetch works and Production Readiness for other production settings.
Next Steps
Congratulations! You’ve successfully deployed Flipt v2 to a local Kubernetes cluster using our Helm chart. You’ve also learned about v2’s Git-native capabilities and configuration options. You should be able to take the knowledge you’ve gained in this guide and deploy Flipt v2 to a real Kubernetes cluster.Additional Resources
- Flipt v2 Helm Chart Repository - Chart source and configuration options
- v2 Configuration Documentation - Complete configuration reference
- Git Storage Guide - Detailed Git storage setup
- Authentication Methods - Setting up authentication in v2
- Kubernetes Troubleshooting - Common issues and solutions for Kubernetes deployments
Production Considerations
For production deployments, consider:- Resource limits: Set appropriate CPU and memory limits in your
values.yaml - Persistent storage: Configure persistent volumes if using local storage
- High availability: Deploy multiple replicas with appropriate anti-affinity rules
- Security: Enable authentication and configure RBAC policies
- Monitoring: Set up observability with metrics and distributed tracing
- Backup: Implement backup strategies for your Git repositories and any local data