-
Notifications
You must be signed in to change notification settings - Fork 261
Closed
Labels
Description
Bug Description
Hi! Im' triying to use Flipt with helm and on premise Postgres database.
The service works fine, but when try to modify any entity (like segments or flags) i get these errors:
In flag type variant:
ERROR: invalid input syntax for type integer: "OR_SEGMENT_OPERATOR" (SQLSTATE 22P02)
In Contraint for Sements:
ERROR: invalid input syntax for type integer: "STRING_COMPARISON_TYPE" (SQLSTATE 22P02)
This is my config:
config:
meta:
telemetry_enabled: false
db:
prepared_statements_enabled: false
url: "postgres: <<url from env>> ?sslmode=disable&search_path=<<custom schema>>"
log:
level: INFO
encoding: console
grpc_level: ERROR
server:
protocol: http
host: 0.0.0.0
https_port: 443
http_port: 8080
grpc_port: 9000
I'm using lasted version (1.58.1)
Thanks for any advance!
Which major version?
v1
Version Info
Version: v1.58.1
Commit: 6834620
Build Date: 2025-05-08T13:52:30Z
Go Version: go1.24.3
OS/Arch: linux/amd64
Search
- I searched for other open and closed issues before opening this
Steps to Reproduce
- Create a new container with helm (this image: docker.flipt.io/flipt/flipt)
- Configure any Postgres DB instance
- Use this config (replace the <>):
config:
meta:
telemetry_enabled: false
db:
prepared_statements_enabled: false
url: "postgres: <<url from env>> ?sslmode=disable&search_path=<<custom schema>>"
log:
level: INFO
encoding: console
grpc_level: ERROR
server:
protocol: http
host: 0.0.0.0
https_port: 443
http_port: 8080
grpc_port: 9000
- Create a Segment (or Flag)
- Try edit a Create Entity
Expected Behavior
Can modify any entity without errors
Additional Context
This is the Helm config I'm using:
flip-values.yml
replicaCount: 2
minReadySeconds: 0
image:
repository: docker.flipt.io/flipt/flipt
pullPolicy: IfNotPresent
# Overrides the image tag whose default is the chart appVersion.
tag: ""
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
serviceAccount:
# Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: ""
test:
# Can pin the version of busybox to a specific version
# tag: '1.36.1'
podAnnotations: {}
podLabels: {}
deploymentAnnotations: {}
deploymentLabels: {}
podSecurityContext:
runAsUser: 100
runAsGroup: 1000
fsGroup: 1000
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
privileged: false
readOnlyRootFilesystem: true
runAsNonRoot: true
runAsUser: 100
seccompProfile:
type: "RuntimeDefault"
readinessProbe:
httpGet:
path: /health
port: http
initialDelaySeconds: 3
livenessProbe:
httpGet:
path: /health
port: http
initialDelaySeconds: 3
## Expose the flipt service to be accessed from outside the cluster (LoadBalancer service).
## or access it from within the cluster (ClusterIP service). Set the service type and the port to serve it.
## ref: http://kubernetes.io/docs/user-guide/services/
##
service:
enabled: true
type: ClusterIP
httpPort: 8080
httpsPort: 443
grpcPort: 9000
## Service annotations. Can be templated.
annotations: {}
labels: {}
ingress:
enabled: false
className: ""
annotations:
{}
# kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: "true"
hosts:
- host: flipt.local
paths:
- path: /
pathType: ImplementationSpecific
# backend configuration is optional
# if not specified, defaults to:
# backend:
# servicePort: http
# serviceName: <chart-fullname>
backend:
servicePort: http
serviceName: ""
tls: []
# - secretName: chart-example-tls
# hosts:
# - chart-example.local
resources:
{}
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
autoscaling:
enabled: false
minReplicas: 1
maxReplicas: 100
targetCPUUtilizationPercentage: 80
# targetMemoryUtilizationPercentage: 80
pdb:
enabled: true
maxUnavailable: 1
nodeSelector: {}
tolerations: []
affinity: {}
strategy: {}
topologySpreadConstraints: []
## Container ports
##
containerPorts:
## http is the Flipt HTTP container port
http: 8080
## https is the Flipt HTTPS container port
https: 443
## grpc Flipt GRPC container port
grpc: 9000
## Persistence Parameters
## ref: https://kubernetes.io/docs/user-guide/persistent-volumes/
##
persistence:
## enabled enables persistence using Persistent Volume Claims
enabled: false
## annotations are additional custom annotations for the PVC
annotations: {}
## existingClaim sets the name of an existing PVC to use for persistence
existingClaim: ""
## subPath is the name of a volume's sub path to mount for persistence
subPath: ""
## accessModes [array] Persistent Volume access modes
accessModes:
- ReadWriteOnce
## storageClass sets Persistent Volume storage class
## If defined, storageClassName: <storageClass>
## If set to "-", storageClassName: "", which disables dynamic provisioning
## If undefined (the default) or set to null, no storageClassName spec is set, choosing the default provisioner
##
storageClass: ""
## size is the Persistent Volume size
size: 5Gi
flipt:
# httpPort is the Flipt HTTP container port
# @deprecated use containerPorts.http instead
httpPort: 8080
# grpcPort is the Flipt GRPC container port
# @deprecated use containerPorts.grpc instead
grpcPort: 9000
args: []
# extraEnvVars is a list of extra environment variables to set e.g.
# - name: FLIPT_LOG_LEVEL
# value: debug
extraEnvVars:
- name: FLIPT_DB_URL
value: "postgres://$(DATABASE_USER):$(DATABASE_PASSWORD)@$(DATABASE_HOST):$(DATABASE_PORT)/$(DATABASE_NAME)?sslmode=disable&search_path=$(DATABASE_SCHEMA)"
envFrom:
- secretRef:
name: flipt
config:
meta:
telemetry_enabled: false
db:
prepared_statements_enabled: false
url: "postgres://$(DATABASE_USER):$(DATABASE_PASSWORD)@$(DATABASE_HOST):$(DATABASE_PORT)/$(DATABASE_NAME)?sslmode=disable&search_path=$(DATABASE_SCHEMA)"
log:
level: INFO
encoding: console
grpc_level: ERROR
server:
protocol: http
host: 0.0.0.0
https_port: 443
http_port: 8080
grpc_port: 9000
migration:
# If enabled will run the migration script over your db before rolling out
# a new deployment. This will run in a helm hook so will get cleaned up on
# success.
enabled: false
# How long to let the job run for kube will terminate it.
deadLine: 600 # sec
metrics:
serviceMonitor:
# -- If enabled, ServiceMonitor resources for Prometheus Operator are created
enabled: true
# -- Port where to scrape metrics from
port: http
# -- Namespace selector for ServiceMonitor resources
namespaceSelector: {}
# -- ServiceMonitor annotations
annotations: {}
# -- Additional ServiceMonitor labels
labels: {}
# -- ServiceMonitor scrape interval
# Default is 15s because included recording rules use a 1m rate, and scrape interval needs to be at
# least 1/4 rate interval.
interval: 15s
# -- ServiceMonitor scrape timeout in Go duration format (e.g. 15s)
scrapeTimeout: null
# -- ServiceMonitor relabel configs to apply to samples before scraping
# https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#relabelconfig
relabelings: []
# -- What to do when flipt metrics labels are conflicting with Prometheus server-side labels.
# true means keep label values from flipt.
honorLabels: false
# -- ServiceMonitor will use http by default, but you can pick https as well
scheme: http
# -- ServiceMonitor will use these tlsConfig settings to make the health check requests
tlsConfig: null
# extraVolumeMounts is a list of extra volumes to mount to the flipt container
# - name: flipt-git-ssh-key
# mountPath: /etc/flipt/ssh.key
# subPath: ssh.key
extraVolumeMounts: []
# extraVolumes is a list of extra volumes to mount to the pod
# - name: flipt-git-ssh-key
# secret:
# secretName: flit-git-ssh-key-secret
extraVolumes: []
# ssh contains some SSH specific configuration parameters
ssh:
# knownHosts is the contents of a custom known hosts file
# for use with SSH authentication and the Git backend for Flipt
knownHosts: ""
## @param extraDeploy Array of extra objects to deploy with the release
##
extraDeploy: []