Skip to content

Commit 378a616

Browse files
committed
1 parent e629589 commit 378a616

File tree

2 files changed

+144
-24
lines changed

2 files changed

+144
-24
lines changed

enhancements/service-ca-bundle-injection-for-webhooks.md renamed to enhancements/authentication/service-ca-bundle-injection-for-admission-webhooks.md

+29-24
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: service-ca-bundle-injection-for-webhooks
2+
title: service-ca-bundle-injection-for-admission-webhooks
33
authors:
44
- "@marun"
55
reviewers:
@@ -18,7 +18,7 @@ replaces:
1818
superseded-by:
1919
---
2020

21-
# Support Service CA Bundle Injection for Webhooks
21+
# Support Service CA Bundle Injection for Admission Webhooks
2222

2323
## Release Signoff Checklist
2424

@@ -30,46 +30,51 @@ superseded-by:
3030

3131
## Summary
3232

33-
Webhooks can secure their endpoints automatically with a serving cert
34-
provisioned by the service CA operator, but the CA bundle needed to
35-
verify that cert must be manually added to a webhook configuration
36-
resource. The service CA operator should be updated to support
37-
injection of the CA bundle for webhook configurations.
33+
Admission webhooks can secure their endpoints automatically with a
34+
serving cert provisioned by the service CA operator, but the CA bundle
35+
needed to verify that cert must be manually added to an admission
36+
webhook configuration resource (i.e. ). The service CA operator should be
37+
updated to support injection of the CA bundle for admission webhook
38+
configurations.
3839

3940
## Motivation
4041

41-
A survey of operators that configure webhooks that use serving certs
42-
determined that the quality of injection varied (not all were
43-
compatible with CA rotation) and that there was unnecessary
42+
A survey of operators that configure admission webhooks that use
43+
serving certs determined that the quality of injection varied (not all
44+
were compatible with CA rotation) and that there was unnecessary
4445
duplication of effort. Implementing this facility in the service ca
4546
operator would ensure that all operators (and user workloads) had a
4647
simple and well-tested option.
4748

4849
### Goals
4950

50-
- Service CA bundle injection is supported for both mutating and
51-
validating webhook configurations.
51+
- Service CA bundle injection is supported for both
52+
`MutatingWebhookConfiguration` and `ValidatingWebhookConfiguration`
53+
admission webhook configuration types.
5254

5355
### Non-Goals
5456

55-
- Supporting ca bundle injection to a subset of webhooks defined in a
56-
webhook configuration resource.
57+
- Supporting CA bundle injection to a subset of webhooks defined in an
58+
admission webhook configuration resource.
5759
- Allowing selective injection would likely increase the complexity
5860
of implementation and there is no clear indication that this
5961
capability is required.
62+
- Webhooks in one configuration object are all independent and
63+
therefore configuration can be split into multiple resources if
64+
difference CAs are necessary.
6065

6166
## Proposal
6267

63-
- Add a new bundle injection controller for MutatingWebhookConfiguration
64-
- Add a new bundle injection controller for ValidatingWebhookConfiguration
65-
- The new controllers will ensure that both types of webhook
68+
- Add a new bundle injection controller for `MutatingWebhookConfiguration`
69+
- Add a new bundle injection controller for `ValidatingWebhookConfiguration`
70+
- The new controllers will ensure that both types of admission webhook
6671
configurations will have all their CABundle fields populated by the
6772
current service CA bundle when they are found to have one of the
6873
injection annotations (`service.beta.openshift.io/inject-cabundle`
6974
or `service.alpha.openshift.io/inject-cabundle`)
70-
- Webhook configurations needing to specify different CA bundles for
71-
different webhooks should not set the annotation since the
72-
proposed implementation is not intended to be selective.
75+
- Admission webhook configurations needing to specify different CA
76+
bundles for different webhooks should not set the annotation since
77+
the proposed implementation is not intended to be selective.
7378

7479
### Risks and Mitigations
7580

@@ -88,8 +93,8 @@ Being delivered as GA in 4.4
8893
### Upgrade / Downgrade Strategy
8994

9095
The change as proposed is additive-only, so upgrading will enable
91-
bundle injection for webhooks and downgrading will remove the
92-
capatiblity.
96+
bundle injection for admission webhooks and downgrading will remove
97+
the capability.
9398

9499
### Version Skew Strategy
95100

