diff --git a/charts/tidepool/Chart.yaml b/charts/tidepool/Chart.yaml index 53542310..22d859cd 100644 --- a/charts/tidepool/Chart.yaml +++ b/charts/tidepool/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 description: A Helm chart for Tidepool name: tidepool -version: 0.24.6 +version: 0.25.0 maintainers: - name: Todd Kazakov email: todd@tidepool.org diff --git a/charts/tidepool/charts/kafka/templates/2-users-source-kafka-connector.yaml b/charts/tidepool/charts/kafka/templates/2-users-source-kafka-connector.yaml index 85717257..0a4e717c 100644 --- a/charts/tidepool/charts/kafka/templates/2-users-source-kafka-connector.yaml +++ b/charts/tidepool/charts/kafka/templates/2-users-source-kafka-connector.yaml @@ -27,7 +27,7 @@ spec: value.converter: 'org.apache.kafka.connect.json.JsonConverter' value.converter.schemas.enable: false snapshot.mode: {{ .Values.keycloak.snapshotMode }} - table.include.list: 'public.user_entity,public.user_role_mapping,public.keycloak_role,public.user_attribute' + table.include.list: 'public.tp_debezium_lsn_heartbeat,public.user_entity,public.user_role_mapping,public.keycloak_role,public.user_attribute' transforms: 'filter,filter_user_attr' transforms.filter.type: 'io.debezium.transforms.Filter' transforms.filter.language: 'jsr223.groovy' @@ -37,5 +37,13 @@ spec: transforms.filter_user_attr.language: 'jsr223.groovy' transforms.filter_user_attr.topic.regex: '.+\.public.(user_attribute)' transforms.filter_user_attr.condition: "value.op && ((value.op == 'r' || value.op == 'c' || value.op == 'u') && value?.after?.name != null && value.after.name == 'terms_and_conditions')" + # periodic heartbeat for the source connector's offsets + heartbeat.interval.ms: {{ .Values.global.kafka.connect.postgresHeartbeatIntervalMs }} + # periodic heartbeat to advance the replication slot's LSN to keep WAL from + # growing excessively large from modifications to busier tables than the + # ones this connector is capturing. + # Hearbeat table created as `CREATE TABLE IF NOT EXISTS public.tp_debezium_lsn_heartbeat(id INT PRIMARY KEY, last_updated TIMESTAMPTZ);` + # Add table to publication if not using all tables. + heartbeat.action.query: "INSERT INTO public.tp_debezium_lsn_heartbeat(id, last_updated) VALUES (1, NOW()) ON CONFLICT (id) DO UPDATE SET last_updated = EXCLUDED.last_updated" tasksMax: 1 {{- end }} diff --git a/charts/tidepool/values.yaml b/charts/tidepool/values.yaml index 43f9c7c4..d908311e 100644 --- a/charts/tidepool/values.yaml +++ b/charts/tidepool/values.yaml @@ -51,6 +51,7 @@ global: # -- enable keycloak kafka connector keycloak: enabled: false + postgresHeartbeatIntervalMs: 60000 # -- The password key ref passwordKeyName: "Password" linkerdsupport: