Skip to content

Commit b549f4f

Browse files
authored
Merge pull request #1284 from cappyzawa/rfc-0010-multi-tenancy-lockdown
[RFC-0010] Add multi-tenancy lockdown for kubeconfig
2 parents 5c7f2c8 + 82fae0c commit b549f4f

File tree

3 files changed

+36
-29
lines changed

3 files changed

+36
-29
lines changed

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@ require (
2222
github.com/fluxcd/pkg/apis/event v0.18.0
2323
github.com/fluxcd/pkg/apis/kustomize v1.11.0
2424
github.com/fluxcd/pkg/apis/meta v1.18.0
25-
github.com/fluxcd/pkg/auth v0.23.0
25+
github.com/fluxcd/pkg/auth v0.26.0
2626
github.com/fluxcd/pkg/cache v0.10.0
2727
github.com/fluxcd/pkg/chartutil v1.9.0
28-
github.com/fluxcd/pkg/runtime v0.72.0
28+
github.com/fluxcd/pkg/runtime v0.80.0
2929
github.com/fluxcd/pkg/ssa v0.51.0
3030
github.com/fluxcd/pkg/testserver v0.11.0
3131
github.com/fluxcd/source-controller/api v1.6.0

go.sum

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -154,14 +154,14 @@ github.com/fluxcd/pkg/apis/kustomize v1.11.0 h1:0IzDgxZkc4v+5SDNCvgZhfwfkdkQLPXC
154154
github.com/fluxcd/pkg/apis/kustomize v1.11.0/go.mod h1:j302mJGDww8cn9qvMsRQ0LJ1HPAPs/IlX7CSsoJV7BI=
155155
github.com/fluxcd/pkg/apis/meta v1.18.0 h1:ACHrMIjlcioE9GKS7NGk62KX4NshqNewr8sBwMcXABs=
156156
github.com/fluxcd/pkg/apis/meta v1.18.0/go.mod h1:97l3hTwBpJbXBY+wetNbqrUsvES8B1jGioKcBUxmqd8=
157-
github.com/fluxcd/pkg/auth v0.23.0 h1:Xt89QO1Hzh7X0JFwCeONyxMlgOX/zOPx0eyIyFoKyF0=
158-
github.com/fluxcd/pkg/auth v0.23.0/go.mod h1:YEAHpBFuW5oLlH9ekuJaQdnJ2Q3A7Ny8kha3WY7QMnY=
157+
github.com/fluxcd/pkg/auth v0.26.0 h1:jw128zPI4aRSvkGbFfAQcFNF3oK58P4rDdKIpj2/7yM=
158+
github.com/fluxcd/pkg/auth v0.26.0/go.mod h1:YEAHpBFuW5oLlH9ekuJaQdnJ2Q3A7Ny8kha3WY7QMnY=
159159
github.com/fluxcd/pkg/cache v0.10.0 h1:M+OGDM4da1cnz7q+sZSBtkBJHpiJsLnKVmR9OdMWxEY=
160160
github.com/fluxcd/pkg/cache v0.10.0/go.mod h1:pPXRzQUDQagsCniuOolqVhnAkbNgYOg8d2cTliPs7ME=
161161
github.com/fluxcd/pkg/chartutil v1.9.0 h1:MnDKBNX7JXKe7E+J0F+eKnKsVYRC8bNQatv2HpmgSRQ=
162162
github.com/fluxcd/pkg/chartutil v1.9.0/go.mod h1:R0RfP6ZOtndKXkE1QGLvWLFDubKvh0fJlZeGHzndAfQ=
163-
github.com/fluxcd/pkg/runtime v0.72.0 h1:9JCto84iL2FziuTuuvDwvS+cfIzGhHOk25y8ulXpNOs=
164-
github.com/fluxcd/pkg/runtime v0.72.0/go.mod h1:iGhdaEq+lMJQTJNAFEPOU4gUJ7kt3yeDcJPZy7O9IUw=
163+
github.com/fluxcd/pkg/runtime v0.80.0 h1:vknT2vdQSGTFnAhz4xGk2ZXUWCrXh3whsISStgA57Go=
164+
github.com/fluxcd/pkg/runtime v0.80.0/go.mod h1:iGhdaEq+lMJQTJNAFEPOU4gUJ7kt3yeDcJPZy7O9IUw=
165165
github.com/fluxcd/pkg/ssa v0.51.0 h1:sFarxKZcS0J8sjq9qvs/r+1XiJqNgRodEiPjV75F8R4=
166166
github.com/fluxcd/pkg/ssa v0.51.0/go.mod h1:v+h9RC0JxWIqMTK2Eo+8Nh700AXyZChZ2TiLVj4tf3M=
167167
github.com/fluxcd/pkg/testserver v0.11.0 h1:a/kxpFqv7XQxZjwVPP3voooRmSd/3ipLVolK0xUIxXQ=

main.go

Lines changed: 30 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -84,28 +84,29 @@ func main() {
8484
)
8585

8686
var (
87-
metricsAddr string
88-
eventsAddr string
89-
healthAddr string
90-
concurrent int
91-
requeueDependency time.Duration
92-
gracefulShutdownTimeout time.Duration
93-
httpRetry int
94-
clientOptions client.Options
95-
kubeConfigOpts client.KubeConfigOptions
96-
featureGates feathelper.FeatureGates
97-
logOptions logger.Options
98-
aclOptions acl.Options
99-
leaderElectionOptions leaderelection.Options
100-
rateLimiterOptions helper.RateLimiterOptions
101-
watchOptions helper.WatchOptions
102-
intervalJitterOptions jitter.IntervalOptions
103-
oomWatchInterval time.Duration
104-
oomWatchMemoryThreshold uint8
105-
oomWatchMaxMemoryPath string
106-
oomWatchCurrentMemoryPath string
107-
snapshotDigestAlgo string
108-
tokenCacheOptions cache.TokenFlags
87+
metricsAddr string
88+
eventsAddr string
89+
healthAddr string
90+
concurrent int
91+
requeueDependency time.Duration
92+
gracefulShutdownTimeout time.Duration
93+
httpRetry int
94+
clientOptions client.Options
95+
kubeConfigOpts client.KubeConfigOptions
96+
featureGates feathelper.FeatureGates
97+
logOptions logger.Options
98+
aclOptions acl.Options
99+
leaderElectionOptions leaderelection.Options
100+
rateLimiterOptions helper.RateLimiterOptions
101+
watchOptions helper.WatchOptions
102+
intervalJitterOptions jitter.IntervalOptions
103+
oomWatchInterval time.Duration
104+
oomWatchMemoryThreshold uint8
105+
oomWatchMaxMemoryPath string
106+
oomWatchCurrentMemoryPath string
107+
snapshotDigestAlgo string
108+
tokenCacheOptions cache.TokenFlags
109+
defaultKubeConfigServiceAccount string
109110
)
110111

111112
flag.StringVar(&metricsAddr, "metrics-addr", ":8080",
@@ -122,8 +123,10 @@ func main() {
122123
"The duration given to the reconciler to finish before forcibly stopping.")
123124
flag.IntVar(&httpRetry, "http-retry", 9,
124125
"The maximum number of retries when failing to fetch artifacts over HTTP.")
125-
flag.StringVar(&intkube.DefaultServiceAccountName, "default-service-account", "",
126+
flag.StringVar(&intkube.DefaultServiceAccountName, auth.ControllerFlagDefaultServiceAccount, "",
126127
"Default service account used for impersonation.")
128+
flag.StringVar(&defaultKubeConfigServiceAccount, auth.ControllerFlagDefaultKubeConfigServiceAccount, "",
129+
"Default service account used for kubeconfig.")
127130
flag.Uint8Var(&oomWatchMemoryThreshold, "oom-watch-memory-threshold", 95,
128131
"The memory threshold in percentage at which the OOM watcher will trigger a graceful shutdown. Requires feature gate 'OOMWatch' to be enabled.")
129132
flag.DurationVar(&oomWatchInterval, "oom-watch-interval", 500*time.Millisecond,
@@ -165,6 +168,10 @@ func main() {
165168
auth.EnableObjectLevelWorkloadIdentity()
166169
}
167170

171+
if defaultKubeConfigServiceAccount != "" {
172+
auth.SetDefaultKubeConfigServiceAccount(defaultKubeConfigServiceAccount)
173+
}
174+
168175
if err := intervalJitterOptions.SetGlobalJitter(nil); err != nil {
169176
setupLog.Error(err, "unable to set global jitter")
170177
os.Exit(1)

0 commit comments

Comments
 (0)