Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ jobs:
- name: Create cluster
run: make up
env:
KIND_NODE_IMAGE: ghcr.io/fluxcd/kindest/node:v1.33.0-amd64
KIND_NODE_IMAGE: ghcr.io/fluxcd/kindest/node:v1.34.1-amd64
- name: Push modules
run: make timoni-push
- name: Install Flux
Expand Down
22 changes: 22 additions & 0 deletions RESULTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,28 @@ registry at the same time.
- Helm repository (oci://ghcr.io/stefanprodan/charts/podinfo)
- App manifests (Deployment scaled to zero, Service Account, Service, Ingress)

## Flux v2.7.0

| Objects | Type | Flux component | Duration | Max Memory |
|---------|---------------|----------------------|----------|------------|
| 100 | OCIRepository | source-controller | 24s | 38Mi |
| 100 | Kustomization | kustomize-controller | 26s | 32Mi |
| 100 | HelmChart | source-controller | 24s | 40Mi |
| 100 | HelmRelease | helm-controller | 27s | 190Mi |
| 500 | OCIRepository | source-controller | 43s | 65Mi |
| 500 | Kustomization | kustomize-controller | 2m5s | 130Mi |
| 500 | HelmChart | source-controller | 48s | 68Mi |
| 500 | HelmRelease | helm-controller | 2m9s | 255Mi |
| 1000 | OCIRepository | source-controller | 1m25s | 67Mi |
| 1000 | Kustomization | kustomize-controller | 4m14s | 195Mi |
| 1000 | HelmChart | source-controller | 1m20s | 110Mi |
| 1000 | HelmRelease | helm-controller | 4m35s | 330Mi |

### Observations

Compared to Flux v2.6 & Kubernetes 1.33, in Flux 2.7 & Kubernetes 1.34 there is
substantial improvement in the reconciliation speed of HelmRelease objects when the
number of releases is 1000 or more.

## Flux v2.6.0

Expand Down
4 changes: 2 additions & 2 deletions manifests/bases/helm-controller/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- https://github.com/fluxcd/helm-controller/releases/download/v1.3.0/helm-controller.crds.yaml
- https://github.com/fluxcd/helm-controller/releases/download/v1.3.0/helm-controller.deployment.yaml
- https://github.com/fluxcd/helm-controller/releases/download/v1.4.0/helm-controller.crds.yaml
- https://github.com/fluxcd/helm-controller/releases/download/v1.4.0/helm-controller.deployment.yaml
- account.yaml
transformers:
- labels.yaml
Expand Down
3 changes: 3 additions & 0 deletions manifests/bases/helm-controller/labels.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,6 @@ labels:
fieldSpecs:
- path: metadata/labels
create: true
- kind: Deployment
path: spec/template/metadata/labels
create: true
8 changes: 0 additions & 8 deletions manifests/bases/helm-controller/patch.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,6 @@
- op: add
path: /spec/template/spec/priorityClassName
value: system-cluster-critical
- op: add
path: /spec/template/spec/containers/0/env/-
value:
name: GOMAXPROCS
valueFrom:
resourceFieldRef:
containerName: manager
resource: limits.cpu
- op: add
path: /spec/template/spec/containers/0/env/-
value:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- https://github.com/fluxcd/image-automation-controller/releases/download/v0.41.0/image-automation-controller.crds.yaml
- https://github.com/fluxcd/image-automation-controller/releases/download/v0.41.0/image-automation-controller.deployment.yaml
- https://github.com/fluxcd/image-automation-controller/releases/download/v1.0.0/image-automation-controller.crds.yaml
- https://github.com/fluxcd/image-automation-controller/releases/download/v1.0.0/image-automation-controller.deployment.yaml
- account.yaml
transformers:
- labels.yaml
Expand Down
3 changes: 3 additions & 0 deletions manifests/bases/image-automation-controller/labels.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,6 @@ labels:
fieldSpecs:
- path: metadata/labels
create: true
- kind: Deployment
path: spec/template/metadata/labels
create: true
8 changes: 0 additions & 8 deletions manifests/bases/image-automation-controller/patch.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,6 @@
- op: add
path: /spec/template/spec/serviceAccountName
value: image-automation-controller
- op: add
path: /spec/template/spec/containers/0/env/-
value:
name: GOMAXPROCS
valueFrom:
resourceFieldRef:
containerName: manager
resource: limits.cpu
- op: add
path: /spec/template/spec/containers/0/env/-
value:
Expand Down
4 changes: 2 additions & 2 deletions manifests/bases/image-reflector-controller/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- https://github.com/fluxcd/image-reflector-controller/releases/download/v0.35.0/image-reflector-controller.crds.yaml
- https://github.com/fluxcd/image-reflector-controller/releases/download/v0.35.0/image-reflector-controller.deployment.yaml
- https://github.com/fluxcd/image-reflector-controller/releases/download/v1.0.1/image-reflector-controller.crds.yaml
- https://github.com/fluxcd/image-reflector-controller/releases/download/v1.0.1/image-reflector-controller.deployment.yaml
- account.yaml
transformers:
- labels.yaml
Expand Down
3 changes: 3 additions & 0 deletions manifests/bases/image-reflector-controller/labels.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,6 @@ labels:
fieldSpecs:
- path: metadata/labels
create: true
- kind: Deployment
path: spec/template/metadata/labels
create: true
8 changes: 0 additions & 8 deletions manifests/bases/image-reflector-controller/patch.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,6 @@
- op: add
path: /spec/template/spec/serviceAccountName
value: image-reflector-controller
- op: add
path: /spec/template/spec/containers/0/env/-
value:
name: GOMAXPROCS
valueFrom:
resourceFieldRef:
containerName: manager
resource: limits.cpu
- op: add
path: /spec/template/spec/containers/0/env/-
value:
Expand Down
4 changes: 2 additions & 2 deletions manifests/bases/kustomize-controller/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- https://github.com/fluxcd/kustomize-controller/releases/download/v1.6.0/kustomize-controller.crds.yaml
- https://github.com/fluxcd/kustomize-controller/releases/download/v1.6.0/kustomize-controller.deployment.yaml
- https://github.com/fluxcd/kustomize-controller/releases/download/v1.7.0/kustomize-controller.crds.yaml
- https://github.com/fluxcd/kustomize-controller/releases/download/v1.7.0/kustomize-controller.deployment.yaml
- account.yaml
transformers:
- labels.yaml
Expand Down
3 changes: 3 additions & 0 deletions manifests/bases/kustomize-controller/labels.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,6 @@ labels:
fieldSpecs:
- path: metadata/labels
create: true
- kind: Deployment
path: spec/template/metadata/labels
create: true
8 changes: 0 additions & 8 deletions manifests/bases/kustomize-controller/patch.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,6 @@
- op: add
path: /spec/template/spec/priorityClassName
value: system-cluster-critical
- op: add
path: /spec/template/spec/containers/0/env/-
value:
name: GOMAXPROCS
valueFrom:
resourceFieldRef:
containerName: manager
resource: limits.cpu
- op: add
path: /spec/template/spec/containers/0/env/-
value:
Expand Down
4 changes: 2 additions & 2 deletions manifests/bases/notification-controller/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- https://github.com/fluxcd/notification-controller/releases/download/v1.6.0/notification-controller.crds.yaml
- https://github.com/fluxcd/notification-controller/releases/download/v1.6.0/notification-controller.deployment.yaml
- https://github.com/fluxcd/notification-controller/releases/download/v1.7.1/notification-controller.crds.yaml
- https://github.com/fluxcd/notification-controller/releases/download/v1.7.1/notification-controller.deployment.yaml
- account.yaml
transformers:
- labels.yaml
Expand Down
3 changes: 3 additions & 0 deletions manifests/bases/notification-controller/labels.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,6 @@ labels:
fieldSpecs:
- path: metadata/labels
create: true
- kind: Deployment
path: spec/template/metadata/labels
create: true
8 changes: 0 additions & 8 deletions manifests/bases/notification-controller/patch.yaml
Original file line number Diff line number Diff line change
@@ -1,14 +1,6 @@
- op: add
path: /spec/template/spec/serviceAccountName
value: notification-controller
- op: add
path: /spec/template/spec/containers/0/env/-
value:
name: GOMAXPROCS
valueFrom:
resourceFieldRef:
containerName: manager
resource: limits.cpu
- op: add
path: /spec/template/spec/containers/0/env/-
value:
Expand Down
4 changes: 2 additions & 2 deletions manifests/bases/source-controller/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- https://github.com/fluxcd/source-controller/releases/download/v1.6.0/source-controller.crds.yaml
- https://github.com/fluxcd/source-controller/releases/download/v1.6.0/source-controller.deployment.yaml
- https://github.com/fluxcd/source-controller/releases/download/v1.7.0/source-controller.crds.yaml
- https://github.com/fluxcd/source-controller/releases/download/v1.7.0/source-controller.deployment.yaml
- account.yaml
transformers:
- labels.yaml
Expand Down
3 changes: 3 additions & 0 deletions manifests/bases/source-controller/labels.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,6 @@ labels:
fieldSpecs:
- path: metadata/labels
create: true
- kind: Deployment
path: spec/template/metadata/labels
create: true
8 changes: 0 additions & 8 deletions manifests/bases/source-controller/patch.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,6 @@
- op: add
path: /spec/template/spec/priorityClassName
value: system-cluster-critical
- op: add
path: /spec/template/spec/containers/0/env/-
value:
name: GOMAXPROCS
valueFrom:
resourceFieldRef:
containerName: manager
resource: limits.cpu
- op: add
path: /spec/template/spec/containers/0/env/-
value:
Expand Down
4 changes: 4 additions & 0 deletions manifests/bases/source-watcher/account.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: source-watcher
15 changes: 15 additions & 0 deletions manifests/bases/source-watcher/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- https://github.com/fluxcd/source-watcher/releases/download/v2.0.0/source-watcher.crds.yaml
- https://github.com/fluxcd/source-watcher/releases/download/v2.0.0/source-watcher.deployment.yaml
- account.yaml
transformers:
- labels.yaml
patches:
- target:
group: apps
version: v1
kind: Deployment
name: source-watcher
path: patch.yaml
13 changes: 13 additions & 0 deletions manifests/bases/source-watcher/labels.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
apiVersion: builtin
kind: LabelTransformer
metadata:
name: labels
labels:
app.kubernetes.io/component: source-watcher
app.kubernetes.io/part-of: flux
fieldSpecs:
- path: metadata/labels
create: true
- kind: Deployment
path: spec/template/metadata/labels
create: true
17 changes: 17 additions & 0 deletions manifests/bases/source-watcher/patch.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
- op: add
path: /spec/template/spec/containers/0/args/0
value: --events-addr=http://notification-controller.flux-system.svc.cluster.local./
- op: add
path: /spec/template/spec/serviceAccountName
value: source-watcher
- op: add
path: /spec/template/spec/priorityClassName
value: system-cluster-critical
- op: add
path: /spec/template/spec/containers/0/env/-
value:
name: GOMEMLIMIT
valueFrom:
resourceFieldRef:
containerName: manager
resource: limits.memory
10 changes: 10 additions & 0 deletions manifests/install/kustomization.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ resources:
- ../bases/helm-controller
- ../bases/image-reflector-controller
- ../bases/image-automation-controller
- ../bases/source-watcher
- ../rbac
- ../policies
transformers:
Expand All @@ -26,6 +27,8 @@ images:
newName: ghcr.io/fluxcd/image-reflector-controller
- name: fluxcd/image-automation-controller
newName: ghcr.io/fluxcd/image-automation-controller
- name: fluxcd/source-watcher
newName: ghcr.io/fluxcd/source-watcher
patches:
- patch: |
- op: add
Expand Down Expand Up @@ -91,3 +94,10 @@ patches:
target:
kind: Deployment
name: kustomize-controller
- patch: |
- op: add
path: /spec/template/spec/containers/0/args/-
value: --feature-gates=ExternalArtifact=true
target:
kind: Deployment
name: "(kustomize-controller|helm-controller)"
6 changes: 6 additions & 0 deletions manifests/rbac/controller.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@ rules:
- apiGroups: ['image.toolkit.fluxcd.io']
resources: ['*']
verbs: ['*']
- apiGroups: ['source.extensions.fluxcd.io']
resources: ['*']
verbs: ['*']
- apiGroups:
- ""
resources:
Expand Down Expand Up @@ -109,3 +112,6 @@ subjects:
- kind: ServiceAccount
name: image-automation-controller
namespace: flux-system
- kind: ServiceAccount
name: source-watcher
namespace: flux-system