Helm Schema Validation Errors
When installing or upgrading the Flipt Helm chart, you may encounter schema validation errors like:--skip-schema-validation bypasses chart schema checks entirely. Use it as a
temporary workaround while tracking upstream schema fixes in
flipt-io/helm-charts — typos in
your values.yaml will no longer be caught automatically when this flag is
set.Machine ID Not Found (License Validation)
When running Flipt Pro on containerd-based Kubernetes clusters (such as GKE or modern EKS), you may see:Why This Happens
Flipt uses a machine fingerprint for license validation. The fingerprinting library reads from:/var/lib/dbus/machine-id/etc/machine-id- Docker-specific paths in
/proc/self/cgroupand/proc/self/mountinfo
- The Flipt container image is Alpine-based and doesn’t include dbus
/etc/machine-idis not present in minimal container images- The Docker-specific fallback paths don’t match containerd’s format
Solution: Mount the Host Machine ID
Mount the Kubernetes node’s/etc/machine-id into the Flipt container by adding these values to your values.yaml:
This workaround depends on
hostPath volumes and a node filesystem. It won’t
work in environments that don’t allow hostPath (for example, many managed
serverless node offerings such as EKS Fargate).Affected Environments
- Google Kubernetes Engine (GKE)
- Amazon EKS with containerd runtime
- Any Kubernetes cluster using containerd instead of Docker
- Rootless container environments
Persistent Volume Configuration
Flipt needs a writable directory for local state. If you see read-only filesystem errors or Flipt fails to start with write permission errors, you likely need to configure persistence.Enable Persistence
Add the following to yourvalues.yaml:
Match the Storage Backend Path
Thepath in your Flipt storage backend configuration refers to the path inside the container, not on the host. It must match where the PersistentVolumeClaim is mounted.
The Helm chart mounts the PVC at /var/opt/flipt by default. Your storage backend configuration should use this path:
Secrets Management with GitOps
When deploying Flipt via ArgoCD, FluxCD, or other GitOps tools, you should not commit sensitive values (license keys, Git access tokens) to your Git repository insidevalues.yaml.
Using Kubernetes Secrets with Environment Variable Substitution
Flipt supports environment variable substitution in configuration values using the${env:VAR_NAME} syntax. Combined with the Helm chart’s envFrom support, this lets you keep secrets out of your values file.
Step 1: Create a Kubernetes Secret containing your sensitive values:
values.yaml:
values.yaml free of secrets and safe to commit to Git.
Compatible Secret Management Tools
This pattern works with any tool that creates Kubernetes Secrets:- External Secrets Operator — syncs secrets from GCP Secret Manager, AWS Secrets Manager, Azure Key Vault, HashiCorp Vault
- Sealed Secrets — encrypt secrets client-side, commit encrypted
SealedSecretresources to Git - ArgoCD Vault Plugin — inject secrets from Vault at deploy time
kubectl create secret— create secrets manually for simpler setups
Using Individual Environment Variables
If you prefer to inject secrets as individual environment variables rather than from a Secret reference, useextraEnvVars: