diff --git a/charts/gitops-runtime/templates/_components/cap-app-proxy/environment-variables/_main-container.yaml b/charts/gitops-runtime/templates/_components/cap-app-proxy/environment-variables/_main-container.yaml index 807ccb89..fb85b911 100644 --- a/charts/gitops-runtime/templates/_components/cap-app-proxy/environment-variables/_main-container.yaml +++ b/charts/gitops-runtime/templates/_components/cap-app-proxy/environment-variables/_main-container.yaml @@ -219,7 +219,7 @@ LEADER_ID: valueFrom: fieldRef: fieldPath: metadata.name -{{- end }} +{{- if or .Values.redis.enabled (index .Values "redis-ha" "enabled") }} CACHE_HOST: {{ (splitList ":" (include "codefresh-gitops-runtime.argocd.redis.url" .) | first) }} CACHE_PORT: {{ (splitList ":" (include "codefresh-gitops-runtime.argocd.redis.url" .) | last) }} CACHE_PASSWORD: @@ -227,6 +227,12 @@ CACHE_PASSWORD: secretKeyRef: name: gitops-runtime-redis key: auth +{{- else }} + {{- fail ".Values.redis.enabled or .Values.redis-ha.enabled must be true when .Values.app-proxy.replicaCount > 1" }} +{{- end }} +{{- end }} + + CF_SERVICE_NAME: {{ $appProxyName }} CF_SERVICE_VERSION: {{ $appProxyVersion }} OTEL_SERVICE_NAME: {{ $appProxyName }} diff --git a/charts/gitops-runtime/templates/_helpers.tpl b/charts/gitops-runtime/templates/_helpers.tpl index f8faffc0..fd590649 100644 --- a/charts/gitops-runtime/templates/_helpers.tpl +++ b/charts/gitops-runtime/templates/_helpers.tpl @@ -289,7 +289,7 @@ Determine argocd redis url {{- $port := .Values.redis.service.ports.redis.port }} {{- printf "%s:%v" $serviceName $port }} {{- else }} - {{- fail "ERROR: .Values.redis or .Values.redis-ha must be enabled!" }} + {{- printf "" }} {{- end }} {{- end}} diff --git a/charts/gitops-runtime/templates/argo-gateway/_env.yaml b/charts/gitops-runtime/templates/argo-gateway/_env.yaml index e3f3c207..26788e86 100644 --- a/charts/gitops-runtime/templates/argo-gateway/_env.yaml +++ b/charts/gitops-runtime/templates/argo-gateway/_env.yaml @@ -20,6 +20,37 @@ ARGOCD_SERVER_ROOTPATH: {{ dig "server" "rootpath" "/" (index .Values "global" " CODEFRESH_SSL_CERT_PATH: {{ printf "/app/config/codefresh-tls-certs/%s" $secretKey }} {{- end }} +{{- if or .Values.redis.enabled (index .Values "redis-ha" "enabled") }} +REDISDB: + valueFrom: + configMapKeyRef: + name: argo-gateway-cmd-params-cm + key: redis.db + optional: true +REDIS_COMPRESSION: + valueFrom: + configMapKeyRef: + name: argo-gateway-cmd-params-cm + key: redis.compression + optional: true +REDIS_PASSWORD: + valueFrom: + secretKeyRef: + name: gitops-runtime-redis + key: auth +REDIS_SERVER: + valueFrom: + configMapKeyRef: + name: argo-gateway-cmd-params-cm + key: redis.server +REDIS_USERNAME: + valueFrom: + secretKeyRef: + name: argo-gateway-cmd-params-cm + key: redis-username + optional: true +{{- end }} + {{- end }} {{- define "argo-gateway.resources.environment-variables.defaults" -}} @@ -60,34 +91,6 @@ LISTEN_ADDRESS: name: argo-gateway-cmd-params-cm key: server.listen.address optional: true -REDISDB: - valueFrom: - configMapKeyRef: - name: argo-gateway-cmd-params-cm - key: redis.db - optional: true -REDIS_COMPRESSION: - valueFrom: - configMapKeyRef: - name: argo-gateway-cmd-params-cm - key: redis.compression - optional: true -REDIS_PASSWORD: - valueFrom: - secretKeyRef: - name: gitops-runtime-redis - key: auth -REDIS_SERVER: - valueFrom: - configMapKeyRef: - name: argo-gateway-cmd-params-cm - key: redis.server -REDIS_USERNAME: - valueFrom: - secretKeyRef: - name: argo-gateway-cmd-params-cm - key: redis-username - optional: true REPO_SERVER: valueFrom: configMapKeyRef: diff --git a/charts/gitops-runtime/templates/argo-gateway/deployment.yaml b/charts/gitops-runtime/templates/argo-gateway/deployment.yaml index 6f549993..6a48e125 100644 --- a/charts/gitops-runtime/templates/argo-gateway/deployment.yaml +++ b/charts/gitops-runtime/templates/argo-gateway/deployment.yaml @@ -1,5 +1,7 @@ {{- $context := deepCopy . }} {{- $_ := set $context "Values" (deepCopy (get .Values "argo-gateway")) }} +{{- $_ := set $context.Values "redis" (deepCopy (get .Values "redis")) }} +{{- $_ := set $context.Values "redis-ha" (deepCopy (get .Values "redis-ha")) }} {{- $_ := set $context.Values "global" (deepCopy (get .Values "global")) }} {{/* Merge environment variables from calculated, defaults and overwrites */}} {{- $defaults := (include "argo-gateway.resources.environment-variables.defaults" $context | fromYaml) }} diff --git a/charts/gitops-runtime/templates/event-reporters/cluster-event-reporter/_env.yaml b/charts/gitops-runtime/templates/event-reporters/cluster-event-reporter/_env.yaml index 1638fee4..d8e1e2ec 100644 --- a/charts/gitops-runtime/templates/event-reporters/cluster-event-reporter/_env.yaml +++ b/charts/gitops-runtime/templates/event-reporters/cluster-event-reporter/_env.yaml @@ -20,6 +20,37 @@ ARGOCD_SERVER_ROOTPATH: {{ dig "server" "rootpath" "/" (index .Values "global" " CODEFRESH_SSL_CERT_PATH: {{ printf "/app/config/codefresh-tls-certs/%s" $secretKey }} {{- end }} +{{- if or .Values.redis.enabled (index .Values "redis-ha" "enabled") }} +REDISDB: + valueFrom: + configMapKeyRef: + name: cluster-event-reporter-cmd-params-cm + key: redis.db + optional: true +REDIS_COMPRESSION: + valueFrom: + configMapKeyRef: + name: cluster-event-reporter-cmd-params-cm + key: redis.compression + optional: true +REDIS_PASSWORD: + valueFrom: + secretKeyRef: + name: gitops-runtime-redis + key: auth +REDIS_SERVER: + valueFrom: + configMapKeyRef: + name: cluster-event-reporter-cmd-params-cm + key: redis.server +REDIS_USERNAME: + valueFrom: + secretKeyRef: + name: cluster-event-reporter-cmd-params-cm + key: redis-username + optional: true +{{- end }} + {{- end }} {{- define "cluster-event-reporter.resources.environment-variables.defaults" -}} @@ -114,34 +145,6 @@ OTEL_EXPORTER_OTLP_TRACES_ENDPOINT: name: cluster-event-reporter-cmd-params-cm key: otlp.address optional: true -REDISDB: - valueFrom: - configMapKeyRef: - name: cluster-event-reporter-cmd-params-cm - key: redis.db - optional: true -REDIS_COMPRESSION: - valueFrom: - configMapKeyRef: - name: cluster-event-reporter-cmd-params-cm - key: redis.compression - optional: true -REDIS_PASSWORD: - valueFrom: - secretKeyRef: - name: gitops-runtime-redis - key: auth -REDIS_SERVER: - valueFrom: - configMapKeyRef: - name: cluster-event-reporter-cmd-params-cm - key: redis.server -REDIS_USERNAME: - valueFrom: - secretKeyRef: - name: cluster-event-reporter-cmd-params-cm - key: redis-username - optional: true REPO_SERVER: valueFrom: configMapKeyRef: diff --git a/charts/gitops-runtime/templates/event-reporters/cluster-event-reporter/deployment.yaml b/charts/gitops-runtime/templates/event-reporters/cluster-event-reporter/deployment.yaml index 794e91c6..d29c6aef 100644 --- a/charts/gitops-runtime/templates/event-reporters/cluster-event-reporter/deployment.yaml +++ b/charts/gitops-runtime/templates/event-reporters/cluster-event-reporter/deployment.yaml @@ -1,5 +1,7 @@ {{- $context := deepCopy . }} {{- $_ := set $context "Values" (deepCopy (get (index .Values "global") "event-reporters")) }} +{{- $_ := set $context.Values "redis" (deepCopy (get .Values "redis")) }} +{{- $_ := set $context.Values "redis-ha" (deepCopy (get .Values "redis-ha")) }} {{- $_ := set $context.Values "global" (deepCopy (get .Values "global")) }} {{/* Merge .Values.event-reporters. with .Values.global.event-reporters */}} {{- $valuesOverrides := index .Values "event-reporters" "cluster-event-reporter" }} diff --git a/charts/gitops-runtime/templates/event-reporters/runtime-event-reporter/_env.yaml b/charts/gitops-runtime/templates/event-reporters/runtime-event-reporter/_env.yaml index 7aebb239..02d0cefa 100644 --- a/charts/gitops-runtime/templates/event-reporters/runtime-event-reporter/_env.yaml +++ b/charts/gitops-runtime/templates/event-reporters/runtime-event-reporter/_env.yaml @@ -20,6 +20,37 @@ ARGOCD_SERVER_ROOTPATH: {{ dig "server" "rootpath" "/" (index .Values "global" " CODEFRESH_SSL_CERT_PATH: {{ printf "/app/config/codefresh-tls-certs/%s" $secretKey }} {{- end }} +{{- if or .Values.redis.enabled (index .Values "redis-ha" "enabled") }} +REDISDB: + valueFrom: + configMapKeyRef: + name: runtime-event-reporter-cmd-params-cm + key: redis.db + optional: true +REDIS_COMPRESSION: + valueFrom: + configMapKeyRef: + name: runtime-event-reporter-cmd-params-cm + key: redis.compression + optional: true +REDIS_PASSWORD: + valueFrom: + secretKeyRef: + name: gitops-runtime-redis + key: auth +REDIS_SERVER: + valueFrom: + configMapKeyRef: + name: runtime-event-reporter-cmd-params-cm + key: redis.server +REDIS_USERNAME: + valueFrom: + secretKeyRef: + name: runtime-event-reporter-cmd-params-cm + key: redis-username + optional: true +{{- end }} + {{- end }} {{- define "runtime-event-reporter.resources.environment-variables.defaults" -}} @@ -114,34 +145,6 @@ OTEL_EXPORTER_OTLP_TRACES_ENDPOINT: name: runtime-event-reporter-cmd-params-cm key: otlp.address optional: true -REDISDB: - valueFrom: - configMapKeyRef: - name: runtime-event-reporter-cmd-params-cm - key: redis.db - optional: true -REDIS_COMPRESSION: - valueFrom: - configMapKeyRef: - name: runtime-event-reporter-cmd-params-cm - key: redis.compression - optional: true -REDIS_PASSWORD: - valueFrom: - secretKeyRef: - name: gitops-runtime-redis - key: auth -REDIS_SERVER: - valueFrom: - configMapKeyRef: - name: runtime-event-reporter-cmd-params-cm - key: redis.server -REDIS_USERNAME: - valueFrom: - secretKeyRef: - name: runtime-event-reporter-cmd-params-cm - key: redis-username - optional: true REPO_SERVER: valueFrom: configMapKeyRef: diff --git a/charts/gitops-runtime/templates/event-reporters/runtime-event-reporter/deployment.yaml b/charts/gitops-runtime/templates/event-reporters/runtime-event-reporter/deployment.yaml index fc620544..34c203cc 100644 --- a/charts/gitops-runtime/templates/event-reporters/runtime-event-reporter/deployment.yaml +++ b/charts/gitops-runtime/templates/event-reporters/runtime-event-reporter/deployment.yaml @@ -1,5 +1,7 @@ {{- $context := deepCopy . }} {{- $_ := set $context "Values" (deepCopy (get (index .Values "global") "event-reporters")) }} +{{- $_ := set $context.Values "redis" (deepCopy (get .Values "redis")) }} +{{- $_ := set $context.Values "redis-ha" (deepCopy (get .Values "redis-ha")) }} {{- $_ := set $context.Values "global" (deepCopy (get .Values "global")) }} {{/* Merge .Values.event-reporters. with .Values.global.event-reporters */}} {{- $valuesOverrides := index .Values "event-reporters" "runtime-event-reporter" }} diff --git a/charts/gitops-runtime/tests/app-proxy-misc_test.yaml b/charts/gitops-runtime/tests/app-proxy-misc_test.yaml index 76997268..5e4d6187 100644 --- a/charts/gitops-runtime/tests/app-proxy-misc_test.yaml +++ b/charts/gitops-runtime/tests/app-proxy-misc_test.yaml @@ -274,6 +274,7 @@ tests: - ./values/mandatory-values.yaml set: app-proxy.replicaCount: 2 + redis.enabled: true asserts: - lengthEqual: path: spec.template.spec.containers diff --git a/charts/gitops-runtime/tests/argo-api-gateway_test.yaml b/charts/gitops-runtime/tests/argo-api-gateway_test.yaml index 1f02ef8b..78bd6a55 100644 --- a/charts/gitops-runtime/tests/argo-api-gateway_test.yaml +++ b/charts/gitops-runtime/tests/argo-api-gateway_test.yaml @@ -13,11 +13,23 @@ tests: value: argo-cd-server:80 - equal: path: data["redis.server"] - value: runtime-redis:6379 + value: null - equal: path: data["repo.server"] value: argo-cd-repo-server:8081 + - it: Argo Api Gateway ConfigMap should have valid redis url when Redis is enabled + set: + redis: + enabled: true + template: argo-gateway/configmap.yaml + values: + - ./values/mandatory-values-ingress.yaml + asserts: + - equal: + path: data["redis.server"] + value: runtime-redis:6379 + - it: Argo Api Gateway Deployment should have valid matchLabel selectors template: argo-gateway/deployment.yaml values: @@ -72,7 +84,7 @@ tests: path: metadata.name value: argo-gateway - - it: Argo Api Gateway ConfigMap should have valid redis-ha url + - it: Argo Api Gateway ConfigMap should have valid redis-ha url when Redis HA is enabled template: argo-gateway/configmap.yaml values: - ./values/mandatory-values-ingress.yaml diff --git a/charts/gitops-runtime/tests/event-reporters_test.yaml b/charts/gitops-runtime/tests/event-reporters_test.yaml index c86c5526..10f47641 100644 --- a/charts/gitops-runtime/tests/event-reporters_test.yaml +++ b/charts/gitops-runtime/tests/event-reporters_test.yaml @@ -40,12 +40,25 @@ tests: value: argo-cd-server:80 - equal: path: data["redis.server"] - value: runtime-redis:6379 + value: null - equal: path: data["repo.server"] value: argo-cd-repo-server:8081 - - it: Runtime Reporter ConfigMap should have valid redis-ha url + + - it: Runtime Reporter ConfigMap should have valid redis url when Redis is enabled + template: event-reporters/runtime-event-reporter/configmap.yaml + values: + - ./values/mandatory-values-ingress.yaml + set: + redis: + enabled: true + asserts: + - equal: + path: data["redis.server"] + value: runtime-redis:6379 + + - it: Runtime Reporter ConfigMap should have valid redis-ha url when Redis HA is enabled template: event-reporters/runtime-event-reporter/configmap.yaml values: - ./values/mandatory-values-ingress.yaml @@ -168,10 +181,13 @@ tests: cpu: 200m memory: 256Mi - - it: Runtime Reporter should have correct REDIS_ environment variables + - it: Runtime Reporter should have REDIS_ environment variables when redis is enabled template: event-reporters/runtime-event-reporter/deployment.yaml values: - ./values/mandatory-values-ingress.yaml + set: + redis: + enabled: true asserts: - contains: path: spec.template.spec.containers[0].env @@ -189,3 +205,17 @@ tests: secretKeyRef: name: gitops-runtime-redis key: auth + + - it: Runtime Reporter should NOT have REDIS_ environment variables by default + template: event-reporters/runtime-event-reporter/deployment.yaml + values: + - ./values/mandatory-values-ingress.yaml + asserts: + - notContains: + path: spec.template.spec.containers[0].env + content: + name: REDIS_SERVER + - notContains: + path: spec.template.spec.containers[0].env + content: + name: REDIS_PASSWORD diff --git a/charts/gitops-runtime/tests/external_argocd_test.yaml b/charts/gitops-runtime/tests/external_argocd_test.yaml index eb34ce5d..e145efd5 100644 --- a/charts/gitops-runtime/tests/external_argocd_test.yaml +++ b/charts/gitops-runtime/tests/external_argocd_test.yaml @@ -401,6 +401,9 @@ tests: - it: runtime-event-reporter ConfigMap should have valid Redis URL template: event-reporters/runtime-event-reporter/configmap.yaml + set: + redis: + enabled: true values: - ./values/mandatory-values-ingress.yaml - ./values/external-argocd-values.yaml @@ -549,6 +552,9 @@ tests: - it: argo-gateway ConfigMap should have valid Redis URL template: argo-gateway/configmap.yaml + set: + redis: + enabled: true values: - ./values/mandatory-values-ingress.yaml - ./values/external-argocd-values.yaml diff --git a/charts/gitops-runtime/tests/redis_test.yaml b/charts/gitops-runtime/tests/redis_test.yaml index 3993e30d..55a897c8 100644 --- a/charts/gitops-runtime/tests/redis_test.yaml +++ b/charts/gitops-runtime/tests/redis_test.yaml @@ -6,8 +6,10 @@ templates: - redis/** - charts/redis-ha/** tests: - - it: Standalone Redis Deployment should be created by default + - it: Standalone Redis Deployment should be created by when redis.enabled is true template: redis/deployment.yaml + set: + redis.enabled: true values: - ./values/mandatory-values-ingress.yaml asserts: @@ -33,14 +35,35 @@ tests: name: runtime-redis not: true - - it: App-Proxy should have CACHE_ environment variables (standalone Redis) + - it: App-Proxy should NOT have CACHE_ environment variables by default + template: app-proxy/deployment.yaml + values: + - ./values/mandatory-values-ingress.yaml + asserts: + - notContains: + path: spec.template.spec.containers[0].env + content: + name: CACHE_HOST + - notContains: + path: spec.template.spec.containers[0].env + content: + name: CACHE_PORT + - notContains: + path: spec.template.spec.containers[0].env + content: + name: CACHE_PASSWORD + + - it: App-Proxy should have CACHE_ environment variables when Redis HA is enabled and replicaCount > 1 template: app-proxy/deployment.yaml values: - ./values/mandatory-values-ingress.yaml + set: + redis-ha.enabled: true + app-proxy.replicaCount: 2 asserts: - equal: path: spec.template.spec.containers[0].env[?(@.name=="CACHE_HOST")].value - value: runtime-redis + value: runtime-redis-ha-haproxy - equal: path: spec.template.spec.containers[0].env[?(@.name=="CACHE_PORT")].value value: "6379" @@ -51,16 +74,18 @@ tests: name: gitops-runtime-redis key: auth - - it: App-Proxy should have CACHE_ environment variables (Redis HA) + + - it: App-Proxy should have CACHE_ environment variables when Standalone Redis is enabled and replicaCount > 1 template: app-proxy/deployment.yaml + set: + redis.enabled: true + app-proxy.replicaCount: 2 values: - ./values/mandatory-values-ingress.yaml - set: - redis-ha.enabled: true asserts: - equal: path: spec.template.spec.containers[0].env[?(@.name=="CACHE_HOST")].value - value: runtime-redis-ha-haproxy + value: runtime-redis - equal: path: spec.template.spec.containers[0].env[?(@.name=="CACHE_PORT")].value value: "6379" diff --git a/charts/gitops-runtime/values.yaml b/charts/gitops-runtime/values.yaml index 5680000a..b848a84c 100644 --- a/charts/gitops-runtime/values.yaml +++ b/charts/gitops-runtime/values.yaml @@ -764,7 +764,7 @@ redis-secret-init: # -- Standalone redis deployment # Will be replaced by redis-ha subchart when `redis-ha.enabled=true` redis: - enabled: true + enabled: false fullnameOverride: "runtime-redis" # -- Redis image image: