diff --git a/scripts/helmcharts/openreplay/files/dbops.sh b/scripts/helmcharts/openreplay/files/dbops.sh index 3217f0262..dddae7a7d 100644 --- a/scripts/helmcharts/openreplay/files/dbops.sh +++ b/scripts/helmcharts/openreplay/files/dbops.sh @@ -5,9 +5,25 @@ cd $(dirname $0) is_migrate=$1 +# Check if the openreplay version is set. +# This will take precedence over the .Values.fromVersion variable +# Because its created by installation programatically. +if [[ -n $OPENREPLAY_VERSION ]]; then + is_migrate=true + PREVIOUS_APP_VERSION=$OPENREPLAY_VERSION + echo "$OPENREPLAY_VERSION set" +fi + +if [[ $FORCE_MIGRATION == "true" ]]; then + is_migrate=true +fi + # Passed from env # PREVIOUS_APP_VERSION # CHART_APP_VERSION +# Converting alphaneumeric to number. +PREVIOUS_APP_VERSION=$(echo $PREVIOUS_APP_VERSION | cut -d "v" -f2) +CHART_APP_VERSION=$(echo $CHART_APP_VERSION | cut -d "v" -f2) function migration() { ls -la /opt/openreplay/openreplay diff --git a/scripts/helmcharts/openreplay/templates/configmap.yaml b/scripts/helmcharts/openreplay/templates/configmap.yaml new file mode 100644 index 000000000..8189a3163 --- /dev/null +++ b/scripts/helmcharts/openreplay/templates/configmap.yaml @@ -0,0 +1,10 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: openreplay-version + namespace: "{{ .Release.Namespace }}" + annotations: + "helm.sh/hook": post-install, post-upgrade + "helm.sh/hook-weight": "-6" # Higher precidence, so the first the config map will get created. +data: + version: {{ .Chart.AppVersion }} diff --git a/scripts/helmcharts/openreplay/templates/job.yaml b/scripts/helmcharts/openreplay/templates/job.yaml index c0618e1d5..fd208d5b7 100644 --- a/scripts/helmcharts/openreplay/templates/job.yaml +++ b/scripts/helmcharts/openreplay/templates/job.yaml @@ -3,8 +3,8 @@ Don't have to trigger migration if there is no version change Don't have to trigger migration if skipMigration is set Have to trigger migration if forceMigration is set */}} -{{- $versionChange := and (eq .Values.fromVersion .Chart.AppVersion) (.Release.IsUpgrade) }} -{{- if or (not (or .Values.skipMigration $versionChange)) .Values.forceMigration }} +{{- $versionChange := (or .Values.deployment.argo (and (not (eq .Values.fromVersion .Chart.AppVersion)) .Release.IsUpgrade)) }} +{{- if or .Values.forceMigration (and (not .Values.skipMigration) $versionChange) }} --- apiVersion: v1 kind: ConfigMap @@ -116,6 +116,12 @@ spec: containers: - name: postgres env: + - name: OPENREPLAY_VERSION + valueFrom: + configMapKeyRef: + name: openreplay-version + key: version + optional: true - name: FORCE_MIGRATION value: "{{ .Values.forceMigration }}" - name: PREVIOUS_APP_VERSION @@ -162,6 +168,12 @@ spec: - name: minio image: bitnami/minio:2023.11.20 env: + - name: OPENREPLAY_VERSION + valueFrom: + configMapKeyRef: + name: openreplay-version + key: version + optional: true {{- range $key, $val := .Values.global.env }} - name: {{ $key }} value: '{{ $val }}' @@ -285,6 +297,12 @@ spec: - name: clickhouse image: clickhouse/clickhouse-server:22.12-alpine env: + - name: OPENREPLAY_VERSION + valueFrom: + configMapKeyRef: + name: openreplay-version + key: version + optional: true {{- range $key, $val := .Values.global.env }} - name: {{ $key }} value: '{{ $val }}' @@ -320,6 +338,12 @@ spec: - name: kafka image: bitnami/kafka:2.6.0-debian-10-r30 env: + - name: OPENREPLAY_VERSION + valueFrom: + configMapKeyRef: + name: openreplay-version + key: version + optional: true {{- range $key, $val := .Values.global.env }} - name: {{ $key }} value: '{{ $val }}' diff --git a/scripts/helmcharts/openreplay/values.yaml b/scripts/helmcharts/openreplay/values.yaml index a4273492c..ee391e8d2 100644 --- a/scripts/helmcharts/openreplay/values.yaml +++ b/scripts/helmcharts/openreplay/values.yaml @@ -5,6 +5,11 @@ migrationJob: migration: env: {} +deployment: + argo: false +forceMigration: false +skipMigration: false + redis: &redis tls: enabled: false