Skip to content

Commit b167961

Browse files
committed
feat: allow for PosgreSQL-based analytics, deprecate the in-chart InfluxDB usage
1 parent fac7085 commit b167961

File tree

4 files changed

+55
-22
lines changed

4 files changed

+55
-22
lines changed

charts/flagsmith/Chart.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ apiVersion: v2
22
name: flagsmith
33
description: Flagsmith
44
type: application
5-
version: 0.17.0
6-
appVersion: 2.42.1
5+
version: 0.18.0
6+
appVersion: 2.50.2
77
dependencies:
88
- name: postgresql
99
repository: https://charts.helm.sh/stable

charts/flagsmith/templates/NOTES.txt

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,32 @@ for information about how to gain web access to the application.
2424

2525
{{- end }}
2626

27+
{{- if not .Values.api.analytics.enabled }}
28+
29+
######################################################
30+
##### Analytics capabilities are off! #####
31+
##### Chart-provisioned InfluxDB is deprecated. #####
32+
######################################################
33+
34+
If you were provisioning an InfluxDB instance for Flagsmith's
35+
analytics with these charts, your data is safe, but no new data
36+
will be written to it.
37+
38+
*In a subsequent release, chart-provisioned InfluxDB and all related
39+
values under the `influxdb2` key will be removed.*
40+
41+
When you enable analytics by setting `api.analytics.enabled`
42+
to `true`, the following database backend will be used for analytics,
43+
in the order of preference:
44+
45+
1. External InfluxDB if `influxdbExternal.enabled` set to `true`
46+
2. External PostgreSQL if `databaseExternal.enabled` set to `true`
47+
3. Chart-provisioned PostgreSQL
48+
49+
Note that you can use a dedicated PostgreSQL instance by providing the
50+
value for `ANALYTICS_URL` environment variable under the `extraEnv` key.
51+
{{- end}}
52+
2753
{{- if not .Values.api.secretKey }}
2854

2955
######################################

charts/flagsmith/templates/_api_environment.yaml

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -13,19 +13,8 @@
1313
secretKeyRef:
1414
name: {{ template "flagsmith.fullname" . }}
1515
key: DJANGO_SECRET_KEY
16-
{{- if .Values.influxdb2.enabled }}
17-
- name: INFLUXDB_URL
18-
value: http://{{- template "flagsmith.influxdb.hostname" . -}}:80
19-
- name: INFLUXDB_BUCKET
20-
value: {{ .Values.influxdb2.adminUser.bucket }}
21-
- name: INFLUXDB_ORG
22-
value: {{ .Values.influxdb2.adminUser.organization }}
23-
- name: INFLUXDB_TOKEN
24-
valueFrom:
25-
secretKeyRef:
26-
name: {{ template "flagsmith.influxdb.fullname" . }}-auth
27-
key: admin-token
28-
{{- else if .Values.influxdbExternal.enabled }}
16+
{{- if .Values.api.analytics.enabled }}
17+
{{- if .Values.influxdbExternal.enabled }}
2918
- name: INFLUXDB_URL
3019
value: {{ .Values.influxdbExternal.url | required "Must specify a URL for an external InfluxDB" }}
3120
- name: INFLUXDB_BUCKET
@@ -42,6 +31,13 @@
4231
name: {{ template "flagsmith.influxdb.fullname" . }}-external-auth
4332
key: admin-token
4433
{{- end }}
34+
{{- else }}
35+
- name: USE_POSTGRES_FOR_ANALYTICS
36+
value: 'true'
37+
{{- end }}
38+
{{- else }}
39+
- name: DISABLE_ANALYTICS_FEATURES
40+
value: 'true'
4541
{{- end }}
4642
- name: DJANGO_ALLOWED_HOSTS
4743
value: '*'

charts/flagsmith/values.yaml

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ api:
44
tag: null # defaults to .Chart.AppVersion
55
imagePullPolicy: IfNotPresent
66
imagePullSecrets: []
7-
# Note that if setting this to false, need to set
7+
#
8+
# Note that if setting `separateApiAndFrontend` is `false`, need to set
89
# api.image.repository to flagsmith/flagsmith (or some other
910
# repository hosting the image with combined frontend and backend)
1011
# and that the image tag exists (for flagsmith/flagsmith, >=2.10.0)
@@ -13,6 +14,16 @@ api:
1314
# (unless explicitly switched off), but both are handled by the api
1415
# deployment's pods.
1516
separateApiAndFrontend: true
17+
#
18+
# If `analytics.enabled` flag is `true`, the following database backend
19+
# will be used for analytics, in the order of preference:
20+
# 1. External InfluxDB if `influxdbExternal.enabled` set to `true`
21+
# 2. External PostgreSQL if `databaseExternal.enabled` set to `true`
22+
# 3. Chart-provisioned PostgreSQL
23+
# Note that you can use a dedicated PostgreSQL instance by providing the
24+
# value for `ANALYTICS_URL` environment variable under the `extraEnv` key.
25+
analytics:
26+
enabled: false
1627
replicacount: 1
1728
deploymentStrategy: null
1829
podAnnotations: {}
@@ -233,14 +244,14 @@ pgbouncer:
233244
influxdb2:
234245
enabled: true
235246
adminUser:
236-
organization: 'influxdata'
237-
bucket: 'default'
238-
user: 'admin'
239-
retention_policy: '0s'
247+
organization: "influxdata"
248+
bucket: "default"
249+
user: "admin"
250+
retention_policy: "0s"
240251
## Leave empty to generate a random password and token.
241252
## Or fill any of these values to use fixed values.
242-
password: ''
243-
token: ''
253+
password: ""
254+
token: ""
244255
persistence:
245256
enabled: false
246257
# storageClass: "-"

0 commit comments

Comments
 (0)