diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index bd2d2aa103875f2261400324899cb69bded1688f..e775b59171a7f11da730856722f5b41629fbecf0 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -30,6 +30,8 @@ - kubectl wait --for=condition=Ready --timeout 300s helmrelease -n bigbang fluent-bit - kubectl wait --for=condition=Ready --timeout 300s helmrelease -n bigbang twistlock - kubectl wait --for=condition=Ready --timeout 300s helmrelease -n bigbang cluster-auditor + # Enable this after we merge in + # - kubectl wait --for=condition=Ready --timeout 300s helmrelease -n bigbang argocd - kubectl wait --for=condition=Ready --timeout 30s kustomizations.kustomize.toolkit.fluxcd.io -n bigbang secrets .do_some_quick_tests: &do_some_quick_tests @@ -75,7 +77,7 @@ fresh install: script: - echo "Install Big Bang From Current Branch" # Install Big Bang From Current Branch - - helm upgrade -i bigbang chart -n bigbang --create-namespace --set registryCredentials.username='robot$bigbang' --set registryCredentials.password=${REGISTRY1_PASSWORD} + - helm upgrade -i bigbang chart -n bigbang --create-namespace --set registryCredentials.username='robot$bigbang' --set registryCredentials.password=${REGISTRY1_PASSWORD} --set addons.argocd.enabled=true - kubectl apply -f examples/complete/envs/dev/source-secrets.yaml - *wait_for_healthy - *do_some_quick_tests diff --git a/chart/templates/argocd/argocd-helmrelease.yaml b/chart/templates/argocd/argocd-helmrelease.yaml new file mode 100644 index 0000000000000000000000000000000000000000..294a01ad3e63edce9ce0d2f0e5b2812db7ada313 --- /dev/null +++ b/chart/templates/argocd/argocd-helmrelease.yaml @@ -0,0 +1,54 @@ +{{- if .Values.addons.argocd.enabled }} +apiVersion: helm.toolkit.fluxcd.io/v2beta1 +kind: HelmRelease +metadata: + name: argocd + namespace: {{ .Release.Namespace }} +spec: + targetNamespace: argocd + chart: + spec: + chart: chart + interval: 5m + sourceRef: + kind: GitRepository + name: argocd + namespace: {{ .Release.Namespace }} + + {{- with .Values.flux }} + interval: {{ .interval }} + test: + enable: false + install: + remediation: + retries: {{ .install.retries }} + upgrade: + remediation: + retries: {{ .upgrade.retries }} + remediateLastFailure: true + cleanupOnFail: true + rollback: + timeout: {{ .rollback.timeout }} + cleanupOnFail: {{ .rollback.cleanupOnFail }} + {{- end }} + + valuesFrom: + - name: values + kind: Secret + valuesKey: "argocd.yaml" + values: + createNamespace: false + imagePullSecrets: + - name: private-registry + {{- if or .Values.monitoring.enabled .Values.istio.enabled }} + dependsOn: + {{- if .Values.istio.enabled }} + - name: istio + namespace: {{ .Release.Namespace}} + {{- end}} + {{- if .Values.monitoring.enabled }} + - name: monitoring + namespace: {{ .Release.Namespace }} + {{- end }} + {{- end }} +{{- end }} \ No newline at end of file diff --git a/chart/templates/argocd/gitrepository.yaml b/chart/templates/argocd/gitrepository.yaml new file mode 100644 index 0000000000000000000000000000000000000000..ce49c168b363088b29e1020fe7e7675e444d997e --- /dev/null +++ b/chart/templates/argocd/gitrepository.yaml @@ -0,0 +1,17 @@ +{{- if .Values.addons.argocd.enabled }} +apiVersion: source.toolkit.fluxcd.io/v1beta1 +kind: GitRepository +metadata: + name: argocd + namespace: {{ .Release.Namespace }} +spec: + ignore: | + # exclude file extensions + /**/*.md + /**/*.txt + /**/*.sh + interval: {{ .Values.flux.interval }} + url: {{ .Values.addons.argocd.git.repo }} + ref: + {{- include "validRef" .Values.addons.argocd.git | nindent 4 }} +{{- end }} diff --git a/chart/templates/argocd/namespace.yaml b/chart/templates/argocd/namespace.yaml new file mode 100644 index 0000000000000000000000000000000000000000..f267596ebf537f72f62cff7001c8e0a6c507029a --- /dev/null +++ b/chart/templates/argocd/namespace.yaml @@ -0,0 +1,20 @@ +{{- if .Values.addons.argocd.enabled }} +apiVersion: v1 +kind: Namespace +metadata: + labels: + app: {{ .Release.Name }}-argocd + name: argocd + +--- +{{- if and (ne .Values.registryCredentials.username "") (ne .Values.registryCredentials.password "") }} +apiVersion: v1 +kind: Secret +metadata: + name: private-registry + namespace: argocd +type: kubernetes.io/dockerconfigjson +data: + .dockerconfigjson: {{ template "imagePullSecret" . }} +{{- end }} +{{- end }} \ No newline at end of file diff --git a/chart/templates/values.yaml b/chart/templates/values.yaml index b34d7b46a7760326e7e0155b754ae94d245e8934..098ca60cca75c1e610ddc9775d443c51839c4c4f 100644 --- a/chart/templates/values.yaml +++ b/chart/templates/values.yaml @@ -7,6 +7,8 @@ type: generic stringData: values.yaml: | {{ toYaml .Values | indent 4}} + argocd.yaml: | +{{ toYaml .Values.addons.argocd.values | indent 4 }} istio.yaml: | {{ toYaml .Values.istio.values | indent 4 }} gatekeeper.yaml: | diff --git a/chart/values.yaml b/chart/values.yaml index 83d9b2bb7364f948cdc1d211e0f63c974310da08..864155a938d58d196275cb96da4abb47d5b42c91 100644 --- a/chart/values.yaml +++ b/chart/values.yaml @@ -75,3 +75,11 @@ twistlock: # commit: "" # tag: "" values: {} + +addons: + argocd: + enabled: false + git: + repo: https://repo1.dsop.io/platform-one/big-bang/apps/core/argocd.git + branch: chart-release + values: {}