Skip to content

Commit 8760b21

Browse files
author
Max Jonas Werner
committed
Add reconciler sharding capability based on label selector
The new `--watch-label-selector` lets operators provide a label to the controller manager which in turn uses it to reconcile only those resources `ImageUpdateAutomations` that match the given label. This way operators can deploy multiple instances of IAC, each reconciling a distinct set of resources based on their labels and effectively scale IAC horizontally. closes #503 Signed-off-by: Max Jonas Werner <[email protected]>
1 parent 946bb84 commit 8760b21

File tree

5 files changed

+92
-62
lines changed

5 files changed

+92
-62
lines changed

api/go.mod

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ module github.com/fluxcd/image-automation-controller/api
33
go 1.18
44

55
require (
6-
github.com/fluxcd/pkg/apis/meta v0.19.1
7-
github.com/fluxcd/source-controller/api v0.36.0
8-
k8s.io/apimachinery v0.26.2
9-
sigs.k8s.io/controller-runtime v0.14.5
6+
github.com/fluxcd/pkg/apis/meta v1.0.0
7+
github.com/fluxcd/source-controller/api v1.0.0-rc.1
8+
k8s.io/apimachinery v0.26.3
9+
sigs.k8s.io/controller-runtime v0.14.6
1010
)
1111

1212
require (

api/go.sum

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c
33
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
44
github.com/fluxcd/pkg/apis/acl v0.1.0 h1:EoAl377hDQYL3WqanWCdifauXqXbMyFuK82NnX6pH4Q=
55
github.com/fluxcd/pkg/apis/acl v0.1.0/go.mod h1:zfEZzz169Oap034EsDhmCAGgnWlcWmIObZjYMusoXS8=
6-
github.com/fluxcd/pkg/apis/meta v0.19.1 h1:fCI5CnTXpAqr67UlaI9q0H+OztMKB5kDTr6xV6vlAo0=
7-
github.com/fluxcd/pkg/apis/meta v0.19.1/go.mod h1:ZPPMYrPnWwPQYNEGM/Uc0N4SurUPS3xNI3IIpCQEfuM=
8-
github.com/fluxcd/source-controller/api v0.36.0 h1:c5/uWFqKZ9vtDkkXsdMTyiuHNNEX3B6ldjgTsB7Uy14=
9-
github.com/fluxcd/source-controller/api v0.36.0/go.mod h1:GktZmd5Dfxo84vPFBdLDl0bBtiJRODfd47uugK0romU=
6+
github.com/fluxcd/pkg/apis/meta v1.0.0 h1:i9IGHd/VNEZELX7mepkiYFbJxs2J5znaB4cN9z2nPm8=
7+
github.com/fluxcd/pkg/apis/meta v1.0.0/go.mod h1:04ZdpZYm1x+aL93K4daNHW1UX6E8K7Gyf5za9OhrE+U=
8+
github.com/fluxcd/source-controller/api v1.0.0-rc.1 h1:MZaP5utClMG95Aw/AVu1l05WEfmpEw/RIlCLnkCQl14=
9+
github.com/fluxcd/source-controller/api v1.0.0-rc.1/go.mod h1:CvGNdS8g/MqwpERUK6aJp4lndsrm+JBzGpoyyZ4u0c8=
1010
github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
1111
github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0=
1212
github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
@@ -76,14 +76,14 @@ gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
7676
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
7777
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
7878
k8s.io/api v0.26.1 h1:f+SWYiPd/GsiWwVRz+NbFyCgvv75Pk9NK6dlkZgpCRQ=
79-
k8s.io/apimachinery v0.26.2 h1:da1u3D5wfR5u2RpLhE/ZtZS2P7QvDgLZTi9wrNZl/tQ=
80-
k8s.io/apimachinery v0.26.2/go.mod h1:ats7nN1LExKHvJ9TmwootT00Yz05MuYqPXEXaVeOy5I=
79+
k8s.io/apimachinery v0.26.3 h1:dQx6PNETJ7nODU3XPtrwkfuubs6w7sX0M8n61zHIV/k=
80+
k8s.io/apimachinery v0.26.3/go.mod h1:ats7nN1LExKHvJ9TmwootT00Yz05MuYqPXEXaVeOy5I=
8181
k8s.io/klog/v2 v2.80.1 h1:atnLQ121W371wYYFawwYx1aEY2eUfs4l3J72wtgAwV4=
8282
k8s.io/klog/v2 v2.80.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
8383
k8s.io/utils v0.0.0-20221128185143-99ec85e7a448 h1:KTgPnR10d5zhztWptI952TNtt/4u5h3IzDXkdIMuo2Y=
8484
k8s.io/utils v0.0.0-20221128185143-99ec85e7a448/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
85-
sigs.k8s.io/controller-runtime v0.14.5 h1:6xaWFqzT5KuAQ9ufgUaj1G/+C4Y1GRkhrxl+BJ9i+5s=
86-
sigs.k8s.io/controller-runtime v0.14.5/go.mod h1:WqIdsAY6JBsjfc/CqO0CORmNtoCtE4S6qbPc9s68h+0=
85+
sigs.k8s.io/controller-runtime v0.14.6 h1:oxstGVvXGNnMvY7TAESYk+lzr6S3V5VFxQ6d92KcwQA=
86+
sigs.k8s.io/controller-runtime v0.14.6/go.mod h1:WqIdsAY6JBsjfc/CqO0CORmNtoCtE4S6qbPc9s68h+0=
8787
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo=
8888
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0=
8989
sigs.k8s.io/structured-merge-diff/v4 v4.2.3 h1:PRbqxJClWWYMNV1dhaG4NsibJbArud9kFxnAMREiWFE=

go.mod

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -7,32 +7,32 @@ replace github.com/fluxcd/image-automation-controller/api => ./api
77
require (
88
github.com/AdaLogics/go-fuzz-headers v0.0.0-20230106234847-43070de90fa1
99
github.com/Masterminds/sprig/v3 v3.2.3
10-
github.com/ProtonMail/go-crypto v0.0.0-20230217124315-7d5c6f04bbb8
10+
github.com/ProtonMail/go-crypto v0.0.0-20230321155629-9a39f2531310
1111
github.com/cyphar/filepath-securejoin v0.2.3
1212
github.com/fluxcd/go-git/v5 v5.0.0-20221219190809-2e5c9d01cfc4
1313
github.com/fluxcd/image-automation-controller/api v0.31.0
1414
github.com/fluxcd/image-reflector-controller/api v0.26.0
1515
github.com/fluxcd/pkg/apis/acl v0.1.0
1616
github.com/fluxcd/pkg/apis/event v0.4.1
17-
github.com/fluxcd/pkg/apis/meta v0.19.1
17+
github.com/fluxcd/pkg/apis/meta v1.0.0
1818
github.com/fluxcd/pkg/git v0.11.0
1919
github.com/fluxcd/pkg/git/gogit v0.8.1
2020
github.com/fluxcd/pkg/gittestserver v0.8.2
21-
github.com/fluxcd/pkg/runtime v0.31.0
21+
github.com/fluxcd/pkg/runtime v0.35.0
2222
github.com/fluxcd/pkg/ssh v0.7.3
23-
github.com/fluxcd/source-controller/api v0.36.0
23+
github.com/fluxcd/source-controller/api v1.0.0-rc.1
2424
github.com/go-git/go-billy/v5 v5.4.1
2525
github.com/go-logr/logr v1.2.3
2626
github.com/google/go-containerregistry v0.13.0
27-
github.com/onsi/gomega v1.27.2
27+
github.com/onsi/gomega v1.27.5
2828
github.com/otiai10/copy v1.9.0
2929
github.com/spf13/pflag v1.0.5
3030
golang.org/x/crypto v0.7.0
31-
k8s.io/api v0.26.2
32-
k8s.io/apimachinery v0.26.2
33-
k8s.io/client-go v0.26.2
31+
k8s.io/api v0.26.3
32+
k8s.io/apimachinery v0.26.3
33+
k8s.io/client-go v0.26.3
3434
k8s.io/kube-openapi v0.0.0-20230303024457-afdc3dddf62d
35-
sigs.k8s.io/controller-runtime v0.14.5
35+
sigs.k8s.io/controller-runtime v0.14.6
3636
sigs.k8s.io/kustomize/kyaml v0.13.9
3737
)
3838

@@ -42,7 +42,7 @@ require (
4242
github.com/Masterminds/goutils v1.1.1 // indirect
4343
github.com/Masterminds/semver/v3 v3.2.0 // indirect
4444
github.com/Microsoft/go-winio v0.6.0 // indirect
45-
github.com/acomagu/bufpipe v1.0.3 // indirect
45+
github.com/acomagu/bufpipe v1.0.4 // indirect
4646
github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d // indirect
4747
github.com/beorn7/perks v1.0.1 // indirect
4848
github.com/cespare/xxhash/v2 v2.1.2 // indirect
@@ -66,7 +66,7 @@ require (
6666
github.com/gofrs/uuid v4.2.0+incompatible // indirect
6767
github.com/gogo/protobuf v1.3.2 // indirect
6868
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
69-
github.com/golang/protobuf v1.5.2 // indirect
69+
github.com/golang/protobuf v1.5.3 // indirect
7070
github.com/google/btree v1.1.2 // indirect
7171
github.com/google/gnostic v0.6.9 // indirect
7272
github.com/google/go-cmp v0.5.9 // indirect
@@ -78,7 +78,7 @@ require (
7878
github.com/hashicorp/go-hclog v1.3.1 // indirect
7979
github.com/hashicorp/go-retryablehttp v0.7.2 // indirect
8080
github.com/huandu/xstrings v1.3.3 // indirect
81-
github.com/imdario/mergo v0.3.13 // indirect
81+
github.com/imdario/mergo v0.3.15 // indirect
8282
github.com/inconshreveable/mousetrap v1.0.1 // indirect
8383
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect
8484
github.com/josharian/intern v1.0.0 // indirect
@@ -101,7 +101,7 @@ require (
101101
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
102102
github.com/opencontainers/go-digest v1.0.0 // indirect
103103
github.com/peterbourgon/diskv v2.0.1+incompatible // indirect
104-
github.com/pjbgf/sha1cd v0.2.3 // indirect
104+
github.com/pjbgf/sha1cd v0.3.0 // indirect
105105
github.com/pkg/errors v0.9.1 // indirect
106106
github.com/prometheus/client_golang v1.14.0 // indirect
107107
github.com/prometheus/client_model v0.3.0 // indirect
@@ -120,14 +120,14 @@ require (
120120
go.uber.org/atomic v1.10.0 // indirect
121121
go.uber.org/multierr v1.8.0 // indirect
122122
go.uber.org/zap v1.24.0 // indirect
123-
golang.org/x/mod v0.8.0 // indirect
123+
golang.org/x/mod v0.9.0 // indirect
124124
golang.org/x/net v0.8.0 // indirect
125125
golang.org/x/oauth2 v0.2.0 // indirect
126126
golang.org/x/sys v0.6.0 // indirect
127127
golang.org/x/term v0.6.0 // indirect
128128
golang.org/x/text v0.8.0 // indirect
129129
golang.org/x/time v0.3.0 // indirect
130-
golang.org/x/tools v0.6.0 // indirect
130+
golang.org/x/tools v0.7.0 // indirect
131131
gomodules.xyz/jsonpatch/v2 v2.2.0 // indirect
132132
google.golang.org/appengine v1.6.7 // indirect
133133
google.golang.org/protobuf v1.28.1 // indirect
@@ -138,7 +138,7 @@ require (
138138
gotest.tools/v3 v3.1.0 // indirect
139139
k8s.io/apiextensions-apiserver v0.26.1 // indirect
140140
k8s.io/cli-runtime v0.25.4 // indirect
141-
k8s.io/component-base v0.26.2 // indirect
141+
k8s.io/component-base v0.26.3 // indirect
142142
k8s.io/klog/v2 v2.90.1 // indirect
143143
k8s.io/kubectl v0.25.4 // indirect
144144
k8s.io/utils v0.0.0-20221128185143-99ec85e7a448 // indirect

0 commit comments

Comments
 (0)