You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: keps/sig-auth/3221-structured-authorization-configuration/README.md
+14-13Lines changed: 14 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -109,7 +109,7 @@ within the new file structure
109
109
Add a configuration format having specific precedence order and defined failure modes for configuring authorizer chain. See [Design Details](#design-details) for more details.
110
110
111
111
```yaml
112
-
apiVersion: apiserver.config.k8s.io/v1alpha1
112
+
apiVersion: apiserver.config.k8s.io/v1beta1
113
113
kind: AuthorizationConfiguration
114
114
authorizers:
115
115
- name: system-webhook
@@ -170,7 +170,7 @@ Note: The above are hypothetical for now since there has been no decision on
170
170
protection rules for system CRDs. The below example is only for demonstration
171
171
purposes.
172
172
```yaml
173
-
apiVersion: apiserver.config.k8s.io/v1alpha1
173
+
apiVersion: apiserver.config.k8s.io/v1beta1
174
174
kind: AuthorizationConfiguration
175
175
authorizers:
176
176
- type: Webhook
@@ -211,7 +211,7 @@ separate webhooks, leading to more predictable outcomes.
211
211
212
212
The below example is only for demonstration purposes.
213
213
```yaml
214
-
apiVersion: apiserver.config.k8s.io/v1alpha1
214
+
apiVersion: apiserver.config.k8s.io/v1beta1
215
215
kind: AuthorizationConfiguration
216
216
authorizers:
217
217
- name: system-crd-protector
@@ -312,25 +312,26 @@ reloader would pick up the changes. There would be a minutes order of delay.
312
312
The configuration would be validated at startup and the API server will fail to
313
313
start if the configuration is invalid.
314
314
315
-
The API server will periodically reload the configuration at a specific time
316
-
interval. If it or any of referenced files change, and the new configuration
317
-
passes validation, then the new configuration will be used for the Authorizer
318
-
chain. The reloader will also check if the webhook is healthy, thereby
319
-
preventing any typo/misconfiguration with the Webhook resulting in bad
320
-
Authorizer config. If healthcheck on the webhook failed, the last known good
315
+
The API server will periodically reload the configuration when an observed file
316
+
event occurs or a 1 minute poll is encountered. All non-webhook authorizer types
317
+
are required to remain unchanged in the file on reload. Reload must not add or
318
+
remove Node or RBAC authorizers. They can be reordered, but cannot be added or
319
+
removed. If the new configuration passes validation, then the new configuration
320
+
will be used for the Authorizer chain. The reloader will also check if the webhook
321
+
is healthy, thereby preventing any typo/misconfiguration with the Webhook resulting
322
+
in bad Authorizer config. If healthcheck on the webhook failed, the last known good
321
323
config will be used. In the next iteration of reload, if webhook is found to be
322
324
healthy, the new config will be used. Logging and metrics would be used to
323
325
signal success/failure of a config reload so that cluster admins can have
324
-
observability over this process. Reload must not add or remove Node or RBAC
325
-
authorizers. They can be reordered, but cannot be added or removed.
326
+
observability over this process.
326
327
327
328
The proposed structure is illustrated below:
328
329
329
330
> The sample configuration describes all the fields, their defaults and possible
330
331
values.
331
332
332
333
```yaml
333
-
apiVersion: apiserver.config.k8s.io/v1alpha1
334
+
apiVersion: apiserver.config.k8s.io/v1beta1
334
335
kind: AuthorizationConfiguration
335
336
authorizers:
336
337
- type: Webhook
@@ -346,7 +347,7 @@ authorizers:
346
347
# Same as setting `--authorization-webhook-cache-authorized-ttl` flag
347
348
# Default: 5m0s
348
349
authorizedTTL: 30s
349
-
# The duration to cache 'authorized' responses from the webhook
350
+
# The duration to cache 'unauthorized' responses from the webhook
350
351
# authorizer.
351
352
# Same as setting `--authorization-webhook-cache-unauthorized-ttl` flag
0 commit comments