@@ -106,5 +111,5 @@ N/A
106111
## Alternatives
107112

108113
Avoid implementing for 4.4 in the interests of implementing support
109-
for injecting the service ca bundle to a subset of webhooks defined in
110-
a webhook configuration.
114+
for injecting the service CA bundle to a subset of webhooks defined in
115+
an admission webhook configuration.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
---
2+
title: service-ca-bundle-injection-for-admission-webhooks
3+
authors:
4+
- "@marun"
5+
reviewers:
6+
- "@deads2k"
7+
- "@sttts"
8+
- "@stlaz"
9+
approvers:
10+
- "@deads2k"
11+
- "@sttts"
12+
creation-date: 2020-01-23
13+
last-updated: 2020-01-23
14+
status: implementable
15+
see-also:
16+
- https://github.com/openshift/service-ca-operator/pull/79 (Implementation)
17+
replaces:
18+
superseded-by:
19+
---
20+
21+
# Support Service CA Bundle Injection for Admission Webhooks
22+
23+
## Release Signoff Checklist
24+
25+
- [ ] Enhancement is `implementable`
26+
- [ ] Design details are appropriately documented from clear requirements
27+
- [ ] Test plan is defined
28+
- [ ] Graduation criteria for dev preview, tech preview, GA
29+
- [ ] User-facing documentation is created in [openshift-docs](https://github.com/openshift/openshift-docs/)
30+
31+
## Summary
32+
33+
Admission webhooks can secure their endpoints automatically with a
34+
serving cert provisioned by the service CA operator, but the CA bundle
35+
needed to verify that cert must be manually added to an admission
36+
webhook configuration resource (i.e. ). The service CA operator should be
37+
updated to support injection of the CA bundle for admission webhook
38+
configurations.
39+
40+
## Motivation
41+
42+
A survey of operators that configure admission webhooks that use
43+
serving certs determined that the quality of injection varied (not all
44+
were compatible with CA rotation) and that there was unnecessary
45+
duplication of effort. Implementing this facility in the service ca
46+
operator would ensure that all operators (and user workloads) had a
47+
simple and well-tested option.
48+
49+
### Goals
50+
51+
- Service CA bundle injection is supported for both
52+
`MutatingWebhookConfiguration` and `ValidatingWebhookConfiguration`
53+
admission webhook configuration types.
54+
55+
### Non-Goals
56+
57+
- Supporting CA bundle injection to a subset of webhooks defined in an
58+
admission webhook configuration resource.
59+
- Allowing selective injection would likely increase the complexity
60+
of implementation and there is no clear indication that this
61+
capability is required.
62+
- Webhooks in one configuration object are all independent and
63+
therefore configuration can be split into multiple resources if
64+
difference CAs are necessary.
65+
66+
## Proposal
67+
68+
- Add a new bundle injection controller for `MutatingWebhookConfiguration`
69+
- Add a new bundle injection controller for `ValidatingWebhookConfiguration`
70+
- The new controllers will ensure that both types of admission webhook
71+
configurations will have all their CABundle fields populated by the
72+
current service CA bundle when they are found to have one of the
73+
injection annotations (`service.beta.openshift.io/inject-cabundle`
74+
or `service.alpha.openshift.io/inject-cabundle`)
75+
- Admission webhook configurations needing to specify different CA
76+
bundles for different webhooks should not set the annotation since
77+
the proposed implementation is not intended to be selective.
78+
79+
### Risks and Mitigations
80+
81+
N/A
82+
83+
## Design Details
84+
85+
### Test Plan
86+
87+
E2E testing of bundle injection
88+
89+
### Graduation Criteria
90+
91+
Being delivered as GA in 4.4
92+
93+
### Upgrade / Downgrade Strategy
94+
95+
The change as proposed is additive-only, so upgrading will enable
96+
bundle injection for admission webhooks and downgrading will remove
97+
the capability.
98+
99+
### Version Skew Strategy
100+
101+
N/A
102+
103+
## Implementation History
104+
105+
N/A
106+
107+
## Drawbacks
108+
109+
N/A
110+
111+
## Alternatives
112+
113+
Avoid implementing for 4.4 in the interests of implementing support
114+
for injecting the service CA bundle to a subset of webhooks defined in
115+
an admission webhook configuration.

0 commit comments

Comments
 (0)