diff --git a/charts/gitops-runtime/Chart.yaml b/charts/gitops-runtime/Chart.yaml index 8c3465a0..45501d9b 100644 --- a/charts/gitops-runtime/Chart.yaml +++ b/charts/gitops-runtime/Chart.yaml @@ -21,6 +21,7 @@ dependencies: - name: argo-events repository: https://codefresh-io.github.io/argo-helm version: 2.4.9-cap-CR-30841 + condition: argo-events.enabled - name: argo-workflows repository: https://codefresh-io.github.io/argo-helm version: 0.45.16-v3.6.7-cap-CR-30835 @@ -37,6 +38,3 @@ dependencies: version: 0.1.22 alias: tunnel-client condition: tunnel-client.enabled -- name: cf-common - repository: oci://quay.io/codefresh/charts - version: 0.27.0 diff --git a/charts/gitops-runtime/templates/_components/cap-app-proxy/_deployment.yaml b/charts/gitops-runtime/templates/_components/cap-app-proxy/_deployment.yaml index ddc57a5b..e00a55bb 100644 --- a/charts/gitops-runtime/templates/_components/cap-app-proxy/_deployment.yaml +++ b/charts/gitops-runtime/templates/_components/cap-app-proxy/_deployment.yaml @@ -1,5 +1,4 @@ {{- define "cap-app-proxy.resources.deployment" }} -{{- $cfCommonTplSemver := printf "cf-common-%s" (index .Subcharts "cf-common").Chart.Version }} apiVersion: apps/v1 kind: Deployment metadata: @@ -89,7 +88,7 @@ spec: readOnly: true {{- if gt (int .Values.replicaCount) 1 }} - name: leader-elector - image: {{ include (printf "%s.image.name" $cfCommonTplSemver ) (dict "image" (index .Values "leader-elector" "image") "context" .) }} + image: {{ include "codefresh-gitops-runtime.image.name" (dict "image" (index .Values "leader-elector" "image") "context" .) }} imagePullPolicy: {{ index .Values "leader-elector" "image" "pullPolicy" | default "IfNotPresent" }} command: - leader-elector @@ -154,7 +153,7 @@ spec: {{- toYaml . | nindent 6 }} {{- end }} {{- with .Values.topologySpreadConstraints }} - topologySpreadConstraints: {{- include (printf "%s.tplrender" $cfCommonTplSemver ) (dict "Values" . "context" .) | nindent 8 }} + topologySpreadConstraints: {{- include "codefresh-gitops-runtime.tplrender" (dict "Values" . "context" .) | nindent 8 }} {{- end }} volumes: {{- with .Values.extraVolumes }} diff --git a/charts/gitops-runtime/templates/_components/cf-argocd-extras/_default-values.tpl b/charts/gitops-runtime/templates/_components/cf-argocd-extras/_default-values.tpl deleted file mode 100644 index 02deac9e..00000000 --- a/charts/gitops-runtime/templates/_components/cf-argocd-extras/_default-values.tpl +++ /dev/null @@ -1,522 +0,0 @@ -{{- define "cf-argocd-extras.default-values" }} - {{- $argoCdAuth := (include "codefresh-gitops-runtime.argocd-token-auth" . | fromYaml) }} -global: {} - -externalRedis: - enabled: false - existingSecretKeyRef: - name: "argocd-redis" - key: "redis-password" - -eventReporter: - fullnameOverride: event-reporter - - podAnnotations: {} - - serviceAccount: - enabled: true - - rbac: - enabled: true - namespaced: false - rules: - - apiGroups: - - '*' - resources: - - '*' - verbs: - - '*' - - nonResourceURLs: - - '*' - verbs: - - '*' - - controller: - enabled: true - type: statefulset - replicas: 1 - revisionHistoryLimit: 5 - - container: - name: event-reporter - image: - registry: quay.io/codefresh - repository: cf-argocd-extras - tag: main - pullPolicy: IfNotPresent - - # these do not seem to work - ports: - - name: metrics - containerPort: 8087 - protocol: TCP - - name: health - containerPort: 8088 - protocol: TCP - - resources: - requests: - memory: 128Mi - cpu: 100m - - env: - HTTP_PROXY: '{{ .Values.global.httpProxy }}' - HTTPS_PROXY: '{{ .Values.global.httpsProxy }}' - NO_PROXY: '{{ .Values.global.noProxy }}' - APP_QUEUE_SIZE: - valueFrom: - configMapKeyRef: - name: event-reporter-cmd-params-cm - key: app.queue.size - ARGOCD_APPLICATION_NAMESPACES: - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: application.namespaces - optional: true - ARGOCD_SERVER: - valueFrom: - configMapKeyRef: - name: event-reporter-cmd-params-cm - key: argocd.server - ARGOCD_SERVER_ROOTPATH: - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: server.rootpath - optional: true -{{ $argoCdAuth | toYaml | indent 6 }} - BINARY_NAME: event-reporter - CODEFRESH_SSL_CERT_PATH: "" - CODEFRESH_TLS_INSECURE: - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: codefresh.tls.insecure - optional: true - CODEFRESH_TOKEN: - valueFrom: - secretKeyRef: - name: codefresh-token - key: token - CODEFRESH_URL: - valueFrom: - configMapKeyRef: - key: base-url - name: codefresh-cm - EVENT_REPORTER_REPLICAS: 1 - INSECURE: - valueFrom: - configMapKeyRef: - name: event-reporter-cmd-params-cm - key: insecure - optional: true - LISTEN_ADDRESS: - valueFrom: - configMapKeyRef: - name: event-reporter-cmd-params-cm - key: listen.address - optional: true - LOG_FORMAT: - valueFrom: - configMapKeyRef: - name: event-reporter-cmd-params-cm - key: log.format - optional: true - LOG_LEVEL: - valueFrom: - configMapKeyRef: - name: event-reporter-cmd-params-cm - key: log.level - optional: true - MAX_APP_RETRIES: - valueFrom: - configMapKeyRef: - name: event-reporter-cmd-params-cm - key: max.app.retries - METRICS_LISTEN_ADDRESS: - valueFrom: - configMapKeyRef: - name: event-reporter-cmd-params-cm - key: metrics.listen.address - optional: true - OTEL_EXPORTER_OTLP_TRACES_ENDPOINT: - valueFrom: - configMapKeyRef: - name: event-reporter-cmd-params-cm - key: otlp.address - REDISDB: - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: redis.db - optional: true - REDIS_COMPRESSION: - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: redis.compression - optional: true - REDIS_PASSWORD: - valueFrom: - secretKeyRef: - name: argocd-redis - key: auth - REDIS_SERVER: - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: redis.server - REDIS_USERNAME: - valueFrom: - secretKeyRef: - name: argocd-redis - key: redis-username - optional: true - REPO_SERVER: - valueFrom: - configMapKeyRef: - name: event-reporter-cmd-params-cm - key: repo.server - REPO_SERVER_PLAINTEXT: - valueFrom: - configMapKeyRef: - name: event-reporter-cmd-params-cm - key: repo.server.plaintext - optional: true - REPO_SERVER_STRICT_TLS: - valueFrom: - configMapKeyRef: - name: event-reporter-cmd-params-cm - key: repo.server.strict.tls - optional: true - REPO_SERVER_TIMEOUT_SECONDS: - valueFrom: - configMapKeyRef: - name: event-reporter-cmd-params-cm - key: repo.server.timeout.seconds - optional: true - RUNTIME_VERSION: - valueFrom: - configMapKeyRef: - name: codefresh-cm - key: version - SHARDING_ALGORITHM: - valueFrom: - configMapKeyRef: - name: event-reporter-cmd-params-cm - key: sharding.algorithm - optional: true - SOURCES_SERVER: - valueFrom: - configMapKeyRef: - name: event-reporter-cmd-params-cm - key: sources.server - THREADINESS: - valueFrom: - configMapKeyRef: - name: event-reporter-cmd-params-cm - key: threadiness - - volumeMounts: - codefresh-tls-certs: - path: - - mountPath: /app/config/codefresh-tls-certs - readOnly: true - - probes: - liveness: - enabled: true - type: httpGet - httpGet: - path: /healthz?full=true - port: 8088 - spec: - initialDelaySeconds: 3 - periodSeconds: 30 - timeoutSeconds: 5 - successThreshold: 1 - failureThreshold: 3 - readiness: - enabled: true - type: httpGet - httpGet: - path: /healthz - port: 8088 - spec: - initialDelaySeconds: 10 - periodSeconds: 10 - timeoutSeconds: 1 - successThreshold: 1 - failureThreshold: 3 - - configMaps: - cmd-params-cm: - enabled: true - data: - app.queue.size: '1000' - argocd.server: argo-cd-server:80 - max.app.retries: '5' - otlp.address: '' - repo.server: argo-cd-repo-server:8081 - sources.server: http://sources-server - threadiness: '100' - - volumes: - codefresh-tls-certs: - enabled: true - type: secret - nameOverride: codefresh-tls-certs - optional: true - - pdb: - enabled: true - minAvailable: "50%" - maxUnavailable: "" - - service: - main: - enabled: true - type: ClusterIP - ports: - metrics: - port: 8087 - protocol: HTTP - targetPort: 8087 - - serviceMonitor: - main: - enabled: false - endpoints: - - port: metrics - scheme: http - path: /metrics - interval: 30s - scrapeTimeout: 10s - -sourcesServer: - fullnameOverride: sources-server - - serviceAccount: - enabled: true - - rbac: - enabled: true - namespaced: false - rules: - - apiGroups: - - '' - resources: - - configmaps - - secrets - verbs: - - get - - list - - watch - - apiGroups: - - '' - - apps - resources: - - deployments - - podtemplates - verbs: - - patch - - apiGroups: - - apps - resources: - - replicasets - verbs: - - list - - patch - - apiGroups: - - argoproj.io - resources: - - rollouts - - rollouts/status - verbs: - - get - - patch - - podAnnotations: {} - - controller: - enabled: true - type: deployment - revisionHistoryLimit: 3 - deployment: - strategy: RollingUpdate - rollingUpdate: - maxUnavailable: 0 - maxSurge: 50% - - hpa: - enabled: true - minReplicas: 1 - maxReplicas: 10 - targetCPUUtilizationPercentage: 70 - - keda: - enabled: false - - pdb: - enabled: true - minAvailable: "50%" - maxUnavailable: "" - - imagePullSecrets: [] - - container: - name: sources-server - image: - registry: quay.io/codefresh - repository: cf-argocd-extras - tag: main - pullPolicy: IfNotPresent - - ports: - - name: server - containerPort: 8090 - protocol: TCP - - resources: - requests: - memory: "128Mi" - cpu: "100m" - - env: - HTTP_PROXY: '{{ .Values.global.httpProxy }}' - HTTPS_PROXY: '{{ .Values.global.httpsProxy }}' - NO_PROXY: '{{ .Values.global.noProxy }}' - ARGOCD_SERVER: - valueFrom: - configMapKeyRef: - name: sources-server-cmd-params-cm - key: argocd.server -{{ $argoCdAuth | toYaml | indent 6}} - ARGOCD_SERVER_ROOTPATH: - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: server.rootpath - optional: true - BINARY_NAME: sources-server - CODEFRESH_SSL_CERT_PATH: "" - CODEFRESH_TLS_INSECURE: - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: codefresh.tls.insecure - optional: true - CODEFRESH_TOKEN: - valueFrom: - secretKeyRef: - key: token - name: codefresh-token - CODEFRESH_URL: - valueFrom: - configMapKeyRef: - key: base-url - name: codefresh-cm - LISTEN_ADDRESS: - valueFrom: - configMapKeyRef: - name: sources-server-cmd-params-cm - key: server.listen.address - optional: true - REDISDB: - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: redis.db - optional: true - REDIS_COMPRESSION: - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: redis.compression - optional: true - REDIS_PASSWORD: - valueFrom: - secretKeyRef: - name: argocd-redis - key: auth - REDIS_SERVER: - valueFrom: - configMapKeyRef: - name: argocd-cmd-params-cm - key: redis.server - REDIS_USERNAME: - valueFrom: - secretKeyRef: - name: argocd-redis - key: redis-username - optional: true - REPO_SERVER: - valueFrom: - configMapKeyRef: - name: sources-server-cmd-params-cm - key: repo.server - REPO_SERVER_TIMEOUT_SECONDS: - valueFrom: - configMapKeyRef: - name: sources-server-cmd-params-cm - key: repo.server.timeout.seconds - optional: true - - volumeMounts: - codefresh-tls-certs: - path: - - mountPath: /app/config/codefresh-tls-certs - readOnly: true - - probes: - liveness: - enabled: true - type: httpGet - httpGet: - path: /healthz?full=true - port: 8090 - spec: - initialDelaySeconds: 10 - periodSeconds: 10 - timeoutSeconds: 1 - successThreshold: 1 - failureThreshold: 3 - readiness: - enabled: true - type: httpGet - httpGet: - path: /healthz - port: 8090 - spec: - initialDelaySeconds: 10 - periodSeconds: 10 - timeoutSeconds: 1 - successThreshold: 1 - failureThreshold: 3 - - service: - main: - enabled: true - primary: true - type: ClusterIP - ports: - http: - port: 80 - protocol: HTTP - targetPort: 8090 - - configMaps: - cmd-params-cm: - enabled: true - data: - argocd.server: argo-cd-server:80 - repo.server: argo-cd-repo-server:8081 - - volumes: - codefresh-tls-certs: - enabled: true - type: secret - nameOverride: codefresh-tls-certs - optional: true -{{- end }} diff --git a/charts/gitops-runtime/templates/_components/cf-argocd-extras/event-reporter/_configmap.yaml b/charts/gitops-runtime/templates/_components/cf-argocd-extras/event-reporter/_configmap.yaml deleted file mode 100644 index 2cbdc16f..00000000 --- a/charts/gitops-runtime/templates/_components/cf-argocd-extras/event-reporter/_configmap.yaml +++ /dev/null @@ -1,21 +0,0 @@ -{{- define "cf-argocd-extras.event-reporter.configmap" }} - -{{- $context := deepCopy . }} - -{{- $defaultVals := include "cf-argocd-extras.default-values" . | fromYaml }} -{{- $vals := mergeOverwrite $defaultVals (get .Values "cf-argocd-extras") }} - -{{- $_ := set $context "Values" $vals.eventReporter }} -{{- $_ := set $context.Values "global" (deepCopy (get .Values "global")) }} - -{{- $_ := set (index $context.Values.configMaps "cmd-params-cm" "data") "argocd.server" (include "codefresh-gitops-runtime.argocd.server.no-protocol-url" . ) }} -{{- $_ := set (index $context.Values.configMaps "cmd-params-cm" "data") "redis.server" (include "codefresh-gitops-runtime.argocd.redis.url" . ) }} -{{- $_ := set (index $context.Values.configMaps "cmd-params-cm" "data") "repo.server" (include "codefresh-gitops-runtime.argocd.reposerver.url" . ) }} - -{{/* Workaround to NOT change label selectors from previous runtime release when event-reporter was part of cf-argocd-extras Subchart */}} -{{- $_ := set $context.Values "nameOverride" "cf-argocd-extras" }} - -{{- $templateName := printf "cf-common-%s.configmaps" (index .Subcharts "cf-common").Chart.Version }} -{{- include $templateName $context }} - -{{- end }} diff --git a/charts/gitops-runtime/templates/_components/cf-argocd-extras/event-reporter/_pdb.yaml b/charts/gitops-runtime/templates/_components/cf-argocd-extras/event-reporter/_pdb.yaml deleted file mode 100644 index bc6004d0..00000000 --- a/charts/gitops-runtime/templates/_components/cf-argocd-extras/event-reporter/_pdb.yaml +++ /dev/null @@ -1,17 +0,0 @@ -{{- define "cf-argocd-extras.event-reporter.pdb" }} - -{{- $context := deepCopy . }} - -{{- $defaultVals := include "cf-argocd-extras.default-values" . | fromYaml }} -{{- $vals := mergeOverwrite $defaultVals (get .Values "cf-argocd-extras") }} - -{{- $_ := set $context "Values" $vals.eventReporter }} -{{- $_ := set $context.Values "global" (deepCopy (get .Values "global")) }} - -{{/* Workaround to NOT change label selectors from previous runtime release when event-reporter was part of cf-argocd-extras Subchart */}} -{{- $_ := set $context.Values "nameOverride" "cf-argocd-extras" }} - -{{- $templateName := printf "cf-common-%s.pdb" (index .Subcharts "cf-common").Chart.Version }} -{{- include $templateName $context }} - -{{- end }} diff --git a/charts/gitops-runtime/templates/_components/cf-argocd-extras/event-reporter/_rbac.yaml b/charts/gitops-runtime/templates/_components/cf-argocd-extras/event-reporter/_rbac.yaml deleted file mode 100644 index 64cd6d27..00000000 --- a/charts/gitops-runtime/templates/_components/cf-argocd-extras/event-reporter/_rbac.yaml +++ /dev/null @@ -1,17 +0,0 @@ -{{- define "cf-argocd-extras.event-reporter.rbac" }} - -{{- $context := deepCopy . }} - -{{- $defaultVals := include "cf-argocd-extras.default-values" . | fromYaml }} -{{- $vals := mergeOverwrite $defaultVals (get .Values "cf-argocd-extras") }} - -{{- $_ := set $context "Values" $vals.eventReporter }} -{{- $_ := set $context.Values "global" (deepCopy (get .Values "global")) }} - -{{/* Workaround to NOT change label selectors from previous runtime release when event-reporter was part of cf-argocd-extras Subchart */}} -{{- $_ := set $context.Values "nameOverride" "cf-argocd-extras" }} - -{{- $templateName := printf "cf-common-%s.rbac" (index .Subcharts "cf-common").Chart.Version }} -{{- include $templateName $context }} - -{{- end }} diff --git a/charts/gitops-runtime/templates/_components/cf-argocd-extras/event-reporter/_service.yaml b/charts/gitops-runtime/templates/_components/cf-argocd-extras/event-reporter/_service.yaml deleted file mode 100644 index a800535e..00000000 --- a/charts/gitops-runtime/templates/_components/cf-argocd-extras/event-reporter/_service.yaml +++ /dev/null @@ -1,17 +0,0 @@ -{{- define "cf-argocd-extras.event-reporter.service" }} - -{{- $context := deepCopy . }} - -{{- $defaultVals := include "cf-argocd-extras.default-values" . | fromYaml }} -{{- $vals := mergeOverwrite $defaultVals (get .Values "cf-argocd-extras") }} - -{{- $_ := set $context "Values" $vals.eventReporter }} -{{- $_ := set $context.Values "global" (deepCopy (get .Values "global")) }} - -{{/* Workaround to NOT change label selectors from previous runtime release when event-reporter was part of cf-argocd-extras Subchart */}} -{{- $_ := set $context.Values "nameOverride" "cf-argocd-extras" }} - -{{- $templateName := printf "cf-common-%s.service" (index .Subcharts "cf-common").Chart.Version }} -{{- include $templateName $context }} - -{{- end }} diff --git a/charts/gitops-runtime/templates/_components/cf-argocd-extras/event-reporter/_serviceMonitor.yaml b/charts/gitops-runtime/templates/_components/cf-argocd-extras/event-reporter/_serviceMonitor.yaml deleted file mode 100644 index 015929d9..00000000 --- a/charts/gitops-runtime/templates/_components/cf-argocd-extras/event-reporter/_serviceMonitor.yaml +++ /dev/null @@ -1,17 +0,0 @@ -{{- define "cf-argocd-extras.event-reporter.serviceMonitor" }} - -{{- $context := deepCopy . }} - -{{- $defaultVals := include "cf-argocd-extras.default-values" . | fromYaml }} -{{- $vals := mergeOverwrite $defaultVals (get .Values "cf-argocd-extras") }} - -{{- $_ := set $context "Values" $vals.eventReporter }} -{{- $_ := set $context.Values "global" (deepCopy (get .Values "global")) }} - -{{/* Workaround to NOT change label selectors from previous runtime release when event-reporter was part of cf-argocd-extras Subchart */}} -{{- $_ := set $context.Values "nameOverride" "cf-argocd-extras" }} - -{{- $templateName := printf "cf-common-%s.serviceMonitor" (index .Subcharts "cf-common").Chart.Version }} -{{- include $templateName $context }} - -{{- end }} diff --git a/charts/gitops-runtime/templates/_components/cf-argocd-extras/event-reporter/_statefulset.yaml b/charts/gitops-runtime/templates/_components/cf-argocd-extras/event-reporter/_statefulset.yaml deleted file mode 100644 index 6c349787..00000000 --- a/charts/gitops-runtime/templates/_components/cf-argocd-extras/event-reporter/_statefulset.yaml +++ /dev/null @@ -1,35 +0,0 @@ -{{- define "cf-argocd-extras.event-reporter.statefulset" }} - -{{- $context := deepCopy . }} - -{{- $defaultVals := include "cf-argocd-extras.default-values" . | fromYaml }} -{{- $vals := mergeOverwrite $defaultVals (get .Values "cf-argocd-extras") }} - -{{- $_ := set $context "Values" $vals.eventReporter }} -{{- $_ := set $context.Values "global" (deepCopy (get .Values "global")) }} - -{{- $_ := set $context.Values.podAnnotations "checksum/config" (include (print $.Template.BasePath "/cf-argocd-extras/event-reporter/configmap.yaml") . | sha256sum) }} - -{{- if $vals.externalRedis.enabled }} - {{- $_ := set $context.Values.container.env.REDIS_PASSWORD.valueFrom.secretKeyRef "name" (default "argocd-redis" $vals.externalRedis.existingSecretKeyRef.name) }} - {{- $_ := set $context.Values.container.env.REDIS_PASSWORD.valueFrom.secretKeyRef "key" (default "redis-password" $vals.externalRedis.existingSecretKeyRef.key) }} -{{- end }} - -{{- if and (index $context.Values "global" "external-argo-cd" "server" "rootpath") }} - {{- $_ := set $context.Values.container.env "ARGOCD_SERVER_ROOTPATH" (index $context.Values "global" "external-argo-cd" "server" "rootpath") }} -{{- end }} - -{{- if or $context.Values.global.codefresh.tls.caCerts.secret.create $context.Values.global.codefresh.tls.caCerts.secretKeyRef }} - {{- $secretName := $context.Values.global.codefresh.tls.caCerts.secretKeyRef.name | default "codefresh-tls-certs" }} - {{- $secretKey := $context.Values.global.codefresh.tls.caCerts.secret.create | ternary (default "ca-bundle.crt" $context.Values.global.codefresh.tls.caCerts.secret.key) $context.Values.global.codefresh.tls.caCerts.secretKeyRef.key }} - {{- $_ := set $context.Values.container.env "CODEFRESH_SSL_CERT_PATH" (printf "/app/config/codefresh-tls-certs/%s" $secretKey ) }} - {{- $_ := set (index $context.Values.volumes "codefresh-tls-certs") "nameOverride" $secretName }} -{{- end }} - -{{/* Workaround to NOT change label selectors from previous runtime release when event-reporter was part of cf-argocd-extras Subchart */}} -{{- $_ := set $context.Values "nameOverride" "cf-argocd-extras" }} - -{{- $templateName := printf "cf-common-%s.controller" (index .Subcharts "cf-common").Chart.Version -}} -{{- include $templateName $context -}} - -{{- end }} diff --git a/charts/gitops-runtime/templates/_components/cf-argocd-extras/sources-server/_configmap.yaml b/charts/gitops-runtime/templates/_components/cf-argocd-extras/sources-server/_configmap.yaml deleted file mode 100644 index c7e0cb4e..00000000 --- a/charts/gitops-runtime/templates/_components/cf-argocd-extras/sources-server/_configmap.yaml +++ /dev/null @@ -1,21 +0,0 @@ -{{- define "cf-argocd-extras.sources-server.configmap" }} - -{{- $context := deepCopy . }} - -{{- $defaultVals := include "cf-argocd-extras.default-values" . | fromYaml }} -{{- $vals := mergeOverwrite $defaultVals (get .Values "cf-argocd-extras") }} - -{{- $_ := set $context "Values" $vals.sourcesServer }} -{{- $_ := set $context.Values "global" (deepCopy (get .Values "global")) }} - -{{- $_ := set (index $context.Values.configMaps "cmd-params-cm" "data") "argocd.server" (include "codefresh-gitops-runtime.argocd.server.no-protocol-url" . ) }} -{{- $_ := set (index $context.Values.configMaps "cmd-params-cm" "data") "redis.server" (include "codefresh-gitops-runtime.argocd.redis.url" . ) }} -{{- $_ := set (index $context.Values.configMaps "cmd-params-cm" "data") "repo.server" (include "codefresh-gitops-runtime.argocd.reposerver.url" . ) }} - -{{/* Workaround to NOT change label selectors from previous runtime release when sources-server was part of cf-argocd-extras Subchart */}} -{{- $_ := set $context.Values "nameOverride" "cf-argocd-extras" }} - -{{- $templateName := printf "cf-common-%s.configmaps" (index .Subcharts "cf-common").Chart.Version }} -{{- include $templateName $context }} - -{{- end }} diff --git a/charts/gitops-runtime/templates/_components/cf-argocd-extras/sources-server/_deployment.yaml b/charts/gitops-runtime/templates/_components/cf-argocd-extras/sources-server/_deployment.yaml deleted file mode 100644 index e32cb923..00000000 --- a/charts/gitops-runtime/templates/_components/cf-argocd-extras/sources-server/_deployment.yaml +++ /dev/null @@ -1,35 +0,0 @@ -{{- define "cf-argocd-extras.sources-server.deployment" }} - -{{- $context := deepCopy . }} - -{{- $defaultVals := include "cf-argocd-extras.default-values" . | fromYaml }} -{{- $vals := mergeOverwrite $defaultVals (get .Values "cf-argocd-extras") }} - -{{- $_ := set $context "Values" $vals.sourcesServer }} -{{- $_ := set $context.Values "global" (deepCopy (get .Values "global")) }} - -{{- $_ := set $context.Values.podAnnotations "checksum/config" (include (print $.Template.BasePath "/cf-argocd-extras/sources-server/configmap.yaml") . | sha256sum) }} - -{{- if $vals.externalRedis.enabled }} - {{- $_ := set $context.Values.container.env.REDIS_PASSWORD.valueFrom.secretKeyRef "name" (default "argocd-redis" $vals.externalRedis.existingSecretKeyRef.name) }} - {{- $_ := set $context.Values.container.env.REDIS_PASSWORD.valueFrom.secretKeyRef "key" (default "redis-password" $vals.externalRedis.existingSecretKeyRef.key) }} -{{- end }} - -{{- if and (index $context.Values "global" "external-argo-cd" "server" "rootpath") }} - {{- $_ := set $context.Values.container.env "ARGOCD_SERVER_ROOTPATH" (index $context.Values "global" "external-argo-cd" "server" "rootpath") }} -{{- end }} - -{{- if or $context.Values.global.codefresh.tls.caCerts.secret.create $context.Values.global.codefresh.tls.caCerts.secretKeyRef }} - {{- $secretName := $context.Values.global.codefresh.tls.caCerts.secretKeyRef.name | default "codefresh-tls-certs" }} - {{- $secretKey := $context.Values.global.codefresh.tls.caCerts.secret.create | ternary (default "ca-bundle.crt" $context.Values.global.codefresh.tls.caCerts.secret.key) $context.Values.global.codefresh.tls.caCerts.secretKeyRef.key }} - {{- $_ := set $context.Values.container.env "CODEFRESH_SSL_CERT_PATH" (printf "/app/config/codefresh-tls-certs/%s" $secretKey ) }} - {{- $_ := set (index $context.Values.volumes "codefresh-tls-certs") "nameOverride" $secretName }} -{{- end }} - -{{/* Workaround to NOT change label selectors from previous runtime release when sources-server was part of cf-argocd-extras Subchart */}} -{{- $_ := set $context.Values "nameOverride" "cf-argocd-extras" }} - -{{- $templateName := printf "cf-common-%s.controller" (index .Subcharts "cf-common").Chart.Version -}} -{{- include $templateName $context -}} - -{{- end }} diff --git a/charts/gitops-runtime/templates/_components/cf-argocd-extras/sources-server/_hpa.yaml b/charts/gitops-runtime/templates/_components/cf-argocd-extras/sources-server/_hpa.yaml deleted file mode 100644 index 2a54b442..00000000 --- a/charts/gitops-runtime/templates/_components/cf-argocd-extras/sources-server/_hpa.yaml +++ /dev/null @@ -1,17 +0,0 @@ -{{- define "cf-argocd-extras.sources-server.hpa" }} - -{{- $context := deepCopy . }} - -{{- $defaultVals := include "cf-argocd-extras.default-values" . | fromYaml }} -{{- $vals := mergeOverwrite $defaultVals (get .Values "cf-argocd-extras") }} - -{{- $_ := set $context "Values" $vals.sourcesServer }} -{{- $_ := set $context.Values "global" (deepCopy (get .Values "global")) }} - -{{/* Workaround to NOT change label selectors from previous runtime release when sources-server was part of cf-argocd-extras Subchart */}} -{{- $_ := set $context.Values "nameOverride" "cf-argocd-extras" }} - -{{- $templateName := printf "cf-common-%s.hpa" (index .Subcharts "cf-common").Chart.Version }} -{{- include $templateName $context }} - -{{- end }} diff --git a/charts/gitops-runtime/templates/_components/cf-argocd-extras/sources-server/_pdb.yaml b/charts/gitops-runtime/templates/_components/cf-argocd-extras/sources-server/_pdb.yaml deleted file mode 100644 index a43be587..00000000 --- a/charts/gitops-runtime/templates/_components/cf-argocd-extras/sources-server/_pdb.yaml +++ /dev/null @@ -1,17 +0,0 @@ -{{- define "cf-argocd-extras.sources-server.pdb" }} - -{{- $context := deepCopy . }} - -{{- $defaultVals := include "cf-argocd-extras.default-values" . | fromYaml }} -{{- $vals := mergeOverwrite $defaultVals (get .Values "cf-argocd-extras") }} - -{{- $_ := set $context "Values" $vals.sourcesServer }} -{{- $_ := set $context.Values "global" (deepCopy (get .Values "global")) }} - -{{/* Workaround to NOT change label selectors from previous runtime release when sources-server was part of cf-argocd-extras Subchart */}} -{{- $_ := set $context.Values "nameOverride" "cf-argocd-extras" }} - -{{- $templateName := printf "cf-common-%s.pdb" (index .Subcharts "cf-common").Chart.Version }} -{{- include $templateName $context }} - -{{- end }} diff --git a/charts/gitops-runtime/templates/_components/cf-argocd-extras/sources-server/_rbac.yaml b/charts/gitops-runtime/templates/_components/cf-argocd-extras/sources-server/_rbac.yaml deleted file mode 100644 index 2afcec02..00000000 --- a/charts/gitops-runtime/templates/_components/cf-argocd-extras/sources-server/_rbac.yaml +++ /dev/null @@ -1,17 +0,0 @@ -{{- define "cf-argocd-extras.sources-server.rbac" }} - -{{- $context := deepCopy . }} - -{{- $defaultVals := include "cf-argocd-extras.default-values" . | fromYaml }} -{{- $vals := mergeOverwrite $defaultVals (get .Values "cf-argocd-extras") }} - -{{- $_ := set $context "Values" $vals.sourcesServer }} -{{- $_ := set $context.Values "global" (deepCopy (get .Values "global")) }} - -{{/* Workaround to NOT change label selectors from previous runtime release when sources-server was part of cf-argocd-extras Subchart */}} -{{- $_ := set $context.Values "nameOverride" "cf-argocd-extras" }} - -{{- $templateName := printf "cf-common-%s.rbac" (index .Subcharts "cf-common").Chart.Version }} -{{- include $templateName $context }} - -{{- end }} diff --git a/charts/gitops-runtime/templates/_components/cf-argocd-extras/sources-server/_service.yaml b/charts/gitops-runtime/templates/_components/cf-argocd-extras/sources-server/_service.yaml deleted file mode 100644 index ea16d7a6..00000000 --- a/charts/gitops-runtime/templates/_components/cf-argocd-extras/sources-server/_service.yaml +++ /dev/null @@ -1,17 +0,0 @@ -{{- define "cf-argocd-extras.sources-server.service" }} - -{{- $context := deepCopy . }} - -{{- $defaultVals := include "cf-argocd-extras.default-values" . | fromYaml }} -{{- $vals := mergeOverwrite $defaultVals (get .Values "cf-argocd-extras") }} - -{{- $_ := set $context "Values" $vals.sourcesServer }} -{{- $_ := set $context.Values "global" (deepCopy (get .Values "global")) }} - -{{/* Workaround to NOT change label selectors from previous runtime release when sources-server was part of cf-argocd-extras Subchart */}} -{{- $_ := set $context.Values "nameOverride" "cf-argocd-extras" }} - -{{- $templateName := printf "cf-common-%s.service" (index .Subcharts "cf-common").Chart.Version }} -{{- include $templateName $context }} - -{{- end }} diff --git a/charts/gitops-runtime/templates/_components/event-reporters/_helpers.tpl b/charts/gitops-runtime/templates/_components/event-reporters/_helpers.tpl deleted file mode 100644 index 5e6b9fd4..00000000 --- a/charts/gitops-runtime/templates/_components/event-reporters/_helpers.tpl +++ /dev/null @@ -1,156 +0,0 @@ -{{/* -Create chart name and version as used by the chart label. -*/}} -{{- define "event-reporters.chart" -}} -{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} -{{- end }} - -{{/* -Expand the name of the chart. -*/}} -{{- define "event-reporters.rollout-reporter.name" -}} -{{- print "rollout-reporter"}} -{{- end }} - -{{/* -Create a default fully qualified app name. -We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). -If release name contains chart name it will be used as a full name. -*/}} -{{- define "event-reporters.rollout-reporter.fullname" -}} -{{- print "rollout-reporter"}} -{{- end }} - -{{/* -Common labels -*/}} -{{- define "event-reporters.rollout-reporter.labels" -}} -helm.sh/chart: {{ include "event-reporters.chart" . }} -{{ include "event-reporters.rollout-reporter.selectorLabels" . }} -{{- if .Chart.AppVersion }} -app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} -{{- end }} -app.kubernetes.io/managed-by: Helm -codefresh.io/internal: "true" -{{- end }} - -{{/* -Selector labels -*/}} -{{- define "event-reporters.rollout-reporter.selectorLabels" -}} -app.kubernetes.io/part-of: rollout-reporter -{{- end }} - -{{/* -Create the name of the service account to use -*/}} -{{- define "event-reporters.rollout-reporter.serviceAccountName" -}} - {{- if .Values.rollout.serviceAccount.create }} - {{- default (include "event-reporters.rollout-reporter.fullname" .) .Values.rollout.serviceAccount.name }} - {{- else }} - {{- default "default" .Values.rollout.serviceAccount.name }} - {{- end }} -{{- end }} - -{{/* -Expand the name of the chart. -*/}} -{{- define "event-reporters.workflow-reporter.name" -}} -{{- print "workflow-reporter"}} -{{- end }} - -{{/* -Create a default fully qualified app name. -We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). -If release name contains chart name it will be used as a full name. -*/}} -{{- define "event-reporters.workflow-reporter.fullname" -}} -{{- print "workflow-reporter"}} -{{- end }} - -{{/* -Common labels -*/}} -{{- define "event-reporters.workflow-reporter.labels" -}} -helm.sh/chart: {{ include "event-reporters.chart" . }} -{{ include "event-reporters.workflow-reporter.selectorLabels" . }} -{{- if .Chart.AppVersion }} -app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} -{{- end }} -app.kubernetes.io/managed-by: Helm -codefresh.io/internal: "true" -{{- end }} - -{{/* -Selector labels -*/}} -{{- define "event-reporters.workflow-reporter.selectorLabels" -}} -app.kubernetes.io/part-of: workflow-reporter -{{- end }} - -{{/* -Create the name of the service account to use -*/}} -{{- define "event-reporters.workflow-reporter.serviceAccountName" -}} - {{- if .Values.workflow.serviceAccount.create }} - {{- default "codefresh-sa" .Values.workflow.serviceAccount.name }} - {{- else }} - {{- default "default" .Values.workflow.serviceAccount.name }} - {{- end }} -{{- end }} - -{{/* -Create a single event-source sensor http trigger -assumes the name, condition and payload.dependencyName are identical -*/}} -{{- define "event-reporters.http.trigger" -}} -{{- $url := (printf "%s%s" .Values.global.codefresh.url .Values.global.codefresh.apiEventsPath | quote) -}} -- template: - name: {{ .name }} - conditions: {{ .name }} - http: - method: POST - url: {{ $url }} - {{- if or .Values.global.codefresh.tls.caCerts.secret.create .Values.global.codefresh.tls.caCerts.secretKeyRef}} - tls: - caCertSecret: - name: {{ .Values.global.codefresh.tls.caCerts.secret.create | ternary "codefresh-tls-certs" .Values.global.codefresh.tls.caCerts.secretKeyRef.name }} - key: {{ .Values.global.codefresh.tls.caCerts.secret.create | ternary (default "ca-bundle.crt" .Values.global.codefresh.tls.caCerts.secret.key) .Values.global.codefresh.tls.caCerts.secretKeyRef.key }} - {{- end }} - headers: - Content-Type: application/json - secureHeaders: - - name: Authorization - valueFrom: - secretKeyRef: - key: token - name: codefresh-token - payload: - - dest: {{ .payloadDest }} - src: - dataKey: body - dependencyName: {{ .name }} - atLeastOnce: {{ .atLeastOnce }} - {{- if .retryStrategy }} - retryStrategy: - {{- .retryStrategy | toYaml | nindent 4 }} - {{- end }} - {{- if .policy }} - policy: - {{- .policy | toYaml | nindent 4 }} - {{- end }} -{{- end -}} - -{{/* Logging trigger for the sensor - gets sensor.logging dict */}} -{{- define "event-reporters.log.trigger" -}} - {{- if .enabled }} -- template: - name: log-trigger - {{- if gt (int .intervalSeconds) 0 }} - log: - intervalSeconds: {{ .intervalSeconds }} - {{- else }} - log: {} - {{- end }} - {{- end }} -{{- end }} diff --git a/charts/gitops-runtime/templates/_components/event-reporters/rollout-reporter/_event-source.yaml b/charts/gitops-runtime/templates/_components/event-reporters/rollout-reporter/_event-source.yaml deleted file mode 100644 index b5b5bad1..00000000 --- a/charts/gitops-runtime/templates/_components/event-reporters/rollout-reporter/_event-source.yaml +++ /dev/null @@ -1,65 +0,0 @@ -{{- define "event-reporters.rollout-reporter.eventsource"}} -apiVersion: argoproj.io/v1alpha1 -kind: EventSource -metadata: - name: rollout-reporter - labels: - {{- include "event-reporters.rollout-reporter.labels" . | nindent 4}} -spec: - replicas: {{ .Values.rollout.eventSource.replicas }} - eventBusName: {{ include "codefresh-gitops-runtime.eventbus.name" .Values.global.runtime.eventBus }} - resource: - analysisruns: - eventTypes: - - ADD - - UPDATE - - DELETE - filter: - createdBy: null - group: argoproj.io - resource: analysisruns - version: v1alpha1 - replicasets: - eventTypes: - - ADD - - UPDATE - - DELETE - filter: - createdBy: null - group: apps - resource: replicasets - version: v1 - rollouts: - eventTypes: - - ADD - - UPDATE - - DELETE - filter: - createdBy: null - group: argoproj.io - resource: rollouts - version: v1alpha1 - template: - metadata: - labels: - app.kubernetes.io/name: rollout-reporter-eventsource - container: - name: "" - resources: - {{- with .Values.rollout.eventSource.resources }} - {{- . | toYaml | nindent 8 }} - {{- end }} - serviceAccountName: {{ include "event-reporters.rollout-reporter.serviceAccountName" .}} - tolerations: - {{- with .Values.rollout.eventSource.tolerations | default .Values.global.tolerations }} - {{- . | toYaml | nindent 6 }} - {{- end }} - nodeSelector: - {{- with .Values.rollout.eventSource.nodeSelector | default .Values.global.nodeSelector }} - {{- . | toYaml | nindent 6 }} - {{- end }} - affinity: - {{- with .Values.affinity }} - {{- . | toYaml | nindent 6 }} - {{- end }} -{{- end }} diff --git a/charts/gitops-runtime/templates/_components/event-reporters/rollout-reporter/_rbac.yaml b/charts/gitops-runtime/templates/_components/event-reporters/rollout-reporter/_rbac.yaml deleted file mode 100644 index f7d12017..00000000 --- a/charts/gitops-runtime/templates/_components/event-reporters/rollout-reporter/_rbac.yaml +++ /dev/null @@ -1,29 +0,0 @@ -{{- define "event-reporters.rollout-reporter.rbac"}} -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: rollout-reporter-sa - labels: - {{- include "event-reporters.rollout-reporter.labels" . | nindent 4}} -rules: - - apiGroups: - - "*" - resources: - - "*" - verbs: - - "*" ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: rollout-reporter-sa - labels: - {{- include "event-reporters.rollout-reporter.labels" . | nindent 4}} -roleRef: - apiGroup: "" - kind: Role - name: rollout-reporter-sa -subjects: - - kind: ServiceAccount - name: {{ include "event-reporters.rollout-reporter.serviceAccountName" . }} -{{- end }} \ No newline at end of file diff --git a/charts/gitops-runtime/templates/_components/event-reporters/rollout-reporter/_sensor.yaml b/charts/gitops-runtime/templates/_components/event-reporters/rollout-reporter/_sensor.yaml deleted file mode 100644 index 3021fbd2..00000000 --- a/charts/gitops-runtime/templates/_components/event-reporters/rollout-reporter/_sensor.yaml +++ /dev/null @@ -1,50 +0,0 @@ -{{- define "event-reporters.rollout-reporter.sensor"}} -apiVersion: argoproj.io/v1alpha1 -kind: Sensor -metadata: - name: rollout-reporter - labels: - {{- include "event-reporters.rollout-reporter.labels" . | nindent 4 }} -spec: - replicas: {{ .Values.rollout.sensor.replicas }} - dependencies: - - name: rollouts - eventSourceName: rollout-reporter - eventName: rollouts - - name: replicasets - eventSourceName: rollout-reporter - eventName: replicasets - - name: analysisruns - eventSourceName: rollout-reporter - eventName: analysisruns - eventBusName: {{ include "codefresh-gitops-runtime.eventbus.name" .Values.global.runtime.eventBus }} - template: - metadata: - labels: - app.kubernetes.io/name: rollout-reporter-sensor - serviceAccountName: {{ include "event-reporters.rollout-reporter.serviceAccountName" .}} - container: - name: "" - {{- include "codefresh-gitops-runtime.components.common_helpers.container-templates.env-vars" .Values.rollout.sensor.env | nindent 6 }} - resources: - {{- with .Values.rollout.sensor.resources }} - {{- . | toYaml | nindent 8 }} - {{- end }} - tolerations: - {{- with .Values.rollout.sensor.tolerations | default .Values.global.tolerations }} - {{- . | toYaml | nindent 6 }} - {{- end }} - nodeSelector: - {{- with .Values.rollout.sensor.nodeSelector | default .Values.global.nodeSelector}} - {{- . | toYaml | nindent 6 }} - {{- end }} - affinity: - {{- with .Values.affinity }} - {{- . | toYaml | nindent 6 }} - {{- end }} - triggers: - {{- include "event-reporters.http.trigger" (dict "name" "rollouts" "Values" .Values "payloadDest" "data.object" "retryStrategy" .Values.rollout.sensor.retryStrategy "policy" .Values.rollout.sensor.policy "atLeastOnce" .Values.rollout.sensor.atLeastOnce) | nindent 4 }} - {{- include "event-reporters.http.trigger" (dict "name" "replicasets" "Values" .Values "payloadDest" "data.object" "retryStrategy" .Values.rollout.sensor.retryStrategy "policy" .Values.rollout.sensor.policy "atLeastOnce" .Values.rollout.sensor.atLeastOnce) | nindent 4 }} - {{- include "event-reporters.http.trigger" (dict "name" "analysisruns" "Values" .Values "payloadDest" "data.object" "retryStrategy" .Values.rollout.sensor.retryStrategy "policy" .Values.rollout.sensor.policy "atLeastOnce" .Values.rollout.sensor.atLeastOnce) | nindent 4 }} - {{- include "event-reporters.log.trigger" (.Values.rollout.sensor.logging) | nindent 4 }} -{{- end }} diff --git a/charts/gitops-runtime/templates/_components/event-reporters/rollout-reporter/_serviceaccount.yaml b/charts/gitops-runtime/templates/_components/event-reporters/rollout-reporter/_serviceaccount.yaml deleted file mode 100644 index 1d2ae3f8..00000000 --- a/charts/gitops-runtime/templates/_components/event-reporters/rollout-reporter/_serviceaccount.yaml +++ /dev/null @@ -1,10 +0,0 @@ -{{- define "event-reporters.rollout-reporter.sa"}} - {{- if .Values.rollout.serviceAccount.create }} -apiVersion: v1 -kind: ServiceAccount -metadata: - name: {{ include "event-reporters.rollout-reporter.serviceAccountName" .}} - labels: - {{- include "event-reporters.rollout-reporter.labels" . | nindent 4 }} - {{- end }} -{{- end }} \ No newline at end of file diff --git a/charts/gitops-runtime/templates/_components/event-reporters/workflow-reporter/_event-source.yaml b/charts/gitops-runtime/templates/_components/event-reporters/workflow-reporter/_event-source.yaml deleted file mode 100644 index 97c6011d..00000000 --- a/charts/gitops-runtime/templates/_components/event-reporters/workflow-reporter/_event-source.yaml +++ /dev/null @@ -1,46 +0,0 @@ -{{- define "event-reporters.workflow-reporter.eventsource"}} -apiVersion: argoproj.io/v1alpha1 -kind: EventSource -metadata: - name: workflow-reporter - labels: - {{- include "event-reporters.workflow-reporter.labels" . | nindent 4 }} -spec: - replicas: {{ .Values.workflow.eventSource.replicas }} - eventBusName: {{ include "codefresh-gitops-runtime.eventbus.name" .Values.global.runtime.eventBus }} - resource: - workflows: - eventTypes: - - ADD - - UPDATE - - DELETE - filter: - createdBy: null - namespace: {{ .Release.Namespace }} - group: argoproj.io - resource: workflows - version: v1alpha1 - template: - metadata: - labels: - app.kubernetes.io/name: workflow-reporter-eventsource - container: - name: "" - resources: - {{- with .Values.workflow.eventSource.resources }} - {{- . | toYaml | nindent 8 }} - {{- end }} - serviceAccountName: {{ include "event-reporters.workflow-reporter.serviceAccountName" .}} - tolerations: - {{- with .Values.workflow.eventSource.tolerations | default .Values.global.tolerations }} - {{- toYaml . | nindent 6 }} - {{- end }} - nodeSelector: - {{- with .Values.workflow.eventSource.nodeSelector | default .Values.global.nodeSelector }} - {{- toYaml . | nindent 6 }} - {{- end }} - affinity: - {{- with .Values.affinity }} - {{- toYaml . | nindent 6 }} - {{- end }} -{{- end }} diff --git a/charts/gitops-runtime/templates/_components/event-reporters/workflow-reporter/_rbac.yaml b/charts/gitops-runtime/templates/_components/event-reporters/workflow-reporter/_rbac.yaml deleted file mode 100644 index 3ca63fc7..00000000 --- a/charts/gitops-runtime/templates/_components/event-reporters/workflow-reporter/_rbac.yaml +++ /dev/null @@ -1,29 +0,0 @@ -{{- define "event-reporters.workflow-reporter.rbac"}} -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: workflow-reporter - labels: - {{- include "event-reporters.workflow-reporter.labels" . | nindent 4 }} -rules: - - apiGroups: - - "*" - resources: - - "*" - verbs: - - "*" ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: workflow-reporter - labels: - {{- include "event-reporters.workflow-reporter.labels" . | nindent 4 }} -roleRef: - apiGroup: "" - kind: Role - name: workflow-reporter -subjects: - - kind: ServiceAccount - name: {{ include "event-reporters.workflow-reporter.serviceAccountName" .}} -{{- end }} diff --git a/charts/gitops-runtime/templates/_components/event-reporters/workflow-reporter/_sensor.yaml b/charts/gitops-runtime/templates/_components/event-reporters/workflow-reporter/_sensor.yaml deleted file mode 100644 index 6a5206d6..00000000 --- a/charts/gitops-runtime/templates/_components/event-reporters/workflow-reporter/_sensor.yaml +++ /dev/null @@ -1,42 +0,0 @@ -{{- define "event-reporters.workflow-reporter.sensor"}} -apiVersion: argoproj.io/v1alpha1 -kind: Sensor -metadata: - name: workflow-reporter - labels: - {{- include "event-reporters.workflow-reporter.labels" . | nindent 4 }} -spec: - replicas: {{ .Values.workflow.sensor.replicas }} - dependencies: - - eventName: workflows - eventSourceName: workflow-reporter - name: workflows - eventBusName: {{ include "codefresh-gitops-runtime.eventbus.name" .Values.global.runtime.eventBus }} - template: - metadata: - labels: - app.kubernetes.io/name: workflow-reporter-sensor - serviceAccountName: {{ include "event-reporters.workflow-reporter.serviceAccountName" .}} - container: - name: "" - {{- include "codefresh-gitops-runtime.components.common_helpers.container-templates.env-vars" .Values.workflow.sensor.env | nindent 6 }} - resources: - {{- with .Values.workflow.sensor.resources }} - {{- . | toYaml | nindent 8 }} - {{- end }} - tolerations: - {{- with .Values.workflow.sensor.tolerations | default .Values.global.tolerations}} - {{- . | toYaml | nindent 6 }} - {{- end }} - nodeSelector: - {{- with .Values.workflow.sensor.nodeSelector | default .Values.global.nodeSelector }} - {{- . | toYaml | nindent 6 }} - {{- end }} - affinity: - {{- with .Values.affinity }} - {{- . | toYaml | nindent 6 }} - {{- end }} - triggers: - {{- include "event-reporters.http.trigger" (dict "name" "workflows" "Values" .Values "payloadDest" "data.object" "retryStrategy" .Values.workflow.sensor.retryStrategy "policy" .Values.workflow.sensor.policy "atLeastOnce" .Values.workflow.sensor.atLeastOnce) | nindent 4 }} - {{- include "event-reporters.log.trigger" (.Values.workflow.sensor.logging) | nindent 4 }} -{{- end }} diff --git a/charts/gitops-runtime/templates/_components/event-reporters/workflow-reporter/_serviceaccount.yaml b/charts/gitops-runtime/templates/_components/event-reporters/workflow-reporter/_serviceaccount.yaml deleted file mode 100644 index 023a4c84..00000000 --- a/charts/gitops-runtime/templates/_components/event-reporters/workflow-reporter/_serviceaccount.yaml +++ /dev/null @@ -1,10 +0,0 @@ -{{- define "event-reporters.workflow-reporter.sa"}} - {{- if .Values.workflow.serviceAccount.create }} -apiVersion: v1 -kind: ServiceAccount -metadata: - name: {{ include "event-reporters.workflow-reporter.serviceAccountName" .}} - labels: - {{- include "event-reporters.workflow-reporter.labels" . | nindent 4 }} - {{- end }} -{{- end }} \ No newline at end of file diff --git a/charts/gitops-runtime/templates/_components/gitops-operator/_deployment.yaml b/charts/gitops-runtime/templates/_components/gitops-operator/_deployment.yaml index 1240797d..0e59fc06 100644 --- a/charts/gitops-runtime/templates/_components/gitops-operator/_deployment.yaml +++ b/charts/gitops-runtime/templates/_components/gitops-operator/_deployment.yaml @@ -1,5 +1,4 @@ {{- define "gitops-operator.resources.deployment" }} -{{- $cfCommonTplSemver := printf "cf-common-%s" (index .Subcharts "cf-common").Chart.Version }} {{/* Merge environment variables from calculated, defaults and overwrites */}} {{- $defaults := (include "gitops-operator.resources.environment-variables.defaults" . | fromYaml) }} {{- $calculated := (include "gitops-operator.resources.environment-variables.calculated" . | fromYaml) }} @@ -43,8 +42,8 @@ spec: {{- if not (get $imageContext "tag") }} {{- $_ := set $imageContext "tag" .Chart.AppVersion }} {{- end }} - image: {{ include (printf "%s.image.name" $cfCommonTplSemver ) (dict "image" $imageContext "context" .) }} - env: {{- include (printf "%s.env-vars" $cfCommonTplSemver ) (dict "Values" $mergedValues "context" .) | nindent 8 }} + image: {{ include "codefresh-gitops-runtime.image.name" (dict "image" $imageContext "context" .) }} + env: {{- include "codefresh-gitops-runtime.env-vars" (dict "Values" $mergedValues "context" .) | nindent 8 }} imagePullPolicy: {{ .Values.image.pullPolicy }} {{- if .Values.command }} command: @@ -100,7 +99,7 @@ spec: affinity: {{ toYaml . | nindent 8 }} {{- end }} {{- with .Values.topologySpreadConstraints }} - topologySpreadConstraints: {{- include (printf "%s.tplrender" $cfCommonTplSemver ) (dict "Values" . "context" .) | nindent 8 }} + topologySpreadConstraints: {{- include "codefresh-gitops-runtime.tplrender" (dict "Values" . "context" .) | nindent 8 }} {{- end }} volumes: - name: tls-certs diff --git a/charts/gitops-runtime/templates/_components/gitops-operator/_env.yaml b/charts/gitops-runtime/templates/_components/gitops-operator/_env.yaml index d8548693..7e14bc0b 100644 --- a/charts/gitops-runtime/templates/_components/gitops-operator/_env.yaml +++ b/charts/gitops-runtime/templates/_components/gitops-operator/_env.yaml @@ -44,5 +44,6 @@ RUNTIME_VERSION: configMapKeyRef: name: codefresh-cm key: version -SOURCES_SERVER_URL: http://sources-server +SOURCES_SERVER_URL: http://argo-gateway # TODO: remove and leave only ARGO_GATEWAY_URL +ARGO_GATEWAY_URL: http://argo-gateway {{- end -}} diff --git a/charts/gitops-runtime/templates/_components/internal-router/_deployment.yaml b/charts/gitops-runtime/templates/_components/internal-router/_deployment.yaml index fc9cdae7..f9b6a729 100644 --- a/charts/gitops-runtime/templates/_components/internal-router/_deployment.yaml +++ b/charts/gitops-runtime/templates/_components/internal-router/_deployment.yaml @@ -1,5 +1,4 @@ {{- define "internal-router.resources.deployment" }} -{{- $cfCommonTplSemver := printf "cf-common-%s" (index .Subcharts "cf-common").Chart.Version }} apiVersion: apps/v1 kind: Deployment metadata: @@ -84,6 +83,6 @@ spec: {{- toYaml . | nindent 8 }} {{- end }} {{- with .Values.topologySpreadConstraints }} - topologySpreadConstraints: {{- include (printf "%s.tplrender" $cfCommonTplSemver ) (dict "Values" . "context" .) | nindent 8 }} + topologySpreadConstraints: {{- include "codefresh-gitops-runtime.tplrender" (dict "Values" . "context" .) | nindent 8 }} {{- end }} {{- end }} diff --git a/charts/gitops-runtime/templates/_helpers.tpl b/charts/gitops-runtime/templates/_helpers.tpl index ccf704a2..6af15fbb 100644 --- a/charts/gitops-runtime/templates/_helpers.tpl +++ b/charts/gitops-runtime/templates/_helpers.tpl @@ -406,16 +406,19 @@ Get ingress url for both tunnel based and ingress based runtimes Output comma separated list of installed runtime components */}} {{- define "codefresh-gitops-runtime.component-list"}} - {{- $argoEvents := dict "name" "argo-events" "version" (get .Subcharts "argo-events").Chart.AppVersion }} {{- $sealedSecrets := dict "name" "sealed-secrets" "version" (get .Subcharts "sealed-secrets").Chart.AppVersion }} {{- $internalRouter := dict "name" "internal-router" "version" .Chart.AppVersion }} {{- $appProxy := dict "name" "app-proxy" "version" (index (get .Values "app-proxy") "image" "tag") }} - {{- $sourcesServer := dict "name" "sources-server" "version" (get .Values "cf-argocd-extras").sourcesServer.container.image.tag }} - {{- $comptList := list $argoEvents $appProxy $sealedSecrets $internalRouter $sourcesServer }} -{{- if and (index .Values "argo-cd" "enabled") }} - {{- $argoCD := dict "name" "argocd" "version" (get .Subcharts "argo-cd").Chart.AppVersion }} - {{- $comptList = append $comptList $argoCD }} -{{- end }} + {{- $argoApiGateway := dict "name" "argo-gateway" "version" (get .Values "argo-gateway").image.tag }} + {{- $comptList := list $appProxy $sealedSecrets $internalRouter $argoApiGateway }} + {{- if and (index .Values "argo-cd" "enabled") }} + {{- $argoCD := dict "name" "argocd" "version" (get .Subcharts "argo-cd").Chart.AppVersion }} + {{- $comptList = append $comptList $argoCD }} + {{- end }} + {{- if index (get .Values "argo-events") "enabled" }} + {{- $argoEvents := dict "name" "argo-events" "version" (get .Subcharts "argo-events").Chart.AppVersion }} + {{- $comptList = append $comptList $argoEvents }} + {{- end }} {{- if index (get .Values "argo-rollouts") "enabled" }} {{- $rolloutReporter := dict "name" "rollout-reporter" "version" .Chart.AppVersion }} {{- $argoRollouts := dict "name" "argo-rollouts" "version" (get .Subcharts "argo-rollouts").Chart.AppVersion }} @@ -437,7 +440,7 @@ Output comma separated list of installed runtime components {{- $comptList = append $comptList $gitopsOperator }} {{- end }} {{- if not (index .Values "argo-cd" "enabled") }} - {{- $eventReporter := dict "name" "event-reporter" "version" (get .Values "cf-argocd-extras").eventReporter.container.image.tag }} + {{- $eventReporter := dict "name" "event-reporter" "version" (index .Values "global" "event-reporters" "image" "tag") }} {{- $comptList = append $comptList $eventReporter }} {{- end }} {{- $comptList | toYaml }} @@ -512,3 +515,76 @@ NO_PROXY: {{ .Values.global.noProxy | quote }} {{- printf "%s" $eventBusName }} {{- end }} + + +{{- define "codefresh-gitops-runtime.image.name" -}} + {{/* Restoring root $ context */}} + {{- $ := .context -}} + + {{- $registryName := .image.registry -}} + {{- $repositoryName := .image.repository -}} + {{- $imageTag := .image.tag | toString -}} + {{- $imageDigest := .image.digest }} + + {{- if $.Values.global -}} + {{- if $.Values.global.imageRegistry -}} + {{ $registryName = $.Values.global.imageRegistry }} + {{- end -}} + {{- end -}} + + {{- if $registryName -}} + {{- if $imageDigest }} + {{- printf "%s/%s:%s@%s" $registryName $repositoryName $imageTag $imageDigest -}} + {{- else }} + {{- printf "%s/%s:%s" $registryName $repositoryName $imageTag -}} + {{- end }} + {{- else }} + {{- if $imageDigest }} + {{- printf "%s:%s@%s" $repositoryName $imageTag $imageDigest -}} + {{- else }} + {{- printf "%s:%s" $repositoryName $imageTag -}} + {{- end }} + {{- end }} +{{- end }} + +{{- define "codefresh-gitops-runtime.env-vars"}} +{{- $ := .context }} + {{- if .Values }} + {{- if not (kindIs "map" .Values) }} + {{ fail "ERROR: env block must be a map"}} + {{- end }} + {{- end }} + {{- $env := .Values }} + {{- $templatedEnv := include "codefresh-gitops-runtime.tplrender" (dict "Values" $env "context" $) | fromYaml }} + {{- range $name, $val := $templatedEnv }} + {{- if or (kindIs "string" $val) (kindIs "bool" $val) (kindIs "int" $val) (kindIs "float64" $val) }} +- name: {{ $name }} + value: {{ $val | quote }} + {{- else if kindIs "map" $val}} + {{- if hasKey $val "valueFrom" }} + {{- if or (hasKey $val.valueFrom "secretKeyRef") (hasKey $val.valueFrom "configMapKeyRef") (hasKey $val.valueFrom "fieldRef") }} +- name: {{ $name }} +{{- $val | toYaml | nindent 2 }} + {{- else}} + {{ fail "ERROR: Only secretKeyRef/configMapKeyRef/fieldRef are supported for valueFrom block for environment variables!" }} + {{- end}} + {{- else }} + {{ fail "ERROR: Cannot generate environment variables only strings and valueFrom are supported!"}} + {{- end }} + {{- else }} + {{ fail "ERROR: Only maps and string/int/bool are supported for environment variables!"}} + {{- end }} + {{- end }} +{{- end }} + +{{- define "codefresh-gitops-runtime.tplrender" -}} + {{- $tpl := .Values -}} + {{- if not (typeIs "string" $tpl) -}} + {{- $tpl = toYaml $tpl -}} + {{- end -}} + {{- if contains "{{" $tpl -}} + {{- tpl $tpl .context }} + {{- else -}} + {{- $tpl -}} + {{- end -}} +{{- end -}} diff --git a/charts/gitops-runtime/templates/argo-gateway/_env.yaml b/charts/gitops-runtime/templates/argo-gateway/_env.yaml new file mode 100644 index 00000000..89fb754e --- /dev/null +++ b/charts/gitops-runtime/templates/argo-gateway/_env.yaml @@ -0,0 +1,102 @@ +{{- define "argo-gateway.resources.environment-variables.calculated" }} +HTTP_PROXY: {{ .Values.global.httpProxy | squote}} +HTTPS_PROXY: {{ .Values.global.httpsProxy | squote }} +NO_PROXY: {{ .Values.global.noProxy | squote }} + +{{- if and (eq (index .Values "global" "integrations" "argo-cd" "server" "auth" "type") "token") }} + {{- if not (index .Values "global" "integrations" "argo-cd" "server" "auth" "token") }} +ARGO_CD_TOKEN_SECRET_NAME: {{ required ".Values.global.integrations.argo-cd.server.auth.type is set to 'token' therefore .Values.global.integrations.argo-cd.server.auth.tokenSecretKeyRef.name is required" (index .Values "global" "integrations" "argo-cd" "server" "auth" "tokenSecretKeyRef" "name") }} +ARGO_CD_TOKEN_SECRET_KEY: {{ required ".Values.global.integrations.argo-cd.server.auth.type is set to 'token' therefore .Values.global.integrations.argo-cd.server.auth.tokenSecretKeyRef.key is required" (index .Values "global" "integrations" "argo-cd" "server" "auth" "tokenSecretKeyRef" "key" ) }} + {{- else }} +ARGO_CD_TOKEN_SECRET_NAME: "gitops-runtime-argo-cd-token" +ARGO_CD_TOKEN_SECRET_KEY: "token" + {{- end }} +{{- end }} + +ARGOCD_SERVER_ROOTPATH: {{ dig "server" "rootpath" "/" (index .Values "global" "external-argo-cd") | quote }} + +{{- if or .Values.global.codefresh.tls.caCerts.secret.create (and .Values.global.codefresh.tls.caCerts.secretKeyRef.key .Values.global.codefresh.tls.caCerts.secretKeyRef.name) }} + {{- $secretKey := .Values.global.codefresh.tls.caCerts.secret.create | ternary (default "ca-bundle.crt" .Values.global.codefresh.tls.caCerts.secret.key) .Values.global.codefresh.tls.caCerts.secretKeyRef.key }} +CODEFRESH_SSL_CERT_PATH: {{ printf "/app/config/codefresh-tls-certs/%s" $secretKey }} +{{- end }} + +{{- end }} + +{{- define "argo-gateway.resources.environment-variables.defaults" -}} +ARGOCD_SERVER: + valueFrom: + configMapKeyRef: + name: argo-gateway-cmd-params-cm + key: argocd.server +ARGO_CD_TOKEN_SECRET_NAME: argocd-token +ARGO_CD_TOKEN_SECRET_KEY: token +ARGOCD_SERVER_ROOTPATH: + valueFrom: + configMapKeyRef: + name: argocd-cmd-params-cm + key: server.rootpath + optional: true +BINARY_NAME: argo-gateway +CODEFRESH_SSL_CERT_PATH: "" +CODEFRESH_TLS_INSECURE: + valueFrom: + configMapKeyRef: + name: argocd-cmd-params-cm + key: codefresh.tls.insecure + optional: true +CODEFRESH_TOKEN: + valueFrom: + secretKeyRef: + key: token + name: codefresh-token +CODEFRESH_URL: + valueFrom: + configMapKeyRef: + key: base-url + name: codefresh-cm +LISTEN_ADDRESS: + valueFrom: + configMapKeyRef: + name: argo-gateway-cmd-params-cm + key: server.listen.address + optional: true +REDISDB: + valueFrom: + configMapKeyRef: + name: argocd-cmd-params-cm + key: redis.db + optional: true +REDIS_COMPRESSION: + valueFrom: + configMapKeyRef: + name: argocd-cmd-params-cm + key: redis.compression + optional: true +REDIS_PASSWORD: + valueFrom: + secretKeyRef: + name: argocd-redis + key: auth +REDIS_SERVER: + valueFrom: + configMapKeyRef: + name: argocd-cmd-params-cm + key: redis.server +REDIS_USERNAME: + valueFrom: + secretKeyRef: + name: argocd-redis + key: redis-username + optional: true +REPO_SERVER: + valueFrom: + configMapKeyRef: + name: argo-gateway-cmd-params-cm + key: repo.server +REPO_SERVER_TIMEOUT_SECONDS: + valueFrom: + configMapKeyRef: + name: argo-gateway-cmd-params-cm + key: repo.server.timeout.seconds + optional: true +{{- end -}} diff --git a/charts/gitops-runtime/templates/argo-gateway/_helpers.tpl b/charts/gitops-runtime/templates/argo-gateway/_helpers.tpl new file mode 100644 index 00000000..458a805d --- /dev/null +++ b/charts/gitops-runtime/templates/argo-gateway/_helpers.tpl @@ -0,0 +1,49 @@ +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "argo-gateway.fullname" -}} +{{- print "argo-gateway" }} +{{- end }} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "argo-gateway.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Common labels +*/}} +{{- define "argo-gateway.labels" -}} +helm.sh/chart: {{ include "argo-gateway.chart" . }} +{{ include "argo-gateway.selectorLabels" . }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +app.kubernetes.io/part-of: argo-gateway +app.kubernetes.io/component: argo-gateway +codefresh.io/internal: "true" +{{- end }} + +{{/* +Selector labels +*/}} +{{- define "argo-gateway.selectorLabels" -}} +app.kubernetes.io/name: argo-gateway +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end }} + +{{/* +Create the name of the service account to use +*/}} +{{- define "argo-gateway.serviceAccountName" -}} +{{- if .Values.serviceAccount.create }} +{{- default (include "argo-gateway.fullname" .) .Values.serviceAccount.name }} +{{- else }} +{{- default "default" .Values.serviceAccount.name }} +{{- end }} +{{- end }} diff --git a/charts/gitops-runtime/templates/argo-gateway/configmap.yaml b/charts/gitops-runtime/templates/argo-gateway/configmap.yaml new file mode 100644 index 00000000..990df8bd --- /dev/null +++ b/charts/gitops-runtime/templates/argo-gateway/configmap.yaml @@ -0,0 +1,22 @@ +{{- define "argo-gateway.resources.configmap.defaults" }} +argocd.server: {{ include "codefresh-gitops-runtime.argocd.server.no-protocol-url" . }} +repo.server: {{ include "codefresh-gitops-runtime.argocd.reposerver.url" . }} +redis.server: {{ include "codefresh-gitops-runtime.argocd.redis.url" . }} +{{- end }} + +{{- $defaultConfig := (include "argo-gateway.resources.configmap.defaults" . | fromYaml ) }} +{{- $overrides := index .Values "argo-gateway" "config" | default dict }} +{{- $mergedConfig := mergeOverwrite $defaultConfig $overrides }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: argo-gateway-cmd-params-cm + labels: + {{- include "argo-gateway.labels" . | nindent 4 }} +data: + {{- $mergedConfig | toYaml | nindent 2 }} + {{- if index .Values "argo-cd" "enabled" }} + foo: bar + {{- else }} + baz: qux + {{- end }} diff --git a/charts/gitops-runtime/templates/argo-gateway/deployment.yaml b/charts/gitops-runtime/templates/argo-gateway/deployment.yaml new file mode 100644 index 00000000..6f549993 --- /dev/null +++ b/charts/gitops-runtime/templates/argo-gateway/deployment.yaml @@ -0,0 +1,107 @@ +{{- $context := deepCopy . }} +{{- $_ := set $context "Values" (deepCopy (get .Values "argo-gateway")) }} +{{- $_ := 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) }} +{{- $calculated := (include "argo-gateway.resources.environment-variables.calculated" $context | fromYaml) }} +{{- $overrides := $context.Values.env }} +{{- $mergedValues := mergeOverwrite $defaults $calculated $overrides }} +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "argo-gateway.fullname" . }} + labels: + {{- include "argo-gateway.labels" . | nindent 4 }} +spec: + replicas: {{ $context.Values.replicaCount }} + selector: + matchLabels: + {{- include "argo-gateway.selectorLabels" . | nindent 6 }} + template: + metadata: + {{- with $context.Values.podAnnotations }} + annotations: + {{- toYaml . | nindent 8 }} + {{- end }} + labels: + {{- include "argo-gateway.selectorLabels" . | nindent 8 }} + {{- with $context.Values.podLabels }} + {{- toYaml . | nindent 8 }} + {{- end }} + spec: + {{- with $context.Values.imagePullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 8 }} + {{- end }} + serviceAccountName: {{ include "argo-gateway.serviceAccountName" $context }} + securityContext: + {{- toYaml $context.Values.podSecurityContext | nindent 8 }} + containers: + - name: {{ include "argo-gateway.fullname" . }} + securityContext: + {{- toYaml $context.Values.securityContext | nindent 12 }} + {{- $imageContext := deepCopy $context.Values.image }} + image: {{ include "codefresh-gitops-runtime.image.name" (dict "image" $imageContext "context" .) }} + env: {{- include "codefresh-gitops-runtime.env-vars" (dict "Values" $mergedValues "context" .) | nindent 8 }} + imagePullPolicy: {{ $context.Values.image.pullPolicy }} + {{- if $context.Values.command }} + command: + {{- $context.Values.command | toYaml | nindent 8 }} + {{- end }} + {{- with $context.Values.extraArgs }} + args: + {{- . | toYaml | nindent 8 }} + {{- end }} + ports: + - name: http + containerPort: 8090 + readinessProbe: + initialDelaySeconds: {{ $context.Values.readinessProbe.initialDelaySeconds }} + periodSeconds: {{ $context.Values.readinessProbe.periodSeconds }} + timeoutSeconds: {{ $context.Values.readinessProbe.timeoutSeconds }} + successThreshold: {{ $context.Values.readinessProbe.successThreshold }} + failureThreshold: {{ $context.Values.readinessProbe.failureThreshold }} + httpGet: + port: http + path: /healthz + livenessProbe: + initialDelaySeconds: {{ $context.Values.livenessProbe.initialDelaySeconds }} + periodSeconds: {{ $context.Values.livenessProbe.periodSeconds }} + timeoutSeconds: {{ $context.Values.livenessProbe.timeoutSeconds }} + successThreshold: {{ $context.Values.livenessProbe.successThreshold }} + failureThreshold: {{ $context.Values.livenessProbe.failureThreshold }} + httpGet: + port: http + path: /healthz?full=true + resources: + {{- toYaml $context.Values.resources | nindent 10 }} + volumeMounts: + {{- if or $context.Values.global.codefresh.tls.caCerts.secretKeyRef $context.Values.global.codefresh.tls.caCerts.secret.create }} + - name: codefresh-tls-certs + mountPath: /app/config/codefresh-tls-certs + readOnly: true + {{- end }} + {{- with $context.Values.extraVolumeMounts }} + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with $context.Values.nodeSelector | default $context.Values.global.nodeSelector }} + nodeSelector: {{ toYaml . | nindent 8 }} + {{- end }} + {{- with $context.Values.tolerations | default $context.Values.global.tolerations }} + tolerations: {{ toYaml . | nindent 6 }} + {{- end }} + {{- with $context.Values.affinity }} + affinity: {{ toYaml . | nindent 8 }} + {{- end }} + {{- with $context.Values.topologySpreadConstraints }} + topologySpreadConstraints: {{- include "codefresh-gitops-runtime.tplrender" (dict "Values" . "context" .) | nindent 8 }} + {{- end }} + volumes: + {{- if or $context.Values.global.codefresh.tls.caCerts.secretKeyRef $context.Values.global.codefresh.tls.caCerts.secret.create }} + - name: codefresh-tls-certs + secret: + secretName: {{ $context.Values.global.codefresh.tls.caCerts.secretKeyRef.name | default "codefresh-tls-certs" }} + {{- end }} + {{- with $context.Values.extraVolumes }} + {{- toYaml . | nindent 6 }} + {{- end }} diff --git a/charts/gitops-runtime/templates/argo-gateway/hpa.yaml b/charts/gitops-runtime/templates/argo-gateway/hpa.yaml new file mode 100644 index 00000000..21d5816d --- /dev/null +++ b/charts/gitops-runtime/templates/argo-gateway/hpa.yaml @@ -0,0 +1,38 @@ +{{- $context := deepCopy . }} +{{- $_ := set $context "Values" (deepCopy (get .Values "argo-gateway")) }} +{{- $_ := set $context.Values "global" (deepCopy (get .Values "global")) }} +{{- if and $context.Values.hpa.enabled }} +apiVersion: autoscaling/v2 +kind: HorizontalPodAutoscaler +metadata: + name: {{ include "argo-gateway.fullname" . }} + labels: + {{- include "argo-gateway.labels" . | nindent 4 }} +spec: + scaleTargetRef: + apiVersion: apps/v1 + kind: Deployment + name: {{ include "argo-gateway.fullname" . }} + minReplicas: {{ $context.Values.hpa.minReplicas | default 1 }} + maxReplicas: {{ $context.Values.hpa.maxReplicas | default 10 }} + metrics: + {{- if $context.Values.hpa.metrics }} + {{- toYaml $context.Values.hpa.metrics | indent 4 }} + {{- end }} + {{- with $context.Values.hpa.targetMemoryUtilizationPercentage }} + - type: Resource + resource: + name: memory + target: + type: Utilization + averageUtilization: {{ . | int }} + {{- end }} + {{- with $context.Values.hpa.targetCPUUtilizationPercentage }} + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: {{ . | int }} + {{- end }} +{{- end -}} diff --git a/charts/gitops-runtime/templates/argo-gateway/pdb.yaml b/charts/gitops-runtime/templates/argo-gateway/pdb.yaml new file mode 100644 index 00000000..f7910fcb --- /dev/null +++ b/charts/gitops-runtime/templates/argo-gateway/pdb.yaml @@ -0,0 +1,20 @@ +{{- $context := deepCopy . }} +{{- $_ := set $context "Values" (deepCopy (get .Values "argo-gateway")) }} +{{- $_ := set $context.Values "global" (deepCopy (get .Values "global")) }} + +{{- if and $context.Values.pdb.enabled }} +apiVersion: policy/v1 +kind: PodDisruptionBudget +metadata: + name: {{ include "argo-gateway.fullname" . }} +spec: + {{- with $context.Values.pdb.minAvailable }} + minAvailable: {{ . }} + {{- end }} + {{- with $context.Values.pdb.maxUnavailable }} + maxUnavailable: {{ . }} + {{- end }} + selector: + matchLabels: + {{- include "argo-gateway.selectorLabels" . | nindent 6 }} +{{- end }} diff --git a/charts/gitops-runtime/templates/argo-gateway/rbac.yaml b/charts/gitops-runtime/templates/argo-gateway/rbac.yaml new file mode 100644 index 00000000..8f22c568 --- /dev/null +++ b/charts/gitops-runtime/templates/argo-gateway/rbac.yaml @@ -0,0 +1,64 @@ +{{- $context := deepCopy . }} +{{- $_ := set $context "Values" (deepCopy (get .Values "argo-gateway")) }} +{{- $_ := set $context.Values "global" (deepCopy (get .Values "global")) }} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ include "argo-gateway.serviceAccountName" $context }} + labels: + {{- include "argo-gateway.labels" . | nindent 4 }} +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: {{ include "argo-gateway.fullname" . }} + labels: + {{- include "argo-gateway.labels" . | nindent 4 }} +rules: + - apiGroups: + - '' + resources: + - configmaps + - secrets + verbs: + - get + - list + - watch + - apiGroups: + - '' + - apps + resources: + - deployments + - podtemplates + verbs: + - patch + - apiGroups: + - apps + resources: + - replicasets + verbs: + - list + - patch + - apiGroups: + - argoproj.io + resources: + - rollouts + - rollouts/status + verbs: + - get + - patch +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: {{ include "argo-gateway.fullname" . }} + labels: + {{- include "argo-gateway.labels" . | nindent 4 }} +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: {{ include "argo-gateway.fullname" . }} +subjects: + - kind: ServiceAccount + name: {{ include "argo-gateway.serviceAccountName" $context }} + namespace: {{ .Release.Namespace }} diff --git a/charts/gitops-runtime/templates/argo-gateway/service.yaml b/charts/gitops-runtime/templates/argo-gateway/service.yaml new file mode 100644 index 00000000..3ffb3db3 --- /dev/null +++ b/charts/gitops-runtime/templates/argo-gateway/service.yaml @@ -0,0 +1,18 @@ +{{- $context := deepCopy . }} +{{- $_ := set $context "Values" (deepCopy (get .Values "argo-gateway")) }} +{{- $_ := set $context.Values "global" (deepCopy (get .Values "global")) }} +apiVersion: v1 +kind: Service +metadata: + name: {{ include "argo-gateway.fullname" . }} + labels: + {{- include "argo-gateway.labels" . | nindent 4 }} +spec: + type: {{ $context.Values.service.type | default "ClusterIP" }} + ports: + - port: {{ $context.Values.service.port | default 80 }} + targetPort: {{ $context.Values.service.targetPort | default "http" }} + protocol: TCP + name: http + selector: + {{- include "argo-gateway.selectorLabels" . | nindent 4 }} diff --git a/charts/gitops-runtime/templates/argo-gateway/serviceMonitor.yaml b/charts/gitops-runtime/templates/argo-gateway/serviceMonitor.yaml new file mode 100644 index 00000000..10794e6f --- /dev/null +++ b/charts/gitops-runtime/templates/argo-gateway/serviceMonitor.yaml @@ -0,0 +1,26 @@ +{{- $context := deepCopy . }} +{{- $_ := set $context "Values" (deepCopy (get .Values "argo-gateway")) }} +{{- $_ := set $context.Values "global" (deepCopy (get .Values "global")) }} +{{- if $context.Values.serviceMonitor.enabled -}} +apiVersion: monitoring.coreos.com/v1 +kind: ServiceMonitor +metadata: + name: {{ include "argo-gateway.fullname" . }} + labels: + {{- include "argo-gateway.labels" . | nindent 4 }} + {{- with $context.Values.serviceMonitor.labels }} + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + selector: + matchLabels: + {{- include "argo-gateway.selectorLabels" . | nindent 8 }} + endpoints: + - port: http + {{- if $context.Values.serviceMonitor.interval }} + interval: {{ $context.Values.serviceMonitor.interval }} + {{- end }} + {{- if $context.Values.serviceMonitor.scrapeTimeout }} + scrapeTimeout: {{ $context.Values.serviceMonitor.scrapeTimeout }} + {{- end }} +{{- end }} diff --git a/charts/gitops-runtime/templates/cf-argocd-extras/event-reporter/configmap.yaml b/charts/gitops-runtime/templates/cf-argocd-extras/event-reporter/configmap.yaml deleted file mode 100644 index 536185fb..00000000 --- a/charts/gitops-runtime/templates/cf-argocd-extras/event-reporter/configmap.yaml +++ /dev/null @@ -1 +0,0 @@ -{{- include "cf-argocd-extras.event-reporter.configmap" . }} diff --git a/charts/gitops-runtime/templates/cf-argocd-extras/event-reporter/pdb.yaml b/charts/gitops-runtime/templates/cf-argocd-extras/event-reporter/pdb.yaml deleted file mode 100644 index f0d5e459..00000000 --- a/charts/gitops-runtime/templates/cf-argocd-extras/event-reporter/pdb.yaml +++ /dev/null @@ -1 +0,0 @@ -{{- include "cf-argocd-extras.event-reporter.pdb" . }} diff --git a/charts/gitops-runtime/templates/cf-argocd-extras/event-reporter/rbac.yaml b/charts/gitops-runtime/templates/cf-argocd-extras/event-reporter/rbac.yaml deleted file mode 100644 index a2ecb9d6..00000000 --- a/charts/gitops-runtime/templates/cf-argocd-extras/event-reporter/rbac.yaml +++ /dev/null @@ -1 +0,0 @@ -{{- include "cf-argocd-extras.event-reporter.rbac" . }} diff --git a/charts/gitops-runtime/templates/cf-argocd-extras/event-reporter/service.yaml b/charts/gitops-runtime/templates/cf-argocd-extras/event-reporter/service.yaml deleted file mode 100644 index 1666e60e..00000000 --- a/charts/gitops-runtime/templates/cf-argocd-extras/event-reporter/service.yaml +++ /dev/null @@ -1 +0,0 @@ -{{- include "cf-argocd-extras.event-reporter.service" . }} diff --git a/charts/gitops-runtime/templates/cf-argocd-extras/event-reporter/serviceMonitor.yaml b/charts/gitops-runtime/templates/cf-argocd-extras/event-reporter/serviceMonitor.yaml deleted file mode 100644 index 63c88afe..00000000 --- a/charts/gitops-runtime/templates/cf-argocd-extras/event-reporter/serviceMonitor.yaml +++ /dev/null @@ -1 +0,0 @@ -{{- include "cf-argocd-extras.event-reporter.serviceMonitor" . }} diff --git a/charts/gitops-runtime/templates/cf-argocd-extras/event-reporter/statefulset.yaml b/charts/gitops-runtime/templates/cf-argocd-extras/event-reporter/statefulset.yaml deleted file mode 100644 index ad89d91e..00000000 --- a/charts/gitops-runtime/templates/cf-argocd-extras/event-reporter/statefulset.yaml +++ /dev/null @@ -1 +0,0 @@ -{{- include "cf-argocd-extras.event-reporter.statefulset" . }} diff --git a/charts/gitops-runtime/templates/cf-argocd-extras/sources-server/configmap.yaml b/charts/gitops-runtime/templates/cf-argocd-extras/sources-server/configmap.yaml deleted file mode 100644 index e03d8e37..00000000 --- a/charts/gitops-runtime/templates/cf-argocd-extras/sources-server/configmap.yaml +++ /dev/null @@ -1 +0,0 @@ -{{- include "cf-argocd-extras.sources-server.configmap" . }} diff --git a/charts/gitops-runtime/templates/cf-argocd-extras/sources-server/deployment.yaml b/charts/gitops-runtime/templates/cf-argocd-extras/sources-server/deployment.yaml deleted file mode 100644 index abc9e889..00000000 --- a/charts/gitops-runtime/templates/cf-argocd-extras/sources-server/deployment.yaml +++ /dev/null @@ -1 +0,0 @@ -{{- include "cf-argocd-extras.sources-server.deployment" . }} diff --git a/charts/gitops-runtime/templates/cf-argocd-extras/sources-server/hpa.yaml b/charts/gitops-runtime/templates/cf-argocd-extras/sources-server/hpa.yaml deleted file mode 100644 index b5817fd6..00000000 --- a/charts/gitops-runtime/templates/cf-argocd-extras/sources-server/hpa.yaml +++ /dev/null @@ -1 +0,0 @@ -{{- include "cf-argocd-extras.sources-server.hpa" . }} diff --git a/charts/gitops-runtime/templates/cf-argocd-extras/sources-server/pdb.yaml b/charts/gitops-runtime/templates/cf-argocd-extras/sources-server/pdb.yaml deleted file mode 100644 index af83e596..00000000 --- a/charts/gitops-runtime/templates/cf-argocd-extras/sources-server/pdb.yaml +++ /dev/null @@ -1 +0,0 @@ -{{- include "cf-argocd-extras.sources-server.pdb" . }} diff --git a/charts/gitops-runtime/templates/cf-argocd-extras/sources-server/rbac.yaml b/charts/gitops-runtime/templates/cf-argocd-extras/sources-server/rbac.yaml deleted file mode 100644 index 0157b716..00000000 --- a/charts/gitops-runtime/templates/cf-argocd-extras/sources-server/rbac.yaml +++ /dev/null @@ -1 +0,0 @@ -{{- include "cf-argocd-extras.sources-server.rbac" . }} diff --git a/charts/gitops-runtime/templates/cf-argocd-extras/sources-server/service.yaml b/charts/gitops-runtime/templates/cf-argocd-extras/sources-server/service.yaml deleted file mode 100644 index c81f843b..00000000 --- a/charts/gitops-runtime/templates/cf-argocd-extras/sources-server/service.yaml +++ /dev/null @@ -1 +0,0 @@ -{{- include "cf-argocd-extras.sources-server.service" . }} 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 new file mode 100644 index 00000000..007edfb8 --- /dev/null +++ b/charts/gitops-runtime/templates/event-reporters/cluster-event-reporter/_env.yaml @@ -0,0 +1,189 @@ +{{- define "cluster-event-reporter.resources.environment-variables.calculated" }} +HTTP_PROXY: {{ .Values.global.httpProxy | squote}} +HTTPS_PROXY: {{ .Values.global.httpsProxy | squote }} +NO_PROXY: {{ .Values.global.noProxy | squote }} + +{{- if and (eq (index .Values "global" "integrations" "argo-cd" "server" "auth" "type") "token") }} + {{- if not (index .Values "global" "integrations" "argo-cd" "server" "auth" "token") }} +ARGO_CD_TOKEN_SECRET_NAME: {{ required ".Values.global.integrations.argo-cd.server.auth.type is set to 'token' therefore .Values.global.integrations.argo-cd.server.auth.tokenSecretKeyRef.name is required" (index .Values "global" "integrations" "argo-cd" "server" "auth" "tokenSecretKeyRef" "name") }} +ARGO_CD_TOKEN_SECRET_KEY: {{ required ".Values.global.integrations.argo-cd.server.auth.type is set to 'token' therefore .Values.global.integrations.argo-cd.server.auth.tokenSecretKeyRef.key is required" (index .Values "global" "integrations" "argo-cd" "server" "auth" "tokenSecretKeyRef" "key" ) }} + {{- else }} +ARGO_CD_TOKEN_SECRET_NAME: "gitops-runtime-argo-cd-token" +ARGO_CD_TOKEN_SECRET_KEY: "token" + {{- end }} +{{- end }} + +ARGOCD_SERVER_ROOTPATH: {{ dig "server" "rootpath" "/" (index .Values "global" "external-argo-cd") | quote }} + +{{- if or .Values.global.codefresh.tls.caCerts.secret.create (and .Values.global.codefresh.tls.caCerts.secretKeyRef.key .Values.global.codefresh.tls.caCerts.secretKeyRef.name) }} + {{- $secretKey := .Values.global.codefresh.tls.caCerts.secret.create | ternary (default "ca-bundle.crt" .Values.global.codefresh.tls.caCerts.secret.key) .Values.global.codefresh.tls.caCerts.secretKeyRef.key }} +CODEFRESH_SSL_CERT_PATH: {{ printf "/app/config/codefresh-tls-certs/%s" $secretKey }} +{{- end }} + +{{- end }} + +{{- define "cluster-event-reporter.resources.environment-variables.defaults" -}} +REPORTER_MODE: resource +APP_QUEUE_SIZE: + valueFrom: + configMapKeyRef: + name: cluster-event-reporter-cmd-params-cm + key: app.queue.size +ARGOCD_APPLICATION_NAMESPACES: + valueFrom: + configMapKeyRef: + name: argocd-cmd-params-cm + key: application.namespaces + optional: true +ARGOCD_SERVER: + valueFrom: + configMapKeyRef: + name: cluster-event-reporter-cmd-params-cm + key: argocd.server +ARGOCD_SERVER_ROOTPATH: + valueFrom: + configMapKeyRef: + name: argocd-cmd-params-cm + key: server.rootpath + optional: true +ARGO_CD_TOKEN_SECRET_NAME: argocd-token +ARGO_CD_TOKEN_SECRET_KEY: token +BINARY_NAME: event-reporter +CODEFRESH_SSL_CERT_PATH: "" +CODEFRESH_TLS_INSECURE: + valueFrom: + configMapKeyRef: + name: argocd-cmd-params-cm + key: codefresh.tls.insecure + optional: true +CODEFRESH_TOKEN: + valueFrom: + secretKeyRef: + name: codefresh-token + key: token +CODEFRESH_URL: + valueFrom: + configMapKeyRef: + key: base-url + name: codefresh-cm +EVENT_REPORTER_REPLICAS: 1 +INSECURE: + valueFrom: + configMapKeyRef: + name: cluster-event-reporter-cmd-params-cm + key: insecure + optional: true +LISTEN_ADDRESS: + valueFrom: + configMapKeyRef: + name: cluster-event-reporter-cmd-params-cm + key: listen.address + optional: true +LOG_FORMAT: + valueFrom: + configMapKeyRef: + name: cluster-event-reporter-cmd-params-cm + key: log.format + optional: true +LOG_LEVEL: + valueFrom: + configMapKeyRef: + name: cluster-event-reporter-cmd-params-cm + key: log.level + optional: true +MAX_APP_RETRIES: + valueFrom: + configMapKeyRef: + name: cluster-event-reporter-cmd-params-cm + key: max.app.retries +METRICS_LISTEN_ADDRESS: + valueFrom: + configMapKeyRef: + name: cluster-event-reporter-cmd-params-cm + key: metrics.listen.address + optional: true +OTEL_EXPORTER_OTLP_TRACES_ENDPOINT: + valueFrom: + configMapKeyRef: + name: cluster-event-reporter-cmd-params-cm + key: otlp.address + optional: true +REDISDB: + valueFrom: + configMapKeyRef: + name: argocd-cmd-params-cm + key: redis.db + optional: true +REDIS_COMPRESSION: + valueFrom: + configMapKeyRef: + name: argocd-cmd-params-cm + key: redis.compression + optional: true +REDIS_PASSWORD: + valueFrom: + secretKeyRef: + name: argocd-redis + key: auth +REDIS_SERVER: + valueFrom: + configMapKeyRef: + name: argocd-cmd-params-cm + key: redis.server +REDIS_USERNAME: + valueFrom: + secretKeyRef: + name: argocd-redis + key: redis-username + optional: true +REPO_SERVER: + valueFrom: + configMapKeyRef: + name: cluster-event-reporter-cmd-params-cm + key: repo.server +REPO_SERVER_PLAINTEXT: + valueFrom: + configMapKeyRef: + name: cluster-event-reporter-cmd-params-cm + key: repo.server.plaintext + optional: true +REPO_SERVER_STRICT_TLS: + valueFrom: + configMapKeyRef: + name: cluster-event-reporter-cmd-params-cm + key: repo.server.strict.tls + optional: true +REPO_SERVER_TIMEOUT_SECONDS: + valueFrom: + configMapKeyRef: + name: cluster-event-reporter-cmd-params-cm + key: repo.server.timeout.seconds + optional: true +RUNTIME_VERSION: + valueFrom: + configMapKeyRef: + name: codefresh-cm + key: version +SHARDING_ALGORITHM: + valueFrom: + configMapKeyRef: + name: cluster-event-reporter-cmd-params-cm + key: sharding.algorithm + optional: true +ARGO_GATEWAY_URL: + valueFrom: + configMapKeyRef: + name: cluster-event-reporter-cmd-params-cm + key: argo-gateway.server +THREADINESS: + valueFrom: + configMapKeyRef: + name: cluster-event-reporter-cmd-params-cm + key: threadiness +RESOURCE_THREADINESS: + valueFrom: + configMapKeyRef: + name: cluster-event-reporter-cmd-params-cm + key: resource.threadiness +SERVICE_NAME: {{ include "cluster-event-reporter.fullname" . }} +{{- end -}} diff --git a/charts/gitops-runtime/templates/event-reporters/cluster-event-reporter/_helpers.tpl b/charts/gitops-runtime/templates/event-reporters/cluster-event-reporter/_helpers.tpl new file mode 100644 index 00000000..c7a10fdc --- /dev/null +++ b/charts/gitops-runtime/templates/event-reporters/cluster-event-reporter/_helpers.tpl @@ -0,0 +1,48 @@ +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "cluster-event-reporter.fullname" -}} +{{- print "cluster-event-reporter" }} +{{- end }} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "cluster-event-reporter.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Common labels +*/}} +{{- define "cluster-event-reporter.labels" -}} +helm.sh/chart: {{ include "cluster-event-reporter.chart" . }} +{{ include "cluster-event-reporter.selectorLabels" . }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +app.kubernetes.io/part-of: cluster-event-reporter +app.kubernetes.io/component: cluster-event-reporter +codefresh.io/internal: "true" +{{- end }} + +{{/* +Selector labels +*/}} +{{- define "cluster-event-reporter.selectorLabels" -}} +app.kubernetes.io/name: cluster-event-reporter +{{- end }} + +{{/* +Create the name of the service account to use +*/}} +{{- define "cluster-event-reporter.serviceAccountName" -}} +{{- if .Values.serviceAccount.create }} +{{- default (include "cluster-event-reporter.fullname" .) .Values.serviceAccount.name }} +{{- else }} +{{- default "default" .Values.serviceAccount.name }} +{{- end }} +{{- end }} diff --git a/charts/gitops-runtime/templates/event-reporters/cluster-event-reporter/configmap.yaml b/charts/gitops-runtime/templates/event-reporters/cluster-event-reporter/configmap.yaml new file mode 100644 index 00000000..0a740a50 --- /dev/null +++ b/charts/gitops-runtime/templates/event-reporters/cluster-event-reporter/configmap.yaml @@ -0,0 +1,23 @@ +{{- define "cluster-event-reporter.resources.configmap.defaults" }} +argocd.server: {{ include "codefresh-gitops-runtime.argocd.server.no-protocol-url" . }} +redis.server: {{ include "codefresh-gitops-runtime.argocd.redis.url" . }} +repo.server: {{ include "codefresh-gitops-runtime.argocd.reposerver.url" . }} +argo-gateway.server: http://argo-gateway +resource.threadiness: '100' +app.queue.size: '1000' +max.app.retries: '5' +threadiness: '100' +{{- end }} + +{{- $defaultConfig := (include "cluster-event-reporter.resources.configmap.defaults" . | fromYaml ) }} +{{- $globalOverrides := index .Values "global" "event-reporters" "config" | default dict }} +{{- $reporterOverrides := index .Values "event-reporters" "cluster-event-reporter" "config" | default dict }} +{{- $mergedConfig := mergeOverwrite $defaultConfig $globalOverrides $reporterOverrides }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: cluster-event-reporter-cmd-params-cm + labels: + {{- include "cluster-event-reporter.labels" . | nindent 4 }} +data: + {{- $mergedConfig | toYaml | nindent 2 }} 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 new file mode 100644 index 00000000..794e91c6 --- /dev/null +++ b/charts/gitops-runtime/templates/event-reporters/cluster-event-reporter/deployment.yaml @@ -0,0 +1,113 @@ +{{- $context := deepCopy . }} +{{- $_ := set $context "Values" (deepCopy (get (index .Values "global") "event-reporters")) }} +{{- $_ := 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" }} +{{- $values := mergeOverwrite $context.Values $valuesOverrides }} +{{- $_ := set $context "Values" $values }} +{{/* Merge environment variables from calculated, defaults and overwrites */}} +{{- $defaults := (include "cluster-event-reporter.resources.environment-variables.defaults" $context | fromYaml) }} +{{- $calculated := (include "cluster-event-reporter.resources.environment-variables.calculated" $context | fromYaml) }} +{{- $overrides := $context.Values.env }} +{{- $mergedValues := mergeOverwrite $defaults $calculated $overrides }} +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "cluster-event-reporter.fullname" . }} + labels: + {{- include "cluster-event-reporter.labels" . | nindent 4 }} +spec: + replicas: {{ $context.Values.replicaCount }} + selector: + matchLabels: + {{- include "cluster-event-reporter.selectorLabels" . | nindent 6 }} + template: + metadata: + {{- with $context.Values.podAnnotations }} + annotations: + {{- toYaml . | nindent 8 }} + {{- end }} + labels: + {{- include "cluster-event-reporter.selectorLabels" . | nindent 8 }} + {{- with $context.Values.podLabels }} + {{- toYaml . | nindent 8 }} + {{- end }} + spec: + {{- with $context.Values.imagePullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 8 }} + {{- end }} + serviceAccountName: {{ include "cluster-event-reporter.serviceAccountName" $context }} + securityContext: + {{- toYaml $context.Values.podSecurityContext | nindent 8 }} + containers: + - name: {{ include "cluster-event-reporter.fullname" . }} + securityContext: + {{- toYaml $context.Values.securityContext | nindent 12 }} + {{- $imageContext := deepCopy $context.Values.image }} + image: {{ include "codefresh-gitops-runtime.image.name" (dict "image" $imageContext "context" .) }} + env: {{- include "codefresh-gitops-runtime.env-vars" (dict "Values" $mergedValues "context" .) | nindent 8 }} + imagePullPolicy: {{ $context.Values.image.pullPolicy }} + {{- if $context.Values.command }} + command: + {{- $context.Values.command | toYaml | nindent 8 }} + {{- end }} + {{- with $context.Values.extraArgs }} + args: + {{- . | toYaml | nindent 8 }} + {{- end }} + ports: + {{- range $name, $port := $context.Values.service.ports }} + - name: {{ $name }} + containerPort: {{ $port.targetPort }} + {{- end }} + readinessProbe: + initialDelaySeconds: {{ $context.Values.readinessProbe.initialDelaySeconds }} + periodSeconds: {{ $context.Values.readinessProbe.periodSeconds }} + timeoutSeconds: {{ $context.Values.readinessProbe.timeoutSeconds }} + successThreshold: {{ $context.Values.readinessProbe.successThreshold }} + failureThreshold: {{ $context.Values.readinessProbe.failureThreshold }} + httpGet: + port: http + path: /healthz + livenessProbe: + initialDelaySeconds: {{ $context.Values.livenessProbe.initialDelaySeconds }} + periodSeconds: {{ $context.Values.livenessProbe.periodSeconds }} + timeoutSeconds: {{ $context.Values.livenessProbe.timeoutSeconds }} + successThreshold: {{ $context.Values.livenessProbe.successThreshold }} + failureThreshold: {{ $context.Values.livenessProbe.failureThreshold }} + httpGet: + port: http + path: /healthz?full=true + resources: + {{- toYaml $context.Values.resources | nindent 10 }} + volumeMounts: + {{- if or $context.Values.global.codefresh.tls.caCerts.secretKeyRef $context.Values.global.codefresh.tls.caCerts.secret.create }} + - name: codefresh-tls-certs + mountPath: /app/config/codefresh-tls-certs + readOnly: true + {{- end }} + {{- with $context.Values.extraVolumeMounts }} + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with $context.Values.nodeSelector | default $context.Values.global.nodeSelector }} + nodeSelector: {{ toYaml . | nindent 8 }} + {{- end }} + {{- with $context.Values.tolerations | default $context.Values.global.tolerations }} + tolerations: {{ toYaml . | nindent 6 }} + {{- end }} + {{- with $context.Values.affinity }} + affinity: {{ toYaml . | nindent 8 }} + {{- end }} + {{- with $context.Values.topologySpreadConstraints }} + topologySpreadConstraints: {{- include "codefresh-gitops-runtime.tplrender" (dict "Values" . "context" .) | nindent 8 }} + {{- end }} + volumes: + {{- if or $context.Values.global.codefresh.tls.caCerts.secretKeyRef $context.Values.global.codefresh.tls.caCerts.secret.create }} + - name: codefresh-tls-certs + secret: + secretName: {{ $context.Values.global.codefresh.tls.caCerts.secretKeyRef.name | default "codefresh-tls-certs" }} + {{- end }} + {{- with $context.Values.extraVolumes }} + {{- toYaml . | nindent 6 }} + {{- end }} diff --git a/charts/gitops-runtime/templates/event-reporters/cluster-event-reporter/pdb.yaml b/charts/gitops-runtime/templates/event-reporters/cluster-event-reporter/pdb.yaml new file mode 100644 index 00000000..3399b312 --- /dev/null +++ b/charts/gitops-runtime/templates/event-reporters/cluster-event-reporter/pdb.yaml @@ -0,0 +1,22 @@ +{{- $context := deepCopy . }} +{{- $_ := set $context "Values" (deepCopy (get (index .Values "global") "event-reporters")) }} +{{- $_ := set $context.Values "global" (deepCopy (get .Values "global")) }} +{{- $valuesOverrides := index .Values "event-reporters" "cluster-event-reporter" }} +{{- $_ := mergeOverwrite $context.Values $valuesOverrides | set $context "Values" }} + +{{- if and $context.Values.pdb.enabled }} +apiVersion: policy/v1 +kind: PodDisruptionBudget +metadata: + name: {{ include "cluster-event-reporter.fullname" . }} +spec: + {{- with $context.Values.pdb.minAvailable }} + minAvailable: {{ . }} + {{- end }} + {{- with $context.Values.pdb.maxUnavailable }} + maxUnavailable: {{ . }} + {{- end }} + selector: + matchLabels: + {{- include "cluster-event-reporter.selectorLabels" . | nindent 6 }} +{{- end }} diff --git a/charts/gitops-runtime/templates/event-reporters/cluster-event-reporter/rbac.yaml b/charts/gitops-runtime/templates/event-reporters/cluster-event-reporter/rbac.yaml new file mode 100644 index 00000000..10a3c46d --- /dev/null +++ b/charts/gitops-runtime/templates/event-reporters/cluster-event-reporter/rbac.yaml @@ -0,0 +1,44 @@ +{{- $context := deepCopy . }} +{{- $_ := set $context "Values" (deepCopy (get (index .Values "global") "event-reporters")) }} +{{- $_ := set $context.Values "global" (deepCopy (get .Values "global")) }} +{{- $valuesOverrides := index .Values "event-reporters" "cluster-event-reporter" }} +{{- $_ := mergeOverwrite $context.Values $valuesOverrides | set $context "Values" }} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ include "cluster-event-reporter.serviceAccountName" $context }} + labels: + {{- include "cluster-event-reporter.labels" . | nindent 4 }} +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: {{ include "cluster-event-reporter.fullname" . }} + labels: + {{- include "cluster-event-reporter.labels" . | nindent 4 }} +rules: + - apiGroups: + - '*' + resources: + - '*' + verbs: + - '*' + - nonResourceURLs: + - '*' + verbs: + - '*' +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: {{ include "cluster-event-reporter.fullname" . }} + labels: + {{- include "cluster-event-reporter.labels" . | nindent 4 }} +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: {{ include "cluster-event-reporter.fullname" . }} +subjects: + - kind: ServiceAccount + name: {{ include "cluster-event-reporter.serviceAccountName" $context }} + namespace: {{ .Release.Namespace }} diff --git a/charts/gitops-runtime/templates/event-reporters/cluster-event-reporter/service.yaml b/charts/gitops-runtime/templates/event-reporters/cluster-event-reporter/service.yaml new file mode 100644 index 00000000..355032fc --- /dev/null +++ b/charts/gitops-runtime/templates/event-reporters/cluster-event-reporter/service.yaml @@ -0,0 +1,21 @@ +{{- $context := deepCopy . }} +{{- $_ := set $context "Values" (deepCopy (get (index .Values "global") "event-reporters")) }} +{{- $_ := set $context.Values "global" (deepCopy (get .Values "global")) }} +{{- $valuesOverrides := index .Values "event-reporters" "cluster-event-reporter" }} +{{- $_ := mergeOverwrite $context.Values $valuesOverrides | set $context "Values" }} +apiVersion: v1 +kind: Service +metadata: + name: {{ include "cluster-event-reporter.fullname" . }} + labels: + {{- include "cluster-event-reporter.labels" . | nindent 4 }} +spec: + type: ClusterIP + ports: +{{- range $name, $port := $context.Values.service.ports }} + - name: {{ $name }} + port: {{ $port.port }} + targetPort: {{ $port.targetPort }} +{{- end }} + selector: + {{- include "cluster-event-reporter.selectorLabels" . | nindent 4 }} diff --git a/charts/gitops-runtime/templates/event-reporters/cluster-event-reporter/serviceMonitor.yaml b/charts/gitops-runtime/templates/event-reporters/cluster-event-reporter/serviceMonitor.yaml new file mode 100644 index 00000000..1c6f3b43 --- /dev/null +++ b/charts/gitops-runtime/templates/event-reporters/cluster-event-reporter/serviceMonitor.yaml @@ -0,0 +1,28 @@ +{{- $context := deepCopy . }} +{{- $_ := set $context "Values" (deepCopy (get (index .Values "global") "event-reporters")) }} +{{- $_ := set $context.Values "global" (deepCopy (get .Values "global")) }} +{{- $valuesOverrides := index .Values "event-reporters" "cluster-event-reporter" }} +{{- $_ := mergeOverwrite $context.Values $valuesOverrides | set $context "Values" }} +{{- if $context.Values.serviceMonitor.enabled -}} +apiVersion: monitoring.coreos.com/v1 +kind: ServiceMonitor +metadata: + name: {{ include "cluster-event-reporter.fullname" . }} + labels: + {{- include "cluster-event-reporter.labels" . | nindent 4 }} + {{- with $context.Values.serviceMonitor.labels }} + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + selector: + matchLabels: + {{- include "cluster-event-reporter.selectorLabels" . | nindent 8 }} + endpoints: + - port: metrics + {{- if $context.Values.serviceMonitor.interval }} + interval: {{ $context.Values.serviceMonitor.interval }} + {{- end }} + {{- if $context.Values.serviceMonitor.scrapeTimeout }} + scrapeTimeout: {{ $context.Values.serviceMonitor.scrapeTimeout }} + {{- end }} +{{- end }} diff --git a/charts/gitops-runtime/templates/event-reporters/rollout-reporter/clusterrolebinding.yaml b/charts/gitops-runtime/templates/event-reporters/rollout-reporter/clusterrolebinding.yaml deleted file mode 100644 index 534ac500..00000000 --- a/charts/gitops-runtime/templates/event-reporters/rollout-reporter/clusterrolebinding.yaml +++ /dev/null @@ -1,24 +0,0 @@ -{{/* Mapping of argo rollouts clusterrole if such is created (see https://github.com/codefresh-io/argo-helm/blob/argo-rollouts/charts/argo-rollouts/templates/controller/clusterrolebinding.yaml) - to the reporters ServiceAccount -*/}} -{{- if or (index (get .Values "argo-rollouts") "enabled") (and (not (index (get .Values "argo-rollouts") "enabled")) (index .Values.global "external-argo-rollouts" "rollout-reporter" "enabled" )) }} - {{- if or (and (index (get .Values "argo-rollouts") "clusterInstall") (index (get .Values "argo-rollouts") "controller" "createClusterRole")) (and (not (index (get .Values "argo-rollouts") "enabled")) (index .Values.global "external-argo-rollouts" "rollout-reporter" "enabled" ))}} - {{- $eventReporterContext := deepCopy . }} - {{- $_ := set $eventReporterContext "Values" (deepCopy (get .Values "event-reporters")) }} - {{- $_ := set $eventReporterContext.Values "global" (deepCopy (get .Values "global")) }} -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: codefresh-rollouts-reporter - labels: - {{- include "event-reporters.rollout-reporter.labels" . | nindent 4}} -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: {{ include "codefresh-gitops-runtime.argo-rollouts.name" . }} -subjects: - - kind: ServiceAccount - name: {{ include "event-reporters.rollout-reporter.serviceAccountName" $eventReporterContext }} - namespace: {{ .Release.Namespace }} - {{- end }} -{{- end }} diff --git a/charts/gitops-runtime/templates/event-reporters/rollout-reporter/eventsource.yaml b/charts/gitops-runtime/templates/event-reporters/rollout-reporter/eventsource.yaml deleted file mode 100644 index ea09f3a1..00000000 --- a/charts/gitops-runtime/templates/event-reporters/rollout-reporter/eventsource.yaml +++ /dev/null @@ -1,6 +0,0 @@ -{{- if or (index (get .Values "argo-rollouts") "enabled") (and (not (index (get .Values "argo-rollouts") "enabled")) (index .Values.global "external-argo-rollouts" "rollout-reporter" "enabled" )) }} - {{- $eventReporterContext := deepCopy . }} - {{- $_ := set $eventReporterContext "Values" (deepCopy (get .Values "event-reporters")) }} - {{- $_ := set $eventReporterContext.Values "global" (deepCopy (get .Values "global")) }} - {{- include "event-reporters.rollout-reporter.eventsource" $eventReporterContext }} -{{- end }} diff --git a/charts/gitops-runtime/templates/event-reporters/rollout-reporter/rbac.yaml b/charts/gitops-runtime/templates/event-reporters/rollout-reporter/rbac.yaml deleted file mode 100644 index bb2c051f..00000000 --- a/charts/gitops-runtime/templates/event-reporters/rollout-reporter/rbac.yaml +++ /dev/null @@ -1,6 +0,0 @@ -{{- if or (index (get .Values "argo-rollouts") "enabled") (and (not (index (get .Values "argo-rollouts") "enabled")) (index .Values.global "external-argo-rollouts" "rollout-reporter" "enabled" )) }} - {{- $eventReporterContext := deepCopy . }} - {{- $_ := set $eventReporterContext "Values" (deepCopy (get .Values "event-reporters")) }} - {{- $_ := set $eventReporterContext.Values "global" (deepCopy (get .Values "global")) }} - {{- include "event-reporters.rollout-reporter.rbac" $eventReporterContext }} -{{- end }} diff --git a/charts/gitops-runtime/templates/event-reporters/rollout-reporter/sensor.yaml b/charts/gitops-runtime/templates/event-reporters/rollout-reporter/sensor.yaml deleted file mode 100644 index 571b2019..00000000 --- a/charts/gitops-runtime/templates/event-reporters/rollout-reporter/sensor.yaml +++ /dev/null @@ -1,11 +0,0 @@ -{{- if or (index (get .Values "argo-rollouts") "enabled") (and (not (index (get .Values "argo-rollouts") "enabled")) (index .Values.global "external-argo-rollouts" "rollout-reporter" "enabled" )) }} - {{- $eventReporterContext := deepCopy . }} - {{- $_ := set $eventReporterContext "Values" (deepCopy (get .Values "event-reporters")) }} - {{- $_ := set $eventReporterContext.Values "global" (deepCopy (get .Values "global")) }} - - {{- $globalProxyEnv := (include "codefresh-gitops-runtime.get-proxy-env-vars" . | fromYaml) }} - {{- $mergedEnv := mergeOverwrite $globalProxyEnv $eventReporterContext.Values.rollout.sensor.env }} - {{- $_ := set $eventReporterContext.Values.rollout.sensor "env" $mergedEnv }} - - {{- include "event-reporters.rollout-reporter.sensor" $eventReporterContext }} -{{- end }} diff --git a/charts/gitops-runtime/templates/event-reporters/rollout-reporter/serviceaccount.yaml b/charts/gitops-runtime/templates/event-reporters/rollout-reporter/serviceaccount.yaml deleted file mode 100644 index ddf72053..00000000 --- a/charts/gitops-runtime/templates/event-reporters/rollout-reporter/serviceaccount.yaml +++ /dev/null @@ -1,6 +0,0 @@ -{{- if or (index (get .Values "argo-rollouts") "enabled") (and (not (index (get .Values "argo-rollouts") "enabled")) (index .Values.global "external-argo-rollouts" "rollout-reporter" "enabled" )) }} - {{- $eventReporterContext := deepCopy . }} - {{- $_ := set $eventReporterContext "Values" (deepCopy (get .Values "event-reporters")) }} - {{- $_ := set $eventReporterContext.Values "global" (deepCopy (get .Values "global")) }} - {{- include "event-reporters.rollout-reporter.sa" $eventReporterContext }} -{{- end }} 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 new file mode 100644 index 00000000..5ceb04f0 --- /dev/null +++ b/charts/gitops-runtime/templates/event-reporters/runtime-event-reporter/_env.yaml @@ -0,0 +1,189 @@ +{{- define "runtime-event-reporter.resources.environment-variables.calculated" }} +HTTP_PROXY: {{ .Values.global.httpProxy | squote}} +HTTPS_PROXY: {{ .Values.global.httpsProxy | squote }} +NO_PROXY: {{ .Values.global.noProxy | squote }} + +{{- if and (eq (index .Values "global" "integrations" "argo-cd" "server" "auth" "type") "token") }} + {{- if not (index .Values "global" "integrations" "argo-cd" "server" "auth" "token") }} +ARGO_CD_TOKEN_SECRET_NAME: {{ required ".Values.global.integrations.argo-cd.server.auth.type is set to 'token' therefore .Values.global.integrations.argo-cd.server.auth.tokenSecretKeyRef.name is required" (index .Values "global" "integrations" "argo-cd" "server" "auth" "tokenSecretKeyRef" "name") }} +ARGO_CD_TOKEN_SECRET_KEY: {{ required ".Values.global.integrations.argo-cd.server.auth.type is set to 'token' therefore .Values.global.integrations.argo-cd.server.auth.tokenSecretKeyRef.key is required" (index .Values "global" "integrations" "argo-cd" "server" "auth" "tokenSecretKeyRef" "key" ) }} + {{- else }} +ARGO_CD_TOKEN_SECRET_NAME: "gitops-runtime-argo-cd-token" +ARGO_CD_TOKEN_SECRET_KEY: "token" + {{- end }} +{{- end }} + +ARGOCD_SERVER_ROOTPATH: {{ dig "server" "rootpath" "/" (index .Values "global" "external-argo-cd") | quote }} + +{{- if or .Values.global.codefresh.tls.caCerts.secret.create (and .Values.global.codefresh.tls.caCerts.secretKeyRef.key .Values.global.codefresh.tls.caCerts.secretKeyRef.name) }} + {{- $secretKey := .Values.global.codefresh.tls.caCerts.secret.create | ternary (default "ca-bundle.crt" .Values.global.codefresh.tls.caCerts.secret.key) .Values.global.codefresh.tls.caCerts.secretKeyRef.key }} +CODEFRESH_SSL_CERT_PATH: {{ printf "/app/config/codefresh-tls-certs/%s" $secretKey }} +{{- end }} + +{{- end }} + +{{- define "runtime-event-reporter.resources.environment-variables.defaults" -}} +REPORTER_MODE: app +APP_QUEUE_SIZE: + valueFrom: + configMapKeyRef: + name: runtime-event-reporter-cmd-params-cm + key: app.queue.size +ARGOCD_APPLICATION_NAMESPACES: + valueFrom: + configMapKeyRef: + name: argocd-cmd-params-cm + key: application.namespaces + optional: true +ARGOCD_SERVER: + valueFrom: + configMapKeyRef: + name: runtime-event-reporter-cmd-params-cm + key: argocd.server +ARGOCD_SERVER_ROOTPATH: + valueFrom: + configMapKeyRef: + name: argocd-cmd-params-cm + key: server.rootpath + optional: true +ARGO_CD_TOKEN_SECRET_NAME: argocd-token +ARGO_CD_TOKEN_SECRET_KEY: token +BINARY_NAME: event-reporter +CODEFRESH_SSL_CERT_PATH: "" +CODEFRESH_TLS_INSECURE: + valueFrom: + configMapKeyRef: + name: argocd-cmd-params-cm + key: codefresh.tls.insecure + optional: true +CODEFRESH_TOKEN: + valueFrom: + secretKeyRef: + name: codefresh-token + key: token +CODEFRESH_URL: + valueFrom: + configMapKeyRef: + key: base-url + name: codefresh-cm +EVENT_REPORTER_REPLICAS: 1 +INSECURE: + valueFrom: + configMapKeyRef: + name: runtime-event-reporter-cmd-params-cm + key: insecure + optional: true +LISTEN_ADDRESS: + valueFrom: + configMapKeyRef: + name: runtime-event-reporter-cmd-params-cm + key: listen.address + optional: true +LOG_FORMAT: + valueFrom: + configMapKeyRef: + name: runtime-event-reporter-cmd-params-cm + key: log.format + optional: true +LOG_LEVEL: + valueFrom: + configMapKeyRef: + name: runtime-event-reporter-cmd-params-cm + key: log.level + optional: true +MAX_APP_RETRIES: + valueFrom: + configMapKeyRef: + name: runtime-event-reporter-cmd-params-cm + key: max.app.retries +METRICS_LISTEN_ADDRESS: + valueFrom: + configMapKeyRef: + name: runtime-event-reporter-cmd-params-cm + key: metrics.listen.address + optional: true +OTEL_EXPORTER_OTLP_TRACES_ENDPOINT: + valueFrom: + configMapKeyRef: + name: runtime-event-reporter-cmd-params-cm + key: otlp.address + optional: true +REDISDB: + valueFrom: + configMapKeyRef: + name: argocd-cmd-params-cm + key: redis.db + optional: true +REDIS_COMPRESSION: + valueFrom: + configMapKeyRef: + name: argocd-cmd-params-cm + key: redis.compression + optional: true +REDIS_PASSWORD: + valueFrom: + secretKeyRef: + name: argocd-redis + key: auth +REDIS_SERVER: + valueFrom: + configMapKeyRef: + name: argocd-cmd-params-cm + key: redis.server +REDIS_USERNAME: + valueFrom: + secretKeyRef: + name: argocd-redis + key: redis-username + optional: true +REPO_SERVER: + valueFrom: + configMapKeyRef: + name: runtime-event-reporter-cmd-params-cm + key: repo.server +REPO_SERVER_PLAINTEXT: + valueFrom: + configMapKeyRef: + name: runtime-event-reporter-cmd-params-cm + key: repo.server.plaintext + optional: true +REPO_SERVER_STRICT_TLS: + valueFrom: + configMapKeyRef: + name: runtime-event-reporter-cmd-params-cm + key: repo.server.strict.tls + optional: true +REPO_SERVER_TIMEOUT_SECONDS: + valueFrom: + configMapKeyRef: + name: runtime-event-reporter-cmd-params-cm + key: repo.server.timeout.seconds + optional: true +RUNTIME_VERSION: + valueFrom: + configMapKeyRef: + name: codefresh-cm + key: version +SHARDING_ALGORITHM: + valueFrom: + configMapKeyRef: + name: runtime-event-reporter-cmd-params-cm + key: sharding.algorithm + optional: true +ARGO_GATEWAY_URL: + valueFrom: + configMapKeyRef: + name: runtime-event-reporter-cmd-params-cm + key: argo-gateway.server +THREADINESS: + valueFrom: + configMapKeyRef: + name: runtime-event-reporter-cmd-params-cm + key: threadiness +RESOURCE_THREADINESS: + valueFrom: + configMapKeyRef: + name: runtime-event-reporter-cmd-params-cm + key: resource.threadiness +SERVICE_NAME: {{ include "runtime-event-reporter.fullname" . }} +{{- end -}} diff --git a/charts/gitops-runtime/templates/event-reporters/runtime-event-reporter/_helpers.tpl b/charts/gitops-runtime/templates/event-reporters/runtime-event-reporter/_helpers.tpl new file mode 100644 index 00000000..85897319 --- /dev/null +++ b/charts/gitops-runtime/templates/event-reporters/runtime-event-reporter/_helpers.tpl @@ -0,0 +1,48 @@ +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "runtime-event-reporter.fullname" -}} +{{- print "runtime-event-reporter" }} +{{- end }} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "runtime-event-reporter.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Common labels +*/}} +{{- define "runtime-event-reporter.labels" -}} +helm.sh/chart: {{ include "runtime-event-reporter.chart" . }} +{{ include "runtime-event-reporter.selectorLabels" . }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +app.kubernetes.io/part-of: runtime-event-reporter +app.kubernetes.io/component: runtime-event-reporter +codefresh.io/internal: "true" +{{- end }} + +{{/* +Selector labels +*/}} +{{- define "runtime-event-reporter.selectorLabels" -}} +app.kubernetes.io/name: runtime-event-reporter +{{- end }} + +{{/* +Create the name of the service account to use +*/}} +{{- define "runtime-event-reporter.serviceAccountName" -}} +{{- if .Values.serviceAccount.create }} +{{- default (include "runtime-event-reporter.fullname" .) .Values.serviceAccount.name }} +{{- else }} +{{- default "default" .Values.serviceAccount.name }} +{{- end }} +{{- end }} diff --git a/charts/gitops-runtime/templates/event-reporters/runtime-event-reporter/configmap.yaml b/charts/gitops-runtime/templates/event-reporters/runtime-event-reporter/configmap.yaml new file mode 100644 index 00000000..93316c77 --- /dev/null +++ b/charts/gitops-runtime/templates/event-reporters/runtime-event-reporter/configmap.yaml @@ -0,0 +1,23 @@ +{{- define "runtime-event-reporter.resources.configmap.defaults"}} +argocd.server: {{ include "codefresh-gitops-runtime.argocd.server.no-protocol-url" . }} +redis.server: {{ include "codefresh-gitops-runtime.argocd.redis.url" . }} +repo.server: {{ include "codefresh-gitops-runtime.argocd.reposerver.url" . }} +argo-gateway.server: http://argo-gateway +resource.threadiness: '10' +app.queue.size: '1000' +max.app.retries: '5' +threadiness: '100' +{{- end }} + +{{- $defaultConfig := (include "runtime-event-reporter.resources.configmap.defaults" . | fromYaml ) }} +{{- $globalOverrides := index .Values "global" "event-reporters" "config" | default dict }} +{{- $reporterOverrides := index .Values "event-reporters" "runtime-event-reporter" "config" | default dict }} +{{- $mergedConfig := mergeOverwrite $defaultConfig $globalOverrides $reporterOverrides }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: runtime-event-reporter-cmd-params-cm + labels: + {{- include "runtime-event-reporter.labels" . | nindent 4 }} +data: + {{- $mergedConfig | toYaml | nindent 2 }} 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 new file mode 100644 index 00000000..fc620544 --- /dev/null +++ b/charts/gitops-runtime/templates/event-reporters/runtime-event-reporter/deployment.yaml @@ -0,0 +1,113 @@ +{{- $context := deepCopy . }} +{{- $_ := set $context "Values" (deepCopy (get (index .Values "global") "event-reporters")) }} +{{- $_ := 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" }} +{{- $values := mergeOverwrite $context.Values $valuesOverrides }} +{{- $_ := set $context "Values" $values }} +{{/* Merge environment variables from calculated, defaults and overwrites */}} +{{- $defaults := (include "runtime-event-reporter.resources.environment-variables.defaults" $context | fromYaml) }} +{{- $calculated := (include "runtime-event-reporter.resources.environment-variables.calculated" $context | fromYaml) }} +{{- $overrides := $context.Values.env }} +{{- $mergedValues := mergeOverwrite $defaults $calculated $overrides }} +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "runtime-event-reporter.fullname" . }} + labels: + {{- include "runtime-event-reporter.labels" . | nindent 4 }} +spec: + replicas: {{ $context.Values.replicaCount }} + selector: + matchLabels: + {{- include "runtime-event-reporter.selectorLabels" . | nindent 6 }} + template: + metadata: + {{- with $context.Values.podAnnotations }} + annotations: + {{- toYaml . | nindent 8 }} + {{- end }} + labels: + {{- include "runtime-event-reporter.selectorLabels" . | nindent 8 }} + {{- with $context.Values.podLabels }} + {{- toYaml . | nindent 8 }} + {{- end }} + spec: + {{- with $context.Values.imagePullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 8 }} + {{- end }} + serviceAccountName: {{ include "runtime-event-reporter.serviceAccountName" $context }} + securityContext: + {{- toYaml $context.Values.podSecurityContext | nindent 8 }} + containers: + - name: {{ include "runtime-event-reporter.fullname" . }} + securityContext: + {{- toYaml $context.Values.securityContext | nindent 12 }} + {{- $imageContext := deepCopy $context.Values.image }} + image: {{ include "codefresh-gitops-runtime.image.name" (dict "image" $imageContext "context" .) }} + env: {{- include "codefresh-gitops-runtime.env-vars" (dict "Values" $mergedValues "context" .) | nindent 8 }} + imagePullPolicy: {{ $context.Values.image.pullPolicy }} + {{- if $context.Values.command }} + command: + {{- $context.Values.command | toYaml | nindent 8 }} + {{- end }} + {{- with $context.Values.extraArgs }} + args: + {{- . | toYaml | nindent 8 }} + {{- end }} + ports: + {{- range $name, $port := $context.Values.service.ports }} + - name: {{ $name }} + containerPort: {{ $port.targetPort }} + {{- end }} + readinessProbe: + initialDelaySeconds: {{ $context.Values.readinessProbe.initialDelaySeconds }} + periodSeconds: {{ $context.Values.readinessProbe.periodSeconds }} + timeoutSeconds: {{ $context.Values.readinessProbe.timeoutSeconds }} + successThreshold: {{ $context.Values.readinessProbe.successThreshold }} + failureThreshold: {{ $context.Values.readinessProbe.failureThreshold }} + httpGet: + port: http + path: /healthz + livenessProbe: + initialDelaySeconds: {{ $context.Values.livenessProbe.initialDelaySeconds }} + periodSeconds: {{ $context.Values.livenessProbe.periodSeconds }} + timeoutSeconds: {{ $context.Values.livenessProbe.timeoutSeconds }} + successThreshold: {{ $context.Values.livenessProbe.successThreshold }} + failureThreshold: {{ $context.Values.livenessProbe.failureThreshold }} + httpGet: + port: http + path: /healthz?full=true + resources: + {{- toYaml $context.Values.resources | nindent 10 }} + volumeMounts: + {{- if or $context.Values.global.codefresh.tls.caCerts.secretKeyRef $context.Values.global.codefresh.tls.caCerts.secret.create }} + - name: codefresh-tls-certs + mountPath: /app/config/codefresh-tls-certs + readOnly: true + {{- end }} + {{- with $context.Values.extraVolumeMounts }} + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with $context.Values.nodeSelector | default $context.Values.global.nodeSelector }} + nodeSelector: {{ toYaml . | nindent 8 }} + {{- end }} + {{- with $context.Values.tolerations | default $context.Values.global.tolerations }} + tolerations: {{ toYaml . | nindent 6 }} + {{- end }} + {{- with $context.Values.affinity }} + affinity: {{ toYaml . | nindent 8 }} + {{- end }} + {{- with $context.Values.topologySpreadConstraints }} + topologySpreadConstraints: {{- include "codefresh-gitops-runtime.tplrender" (dict "Values" . "context" .) | nindent 8 }} + {{- end }} + volumes: + {{- if or $context.Values.global.codefresh.tls.caCerts.secretKeyRef $context.Values.global.codefresh.tls.caCerts.secret.create }} + - name: codefresh-tls-certs + secret: + secretName: {{ $context.Values.global.codefresh.tls.caCerts.secretKeyRef.name | default "codefresh-tls-certs" }} + {{- end }} + {{- with $context.Values.extraVolumes }} + {{- toYaml . | nindent 6 }} + {{- end }} diff --git a/charts/gitops-runtime/templates/event-reporters/runtime-event-reporter/pdb.yaml b/charts/gitops-runtime/templates/event-reporters/runtime-event-reporter/pdb.yaml new file mode 100644 index 00000000..cd135dbd --- /dev/null +++ b/charts/gitops-runtime/templates/event-reporters/runtime-event-reporter/pdb.yaml @@ -0,0 +1,22 @@ +{{- $context := deepCopy . }} +{{- $_ := set $context "Values" (deepCopy (get (index .Values "global") "event-reporters")) }} +{{- $_ := set $context.Values "global" (deepCopy (get .Values "global")) }} +{{- $valuesOverrides := index .Values "event-reporters" "runtime-event-reporter" }} +{{- $_ := mergeOverwrite $context.Values $valuesOverrides | set $context "Values" }} + +{{- if and $context.Values.pdb.enabled }} +apiVersion: policy/v1 +kind: PodDisruptionBudget +metadata: + name: {{ include "runtime-event-reporter.fullname" . }} +spec: + {{- with $context.Values.pdb.minAvailable }} + minAvailable: {{ . }} + {{- end }} + {{- with $context.Values.pdb.maxUnavailable }} + maxUnavailable: {{ . }} + {{- end }} + selector: + matchLabels: + {{- include "runtime-event-reporter.selectorLabels" . | nindent 6 }} +{{- end }} diff --git a/charts/gitops-runtime/templates/event-reporters/runtime-event-reporter/rbac.yaml b/charts/gitops-runtime/templates/event-reporters/runtime-event-reporter/rbac.yaml new file mode 100644 index 00000000..eecd102a --- /dev/null +++ b/charts/gitops-runtime/templates/event-reporters/runtime-event-reporter/rbac.yaml @@ -0,0 +1,44 @@ +{{- $context := deepCopy . }} +{{- $_ := set $context "Values" (deepCopy (get (index .Values "global") "event-reporters")) }} +{{- $_ := set $context.Values "global" (deepCopy (get .Values "global")) }} +{{- $valuesOverrides := index .Values "event-reporters" "runtime-event-reporter" }} +{{- $_ := mergeOverwrite $context.Values $valuesOverrides | set $context "Values" }} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ include "runtime-event-reporter.serviceAccountName" $context }} + labels: + {{- include "runtime-event-reporter.labels" . | nindent 4 }} +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: {{ include "runtime-event-reporter.fullname" . }} + labels: + {{- include "runtime-event-reporter.labels" . | nindent 4 }} +rules: + - apiGroups: + - '*' + resources: + - '*' + verbs: + - '*' + - nonResourceURLs: + - '*' + verbs: + - '*' +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: {{ include "runtime-event-reporter.fullname" . }} + labels: + {{- include "runtime-event-reporter.labels" . | nindent 4 }} +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: {{ include "runtime-event-reporter.fullname" . }} +subjects: + - kind: ServiceAccount + name: {{ include "runtime-event-reporter.serviceAccountName" $context }} + namespace: {{ .Release.Namespace }} diff --git a/charts/gitops-runtime/templates/event-reporters/runtime-event-reporter/service.yaml b/charts/gitops-runtime/templates/event-reporters/runtime-event-reporter/service.yaml new file mode 100644 index 00000000..c730c6e7 --- /dev/null +++ b/charts/gitops-runtime/templates/event-reporters/runtime-event-reporter/service.yaml @@ -0,0 +1,21 @@ +{{- $context := deepCopy . }} +{{- $_ := set $context "Values" (deepCopy (get (index .Values "global") "event-reporters")) }} +{{- $_ := set $context.Values "global" (deepCopy (get .Values "global")) }} +{{- $valuesOverrides := index .Values "event-reporters" "runtime-event-reporter" }} +{{- $_ := mergeOverwrite $context.Values $valuesOverrides | set $context "Values" }} +apiVersion: v1 +kind: Service +metadata: + name: {{ include "runtime-event-reporter.fullname" . }} + labels: + {{- include "runtime-event-reporter.labels" . | nindent 4 }} +spec: + type: ClusterIP + ports: +{{- range $name, $port := $context.Values.service.ports }} + - name: {{ $name }} + port: {{ $port.port }} + targetPort: {{ $port.targetPort }} +{{- end }} + selector: + {{- include "runtime-event-reporter.selectorLabels" . | nindent 4 }} diff --git a/charts/gitops-runtime/templates/event-reporters/runtime-event-reporter/serviceMonitor.yaml b/charts/gitops-runtime/templates/event-reporters/runtime-event-reporter/serviceMonitor.yaml new file mode 100644 index 00000000..e95e23cb --- /dev/null +++ b/charts/gitops-runtime/templates/event-reporters/runtime-event-reporter/serviceMonitor.yaml @@ -0,0 +1,28 @@ +{{- $context := deepCopy . }} +{{- $_ := set $context "Values" (deepCopy (get (index .Values "global") "event-reporters")) }} +{{- $_ := set $context.Values "global" (deepCopy (get .Values "global")) }} +{{- $valuesOverrides := index .Values "event-reporters" "runtime-event-reporter" }} +{{- $_ := mergeOverwrite $context.Values $valuesOverrides | set $context "Values" }} +{{- if $context.Values.serviceMonitor.enabled -}} +apiVersion: monitoring.coreos.com/v1 +kind: ServiceMonitor +metadata: + name: {{ include "runtime-event-reporter.fullname" . }} + labels: + {{- include "runtime-event-reporter.labels" . | nindent 4 }} + {{- with $context.Values.serviceMonitor.labels }} + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + selector: + matchLabels: + {{- include "runtime-event-reporter.selectorLabels" . | nindent 8 }} + endpoints: + - port: metrics + {{- if $context.Values.serviceMonitor.interval }} + interval: {{ $context.Values.serviceMonitor.interval }} + {{- end }} + {{- if $context.Values.serviceMonitor.scrapeTimeout }} + scrapeTimeout: {{ $context.Values.serviceMonitor.scrapeTimeout }} + {{- end }} +{{- end }} diff --git a/charts/gitops-runtime/templates/event-reporters/workflow-reporter/eventsource.yaml b/charts/gitops-runtime/templates/event-reporters/workflow-reporter/eventsource.yaml deleted file mode 100644 index fb23ffd8..00000000 --- a/charts/gitops-runtime/templates/event-reporters/workflow-reporter/eventsource.yaml +++ /dev/null @@ -1,7 +0,0 @@ - -{{- if index (get .Values "argo-workflows") "enabled" }} - {{- $eventReporterContext := deepCopy . }} - {{- $_ := set $eventReporterContext "Values" (deepCopy (get .Values "event-reporters")) }} - {{- $_ := set $eventReporterContext.Values "global" (deepCopy (get .Values "global")) }} - {{- include "event-reporters.workflow-reporter.eventsource" $eventReporterContext }} -{{- end }} diff --git a/charts/gitops-runtime/templates/event-reporters/workflow-reporter/rbac.yaml b/charts/gitops-runtime/templates/event-reporters/workflow-reporter/rbac.yaml deleted file mode 100644 index 93e17e40..00000000 --- a/charts/gitops-runtime/templates/event-reporters/workflow-reporter/rbac.yaml +++ /dev/null @@ -1,7 +0,0 @@ - -{{- if index (get .Values "argo-workflows") "enabled" }} - {{- $eventReporterContext := deepCopy . }} - {{- $_ := set $eventReporterContext "Values" (deepCopy (get .Values "event-reporters")) }} - {{- $_ := set $eventReporterContext.Values "global" (deepCopy (get .Values "global")) }} - {{- include "event-reporters.workflow-reporter.rbac" $eventReporterContext }} -{{- end }} diff --git a/charts/gitops-runtime/templates/event-reporters/workflow-reporter/sensor.yaml b/charts/gitops-runtime/templates/event-reporters/workflow-reporter/sensor.yaml deleted file mode 100644 index 97f73fb7..00000000 --- a/charts/gitops-runtime/templates/event-reporters/workflow-reporter/sensor.yaml +++ /dev/null @@ -1,12 +0,0 @@ - -{{- if index (get .Values "argo-workflows") "enabled" }} - {{- $eventReporterContext := deepCopy . }} - {{- $_ := set $eventReporterContext "Values" (deepCopy (get .Values "event-reporters")) }} - {{- $_ := set $eventReporterContext.Values "global" (deepCopy (get .Values "global")) }} - - {{- $globalProxyEnv := (include "codefresh-gitops-runtime.get-proxy-env-vars" . | fromYaml) }} - {{- $mergedEnv := mergeOverwrite $globalProxyEnv $eventReporterContext.Values.workflow.sensor.env }} - {{- $_ := set $eventReporterContext.Values.workflow.sensor "env" $mergedEnv }} - - {{- include "event-reporters.workflow-reporter.sensor" $eventReporterContext }} -{{- end }} diff --git a/charts/gitops-runtime/templates/event-reporters/workflow-reporter/serviceaccount.yaml b/charts/gitops-runtime/templates/event-reporters/workflow-reporter/serviceaccount.yaml deleted file mode 100644 index c78179dc..00000000 --- a/charts/gitops-runtime/templates/event-reporters/workflow-reporter/serviceaccount.yaml +++ /dev/null @@ -1,7 +0,0 @@ - -{{- if index (get .Values "argo-workflows") "enabled" }} - {{- $eventReporterContext := deepCopy . }} - {{- $_ := set $eventReporterContext "Values" (deepCopy (get .Values "event-reporters")) }} - {{- $_ := set $eventReporterContext.Values "global" (deepCopy (get .Values "global")) }} - {{- include "event-reporters.workflow-reporter.sa" $eventReporterContext }} -{{- end }} diff --git a/charts/gitops-runtime/templates/eventbus/codefresh-eventbus.yaml b/charts/gitops-runtime/templates/eventbus/codefresh-eventbus.yaml deleted file mode 100644 index 1ab63879..00000000 --- a/charts/gitops-runtime/templates/eventbus/codefresh-eventbus.yaml +++ /dev/null @@ -1,39 +0,0 @@ -{{- $eventBusName := (include "codefresh-gitops-runtime.eventbus.name" .Values.global.runtime.eventBus) }} -{{- $eventBusSpec := .Values.global.runtime.eventBus }} -{{- $eventBusType := .Values.global.runtime.eventBus.type }} -{{/* Remove name from eventbus spec */}} -{{- if hasKey $eventBusSpec "name" }} -{{- $eventBusSpec = unset $eventBusSpec "name" }} -{{- end }} -{{/* Remove pdb from eventbus spec */}} -{{- if hasKey $eventBusSpec "pdb" }} -{{- $eventBusSpec = unset $eventBusSpec "pdb" }} -{{- end }} -{{/* Remove annotations from eventbus spec */}} -{{- if hasKey $eventBusSpec "annotations" }} -{{- $eventBusSpec = unset $eventBusSpec "annotations" }} -{{- end }} - -{{- if eq $eventBusType "nats" }} - {{- $eventBusSpec = unset $eventBusSpec "jetstream" }} - {{- $_ := set $eventBusSpec.nats.native "nodeSelector" ($eventBusSpec.nats.native.nodeSelector | default .Values.global.nodeSelector) }} - {{- $_ := set $eventBusSpec.nats.native "tolerations" ($eventBusSpec.nats.native.tolerations | default .Values.global.tolerations) }} -{{- end }} - -{{- if eq $eventBusType "jetstream" }} - {{- $eventBusSpec = unset $eventBusSpec "nats" }} - {{- $_ := set $eventBusSpec.jetstream "nodeSelector" ($eventBusSpec.jetstream.nodeSelector | default .Values.global.nodeSelector) }} - {{- $_ := set $eventBusSpec.jetstream "tolerations" ($eventBusSpec.jetstream.tolerations | default .Values.global.tolerations) }} -{{- end }} - -apiVersion: argoproj.io/v1alpha1 -kind: EventBus -metadata: - name: {{ $eventBusName }} - annotations: - {{- .Values.global.runtime.eventBus.annotations | toYaml | nindent 4}} - labels: - app.kubernetes.io/part-of: codefresh-eventbus - codefresh.io/internal: "true" -spec: - {{- $eventBusSpec | toYaml | nindent 2}} diff --git a/charts/gitops-runtime/templates/eventbus/pdb.yaml b/charts/gitops-runtime/templates/eventbus/pdb.yaml deleted file mode 100644 index 1d74d750..00000000 --- a/charts/gitops-runtime/templates/eventbus/pdb.yaml +++ /dev/null @@ -1,12 +0,0 @@ -{{- $eventBusName := (include "codefresh-gitops-runtime.eventbus.name" .Values.global.runtime.eventBus) }} -{{- if .Values.global.runtime.eventBus.pdb.enabled }} -apiVersion: policy/v1 -kind: PodDisruptionBudget -metadata: - name: {{ $eventBusName }} -spec: - minAvailable: 2 - selector: - matchLabels: - eventbus-name: {{ $eventBusName }} -{{- end }} \ No newline at end of file diff --git a/charts/gitops-runtime/templates/hooks/pre-install/_env.yaml b/charts/gitops-runtime/templates/hooks/pre-install/_env.yaml index 4d8a352c..92a6e3dd 100644 --- a/charts/gitops-runtime/templates/hooks/pre-install/_env.yaml +++ b/charts/gitops-runtime/templates/hooks/pre-install/_env.yaml @@ -15,7 +15,7 @@ NAMESPACE: {{- define "installer.validate-values.environment-variables.defaults" -}} ARGOCD_CHECK_VERSION: {{ not (get .Values "argo-cd").enabled | quote }} ARGOCD_LABELS: "{{ range $k, $v := .Values.installer.argoCdVersionCheck.argoServerLabels }}{{ $k }}={{ $v }},{{ end }}" -ARGOCD_ROOT_PATH: {{ index .Values "global" "external-argo-cd" "server" "rootpath" | quote }} +ARGOCD_SERVER_ROOTPATH: {{ dig "server" "rootpath" "/" (index .Values "global" "external-argo-cd") | quote }} ARGOCD_VERSION_PATH: "/api/version" CHART_VERSION: {{ .Chart.Version }} NAMESPACE: diff --git a/charts/gitops-runtime/tests/argo-api-gateway_test.yaml b/charts/gitops-runtime/tests/argo-api-gateway_test.yaml new file mode 100644 index 00000000..a6cd2d88 --- /dev/null +++ b/charts/gitops-runtime/tests/argo-api-gateway_test.yaml @@ -0,0 +1,148 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json +suite: argo-gateway tests +templates: + - argo-gateway/** +tests: + - it: Argo Api Gateway ConfigMap should have valid data + template: argo-gateway/configmap.yaml + values: + - ./values/mandatory-values-ingress.yaml + asserts: + - equal: + path: data["argocd.server"] + value: argo-cd-server:80 + - equal: + path: data["redis.server"] + value: argo-cd-redis:6379 + - equal: + path: data["repo.server"] + value: argo-cd-repo-server:8081 + + - it: Argo Api Gateway Deployment should have valid matchLabel selectors + template: argo-gateway/deployment.yaml + values: + - ./values/mandatory-values-ingress.yaml + asserts: + - equal: + path: spec.selector.matchLabels + value: + app.kubernetes.io/name: argo-gateway + app.kubernetes.io/instance: RELEASE-NAME + - equal: + path: spec.template.metadata.labels + value: + app.kubernetes.io/name: argo-gateway + app.kubernetes.io/instance: RELEASE-NAME + + - it: Argo Api Gateway Service should have valid matchLabel selectors + template: argo-gateway/service.yaml + values: + - ./values/mandatory-values-ingress.yaml + asserts: + - equal: + path: spec.selector + value: + app.kubernetes.io/name: argo-gateway + app.kubernetes.io/instance: RELEASE-NAME + + - it: Argo Api Gateway should be deployed with forked ArgoCD + template: argo-gateway/deployment.yaml + values: + - ./values/mandatory-values-ingress.yaml + asserts: + - hasDocuments: + count: 1 + - isKind: + of: Deployment + - equal: + path: metadata.name + value: argo-gateway + + - it: Argo Api Gateway should be deployed with external OSS ArgoCD + template: argo-gateway/deployment.yaml + values: + - ./values/mandatory-values-ingress.yaml + - ./values/external-argocd-values.yaml + asserts: + - hasDocuments: + count: 1 + - isKind: + of: Deployment + - equal: + path: metadata.name + value: argo-gateway + + - it: Argo Api Gateway ConfigMap should have valid redis-ha url + template: argo-gateway/configmap.yaml + values: + - ./values/mandatory-values-ingress.yaml + set: + argo-cd: + redis-ha: + enabled: true + asserts: + - equal: + path: data["redis.server"] + value: RELEASE-NAME-redis-ha-haproxy:6379 + + - it: Argo Api Gateway should have CODEFRESH_SSL_CERT_PATH env var when .Values.global.codefresh.tls.caCerts.secret.create is true + template: argo-gateway/deployment.yaml + values: + - ./values/mandatory-values-ingress.yaml + set: + global: + codefresh: + tls: + caCerts: + secret: + create: true + key: ca-bundle.crt + content: | + -----BEGIN CERTIFICATE----- + MIID... + -----END CERTIFICATE----- + asserts: + - equal: + path: spec.template.spec.containers[0].env[?(@.name == 'CODEFRESH_SSL_CERT_PATH')].value + value: /app/config/codefresh-tls-certs/ca-bundle.crt + - contains: + path: spec.template.spec.volumes + content: + name: codefresh-tls-certs + secret: + secretName: codefresh-tls-certs + - contains: + path: spec.template.spec.containers[0].volumeMounts + content: + name: codefresh-tls-certs + mountPath: /app/config/codefresh-tls-certs + readOnly: true + + - it: Argo Api Gateway should have CODEFRESH_SSL_CERT_PATH env var when .Values.global.codefresh.tls.caCerts.secretKeyRef is set + template: argo-gateway/deployment.yaml + values: + - ./values/mandatory-values-ingress.yaml + set: + global: + codefresh: + tls: + caCerts: + secretKeyRef: + name: my-codefresh-tls-certs + key: my-ca-bundle.crt + asserts: + - equal: + path: spec.template.spec.containers[0].env[?(@.name == 'CODEFRESH_SSL_CERT_PATH')].value + value: /app/config/codefresh-tls-certs/my-ca-bundle.crt + - contains: + path: spec.template.spec.volumes + content: + name: codefresh-tls-certs + secret: + secretName: my-codefresh-tls-certs + - contains: + path: spec.template.spec.containers[0].volumeMounts + content: + name: codefresh-tls-certs + mountPath: /app/config/codefresh-tls-certs + readOnly: true diff --git a/charts/gitops-runtime/tests/argo-projects-templates-integration_test.yaml b/charts/gitops-runtime/tests/argo-projects-templates-integration_test.yaml index 3f496141..257921ad 100644 --- a/charts/gitops-runtime/tests/argo-projects-templates-integration_test.yaml +++ b/charts/gitops-runtime/tests/argo-projects-templates-integration_test.yaml @@ -108,18 +108,3 @@ tests: - equal: path: data.argoWorkflowsUrl value: https://argo-test-server:2746 -# ------------------------------------------------------------------------------------------ -# Argo rollouts -# Affected templates - rollouts reporter clusterrolebinding -# ------------------------------------------------------------------------------------------ -- it: test rollout reporter ClusterRoleBinding to argo rollouts role - template: 'event-reporters/rollout-reporter/clusterrolebinding.yaml' - values: - - ./values/mandatory-values.yaml - set: - argo-rollouts.enabled: true - argo-rollouts.fullnameOverride: rollouts-test - asserts: - - equal: - path: roleRef.name - value: rollouts-test diff --git a/charts/gitops-runtime/tests/cf-argocd-extras_test.yaml b/charts/gitops-runtime/tests/cf-argocd-extras_test.yaml deleted file mode 100644 index 1e31b2e9..00000000 --- a/charts/gitops-runtime/tests/cf-argocd-extras_test.yaml +++ /dev/null @@ -1,347 +0,0 @@ -# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json -suite: cf-argocd-extras tests -templates: - - cf-argocd-extras/**/*.yaml - - _components/cf-argocd-extras/** -tests: - - it: Sources Server ConfigMap should have valid data - template: cf-argocd-extras/sources-server/configmap.yaml - values: - - ./values/mandatory-values-ingress.yaml - asserts: - - equal: - path: data["argocd.server"] - value: argo-cd-server:80 - - equal: - path: data["redis.server"] - value: argo-cd-redis:6379 - - equal: - path: data["repo.server"] - value: argo-cd-repo-server:8081 - - - it: Sources Server Deployment should have valid matchLabel selectors - template: cf-argocd-extras/sources-server/deployment.yaml - values: - - ./values/mandatory-values-ingress.yaml - asserts: - - equal: - path: spec.selector.matchLabels - value: - app.kubernetes.io/name: cf-argocd-extras - app.kubernetes.io/instance: RELEASE-NAME - app.kubernetes.io/component: sources-server - - equal: - path: spec.template.metadata.labels - value: - app.kubernetes.io/name: cf-argocd-extras - app.kubernetes.io/instance: RELEASE-NAME - app.kubernetes.io/component: sources-server - - - it: Sources Server Service should have valid matchLabel selectors - template: cf-argocd-extras/sources-server/service.yaml - values: - - ./values/mandatory-values-ingress.yaml - asserts: - - equal: - path: spec.selector - value: - app.kubernetes.io/name: cf-argocd-extras - app.kubernetes.io/instance: RELEASE-NAME - app.kubernetes.io/component: sources-server - - - it: New Event-Reporter should be deployed with forked ArgoCD - template: cf-argocd-extras/event-reporter/statefulset.yaml - values: - - ./values/mandatory-values-ingress.yaml - asserts: - - hasDocuments: - count: 1 - - isKind: - of: StatefulSet - - equal: - path: metadata.name - value: event-reporter - - - it: New Event-Reporter should be deployed with forked ArgoCD even if it's disabled in extras values - template: cf-argocd-extras/event-reporter/statefulset.yaml - values: - - ./values/mandatory-values-ingress.yaml - set: - cf-argocd-extras.eventReporter.enabled: false - asserts: - - hasDocuments: - count: 1 - - isKind: - of: StatefulSet - - equal: - path: metadata.name - value: event-reporter - - - it: New Event-Reporter should be deployed with external OSS ArgoCD - template: cf-argocd-extras/event-reporter/statefulset.yaml - values: - - ./values/mandatory-values-ingress.yaml - - ./values/external-argocd-values.yaml - asserts: - - hasDocuments: - count: 1 - - isKind: - of: StatefulSet - - equal: - path: metadata.name - value: event-reporter - - - it: Sources-Server should be deployed with forked ArgoCD - template: cf-argocd-extras/sources-server/deployment.yaml - values: - - ./values/mandatory-values-ingress.yaml - asserts: - - hasDocuments: - count: 1 - - isKind: - of: Deployment - - equal: - path: metadata.name - value: sources-server - - - it: Sources-Server should be deployed with external OSS ArgoCD - template: cf-argocd-extras/sources-server/deployment.yaml - values: - - ./values/mandatory-values-ingress.yaml - - ./values/external-argocd-values.yaml - asserts: - - hasDocuments: - count: 1 - - isKind: - of: Deployment - - equal: - path: metadata.name - value: sources-server - - - it: Sources-Server ConfigMap should have valid redis-ha url - template: cf-argocd-extras/sources-server/configmap.yaml - values: - - ./values/mandatory-values-ingress.yaml - set: - argo-cd: - redis-ha: - enabled: true - asserts: - - equal: - path: data["redis.server"] - value: RELEASE-NAME-redis-ha-haproxy:6379 - - - it: Event-Reporter ConfigMap should have valid redis-ha url - template: cf-argocd-extras/event-reporter/configmap.yaml - values: - - ./values/mandatory-values-ingress.yaml - set: - argo-cd: - redis-ha: - enabled: true - asserts: - - equal: - path: data["redis.server"] - value: RELEASE-NAME-redis-ha-haproxy:6379 - - - it: Sources-Server should have an OPTIONAL codefresh-tls-certs volume and volumeMount by default - template: cf-argocd-extras/sources-server/deployment.yaml - values: - - ./values/mandatory-values-ingress.yaml - asserts: - - contains: - path: spec.template.spec.volumes - content: - name: codefresh-tls-certs - secret: - secretName: codefresh-tls-certs - optional: true - - contains: - path: spec.template.spec.containers[0].volumeMounts - content: - name: codefresh-tls-certs - mountPath: /app/config/codefresh-tls-certs - readOnly: true - - - it: Sources-Server should have CODEFRESH_SSL_CERT_PATH env var when .Values.global.codefresh.tls.caCerts.secret.create is true - template: cf-argocd-extras/sources-server/deployment.yaml - values: - - ./values/mandatory-values-ingress.yaml - set: - global: - codefresh: - tls: - caCerts: - secret: - create: true - key: ca-bundle.crt - content: | - -----BEGIN CERTIFICATE----- - MIID... - -----END CERTIFICATE----- - asserts: - - equal: - path: spec.template.spec.containers[0].env[?(@.name == 'CODEFRESH_SSL_CERT_PATH')].value - value: /app/config/codefresh-tls-certs/ca-bundle.crt - - contains: - path: spec.template.spec.volumes - content: - name: codefresh-tls-certs - secret: - secretName: codefresh-tls-certs - optional: true - - contains: - path: spec.template.spec.containers[0].volumeMounts - content: - name: codefresh-tls-certs - mountPath: /app/config/codefresh-tls-certs - readOnly: true - - - it: Sources-Server should have CODEFRESH_SSL_CERT_PATH env var when .Values.global.codefresh.tls.caCerts.secretKeyRef is set - template: cf-argocd-extras/sources-server/deployment.yaml - values: - - ./values/mandatory-values-ingress.yaml - set: - global: - codefresh: - tls: - caCerts: - secretKeyRef: - name: my-codefresh-tls-certs - key: my-ca-bundle.crt - asserts: - - equal: - path: spec.template.spec.containers[0].env[?(@.name == 'CODEFRESH_SSL_CERT_PATH')].value - value: /app/config/codefresh-tls-certs/my-ca-bundle.crt - - contains: - path: spec.template.spec.volumes - content: - name: codefresh-tls-certs - secret: - secretName: my-codefresh-tls-certs - optional: true - - contains: - path: spec.template.spec.containers[0].volumeMounts - content: - name: codefresh-tls-certs - mountPath: /app/config/codefresh-tls-certs - readOnly: true - - - it: Event-Reporter should have an OPTIONAL codefresh-tls-certs volume and volumeMount by default - template: cf-argocd-extras/event-reporter/statefulset.yaml - values: - - ./values/mandatory-values-ingress.yaml - asserts: - - contains: - path: spec.template.spec.volumes - content: - name: codefresh-tls-certs - secret: - secretName: codefresh-tls-certs - optional: true - - contains: - path: spec.template.spec.containers[0].volumeMounts - content: - name: codefresh-tls-certs - mountPath: /app/config/codefresh-tls-certs - readOnly: true - - - it: Event-Reporter should have CODEFRESH_SSL_CERT_PATH env var when .Values.global.codefresh.tls.caCerts.secret.create is true - template: cf-argocd-extras/event-reporter/statefulset.yaml - values: - - ./values/mandatory-values-ingress.yaml - set: - global: - codefresh: - tls: - caCerts: - secret: - create: true - key: ca-bundle.crt - content: | - -----BEGIN CERTIFICATE----- - MIID... - -----END CERTIFICATE----- - asserts: - - equal: - path: spec.template.spec.containers[0].env[?(@.name == 'CODEFRESH_SSL_CERT_PATH')].value - value: /app/config/codefresh-tls-certs/ca-bundle.crt - - contains: - path: spec.template.spec.volumes - content: - name: codefresh-tls-certs - secret: - secretName: codefresh-tls-certs - optional: true - - contains: - path: spec.template.spec.containers[0].volumeMounts - content: - name: codefresh-tls-certs - mountPath: /app/config/codefresh-tls-certs - readOnly: true - - - it: Event-Reporter should have CODEFRESH_SSL_CERT_PATH env var when .Values.global.codefresh.tls.caCerts.secretKeyRef is set - template: cf-argocd-extras/event-reporter/statefulset.yaml - values: - - ./values/mandatory-values-ingress.yaml - set: - global: - codefresh: - tls: - caCerts: - secretKeyRef: - name: my-codefresh-tls-certs - key: my-ca-bundle.crt - asserts: - - equal: - path: spec.template.spec.containers[0].env[?(@.name == 'CODEFRESH_SSL_CERT_PATH')].value - value: /app/config/codefresh-tls-certs/my-ca-bundle.crt - - contains: - path: spec.template.spec.volumes - content: - name: codefresh-tls-certs - secret: - secretName: my-codefresh-tls-certs - optional: true - - contains: - path: spec.template.spec.containers[0].volumeMounts - content: - name: codefresh-tls-certs - mountPath: /app/config/codefresh-tls-certs - readOnly: true - - - it: Sources Server with external redis - template: cf-argocd-extras/sources-server/deployment.yaml - values: - - ./values/mandatory-values-ingress.yaml - set: - cf-argocd-extras.externalRedis.enabled: true - cf-argocd-extras.externalRedis.existingSecretKeyRef.name: my-redis-secret - cf-argocd-extras.externalRedis.existingSecretKeyRef.key: my-redis-key - asserts: - - contains: - path: spec.template.spec.containers[0].env - content: - name: REDIS_PASSWORD - valueFrom: - secretKeyRef: - name: my-redis-secret - key: my-redis-key - - - it: Event Reporter with external redis - template: cf-argocd-extras/sources-server/deployment.yaml - values: - - ./values/mandatory-values-ingress.yaml - set: - cf-argocd-extras.externalRedis.enabled: true - cf-argocd-extras.externalRedis.existingSecretKeyRef.name: my-redis-secret - cf-argocd-extras.externalRedis.existingSecretKeyRef.key: my-redis-key - asserts: - - contains: - path: spec.template.spec.containers[0].env - content: - name: REDIS_PASSWORD - valueFrom: - secretKeyRef: - name: my-redis-secret - key: my-redis-key diff --git a/charts/gitops-runtime/tests/custom-ca_test.yaml b/charts/gitops-runtime/tests/custom-ca_test.yaml index b7b2cab3..5929e4b5 100644 --- a/charts/gitops-runtime/tests/custom-ca_test.yaml +++ b/charts/gitops-runtime/tests/custom-ca_test.yaml @@ -4,8 +4,6 @@ templates: - tls-custom-ca/codefresh-tls-certs.yaml - tls-custom-ca/workflow-pipelines-git-webhooks.yaml - app-proxy/deployment.yaml - - event-reporters/workflow-reporter/sensor.yaml - - event-reporters/rollout-reporter/sensor.yaml - hooks/pre-uninstall/delete-runtime-from-platform.yaml - gitops-operator/* - _components/gitops-operator/* @@ -213,129 +211,6 @@ tests: name: SSL_CERT_FILE value: /app/config/codefresh-tls-certs/ca-bundle.crt -- it: rollout reporter sensor - check chart created secret with default key - template: event-reporters/rollout-reporter/sensor.yaml - values: - - ./values/mandatory-values.yaml - set: - global.codefresh.tls.caCerts.secret.annotations.test: 'test' - global.codefresh.tls.caCerts.secret.create: true - global.codefresh.tls.caCerts.secret.content: | - -----BEGIN CERTIFICATE----- - ... encoded certificate data here ... - -----END CERTIFICATE----- - asserts: - - equal: - path: spec.triggers[0].template.http.tls - value: - caCertSecret: - name: codefresh-tls-certs - key: ca-bundle.crt - -- it: workflow reporter sensor - check chart created secret with default key - template: event-reporters/workflow-reporter/sensor.yaml - values: - - ./values/mandatory-values.yaml - set: - global.codefresh.tls.caCerts.secret.annotations.test: 'test' - global.codefresh.tls.caCerts.secret.create: true - global.codefresh.tls.caCerts.secret.content: | - -----BEGIN CERTIFICATE----- - ... encoded certificate data here ... - -----END CERTIFICATE----- - asserts: - - equal: - path: spec.triggers[0].template.http.tls - value: - caCertSecret: - name: codefresh-tls-certs - key: ca-bundle.crt - -- it: rollout reporter sensor - secretKeyRef - template: event-reporters/rollout-reporter/sensor.yaml - values: - - ./values/mandatory-values.yaml - set: - global.codefresh.tls.caCerts.secretKeyRef.name: my-secret - global.codefresh.tls.caCerts.secretKeyRef.key: my-key - asserts: - - equal: - path: spec.triggers[0].template.http.tls - value: - caCertSecret: - name: my-secret - key: my-key - -- it: workflow reporter sensor - secretKeyRef - template: event-reporters/workflow-reporter/sensor.yaml - values: - - ./values/mandatory-values.yaml - set: - global.codefresh.tls.caCerts.secretKeyRef.name: my-secret - global.codefresh.tls.caCerts.secretKeyRef.key: my-key - asserts: - - equal: - path: spec.triggers[0].template.http.tls - value: - caCertSecret: - name: my-secret - key: my-key - -- it: rollout reporter sensor - check chart created secret with custom key - template: event-reporters/rollout-reporter/sensor.yaml - values: - - ./values/mandatory-values.yaml - set: - global.codefresh.tls.caCerts.secret.annotations.test: 'test' - global.codefresh.tls.caCerts.secret.create: true - global.codefresh.tls.caCerts.secret.key: my-key - global.codefresh.tls.caCerts.secret.content: | - -----BEGIN CERTIFICATE----- - ... encoded certificate data here ... - -----END CERTIFICATE----- - asserts: - - equal: - path: spec.triggers[0].template.http.tls - value: - caCertSecret: - name: codefresh-tls-certs - key: my-key - -- it: workflow reporter sensor - check chart created secret with custom key - template: event-reporters/workflow-reporter/sensor.yaml - values: - - ./values/mandatory-values.yaml - set: - global.codefresh.tls.caCerts.secret.annotations.test: 'test' - global.codefresh.tls.caCerts.secret.create: true - global.codefresh.tls.caCerts.secret.key: my-key - global.codefresh.tls.caCerts.secret.content: | - -----BEGIN CERTIFICATE----- - ... encoded certificate data here ... - -----END CERTIFICATE----- - asserts: - - equal: - path: spec.triggers[0].template.http.tls - value: - caCertSecret: - name: codefresh-tls-certs - key: my-key - -- it: rollout reporter sensor - no tls - template: event-reporters/rollout-reporter/sensor.yaml - values: - - ./values/mandatory-values.yaml - asserts: - - notExists: - path: spec.triggers[0].template.http.tls - -- it: workflow reporter sensor - no tls - template: event-reporters/workflow-reporter/sensor.yaml - values: - - ./values/mandatory-values.yaml - asserts: - - notExists: - path: spec.triggers[0].template.http.tls # -------------------------------------------------------- # workflowPipelinesGitWebhooks # -------------------------------------------------------- diff --git a/charts/gitops-runtime/tests/event-reporters-sensors_test.yaml b/charts/gitops-runtime/tests/event-reporters-sensors_test.yaml deleted file mode 100644 index 23bb0542..00000000 --- a/charts/gitops-runtime/tests/event-reporters-sensors_test.yaml +++ /dev/null @@ -1,311 +0,0 @@ -suite: Test on event reporters sensors -templates: - - event-reporters/workflow-reporter/sensor.yaml - - event-reporters/rollout-reporter/sensor.yaml -tests: - - it: Setting api/events url works - workflow reporter - template: 'event-reporters/workflow-reporter/sensor.yaml' - values: - - './values/mandatory-values.yaml' - set: - global.codefresh.url: "https://my.platform" - global.codefresh.apiEventsPath: "/api-events" - asserts: - - equal: - path: spec.triggers[0].template.http.url - value: https://my.platform/api-events - - - it: Setting api/events url works - rollout reporter - template: 'event-reporters/rollout-reporter/sensor.yaml' - values: - - './values/mandatory-values.yaml' - set: - global.codefresh.url: "https://my.platform" - global.codefresh.apiEventsPath: "/api-events" - asserts: - - equal: - path: spec.triggers[0].template.http.url - value: https://my.platform/api-events - - equal: - path: spec.triggers[1].template.http.url - value: https://my.platform/api-events - - equal: - path: spec.triggers[2].template.http.url - value: https://my.platform/api-events - - - it: Setting various container specs - workflow reporter - template: 'event-reporters/workflow-reporter/sensor.yaml' - values: - - './values/mandatory-values.yaml' - set: - event-reporters.workflow.sensor: - replicas: 2 - resources: - requests: - memory: 1Gi - env: - DEBUG_LOG: "true" - tolerations: - - key: "example-key" - operator: "Exists" - effect: "NoSchedule" - nodeSelector: - region: east - type: user-node - affinity: - requiredDuringSchedulingIgnoredDuringExecution: - nodeSelectorTerms: - - matchExpressions: - - key: topology.kubernetes.io/zone - operator: In - values: - - antarctica-east1 - - antarctica-west1 - asserts: - - equal: - path: spec.replicas - value: 2 - - equal: - path: spec.template.container.env - value: - - name: DEBUG_LOG - value: "true" - - equal: - path: spec.template.container.resources - value: - requests: - memory: 1Gi - - equal: - path: spec.template.tolerations - value: - - key: "example-key" - operator: "Exists" - effect: "NoSchedule" - - equal: - path: spec.template.nodeSelector - value: - region: east - type: user-node - - - it: Setting various container specs - rollout reporter - template: 'event-reporters/rollout-reporter/sensor.yaml' - values: - - './values/mandatory-values.yaml' - set: - event-reporters.rollout.sensor: - replicas: 2 - resources: - requests: - memory: 1Gi - env: - DEBUG_LOG: "true" - tolerations: - - key: "example-key" - operator: "Exists" - effect: "NoSchedule" - nodeSelector: - region: east - type: user-node - affinity: - requiredDuringSchedulingIgnoredDuringExecution: - nodeSelectorTerms: - - matchExpressions: - - key: topology.kubernetes.io/zone - operator: In - values: - - antarctica-east1 - - antarctica-west1 - asserts: - - equal: - path: spec.replicas - value: 2 - - equal: - path: spec.template.container.env - value: - - name: DEBUG_LOG - value: "true" - - equal: - path: spec.template.container.resources - value: - requests: - memory: 1Gi - - equal: - path: spec.template.tolerations - value: - - key: "example-key" - operator: "Exists" - effect: "NoSchedule" - - equal: - path: spec.template.nodeSelector - value: - region: east - type: user-node - - - it: Logging without interval works - workflow reporter - template: 'event-reporters/workflow-reporter/sensor.yaml' - values: - - './values/mandatory-values.yaml' - set: - event-reporters.workflow.sensor: - logging: - enabled: true - asserts: - - contains: - path: spec.triggers - content: - template: - log: {} - name: log-trigger - - - it: Logging without interval works - rollout reporter - template: 'event-reporters/rollout-reporter/sensor.yaml' - values: - - './values/mandatory-values.yaml' - set: - event-reporters.rollout.sensor: - logging: - enabled: true - asserts: - - contains: - path: spec.triggers - content: - template: - log: {} - name: log-trigger - - - it: Logging with interval works - workflow reporter - template: 'event-reporters/workflow-reporter/sensor.yaml' - values: - - './values/mandatory-values.yaml' - set: - event-reporters.workflow.sensor: - logging: - intervalSeconds: 60 - enabled: true - asserts: - - contains: - path: spec.triggers - content: - template: - log: - intervalSeconds: 60 - name: log-trigger - - - it: HTTP trigger contains retries if set - workflow reporter - template: 'event-reporters/workflow-reporter/sensor.yaml' - values: - - './values/mandatory-values.yaml' - set: - event-reporters.workflow.sensor: - retryStrategy: - steps: 3 - duration: 1 - factor: 1.2 - jitter: 3 - asserts: - - equal: - path: spec.triggers[0].retryStrategy - value: - steps: 3 - duration: 1 - factor: 1.2 - jitter: 3 - - - it: HTTP trigger contains retries if set - rollout reporter - template: 'event-reporters/rollout-reporter/sensor.yaml' - values: - - './values/mandatory-values.yaml' - set: - event-reporters.rollout.sensor: - retryStrategy: - steps: 3 - duration: 1 - factor: 1.2 - jitter: 3 - asserts: - - equal: - path: spec.triggers[0].retryStrategy - value: - steps: 3 - duration: 1 - factor: 1.2 - jitter: 3 - - equal: - path: spec.triggers[1].retryStrategy - value: - steps: 3 - duration: 1 - factor: 1.2 - jitter: 3 - - equal: - path: spec.triggers[2].retryStrategy - value: - steps: 3 - duration: 1 - factor: 1.2 - jitter: 3 - - - it: HTTP trigger contains policy if set - workflow reporter - template: 'event-reporters/workflow-reporter/sensor.yaml' - values: - - './values/mandatory-values.yaml' - set: - event-reporters.workflow.sensor: - policy: - status: - allow: - - 200 - asserts: - - equal: - path: spec.triggers[0].policy - value: - status: - allow: - - 200 - - - it: HTTP trigger contains atLeastOnce if unset - rollout reporter - template: 'event-reporters/rollout-reporter/sensor.yaml' - values: - - './values/mandatory-values.yaml' - set: - event-reporters.rollout.sensor: - atLeastOnce: false - asserts: - - equal: - path: spec.triggers[0].atLeastOnce - value: false - - - - it: HTTP trigger contains atLeastOnce if unset - workflow reporter - template: 'event-reporters/workflow-reporter/sensor.yaml' - values: - - './values/mandatory-values.yaml' - set: - event-reporters.workflow.sensor: - atLeastOnce: false - asserts: - - equal: - path: spec.triggers[0].atLeastOnce - value: false - - - it: uses the correct eventBusName if type is jetstream - rollout reporter - template: 'event-reporters/rollout-reporter/sensor.yaml' - values: - - './values/mandatory-values.yaml' - set: - global.runtime.eventBus.type: jetstream - asserts: - - equal: - path: spec.eventBusName - value: codefresh-eventbus-jetstream - - - it: uses the correct eventBusName if type is jetstream - workflow reporter - template: 'event-reporters/workflow-reporter/sensor.yaml' - values: - - './values/mandatory-values.yaml' - set: - global.runtime.eventBus.type: jetstream - asserts: - - equal: - path: spec.eventBusName - value: codefresh-eventbus-jetstream diff --git a/charts/gitops-runtime/tests/event-reporters_test.yaml b/charts/gitops-runtime/tests/event-reporters_test.yaml new file mode 100644 index 00000000..c1ea127e --- /dev/null +++ b/charts/gitops-runtime/tests/event-reporters_test.yaml @@ -0,0 +1,155 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json +suite: argo-gateway tests +templates: + - event-reporters/**/*.yaml +tests: + - it: Runtime Reporter should be deployed with forked ArgoCD + template: event-reporters/runtime-event-reporter/deployment.yaml + values: + - ./values/mandatory-values-ingress.yaml + asserts: + - hasDocuments: + count: 1 + - isKind: + of: Deployment + - equal: + path: metadata.name + value: runtime-event-reporter + + - it: Runtime Reporter should be deployed with external OSS ArgoCD + template: event-reporters/runtime-event-reporter/deployment.yaml + values: + - ./values/mandatory-values-ingress.yaml + - ./values/external-argocd-values.yaml + asserts: + - hasDocuments: + count: 1 + - isKind: + of: Deployment + - equal: + path: metadata.name + value: runtime-event-reporter + + - it: Runtime Reporter ConfigMap should have valid redis-ha url + template: event-reporters/runtime-event-reporter/configmap.yaml + values: + - ./values/mandatory-values-ingress.yaml + set: + argo-cd: + redis-ha: + enabled: true + asserts: + - equal: + path: data["redis.server"] + value: RELEASE-NAME-redis-ha-haproxy:6379 + + - it: Runtime Reporter should have CODEFRESH_SSL_CERT_PATH env var when .Values.global.codefresh.tls.caCerts.secret.create is true + template: event-reporters/runtime-event-reporter/deployment.yaml + values: + - ./values/mandatory-values-ingress.yaml + set: + global: + codefresh: + tls: + caCerts: + secret: + create: true + key: ca-bundle.crt + content: | + -----BEGIN CERTIFICATE----- + MIID... + -----END CERTIFICATE----- + asserts: + - equal: + path: spec.template.spec.containers[0].env[?(@.name == 'CODEFRESH_SSL_CERT_PATH')].value + value: /app/config/codefresh-tls-certs/ca-bundle.crt + - contains: + path: spec.template.spec.volumes + content: + name: codefresh-tls-certs + secret: + secretName: codefresh-tls-certs + - contains: + path: spec.template.spec.containers[0].volumeMounts + content: + name: codefresh-tls-certs + mountPath: /app/config/codefresh-tls-certs + readOnly: true + + - it: Runtime Reporter should have CODEFRESH_SSL_CERT_PATH env var when .Values.global.codefresh.tls.caCerts.secretKeyRef is set + template: event-reporters/runtime-event-reporter/deployment.yaml + values: + - ./values/mandatory-values-ingress.yaml + set: + global: + codefresh: + tls: + caCerts: + secretKeyRef: + name: my-codefresh-tls-certs + key: my-ca-bundle.crt + asserts: + - equal: + path: spec.template.spec.containers[0].env[?(@.name == 'CODEFRESH_SSL_CERT_PATH')].value + value: /app/config/codefresh-tls-certs/my-ca-bundle.crt + - contains: + path: spec.template.spec.volumes + content: + name: codefresh-tls-certs + secret: + secretName: my-codefresh-tls-certs + - contains: + path: spec.template.spec.containers[0].volumeMounts + content: + name: codefresh-tls-certs + mountPath: /app/config/codefresh-tls-certs + readOnly: true + + - it: Runtime Reporter should use local env over global Values.event-reporters.env + template: event-reporters/runtime-event-reporter/deployment.yaml + values: + - ./values/mandatory-values-ingress.yaml + set: + global: + event-reporters: + env: + FOO: outer + event-reporters: + runtime-event-reporter: + env: + FOO: inner + BAR: inner + asserts: + - equal: + path: spec.template.spec.containers[0].env[?(@.name == 'FOO')].value + value: inner + - equal: + path: spec.template.spec.containers[0].env[?(@.name == 'BAR')].value + value: inner + + - it: Runtime Reporter should use local values over global Values.event-reporters + template: event-reporters/runtime-event-reporter/deployment.yaml + values: + - ./values/mandatory-values-ingress.yaml + set: + global: + event-reporters: + resources: + limits: + cpu: 100m + memory: 128Mi + requests: + cpu: 100m + memory: 128Mi + event-reporters: + runtime-event-reporter: + resources: + limits: + cpu: 200m + memory: 256Mi + asserts: + - equal: + path: spec.template.spec.containers[0].resources.limits + value: + cpu: 200m + memory: 256Mi diff --git a/charts/gitops-runtime/tests/eventbus_test.yaml b/charts/gitops-runtime/tests/eventbus_test.yaml deleted file mode 100644 index b6ea09ea..00000000 --- a/charts/gitops-runtime/tests/eventbus_test.yaml +++ /dev/null @@ -1,68 +0,0 @@ -# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json -suite: eventbus tests -templates: - - eventbus/codefresh-eventbus.yaml -tests: - - it: Should create an EventBus with the correct type (nats) - template: eventbus/codefresh-eventbus.yaml - values: - - ./values/mandatory-values.yaml - set: - global.runtime.eventBus.type: nats - asserts: - - exists: - path: spec.nats - - notExists: - path: spec.jetstream - - equal: - path: metadata.name - value: codefresh-eventbus - - - it: Should create an EventBus with the correct type (jetstream) - template: eventbus/codefresh-eventbus.yaml - values: - - ./values/mandatory-values.yaml - set: - global.runtime.eventBus.type: jetstream - asserts: - - exists: - path: spec.jetstream - - notExists: - path: spec.nats - - - it: Should create an EventBus with the correct default name (nats) - template: eventbus/codefresh-eventbus.yaml - values: - - ./values/mandatory-values.yaml - set: - global.runtime.eventBus.type: nats - asserts: - - equal: - path: metadata.name - value: codefresh-eventbus - - - it: Should create an EventBus with the correct override name (nats) - template: eventbus/codefresh-eventbus.yaml - values: - - ./values/mandatory-values.yaml - set: - global.runtime.eventBus: - name: manual-override - type: nats - asserts: - - equal: - path: metadata.name - value: manual-override - - - it: Should create an EventBus with the correct override name (jetstream) - template: eventbus/codefresh-eventbus.yaml - values: - - ./values/mandatory-values.yaml - set: - global.runtime.eventBus: - name: manual-override - type: jetstream - asserts: - - equal: - path: metadata.name - value: manual-override diff --git a/charts/gitops-runtime/tests/external_argo_rollouts_test.yaml b/charts/gitops-runtime/tests/external_argo_rollouts_test.yaml deleted file mode 100644 index 9ac49ae0..00000000 --- a/charts/gitops-runtime/tests/external_argo_rollouts_test.yaml +++ /dev/null @@ -1,88 +0,0 @@ -# yaml-language-server: $schema=https://raw.githubusercontent.com/helm-unittest/helm-unittest/main/schema/helm-testsuite.json -suite: Test External Argo Rolouts with GitOps Runtime -templates: - - event-reporters/rollout-reporter/* -tests: - - it: Should not deploy rollout-reporter if argo-rollouts disabled - set: - argo-rollouts: - enabled: false - asserts: - - containsDocument: - apiVersion: v1 - kind: ServiceAccount - name: rollout-reporter - template: event-reporters/rollout-reporter/serviceaccount.yaml - not: true - - containsDocument: - apiVersion: argoproj.io/v1alpha1 - kind: Sensor - name: rollout-reporter - template: event-reporters/rollout-reporter/sensor.yaml - not: true - - containsDocument: - apiVersion: argoproj.io/v1alpha1 - kind: EventSource - name: rollout-reporter - template: event-reporters/rollout-reporter/eventsource.yaml - not: true - - containsDocument: - apiVersion: rbac.authorization.k8s.io/v1 - kind: Role - name: rollout-reporter-sa - template: event-reporters/rollout-reporter/rbac.yaml - not: true - - containsDocument: - apiVersion: rbac.authorization.k8s.io/v1 - kind: RoleBinding - name: rollout-reporter-sa - template: event-reporters/rollout-reporter/rbac.yaml - not: true - - containsDocument: - apiVersion: rbac.authorization.k8s.io/v1 - kind: ClusterRoleBinding - name: codefresh-rollouts-reporter - template: event-reporters/rollout-reporter/clusterrolebinding.yaml - not: true - - - it: Should deploy rollout-reporter if argo-rollouts disabled AND .global.external-argo-rollouts.rollout-reporter.enabled is true - set: - argo-rollouts: - enabled: false - global: - external-argo-rollouts: - rollout-reporter: - enabled: true - asserts: - - containsDocument: - apiVersion: v1 - kind: ServiceAccount - name: rollout-reporter - template: event-reporters/rollout-reporter/serviceaccount.yaml - - containsDocument: - apiVersion: argoproj.io/v1alpha1 - kind: Sensor - name: rollout-reporter - template: event-reporters/rollout-reporter/sensor.yaml - - containsDocument: - apiVersion: argoproj.io/v1alpha1 - kind: EventSource - name: rollout-reporter - template: event-reporters/rollout-reporter/eventsource.yaml - - containsDocument: - apiVersion: rbac.authorization.k8s.io/v1 - kind: Role - name: rollout-reporter-sa - template: event-reporters/rollout-reporter/rbac.yaml - documentIndex: 0 - - containsDocument: - apiVersion: rbac.authorization.k8s.io/v1 - kind: RoleBinding - name: rollout-reporter-sa - template: event-reporters/rollout-reporter/rbac.yaml - documentIndex: 1 - - containsDocument: - apiVersion: rbac.authorization.k8s.io/v1 - kind: ClusterRoleBinding - name: codefresh-rollouts-reporter - template: event-reporters/rollout-reporter/clusterrolebinding.yaml diff --git a/charts/gitops-runtime/tests/external_argocd_test.yaml b/charts/gitops-runtime/tests/external_argocd_test.yaml index 02c42c81..40fe71dc 100644 --- a/charts/gitops-runtime/tests/external_argocd_test.yaml +++ b/charts/gitops-runtime/tests/external_argocd_test.yaml @@ -3,8 +3,8 @@ templates: - app-proxy/config.yaml - app-proxy/deployment.yaml - gitops-operator/* - - cf-argocd-extras/* - - _components/cf-argocd-extras/* + - event-reporters/**/*.yaml + - argo-gateway/** - _components/gitops-operator/* - app-proxy/external-argocd-token.yaml - codefresh-cm.yaml @@ -389,8 +389,8 @@ tests: name: ARGO_CD_URL value: my-argocd-server:80 - - it: event-reporter ConfigMap should have valid ArgoCd URL - template: cf-argocd-extras/event-reporter/configmap.yaml + - it: runtime-event-reporter ConfigMap should have valid ArgoCd URL + template: event-reporters/runtime-event-reporter/configmap.yaml values: - ./values/mandatory-values-ingress.yaml - ./values/external-argocd-values.yaml @@ -399,8 +399,8 @@ tests: path: data["argocd.server"] value: my-argocd-server:80 - - it: event-reporter ConfigMap should have valid Redis URL - template: cf-argocd-extras/event-reporter/configmap.yaml + - it: runtime-event-reporter ConfigMap should have valid Redis URL + template: event-reporters/runtime-event-reporter/configmap.yaml values: - ./values/mandatory-values-ingress.yaml - ./values/external-argocd-values.yaml @@ -409,18 +409,18 @@ tests: path: data["redis.server"] value: my-argocd-redis:6379 - - it: event-reporter ConfigMap should have valid Sources Server address - template: cf-argocd-extras/event-reporter/configmap.yaml + - it: runtime-event-reporter ConfigMap should have valid Sources Server address + template: event-reporters/runtime-event-reporter/configmap.yaml values: - ./values/mandatory-values-ingress.yaml - ./values/external-argocd-values.yaml asserts: - equal: - path: data["sources.server"] - value: http://sources-server + path: data["argo-gateway.server"] + value: http://argo-gateway - - it: event-reporte ConfigMap should have valid Repo Server URL - template: cf-argocd-extras/event-reporter/configmap.yaml + - it: runtime-event-reporter ConfigMap should have valid Repo Server URL + template: event-reporters/runtime-event-reporter/configmap.yaml values: - ./values/mandatory-values-ingress.yaml - ./values/external-argocd-values.yaml @@ -429,8 +429,8 @@ tests: path: data["repo.server"] value: my-argocd-repo-server:8081 - - it: event-reporter StatefulSet should have valid default ARGO_CD_TOKEN_SECRET_NAME env var - template: cf-argocd-extras/event-reporter/statefulset.yaml + - it: runtime-event-reporter Deployment should have valid default ARGO_CD_TOKEN_SECRET_NAME env var + template: event-reporters/runtime-event-reporter/deployment.yaml values: - ./values/mandatory-values-ingress.yaml - ./values/external-argocd-values.yaml @@ -441,8 +441,8 @@ tests: name: ARGO_CD_TOKEN_SECRET_NAME value: argocd-token - - it: event-reporter StatefulSet should have valid default ARGO_CD_TOKEN_SECRET_KEY env var - template: cf-argocd-extras/event-reporter/statefulset.yaml + - it: runtime-event-reporter Deployment should have valid default ARGO_CD_TOKEN_SECRET_KEY env var + template: event-reporters/runtime-event-reporter/deployment.yaml values: - ./values/mandatory-values-ingress.yaml - ./values/external-argocd-values.yaml @@ -453,8 +453,8 @@ tests: name: ARGO_CD_TOKEN_SECRET_KEY value: token - - it: event-reporter StatefulSet should have valid ARGO_CD_TOKEN_SECRET_NAME env var set via tokenSecretKeyRef - template: cf-argocd-extras/event-reporter/statefulset.yaml + - it: runtime-event-reporter Deployment should have valid ARGO_CD_TOKEN_SECRET_NAME env var set via tokenSecretKeyRef + template: event-reporters/runtime-event-reporter/deployment.yaml values: - ./values/mandatory-values-ingress.yaml - ./values/external-argocd-values.yaml @@ -475,8 +475,8 @@ tests: name: ARGO_CD_TOKEN_SECRET_NAME value: my-argocd-token - - it: event-reporter StatefulSet should have valid ARGO_CD_TOKEN_SECRET_KEY env var set via tokenSecretKeyRef - template: cf-argocd-extras/event-reporter/statefulset.yaml + - it: runtime-event-reporter Deployment should have valid ARGO_CD_TOKEN_SECRET_KEY env var set via tokenSecretKeyRef + template: event-reporters/runtime-event-reporter/deployment.yaml values: - ./values/mandatory-values-ingress.yaml - ./values/external-argocd-values.yaml @@ -497,8 +497,8 @@ tests: name: ARGO_CD_TOKEN_SECRET_KEY value: my-token - - it: event-reporter StatefulSet should have valid ARGO_CD_TOKEN_SECRET_NAME env var set via plaintext token - template: cf-argocd-extras/event-reporter/statefulset.yaml + - it: runtime-event-reporter Deployment should have valid ARGO_CD_TOKEN_SECRET_NAME env var set via plaintext token + template: event-reporters/runtime-event-reporter/deployment.yaml values: - ./values/mandatory-values-ingress.yaml - ./values/external-argocd-values.yaml @@ -517,8 +517,8 @@ tests: name: ARGO_CD_TOKEN_SECRET_NAME value: gitops-runtime-argo-cd-token - - it: event-reporter StatefulSet should have valid ARGO_CD_TOKEN_SECRET_KEY env var set via plaintext token - template: cf-argocd-extras/event-reporter/statefulset.yaml + - it: runtime-event-reporter Deployment should have valid ARGO_CD_TOKEN_SECRET_KEY env var set via plaintext token + template: event-reporters/runtime-event-reporter/deployment.yaml values: - ./values/mandatory-values-ingress.yaml - ./values/external-argocd-values.yaml @@ -537,8 +537,8 @@ tests: name: ARGO_CD_TOKEN_SECRET_KEY value: token - - it: sources-server ConfigMap should have valid ArgoCd URL - template: cf-argocd-extras/sources-server/configmap.yaml + - it: argo-gateway ConfigMap should have valid ArgoCd URL + template: argo-gateway/configmap.yaml values: - ./values/mandatory-values-ingress.yaml - ./values/external-argocd-values.yaml @@ -547,8 +547,8 @@ tests: path: data["argocd.server"] value: my-argocd-server:80 - - it: sources-server ConfigMap should have valid Redis URL - template: cf-argocd-extras/sources-server/configmap.yaml + - it: argo-gateway ConfigMap should have valid Redis URL + template: argo-gateway/configmap.yaml values: - ./values/mandatory-values-ingress.yaml - ./values/external-argocd-values.yaml @@ -557,8 +557,8 @@ tests: path: data["redis.server"] value: my-argocd-redis:6379 - - it: sources-server ConfigMap should have valid Repo Server URL - template: cf-argocd-extras/sources-server/configmap.yaml + - it: argo-gateway ConfigMap should have valid Repo Server URL + template: argo-gateway/configmap.yaml values: - ./values/mandatory-values-ingress.yaml - ./values/external-argocd-values.yaml @@ -567,8 +567,8 @@ tests: path: data["repo.server"] value: my-argocd-repo-server:8081 - - it: sources-server Deployment should have valid default ARGO_CD_TOKEN_SECRET_NAME env var - template: cf-argocd-extras/sources-server/deployment.yaml + - it: argo-gateway Deployment should have valid default ARGO_CD_TOKEN_SECRET_NAME env var + template: argo-gateway/deployment.yaml values: - ./values/mandatory-values-ingress.yaml - ./values/external-argocd-values.yaml @@ -579,8 +579,8 @@ tests: name: ARGO_CD_TOKEN_SECRET_NAME value: argocd-token - - it: sources-server Deployment should have valid default ARGO_CD_TOKEN_SECRET_KEY env var - template: cf-argocd-extras/sources-server/deployment.yaml + - it: argo-gateway Deployment should have valid default ARGO_CD_TOKEN_SECRET_KEY env var + template: argo-gateway/deployment.yaml values: - ./values/mandatory-values-ingress.yaml - ./values/external-argocd-values.yaml @@ -591,8 +591,8 @@ tests: name: ARGO_CD_TOKEN_SECRET_KEY value: token - - it: sources-server Deployment should have valid ARGO_CD_TOKEN_SECRET_NAME env var set via tokenSecretKeyRef - template: cf-argocd-extras/sources-server/deployment.yaml + - it: argo-gateway Deployment should have valid ARGO_CD_TOKEN_SECRET_NAME env var set via tokenSecretKeyRef + template: argo-gateway/deployment.yaml values: - ./values/mandatory-values-ingress.yaml - ./values/external-argocd-values.yaml @@ -613,8 +613,8 @@ tests: name: ARGO_CD_TOKEN_SECRET_NAME value: my-argocd-token - - it: sources-server Deployment should have valid ARGO_CD_TOKEN_SECRET_KEY env var set via tokenSecretKeyRef - template: cf-argocd-extras/sources-server/deployment.yaml + - it: argo-gateway Deployment should have valid ARGO_CD_TOKEN_SECRET_KEY env var set via tokenSecretKeyRef + template: argo-gateway/deployment.yaml values: - ./values/mandatory-values-ingress.yaml - ./values/external-argocd-values.yaml @@ -635,8 +635,8 @@ tests: name: ARGO_CD_TOKEN_SECRET_KEY value: my-token - - it: sources-server Deployment should have valid ARGO_CD_TOKEN_SECRET_NAME env var set via plaintext token - template: cf-argocd-extras/sources-server/deployment.yaml + - it: argo-gateway Deployment should have valid ARGO_CD_TOKEN_SECRET_NAME env var set via plaintext token + template: argo-gateway/deployment.yaml values: - ./values/mandatory-values-ingress.yaml - ./values/external-argocd-values.yaml @@ -655,8 +655,8 @@ tests: name: ARGO_CD_TOKEN_SECRET_NAME value: gitops-runtime-argo-cd-token - - it: sources-server Deployment should have valid ARGO_CD_TOKEN_SECRET_KEY env var set via plaintext token - template: cf-argocd-extras/sources-server/deployment.yaml + - it: argo-gateway Deployment should have valid ARGO_CD_TOKEN_SECRET_KEY env var set via plaintext token + template: argo-gateway/deployment.yaml values: - ./values/mandatory-values-ingress.yaml - ./values/external-argocd-values.yaml @@ -676,7 +676,6 @@ tests: value: token - it: should require ArgoCd redis address if it's not provided - template: cf-argocd-extras/sources-server/deployment.yaml values: - ./values/mandatory-values-ingress.yaml - ./values/external-argocd-values.yaml @@ -689,7 +688,6 @@ tests: errorMessage: "ArgoCD is not enabled and .Values.global.external-argo-cd.redis is not set" - it: should require ArgoCd repoServer address if it's not provided - template: cf-argocd-extras/sources-server/deployment.yaml values: - ./values/mandatory-values-ingress.yaml - ./values/external-argocd-values.yaml @@ -716,8 +714,8 @@ tests: - failedTemplate: errorMessage: "Invalid value for .Values.global.integrations.argo-cd.server.auth.type: invalid. Allowed values are: [password token]" - - it: event-reporter StatefulSet should have valid ARGOCD_SERVER_ROOTPATH env var - template: cf-argocd-extras/event-reporter/statefulset.yaml + - it: runtime-event-reporter Deployment should have valid ARGOCD_SERVER_ROOTPATH env var + template: event-reporters/runtime-event-reporter/deployment.yaml values: - ./values/mandatory-values-ingress.yaml - ./values/external-argocd-values.yaml @@ -733,8 +731,8 @@ tests: name: ARGOCD_SERVER_ROOTPATH value: /argocd - - it: sources-server Deployment should have valid ARGOCD_SERVER_ROOTPATH env var - template: cf-argocd-extras/sources-server/deployment.yaml + - it: argo-gateway Deployment should have valid ARGOCD_SERVER_ROOTPATH env var + template: argo-gateway/deployment.yaml values: - ./values/mandatory-values-ingress.yaml - ./values/external-argocd-values.yaml @@ -826,7 +824,7 @@ tests: - isNotNullOrEmpty: path: stringData.token - - it: codefresh-cm ConfigMap should have event-reporter and sources-server + - it: codefresh-cm ConfigMap should have runtime-event-reporter and sources-server template: codefresh-cm.yaml values: - ./values/mandatory-values-ingress.yaml @@ -837,7 +835,7 @@ tests: pattern: "name: event-reporter" - matchRegex: path: data.components - pattern: "name: sources-server" + pattern: "name: argo-gateway" - it: should require ArgoCd token if auth.type=token is set and no token is provided values: @@ -859,7 +857,6 @@ tests: errorMessage: ".Values.global.integrations.argo-cd.server.auth.type is set to 'token' therefore .Values.global.integrations.argo-cd.server.auth.tokenSecretKeyRef.name is required" - it: should require ArgoCd server address if it's not provided - template: cf-argocd-extras/sources-server/deployment.yaml values: - ./values/mandatory-values-ingress.yaml - ./values/external-argocd-values.yaml diff --git a/charts/gitops-runtime/tests/global_constraints_test.yaml b/charts/gitops-runtime/tests/global_constraints_test.yaml index 232a2a2d..a8bc4891 100644 --- a/charts/gitops-runtime/tests/global_constraints_test.yaml +++ b/charts/gitops-runtime/tests/global_constraints_test.yaml @@ -1,18 +1,13 @@ suite: Test global constraints (nodeSelector, tolerations) templates: - app-proxy/deployment.yaml - - cf-argocd-extras/** - gitops-operator/* - - _components/cf-argocd-extras/** + - event-reporters/** + - argo-gateway/** - _components/gitops-operator/* - tunnel-client.yaml - charts/codefresh-tunnel-client/* - internal-router/deployment.yaml - - event-reporters/rollout-reporter/eventsource.yaml - - event-reporters/rollout-reporter/sensor.yaml - - event-reporters/workflow-reporter/eventsource.yaml - - event-reporters/workflow-reporter/sensor.yaml - - eventbus/codefresh-eventbus.yaml - hooks/pre-install/validate-values.yaml - hooks/pre-install/validate-usage.yaml - hooks/pre-uninstall/cleanup-resources.yaml @@ -57,81 +52,36 @@ tests: value: some-value effect: NoSchedule template: internal-router/deployment.yaml - # -- rollout-reporter eventsource + # -- runtime-event-reporter - equal: - path: spec.template.nodeSelector - value: - some-key: some-value - extra-key: extra-value - template: event-reporters/rollout-reporter/eventsource.yaml - - equal: - path: spec.template.tolerations - value: - - key: some-key - operator: Equal - value: some-value - effect: NoSchedule - template: event-reporters/rollout-reporter/eventsource.yaml - # -- rollout-reporter sensor - - equal: - path: spec.template.nodeSelector - value: - some-key: some-value - extra-key: extra-value - template: event-reporters/rollout-reporter/sensor.yaml - - equal: - path: spec.template.tolerations - value: - - key: some-key - operator: Equal - value: some-value - effect: NoSchedule - template: event-reporters/rollout-reporter/sensor.yaml - # -- workflow-reporter eventsource - - equal: - path: spec.template.nodeSelector - value: - some-key: some-value - extra-key: extra-value - template: event-reporters/workflow-reporter/eventsource.yaml - - equal: - path: spec.template.tolerations - value: - - key: some-key - operator: Equal - value: some-value - effect: NoSchedule - template: event-reporters/workflow-reporter/eventsource.yaml - # -- workflow-reporter sensor - - equal: - path: spec.template.nodeSelector + path: spec.template.spec.nodeSelector value: some-key: some-value extra-key: extra-value - template: event-reporters/workflow-reporter/sensor.yaml + template: event-reporters/runtime-event-reporter/deployment.yaml - equal: - path: spec.template.tolerations + path: spec.template.spec.tolerations value: - key: some-key operator: Equal value: some-value effect: NoSchedule - template: event-reporters/workflow-reporter/sensor.yaml - # -- codefresh-eventbus + template: event-reporters/runtime-event-reporter/deployment.yaml + # -- argo-gateway - equal: - path: spec.nats.native.nodeSelector + path: spec.template.spec.nodeSelector value: some-key: some-value extra-key: extra-value - template: eventbus/codefresh-eventbus.yaml + template: argo-gateway/deployment.yaml - equal: - path: spec.nats.native.tolerations + path: spec.template.spec.tolerations value: - key: some-key operator: Equal value: some-value effect: NoSchedule - template: eventbus/codefresh-eventbus.yaml + template: argo-gateway/deployment.yaml # -- validate-values job - equal: path: spec.template.spec.nodeSelector @@ -222,7 +172,7 @@ tests: value: some-key: some-value extra-key: extra-value - template: cf-argocd-extras/sources-server/deployment.yaml + template: argo-gateway/deployment.yaml - equal: path: spec.template.spec.tolerations value: @@ -230,14 +180,14 @@ tests: operator: Equal value: some-value effect: NoSchedule - template: cf-argocd-extras/sources-server/deployment.yaml + template: argo-gateway/deployment.yaml # -- event-reporter - equal: path: spec.template.spec.nodeSelector value: some-key: some-value extra-key: extra-value - template: cf-argocd-extras/event-reporter/statefulset.yaml + template: event-reporters/runtime-event-reporter/deployment.yaml - equal: path: spec.template.spec.tolerations value: @@ -245,7 +195,7 @@ tests: operator: Equal value: some-value effect: NoSchedule - template: cf-argocd-extras/event-reporter/statefulset.yaml + template: event-reporters/runtime-event-reporter/deployment.yaml # -- gitops-operator - equal: path: spec.template.spec.nodeSelector @@ -282,36 +232,6 @@ tests: documentSelector: path: kind value: Deployment - # -- argo-events-controller - - equal: - path: spec.template.spec.nodeSelector - value: - some-key: some-value - extra-key: extra-value - template: charts/argo-events/templates/argo-events-controller/deployment.yaml - - equal: - path: spec.template.spec.tolerations - value: - - key: some-key - operator: Equal - value: some-value - effect: NoSchedule - template: charts/argo-events/templates/argo-events-controller/deployment.yaml - # -- argo-events-webhook - - equal: - path: spec.template.spec.nodeSelector - value: - some-key: some-value - extra-key: extra-value - template: charts/argo-events/templates/argo-events-webhook/deployment.yaml - - equal: - path: spec.template.spec.tolerations - value: - - key: some-key - operator: Equal - value: some-value - effect: NoSchedule - template: charts/argo-events/templates/argo-events-webhook/deployment.yaml # -- argo-rollouts controller - equal: path: spec.template.spec.nodeSelector @@ -394,81 +314,6 @@ tests: value: another-value effect: NoSchedule template: internal-router/deployment.yaml - # -- rollout-reporter eventsource - - equal: - path: spec.template.nodeSelector - value: - some-key: another-value - foo: bar - template: event-reporters/rollout-reporter/eventsource.yaml - - equal: - path: spec.template.tolerations - value: - - key: another-key - operator: Equal - value: another-value - effect: NoSchedule - template: event-reporters/rollout-reporter/eventsource.yaml - # -- rollout-reporter sensor - - equal: - path: spec.template.nodeSelector - value: - some-key: another-value - foo: bar - template: event-reporters/rollout-reporter/sensor.yaml - - equal: - path: spec.template.tolerations - value: - - key: another-key - operator: Equal - value: another-value - effect: NoSchedule - template: event-reporters/rollout-reporter/sensor.yaml - # -- workflow-reporter eventsource - - equal: - path: spec.template.nodeSelector - value: - some-key: another-value - foo: bar - template: event-reporters/workflow-reporter/eventsource.yaml - - equal: - path: spec.template.tolerations - value: - - key: another-key - operator: Equal - value: another-value - effect: NoSchedule - template: event-reporters/workflow-reporter/eventsource.yaml - # -- workflow-reporter sensor - - equal: - path: spec.template.nodeSelector - value: - some-key: another-value - foo: bar - template: event-reporters/workflow-reporter/sensor.yaml - - equal: - path: spec.template.tolerations - value: - - key: another-key - operator: Equal - value: another-value - effect: NoSchedule - template: event-reporters/workflow-reporter/sensor.yaml - # -- codefresh-eventbus - - equal: - path: spec.nats.native.nodeSelector - value: - some-key: another-value - foo: bar - template: eventbus/codefresh-eventbus.yaml - - equal: - path: spec.nats.native.tolerations - value: - - key: another-key - operator: Equal - value: another-value - effect: NoSchedule - template: eventbus/codefresh-eventbus.yaml # -- validate-values job - equal: path: spec.template.spec.nodeSelector @@ -559,7 +404,7 @@ tests: value: some-key: another-value foo: bar - template: cf-argocd-extras/sources-server/deployment.yaml + template: argo-gateway/deployment.yaml - equal: path: spec.template.spec.tolerations value: @@ -567,14 +412,14 @@ tests: operator: Equal value: another-value effect: NoSchedule - template: cf-argocd-extras/sources-server/deployment.yaml + template: argo-gateway/deployment.yaml # -- event-reporter - equal: path: spec.template.spec.nodeSelector value: some-key: another-value foo: bar - template: cf-argocd-extras/event-reporter/statefulset.yaml + template: event-reporters/runtime-event-reporter/deployment.yaml - equal: path: spec.template.spec.tolerations value: @@ -582,7 +427,7 @@ tests: operator: Equal value: another-value effect: NoSchedule - template: cf-argocd-extras/event-reporter/statefulset.yaml + template: event-reporters/runtime-event-reporter/deployment.yaml # -- gitops-operator - equal: path: spec.template.spec.nodeSelector @@ -619,36 +464,6 @@ tests: documentSelector: path: kind value: Deployment - # -- argo-events-controller - - equal: - path: spec.template.spec.nodeSelector - value: - some-key: another-value - foo: bar - template: charts/argo-events/templates/argo-events-controller/deployment.yaml - - equal: - path: spec.template.spec.tolerations - value: - - key: another-key - operator: Equal - value: another-value - effect: NoSchedule - template: charts/argo-events/templates/argo-events-controller/deployment.yaml - # -- argo-events-webhook - - equal: - path: spec.template.spec.nodeSelector - value: - some-key: another-value - foo: bar - template: charts/argo-events/templates/argo-events-webhook/deployment.yaml - - equal: - path: spec.template.spec.tolerations - value: - - key: another-key - operator: Equal - value: another-value - effect: NoSchedule - template: charts/argo-events/templates/argo-events-webhook/deployment.yaml # -- argo-rollouts controller - equal: path: spec.template.spec.nodeSelector diff --git a/charts/gitops-runtime/tests/rollouts-enabled-disabled_test.yaml b/charts/gitops-runtime/tests/rollouts-enabled-disabled_test.yaml deleted file mode 100644 index 795ed3d0..00000000 --- a/charts/gitops-runtime/tests/rollouts-enabled-disabled_test.yaml +++ /dev/null @@ -1,26 +0,0 @@ -suite: Enabling/disabling argo-rollouts should accordingly enable/disable the event reporter -templates: - - event-reporters/rollout-reporter/eventsource.yaml - - event-reporters/rollout-reporter/sensor.yaml -tests: - -- it: event reporter not generated when rollouts disabled - template: 'event-reporters/rollout-reporter/eventsource.yaml' - values: - - ./values/mandatory-values.yaml - set: - argo-rollouts.enabled: false - asserts: - - hasDocuments: - count: 0 - -- it: event reporter generated when rollouts enabled - template: 'event-reporters/rollout-reporter/eventsource.yaml' - values: - - ./values/mandatory-values.yaml - set: - argo-rollouts.enabled: true - asserts: - - containsDocument: - apiVersion: argoproj.io/v1alpha1 - kind: EventSource \ No newline at end of file diff --git a/charts/gitops-runtime/tests/values/external-argocd-values.yaml b/charts/gitops-runtime/tests/values/external-argocd-values.yaml index db86d10d..3e8a4ecc 100644 --- a/charts/gitops-runtime/tests/values/external-argocd-values.yaml +++ b/charts/gitops-runtime/tests/values/external-argocd-values.yaml @@ -1,5 +1,5 @@ global: - external-argo-cd: + external-argo-cd: server: protocol: http svc: my-argocd-server diff --git a/charts/gitops-runtime/tests/values/subcharts-constraints-values.yaml b/charts/gitops-runtime/tests/values/subcharts-constraints-values.yaml index ede59046..766d781c 100644 --- a/charts/gitops-runtime/tests/values/subcharts-constraints-values.yaml +++ b/charts/gitops-runtime/tests/values/subcharts-constraints-values.yaml @@ -16,6 +16,9 @@ global: native: nodeSelector: *nodeSelector tolerations: *tolerations + event-reporters: + nodeSelector: *nodeSelector + tolerations: *tolerations app-proxy: nodeSelector: *nodeSelector @@ -45,13 +48,9 @@ installer: nodeSelector: *nodeSelector tolerations: *tolerations -cf-argocd-extras: - sourcesServer: - nodeSelector: *nodeSelector - tolerations: *tolerations - eventReporter: - nodeSelector: *nodeSelector - tolerations: *tolerations +argo-gateway: + nodeSelector: *nodeSelector + tolerations: *tolerations gitops-operator: nodeSelector: *nodeSelector diff --git a/charts/gitops-runtime/tests/workflows-enabled-disabled_test.yaml b/charts/gitops-runtime/tests/workflows-enabled-disabled_test.yaml index ab013f07..e90301d0 100644 --- a/charts/gitops-runtime/tests/workflows-enabled-disabled_test.yaml +++ b/charts/gitops-runtime/tests/workflows-enabled-disabled_test.yaml @@ -1,43 +1,8 @@ suite: Enabling/disabling argo-workflows should accordingly enable/disable the event reporter and set/unset the routing in internal router templates: - - event-reporters/workflow-reporter/eventsource.yaml - - event-reporters/workflow-reporter/sensor.yaml - internal-router/config.yaml - app-proxy/config.yaml tests: - -- it: event reporter eventsource not generated when workflows disabled - template: 'event-reporters/workflow-reporter/eventsource.yaml' - values: - - ./values/mandatory-values.yaml - set: - argo-workflows.enabled: false - asserts: - - hasDocuments: - count: 0 - -- it: event reporter eventsource generated when workflows enabled - template: 'event-reporters/workflow-reporter/eventsource.yaml' - values: - - ./values/mandatory-values.yaml - set: - argo-workflows.enabled: true - asserts: - - containsDocument: - apiVersion: argoproj.io/v1alpha1 - kind: EventSource - -- it: event reporter eventsource generated when workflows enabled - template: 'event-reporters/workflow-reporter/sensor.yaml' - values: - - ./values/mandatory-values.yaml - set: - argo-workflows.enabled: true - asserts: - - containsDocument: - apiVersion: argoproj.io/v1alpha1 - kind: Sensor - - it: internal router config doesn't have workflows route when workflows disabled template: 'internal-router/config.yaml' values: diff --git a/charts/gitops-runtime/values.yaml b/charts/gitops-runtime/values.yaml index 0bab6cac..24ecb5fe 100644 --- a/charts/gitops-runtime/values.yaml +++ b/charts/gitops-runtime/values.yaml @@ -78,59 +78,6 @@ global: value: # -- secretKeyReference for Git credentials password. Provide name and key fields. secretKeyRef: {} - # -- Runtime eventbus - eventBus: - # -- Eventbus name - name: '' - # -- Annotations on EventBus resource - annotations: {} - # -- Pod disruption budget for the eventbus - pdb: - enabled: true - # -- Minimum number of available eventbus pods. For eventbus to stay functional the majority of its replicas should always be available. - minAvailable: 2 - type: nats # -- Eventbus type. Can be nats or jetstream. - nats: - native: - metadata: - labels: - app.kubernetes.io/name: codefresh-eventbus - nodeSelector: {} - tolerations: [] - affinity: {} - replicas: 3 - auth: token - maxPayload: "4MB" - containerTemplate: - resources: - limits: - cpu: 500m - memory: 4Gi - ephemeral-storage: 2Gi - requests: - cpu: 200m - memory: 1Gi - ephemeral-storage: 2Gi - jetstream: - metadata: - labels: - app.kubernetes.io/name: codefresh-eventbus - version: latest - nodeSelector: {} - tolerations: [] - affinity: {} - replicas: 3 - maxPayload: "4MB" - containerTemplate: - resources: - limits: - cpu: 500m - memory: 4Gi - ephemeral-storage: 2Gi - requests: - cpu: 200m - memory: 1Gi - ephemeral-storage: 2Gi integrations: argo-cd: server: @@ -198,6 +145,55 @@ global: httpsProxy: '' # -- global NO_PROXY for all components noProxy: '' + imageRegistry: "" + + event-reporters: + replicaCount: 2 + image: + registry: quay.io + repository: codefresh/cf-argocd-extras + tag: 695977c + nodeSelector: {} + tolerations: [] + affinity: {} + resources: + requests: + memory: "128Mi" + cpu: "100m" + pdb: + enabled: true + minAvailable: "50%" + maxUnavailable: "" + service: + type: ClusterIP + ports: + http: + port: 8088 + targetPort: 8088 + metrics: + port: 8087 + targetPort: 8087 + serviceAccount: + create: true + readinessProbe: + failureThreshold: 3 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 10 + livenessProbe: + failureThreshold: 3 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 10 + serviceMonitor: + enabled: false + interval: 30s + scrapeTimeout: 10s + labels: {} + config: {} + # ------------------------------------------------------------------------------------------------------------------------- # Installer # ------------------------------------------------------------------------------------------------------------------------- @@ -285,6 +281,7 @@ argo-cd: # Argo Events #----------------------------------------------------------------------------------------------------------------------- argo-events: + enabled: false fullnameOverride: argo-events crds: install: false @@ -341,94 +338,6 @@ argo-rollouts: replicas: 1 installCRDs: true #----------------------------------------------------------------------------------------------------------------------- -# Event reporters -#----------------------------------------------------------------------------------------------------------------------- -event-reporters: - rollout: - serviceAccount: - create: true - eventSource: - replicas: 1 - resources: {} - tolerations: [] - nodeSelector: {} - affinity: {} - sensor: - # -- Set to true to enable logging. Set intervalSeconds to add logging interval to moderate log flow. - logging: - enabled: false - intervalSeconds: 0 - # -- At Least Once - atLeastOnce: true - # -- Retry strategy for events sent to Codefresh - retryStrategy: - # -- Number of retries - steps: 3 - # -- The initial duration, use strings like "2s", "1m" - duration: 0 - # -- Duration is multiplied by factor each retry, if factor is not zero and steps limit has not been reached. Should not be negative - factor: 1.0 - # -- The sleep between each retry is the duration plus an additional amount chosen uniformly at random from the interval between zero and `jitter * duration`. - jitter: 1 - policy: - status: - allow: - - 200 - - 201 - - 204 - - 400 - - 401 - - 404 - replicas: 1 - resources: {} - # -- Environment variables for sensor pods - add DEBUG_LOG: "true" to add debug level logs - env: {} - tolerations: [] - nodeSelector: {} - affinity: {} - workflow: - serviceAccount: - create: true - eventSource: - replicas: 1 - resources: {} - tolerations: [] - nodeSelector: {} - affinity: {} - sensor: - # -- Set to true to enable logging. Set intervalSeconds to add logging interval to moderate log flow. - logging: - enabled: false - intervalSeconds: 0 - # -- At Least Once - atLeastOnce: true - # -- Retry strategy for events sent to Codefresh - retryStrategy: - # -- Number of retries - steps: 3 - # -- The initial duration, use strings like "2s", "1m" - duration: 0 - # -- Duration is multiplied by factor each retry, if factor is not zero and steps limit has not been reached. Should not be negative - factor: 1.0 - # -- The sleep between each retry is the duration plus an additional amount chosen uniformly at random from the interval between zero and `jitter * duration`. - jitter: 1 - policy: - status: - allow: - - 200 - - 201 - - 204 - - 400 - - 401 - - 404 - replicas: 1 - resources: {} - # -- Environment variables for sensor pods - add DEBUG_LOG: "true" to add debug level logs - env: {} - tolerations: [] - nodeSelector: {} - affinity: {} -#----------------------------------------------------------------------------------------------------------------------- # Internal router #----------------------------------------------------------------------------------------------------------------------- internal-router: @@ -568,14 +477,14 @@ app-proxy: tag: 1.1.16-main image: repository: quay.io/codefresh/cap-app-proxy - tag: 1.3798.0 + tag: 1.3806.0 pullPolicy: IfNotPresent # -- Extra volume mounts for main container extraVolumeMounts: [] initContainer: image: repository: quay.io/codefresh/cap-app-proxy-init - tag: 1.3798.0 + tag: 1.3806.0 pullPolicy: IfNotPresent command: - ./init.sh @@ -754,57 +663,50 @@ gitops-operator: enabled: false minAvailable: 1 maxUnavailable: "" -#----------------------------------------------------------------------------------------------------------------------- -# cf-argocd-extras -#----------------------------------------------------------------------------------------------------------------------- -# -- Codefresh extra services for ArgoCD -cf-argocd-extras: - eventReporter: + +argo-gateway: + image: + registry: quay.io + repository: codefresh/cf-argocd-extras + tag: 695977c + nodeSelector: {} + tolerations: [] + affinity: {} + resources: + requests: + memory: "128Mi" + cpu: "100m" + hpa: enabled: true - container: - image: - registry: quay.io - repository: codefresh/cf-argocd-extras - tag: "1556733" - nodeSelector: {} - tolerations: [] - affinity: {} - resources: - requests: - memory: "128Mi" - cpu: "100m" - pdb: - # -- Enable PDB for event-reporter - enabled: false - minAvailable: "50%" - maxUnavailable: "" - serviceMonitor: - main: - # -- Enable ServiceMonitor for event reporter - enabled: false - # -- Sources server configuration - sourcesServer: + minReplicas: 1 + maxReplicas: 10 + targetCPUUtilizationPercentage: 70 + pdb: enabled: true - container: - image: - registry: quay.io - repository: codefresh/cf-argocd-extras - tag: "1556733" - nodeSelector: {} - tolerations: [] - affinity: {} - resources: - requests: - memory: "128Mi" - cpu: "100m" - hpa: - # -- Enable HPA for sources server - enabled: false - minReplicas: 1 - maxReplicas: 10 - targetCPUUtilizationPercentage: 70 - pdb: - # -- Enable PDB for sources server - enabled: false - minAvailable: "50%" - maxUnavailable: "" + minAvailable: "50%" + maxUnavailable: "" + service: + type: ClusterIP + serviceAccount: + create: true + readinessProbe: + failureThreshold: 3 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 10 + livenessProbe: + failureThreshold: 3 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 10 + serviceMonitor: + enabled: false + interval: 30s + scrapeTimeout: 10s + labels: {} + +event-reporters: + cluster-event-reporter: {} + runtime-event-reporter: {}