From a2cc83ddc4b3bc6a00480234f5826e7c1e8003ac Mon Sep 17 00:00:00 2001 From: Andrei Kvapil Date: Wed, 26 Jun 2024 02:49:14 +0200 Subject: [PATCH] move fluxcd and operator back to system (#188) Separate and move fluxcd and fluxcd-operator from `core` to `system`. It should not be problem with self-update now, since we correctly set dependsOn option, it ensures ordered update of flux instance right after flux-operator. As part of https://github.com/aenix-io/cozystack/issues/184 and https://github.com/aenix-io/cozystack/issues/185 fixes https://github.com/aenix-io/cozystack/issues/169 Signed-off-by: Andrei Kvapil --- hack/e2e.sh | 14 ++--- packages/core/fluxcd/Makefile | 20 ------- .../core/fluxcd/templates/flux-instance.yaml | 25 --------- packages/core/fluxcd/values.yaml | 55 ------------------- packages/core/installer/images/cozystack.json | 6 +- .../core/platform/bundles/distro-full.yaml | 13 +++++ .../core/platform/bundles/distro-hosted.yaml | 13 +++++ packages/core/platform/bundles/paas-full.yaml | 13 +++++ .../core/platform/bundles/paas-hosted.yaml | 13 +++++ .../core/platform/templates/namespaces.yaml | 1 - .../fluxcd-operator}/.helmignore | 0 packages/system/fluxcd-operator/Chart.yaml | 3 + packages/system/fluxcd-operator/Makefile | 12 ++++ .../charts/flux-operator/.helmignore | 0 .../charts/flux-operator/Chart.yaml | 0 .../charts/flux-operator/README.md | 0 .../charts/flux-operator/templates/NOTES.txt | 0 .../flux-operator/templates/_helpers.tpl | 0 .../flux-operator/templates/clusterrole.yaml | 0 .../charts/flux-operator/templates/crds.yaml | 0 .../flux-operator/templates/deployment.yaml | 0 .../flux-operator/templates/service.yaml | 0 .../templates/serviceaccount.yaml | 0 .../charts/flux-operator/values.schema.json | 0 .../charts/flux-operator/values.yaml | 0 .../patches/kubernetesEnvs.diff | 0 .../fluxcd-operator}/templates/_helpers.tpl | 0 packages/system/fluxcd-operator/values.yaml | 7 +++ packages/{core => system}/fluxcd/Chart.yaml | 0 packages/system/fluxcd/Makefile | 7 +++ .../fluxcd/templates/flux-instance.yaml | 25 +++++++++ packages/system/fluxcd/values.yaml | 47 ++++++++++++++++ scripts/installer.sh | 36 +++++++----- 33 files changed, 184 insertions(+), 126 deletions(-) delete mode 100644 packages/core/fluxcd/Makefile delete mode 100644 packages/core/fluxcd/templates/flux-instance.yaml delete mode 100644 packages/core/fluxcd/values.yaml rename packages/{core/fluxcd => system/fluxcd-operator}/.helmignore (100%) create mode 100644 packages/system/fluxcd-operator/Chart.yaml create mode 100644 packages/system/fluxcd-operator/Makefile rename packages/{core/fluxcd => system/fluxcd-operator}/charts/flux-operator/.helmignore (100%) rename packages/{core/fluxcd => system/fluxcd-operator}/charts/flux-operator/Chart.yaml (100%) rename packages/{core/fluxcd => system/fluxcd-operator}/charts/flux-operator/README.md (100%) rename packages/{core/fluxcd => system/fluxcd-operator}/charts/flux-operator/templates/NOTES.txt (100%) rename packages/{core/fluxcd => system/fluxcd-operator}/charts/flux-operator/templates/_helpers.tpl (100%) rename packages/{core/fluxcd => system/fluxcd-operator}/charts/flux-operator/templates/clusterrole.yaml (100%) rename packages/{core/fluxcd => system/fluxcd-operator}/charts/flux-operator/templates/crds.yaml (100%) rename packages/{core/fluxcd => system/fluxcd-operator}/charts/flux-operator/templates/deployment.yaml (100%) rename packages/{core/fluxcd => system/fluxcd-operator}/charts/flux-operator/templates/service.yaml (100%) rename packages/{core/fluxcd => system/fluxcd-operator}/charts/flux-operator/templates/serviceaccount.yaml (100%) rename packages/{core/fluxcd => system/fluxcd-operator}/charts/flux-operator/values.schema.json (100%) rename packages/{core/fluxcd => system/fluxcd-operator}/charts/flux-operator/values.yaml (100%) rename packages/{core/fluxcd => system/fluxcd-operator}/patches/kubernetesEnvs.diff (100%) rename packages/{core/fluxcd => system/fluxcd-operator}/templates/_helpers.tpl (100%) create mode 100644 packages/system/fluxcd-operator/values.yaml rename packages/{core => system}/fluxcd/Chart.yaml (100%) create mode 100644 packages/system/fluxcd/Makefile create mode 100644 packages/system/fluxcd/templates/flux-instance.yaml create mode 100644 packages/system/fluxcd/values.yaml diff --git a/hack/e2e.sh b/hack/e2e.sh index 86278beb..462fef65 100755 --- a/hack/e2e.sh +++ b/hack/e2e.sh @@ -294,22 +294,22 @@ kubectl patch -n tenant-root hr/tenant-root --type=merge -p '{"spec":{ "values": timeout 60 sh -c 'until kubectl get hr -n tenant-root etcd ingress monitoring tenant-root; do sleep 1; done' # Wait for HelmReleases be installed -kubectl wait --timeout=2m --for=condition=ready hr -n tenant-root etcd ingress monitoring tenant-root +kubectl wait --timeout=2m --for=condition=ready -n tenant-root hr etcd ingress monitoring tenant-root # Wait for nginx-ingress-controller timeout 60 sh -c 'until kubectl get deploy -n tenant-root root-ingress-controller; do sleep 1; done' -kubectl wait deploy -n tenant-root --timeout=5m --for=condition=available root-ingress-controller +kubectl wait --timeout=5m --for=condition=available -n tenant-root deploy root-ingress-controller # Wait for etcd -kubectl wait --for=jsonpath=.status.readyReplicas=3 -n tenant-root --timeout=5m sts etcd +kubectl wait --timeout=5m --for=jsonpath=.status.readyReplicas=3 -n tenant-root sts etcd # Wait for Victoria metrics -kubectl wait deploy -n tenant-root --timeout=5m --for=condition=available vmalert-vmalert vminsert-longterm vminsert-shortterm -kubectl wait --for=jsonpath=.status.readyReplicas=2 -n tenant-root --timeout=5m sts vmalertmanager-alertmanager vmselect-longterm vmselect-shortterm vmstorage-longterm vmstorage-shortterm +kubectl wait --timeout=5m --for=condition=available deploy -n tenant-root vmalert-vmalert vminsert-longterm vminsert-shortterm +kubectl wait --timeout=5m --for=jsonpath=.status.readyReplicas=2 -n tenant-root sts vmalertmanager-alertmanager vmselect-longterm vmselect-shortterm vmstorage-longterm vmstorage-shortterm # Wait for grafana -kubectl wait --for=condition=ready clusters.postgresql.cnpg.io -n tenant-root grafana-db -kubectl wait deploy -n tenant-root --timeout=5m --for=condition=available grafana-deployment +kubectl wait --timeout=5m --for=condition=ready -n tenant-root clusters.postgresql.cnpg.io grafana-db +kubectl wait --timeout=5m --for=condition=available -n tenant-root deploy grafana-deployment # Get IP of nginx-ingress ip=$(kubectl get svc -n tenant-root root-ingress-controller -o jsonpath='{.status.loadBalancer.ingress..ip}') diff --git a/packages/core/fluxcd/Makefile b/packages/core/fluxcd/Makefile deleted file mode 100644 index 6da8d847..00000000 --- a/packages/core/fluxcd/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -NAME=fluxcd -NAMESPACE=cozy-$(NAME) - -API_VERSIONS_FLAGS=$(addprefix -a ,$(shell kubectl api-versions)) - -show: - helm template -n $(NAMESPACE) $(NAME) . --no-hooks --dry-run=server $(API_VERSIONS_FLAGS) - -apply: - helm template -n $(NAMESPACE) $(NAME) . --no-hooks \ - --dry-run=server $(API_VERSIONS_FLAGS) | kubectl apply -n $(NAMESPACE) -f- - -diff: - helm template -n $(NAMESPACE) $(NAME) . --no-hooks \ - --dry-run=server $(API_VERSIONS_FLAGS) | kubectl diff -n $(NAMESPACE) -f- - -update: - rm -rf charts - helm pull oci://ghcr.io/controlplaneio-fluxcd/charts/flux-operator --untar --untardir charts - patch --no-backup-if-mismatch -p1 < patches/kubernetesEnvs.diff diff --git a/packages/core/fluxcd/templates/flux-instance.yaml b/packages/core/fluxcd/templates/flux-instance.yaml deleted file mode 100644 index 20887794..00000000 --- a/packages/core/fluxcd/templates/flux-instance.yaml +++ /dev/null @@ -1,25 +0,0 @@ -apiVersion: fluxcd.controlplane.io/v1 -kind: FluxInstance -metadata: - name: flux -spec: - {{- with .Values.fluxInstance.cluster }} - cluster: - {{- with .networkPolicy }} - networkPolicy: {{ . }} - {{- end }} - {{- with .domain }} - domain: {{ . }} - {{- end }} - {{- end }} - distribution: - version: {{ .Values.fluxInstance.distribution.version }} - registry: {{ .Values.fluxInstance.distribution.registry }} - components: - {{- if .Values.fluxInstance.components }} - {{- toYaml .Values.fluxInstance.components | nindent 4 }} - {{- end }} - kustomize: - {{- if .Values.fluxInstance.kustomize }} - {{- toYaml .Values.fluxInstance.kustomize | nindent 4 }} - {{- end }} diff --git a/packages/core/fluxcd/values.yaml b/packages/core/fluxcd/values.yaml deleted file mode 100644 index c5a27fe0..00000000 --- a/packages/core/fluxcd/values.yaml +++ /dev/null @@ -1,55 +0,0 @@ -flux-operator: - tolerations: - - key: node.kubernetes.io/not-ready - operator: Exists - effect: NoSchedule - hostNetwork: true - -fluxInstance: - cluster: - networkPolicy: true - # domain: cozy.local - distribution: - version: 2.3.x - registry: ghcr.io/fluxcd - components: - - source-controller - - kustomize-controller - - helm-controller - - notification-controller - - image-reflector-controller - - image-automation-controller - kustomize: - patches: - - target: - kind: Deployment - name: "(kustomize-controller|helm-controller|source-controller)" - patch: | - - op: add - path: /spec/template/spec/containers/0/args/- - value: --concurrent=20 - - op: add - path: /spec/template/spec/containers/0/args/- - value: --requeue-dependency=5s - - op: replace - path: /spec/template/spec/containers/0/resources/limits - value: - cpu: 2000m - memory: 2048Mi - - target: - kind: Deployment - name: source-controller - patch: | - - op: add - path: /spec/template/spec/containers/0/args/- - value: --storage-adv-addr=source-controller.cozy-fluxcd.svc - - op: add - path: /spec/template/spec/containers/0/args/- - value: --events-addr=http://notification-controller.cozy-fluxcd.svc/ - - target: - kind: Deployment - name: (kustomize-controller|helm-controller|image-reflector-controller|image-automation-controller) - patch: | - - op: add - path: /spec/template/spec/containers/0/args/- - value: --events-addr=http://notification-controller.cozy-fluxcd.svc/ diff --git a/packages/core/installer/images/cozystack.json b/packages/core/installer/images/cozystack.json index 3594b9b3..8e61c51f 100644 --- a/packages/core/installer/images/cozystack.json +++ b/packages/core/installer/images/cozystack.json @@ -1,10 +1,10 @@ { - "buildx.build.ref": "priceless_leavitt/priceless_leavitt0/d75hbe5lm96nutwocaw0h8ohc", + "buildx.build.ref": "priceless_leavitt/priceless_leavitt0/h4dfyd134l9durh9d02r2u2uu", "containerimage.descriptor": { "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", - "digest": "sha256:a5544e0cf76b09b421345906d2e85282ba8c2187e9db814cfe5c08ddd9ee491a", + "digest": "sha256:b5cbbb921a240d05c6775aab15c99432180c5547801ef6cb6ca51303eeb489e1", "size": 685 }, - "containerimage.digest": "sha256:a5544e0cf76b09b421345906d2e85282ba8c2187e9db814cfe5c08ddd9ee491a", + "containerimage.digest": "sha256:b5cbbb921a240d05c6775aab15c99432180c5547801ef6cb6ca51303eeb489e1", "image.name": "ghcr.io/aenix-io/cozystack/cozystack:latest" } \ No newline at end of file diff --git a/packages/core/platform/bundles/distro-full.yaml b/packages/core/platform/bundles/distro-full.yaml index 1fd9590a..c3e65e3f 100644 --- a/packages/core/platform/bundles/distro-full.yaml +++ b/packages/core/platform/bundles/distro-full.yaml @@ -1,6 +1,19 @@ {{- $cozyConfig := lookup "v1" "ConfigMap" "cozy-system" "cozystack" }} releases: +- name: fluxcd-operator + releaseName: fluxcd-operator + chart: cozy-fluxcd-operator + namespace: cozy-fluxcd + privileged: true + dependsOn: [] + +- name: fluxcd + releaseName: fluxcd + chart: cozy-fluxcd + namespace: cozy-fluxcd + dependsOn: [fluxcd-operator,cilium] + - name: cilium releaseName: cilium chart: cozy-cilium diff --git a/packages/core/platform/bundles/distro-hosted.yaml b/packages/core/platform/bundles/distro-hosted.yaml index 41d027fe..6923c1fb 100644 --- a/packages/core/platform/bundles/distro-hosted.yaml +++ b/packages/core/platform/bundles/distro-hosted.yaml @@ -1,6 +1,19 @@ {{- $cozyConfig := lookup "v1" "ConfigMap" "cozy-system" "cozystack" }} releases: +- name: fluxcd-operator + releaseName: fluxcd-operator + chart: cozy-fluxcd-operator + namespace: cozy-fluxcd + privileged: true + dependsOn: [] + +- name: fluxcd + releaseName: fluxcd + chart: cozy-fluxcd + namespace: cozy-fluxcd + dependsOn: [fluxcd-operator] + - name: cert-manager releaseName: cert-manager chart: cozy-cert-manager diff --git a/packages/core/platform/bundles/paas-full.yaml b/packages/core/platform/bundles/paas-full.yaml index a39931a1..4ed95257 100644 --- a/packages/core/platform/bundles/paas-full.yaml +++ b/packages/core/platform/bundles/paas-full.yaml @@ -1,6 +1,19 @@ {{- $cozyConfig := lookup "v1" "ConfigMap" "cozy-system" "cozystack" }} releases: +- name: fluxcd-operator + releaseName: fluxcd-operator + chart: cozy-fluxcd-operator + namespace: cozy-fluxcd + privileged: true + dependsOn: [] + +- name: fluxcd + releaseName: fluxcd + chart: cozy-fluxcd + namespace: cozy-fluxcd + dependsOn: [fluxcd-operator,cilium,kubeovn] + - name: cilium releaseName: cilium chart: cozy-cilium diff --git a/packages/core/platform/bundles/paas-hosted.yaml b/packages/core/platform/bundles/paas-hosted.yaml index 5d6ce1a5..60194d84 100644 --- a/packages/core/platform/bundles/paas-hosted.yaml +++ b/packages/core/platform/bundles/paas-hosted.yaml @@ -1,6 +1,19 @@ {{- $cozyConfig := lookup "v1" "ConfigMap" "cozy-system" "cozystack" }} releases: +- name: fluxcd-operator + releaseName: fluxcd-operator + chart: cozy-fluxcd-operator + namespace: cozy-fluxcd + privileged: true + dependsOn: [] + +- name: fluxcd + releaseName: fluxcd + chart: cozy-fluxcd + namespace: cozy-fluxcd + dependsOn: [fluxcd-operator] + - name: cert-manager releaseName: cert-manager chart: cozy-cert-manager diff --git a/packages/core/platform/templates/namespaces.yaml b/packages/core/platform/templates/namespaces.yaml index 3f25361c..0d35d7ec 100644 --- a/packages/core/platform/templates/namespaces.yaml +++ b/packages/core/platform/templates/namespaces.yaml @@ -16,7 +16,6 @@ {{/* Add extra namespaces */}} {{- $_ := set $namespaces "cozy-public" false }} -{{- $_ := set $namespaces "cozy-fluxcd" true }} {{- range $namespace, $privileged := $namespaces }} --- diff --git a/packages/core/fluxcd/.helmignore b/packages/system/fluxcd-operator/.helmignore similarity index 100% rename from packages/core/fluxcd/.helmignore rename to packages/system/fluxcd-operator/.helmignore diff --git a/packages/system/fluxcd-operator/Chart.yaml b/packages/system/fluxcd-operator/Chart.yaml new file mode 100644 index 00000000..42ed3feb --- /dev/null +++ b/packages/system/fluxcd-operator/Chart.yaml @@ -0,0 +1,3 @@ +apiVersion: v2 +name: cozy-fluxcd-operator +version: 0.0.0 # Placeholder, the actual version will be automatically set during the build process diff --git a/packages/system/fluxcd-operator/Makefile b/packages/system/fluxcd-operator/Makefile new file mode 100644 index 00000000..26cf39a7 --- /dev/null +++ b/packages/system/fluxcd-operator/Makefile @@ -0,0 +1,12 @@ +NAME=fluxcd-operator +NAMESPACE=cozy-fluxcd + +include ../../../scripts/package-system.mk + +apply-locally: + helm upgrade -i -n $(NAMESPACE) $(NAME) . + +update: + rm -rf charts + helm pull oci://ghcr.io/controlplaneio-fluxcd/charts/flux-operator --untar --untardir charts + patch --no-backup-if-mismatch -p1 < patches/kubernetesEnvs.diff diff --git a/packages/core/fluxcd/charts/flux-operator/.helmignore b/packages/system/fluxcd-operator/charts/flux-operator/.helmignore similarity index 100% rename from packages/core/fluxcd/charts/flux-operator/.helmignore rename to packages/system/fluxcd-operator/charts/flux-operator/.helmignore diff --git a/packages/core/fluxcd/charts/flux-operator/Chart.yaml b/packages/system/fluxcd-operator/charts/flux-operator/Chart.yaml similarity index 100% rename from packages/core/fluxcd/charts/flux-operator/Chart.yaml rename to packages/system/fluxcd-operator/charts/flux-operator/Chart.yaml diff --git a/packages/core/fluxcd/charts/flux-operator/README.md b/packages/system/fluxcd-operator/charts/flux-operator/README.md similarity index 100% rename from packages/core/fluxcd/charts/flux-operator/README.md rename to packages/system/fluxcd-operator/charts/flux-operator/README.md diff --git a/packages/core/fluxcd/charts/flux-operator/templates/NOTES.txt b/packages/system/fluxcd-operator/charts/flux-operator/templates/NOTES.txt similarity index 100% rename from packages/core/fluxcd/charts/flux-operator/templates/NOTES.txt rename to packages/system/fluxcd-operator/charts/flux-operator/templates/NOTES.txt diff --git a/packages/core/fluxcd/charts/flux-operator/templates/_helpers.tpl b/packages/system/fluxcd-operator/charts/flux-operator/templates/_helpers.tpl similarity index 100% rename from packages/core/fluxcd/charts/flux-operator/templates/_helpers.tpl rename to packages/system/fluxcd-operator/charts/flux-operator/templates/_helpers.tpl diff --git a/packages/core/fluxcd/charts/flux-operator/templates/clusterrole.yaml b/packages/system/fluxcd-operator/charts/flux-operator/templates/clusterrole.yaml similarity index 100% rename from packages/core/fluxcd/charts/flux-operator/templates/clusterrole.yaml rename to packages/system/fluxcd-operator/charts/flux-operator/templates/clusterrole.yaml diff --git a/packages/core/fluxcd/charts/flux-operator/templates/crds.yaml b/packages/system/fluxcd-operator/charts/flux-operator/templates/crds.yaml similarity index 100% rename from packages/core/fluxcd/charts/flux-operator/templates/crds.yaml rename to packages/system/fluxcd-operator/charts/flux-operator/templates/crds.yaml diff --git a/packages/core/fluxcd/charts/flux-operator/templates/deployment.yaml b/packages/system/fluxcd-operator/charts/flux-operator/templates/deployment.yaml similarity index 100% rename from packages/core/fluxcd/charts/flux-operator/templates/deployment.yaml rename to packages/system/fluxcd-operator/charts/flux-operator/templates/deployment.yaml diff --git a/packages/core/fluxcd/charts/flux-operator/templates/service.yaml b/packages/system/fluxcd-operator/charts/flux-operator/templates/service.yaml similarity index 100% rename from packages/core/fluxcd/charts/flux-operator/templates/service.yaml rename to packages/system/fluxcd-operator/charts/flux-operator/templates/service.yaml diff --git a/packages/core/fluxcd/charts/flux-operator/templates/serviceaccount.yaml b/packages/system/fluxcd-operator/charts/flux-operator/templates/serviceaccount.yaml similarity index 100% rename from packages/core/fluxcd/charts/flux-operator/templates/serviceaccount.yaml rename to packages/system/fluxcd-operator/charts/flux-operator/templates/serviceaccount.yaml diff --git a/packages/core/fluxcd/charts/flux-operator/values.schema.json b/packages/system/fluxcd-operator/charts/flux-operator/values.schema.json similarity index 100% rename from packages/core/fluxcd/charts/flux-operator/values.schema.json rename to packages/system/fluxcd-operator/charts/flux-operator/values.schema.json diff --git a/packages/core/fluxcd/charts/flux-operator/values.yaml b/packages/system/fluxcd-operator/charts/flux-operator/values.yaml similarity index 100% rename from packages/core/fluxcd/charts/flux-operator/values.yaml rename to packages/system/fluxcd-operator/charts/flux-operator/values.yaml diff --git a/packages/core/fluxcd/patches/kubernetesEnvs.diff b/packages/system/fluxcd-operator/patches/kubernetesEnvs.diff similarity index 100% rename from packages/core/fluxcd/patches/kubernetesEnvs.diff rename to packages/system/fluxcd-operator/patches/kubernetesEnvs.diff diff --git a/packages/core/fluxcd/templates/_helpers.tpl b/packages/system/fluxcd-operator/templates/_helpers.tpl similarity index 100% rename from packages/core/fluxcd/templates/_helpers.tpl rename to packages/system/fluxcd-operator/templates/_helpers.tpl diff --git a/packages/system/fluxcd-operator/values.yaml b/packages/system/fluxcd-operator/values.yaml new file mode 100644 index 00000000..654ca304 --- /dev/null +++ b/packages/system/fluxcd-operator/values.yaml @@ -0,0 +1,7 @@ +flux-operator: + fullnameOverride: flux-operator + tolerations: + - key: node.kubernetes.io/not-ready + operator: Exists + effect: NoSchedule + hostNetwork: true diff --git a/packages/core/fluxcd/Chart.yaml b/packages/system/fluxcd/Chart.yaml similarity index 100% rename from packages/core/fluxcd/Chart.yaml rename to packages/system/fluxcd/Chart.yaml diff --git a/packages/system/fluxcd/Makefile b/packages/system/fluxcd/Makefile new file mode 100644 index 00000000..de09740c --- /dev/null +++ b/packages/system/fluxcd/Makefile @@ -0,0 +1,7 @@ +NAME=fluxcd +NAMESPACE=cozy-$(NAME) + +apply-locally: + helm upgrade -i -n $(NAMESPACE) $(NAME) . + +include ../../../scripts/package-system.mk diff --git a/packages/system/fluxcd/templates/flux-instance.yaml b/packages/system/fluxcd/templates/flux-instance.yaml new file mode 100644 index 00000000..ce0fd133 --- /dev/null +++ b/packages/system/fluxcd/templates/flux-instance.yaml @@ -0,0 +1,25 @@ +apiVersion: fluxcd.controlplane.io/v1 +kind: FluxInstance +metadata: + name: flux +spec: + {{- with .Values.cluster }} + cluster: + {{- with .networkPolicy }} + networkPolicy: {{ . }} + {{- end }} + {{- with .domain }} + domain: {{ . }} + {{- end }} + {{- end }} + distribution: + version: {{ .Values.distribution.version }} + registry: {{ .Values.distribution.registry }} + components: + {{- if .Values.components }} + {{- toYaml .Values.components | nindent 4 }} + {{- end }} + kustomize: + {{- if .Values.kustomize }} + {{- toYaml .Values.kustomize | nindent 4 }} + {{- end }} diff --git a/packages/system/fluxcd/values.yaml b/packages/system/fluxcd/values.yaml new file mode 100644 index 00000000..9eba35ec --- /dev/null +++ b/packages/system/fluxcd/values.yaml @@ -0,0 +1,47 @@ +cluster: + networkPolicy: true +# domain: cozy.local +distribution: + version: 2.3.x + registry: ghcr.io/fluxcd +components: + - source-controller + - kustomize-controller + - helm-controller + - notification-controller + - image-reflector-controller + - image-automation-controller +kustomize: + patches: + - target: + kind: Deployment + name: "(kustomize-controller|helm-controller|source-controller)" + patch: | + - op: add + path: /spec/template/spec/containers/0/args/- + value: --concurrent=20 + - op: add + path: /spec/template/spec/containers/0/args/- + value: --requeue-dependency=5s + - op: replace + path: /spec/template/spec/containers/0/resources/limits + value: + cpu: 2000m + memory: 2048Mi + - target: + kind: Deployment + name: source-controller + patch: | + - op: add + path: /spec/template/spec/containers/0/args/- + value: --storage-adv-addr=source-controller.cozy-fluxcd.svc + - op: add + path: /spec/template/spec/containers/0/args/- + value: --events-addr=http://notification-controller.cozy-fluxcd.svc/ + - target: + kind: Deployment + name: (kustomize-controller|helm-controller|image-reflector-controller|image-automation-controller) + patch: | + - op: add + path: /spec/template/spec/containers/0/args/- + value: --events-addr=http://notification-controller.cozy-fluxcd.svc/ diff --git a/scripts/installer.sh b/scripts/installer.sh index d5edba38..80fce275 100755 --- a/scripts/installer.sh +++ b/scripts/installer.sh @@ -18,17 +18,27 @@ run_migrations() { done } - -flux_operator_is_ok() { - kubectl wait --for=condition=available -n cozy-fluxcd deploy/fluxcd-flux-operator --timeout=1m +flux_is_ok() { + kubectl wait --for=condition=available -n cozy-fluxcd deploy/source-controller deploy/helm-controller --timeout=1s } -flux_instance_is_ok() { - kubectl wait --for=condition=ready -n cozy-fluxcd fluxinstance/flux --timeout=5m +ensure_fluxcd() { + if flux_is_ok; then + return + fi + if kubectl get crd helmreleases.helm.toolkit.fluxcd.io helmrepositories.source.toolkit.fluxcd.io; then + targets="apply resume" + else + targets="apply-locally" + fi + make -C packages/system/fluxcd-operator $targets + wait_for_crds fluxinstances.fluxcd.controlplane.io + make -C packages/system/fluxcd $targets + wait_for_crds helmreleases.helm.toolkit.fluxcd.io helmrepositories.source.toolkit.fluxcd.io } -flux_controllers_ok() { - kubectl wait --for=condition=available -n cozy-fluxcd deploy/source-controller deploy/helm-controller --timeout=10s +wait_for_crds() { + timeout 60 sh -c "until kubectl get crd $*; do sleep 1; done" } install_basic_charts() { @@ -48,18 +58,14 @@ run_migrations # Install namespaces make -C packages/core/platform namespaces-apply -# Install fluxcd twice (once it will fail, since CRDs can't be ordered) -make -C packages/core/fluxcd apply || make -C packages/core/fluxcd apply - -if flux_operator_is_ok; then - echo "Flux operator is installed and FluxInstance CRD is ready" -fi +# Install fluxcd +ensure_fluxcd # Install platform chart make -C packages/core/platform apply -# Install basic system charts (should be after platform chart applied) -if ! flux_controllers_ok; then +# Install basic charts +if ! flux_is_ok; then install_basic_charts fi