Skip to content

Commit 6544650

Browse files
Merge pull request #1489 from awgreene/webhook-unique-names
Bug 1826446: (fix) Admission Webhook names must be unique
2 parents a947685 + c6819bb commit 6544650

33 files changed

+1093
-1199
lines changed

deploy/chart/crds/0000_50_olm_00-catalogsources.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1
22
kind: CustomResourceDefinition
33
metadata:
44
annotations:
5-
controller-gen.kubebuilder.io/version: v0.2.8
5+
controller-gen.kubebuilder.io/version: v0.3.0
66
creationTimestamp: null
77
name: catalogsources.operators.coreos.com
88
spec:

deploy/chart/crds/0000_50_olm_00-clusterserviceversions.yaml

Lines changed: 37 additions & 64 deletions
Large diffs are not rendered by default.

deploy/chart/crds/0000_50_olm_00-installplans.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1
22
kind: CustomResourceDefinition
33
metadata:
44
annotations:
5-
controller-gen.kubebuilder.io/version: v0.2.8
5+
controller-gen.kubebuilder.io/version: v0.3.0
66
creationTimestamp: null
77
name: installplans.operators.coreos.com
88
spec:

deploy/chart/crds/0000_50_olm_00-operatorgroups.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1
22
kind: CustomResourceDefinition
33
metadata:
44
annotations:
5-
controller-gen.kubebuilder.io/version: v0.2.8
5+
controller-gen.kubebuilder.io/version: v0.3.0
66
creationTimestamp: null
77
name: operatorgroups.operators.coreos.com
88
spec:

deploy/chart/crds/0000_50_olm_00-subscriptions.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1
22
kind: CustomResourceDefinition
33
metadata:
44
annotations:
5-
controller-gen.kubebuilder.io/version: v0.2.8
5+
controller-gen.kubebuilder.io/version: v0.3.0
66
creationTimestamp: null
77
name: subscriptions.operators.coreos.com
88
spec:

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ require (
2222
github.com/onsi/gomega v1.9.0
2323
github.com/openshift/api v0.0.0-20200331152225-585af27e34fd
2424
github.com/openshift/client-go v0.0.0-20200326155132-2a6cd50aedd0
25-
github.com/operator-framework/api v0.3.2
26-
github.com/operator-framework/operator-registry v1.12.1
25+
github.com/operator-framework/api v0.3.5
26+
github.com/operator-framework/operator-registry v1.12.2
2727
github.com/otiai10/copy v1.0.2
2828
github.com/pkg/errors v0.9.1
2929
github.com/prometheus/client_golang v1.2.1

go.sum

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -584,11 +584,14 @@ github.com/openshift/client-go v0.0.0-20200326155132-2a6cd50aedd0 h1:kMiuiZXH1Gd
584584
github.com/openshift/client-go v0.0.0-20200326155132-2a6cd50aedd0/go.mod h1:uUQ4LClRO+fg5MF/P6QxjMCb1C9f7Oh4RKepftDnEJE=
585585
github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw=
586586
github.com/operator-framework/api v0.1.1/go.mod h1:yzNYR7qyJqRGOOp+bT6Z/iYSbSPNxeh3Si93Gx/3OBY=
587-
github.com/operator-framework/api v0.3.2 h1:FvM+tWBIEDNfE0IxT8nr3t2HymcbItC4rngPJC467y4=
588-
github.com/operator-framework/api v0.3.2/go.mod h1:TmRmw+8XOUaDPq6SP9gA8cIexNf/Pq8LMFY7YaKQFTs=
587+
github.com/operator-framework/api v0.3.4/go.mod h1:TmRmw+8XOUaDPq6SP9gA8cIexNf/Pq8LMFY7YaKQFTs=
588+
github.com/operator-framework/api v0.3.5 h1:eUFzNOACJLsufdLiwRvj7/7O1yDgsu/6d1xM4idgE3I=
589+
github.com/operator-framework/api v0.3.5/go.mod h1:TmRmw+8XOUaDPq6SP9gA8cIexNf/Pq8LMFY7YaKQFTs=
589590
github.com/operator-framework/operator-registry v1.5.3/go.mod h1:agrQlkWOo1q8U1SAaLSS2WQ+Z9vswNT2M2HFib9iuLY=
590591
github.com/operator-framework/operator-registry v1.12.1 h1:JWk8s6LPwyJ16qQzOhALS0hycmmzUGteGQSCbfsPeBY=
591592
github.com/operator-framework/operator-registry v1.12.1/go.mod h1:rf4b/h77GUv1+geiej2KzGRQr8iBLF4dXNwr5AuGkrQ=
593+
github.com/operator-framework/operator-registry v1.12.2 h1:rQayebXFwetB9HrodU+fjbH5zFZ52uKIpDGhEzDDjZs=
594+
github.com/operator-framework/operator-registry v1.12.2/go.mod h1:8rsa504LH5BqEQJZsK+/5+5PmEFFphhQVsyDkvD+us4=
592595
github.com/otiai10/copy v1.0.1/go.mod h1:8bMCJrAqOtN/d9oyh5HR7HhLQMvcGMpGdwRDYsfOCHc=
593596
github.com/otiai10/copy v1.0.2 h1:DDNipYy6RkIkjMwy+AWzgKiNTyj2RUI9yEMeETEpVyc=
594597
github.com/otiai10/copy v1.0.2/go.mod h1:c7RpqBkwMom4bYTSkLSym4VSJz/XtncWRAj/J4PEIMY=

manifests/0000_50_olm_00-catalogsources.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1
22
kind: CustomResourceDefinition
33
metadata:
44
annotations:
5-
controller-gen.kubebuilder.io/version: v0.2.8
5+
controller-gen.kubebuilder.io/version: v0.3.0
66
creationTimestamp: null
77
name: catalogsources.operators.coreos.com
88
spec:

manifests/0000_50_olm_00-clusterserviceversions.yaml

Lines changed: 37 additions & 64 deletions
Large diffs are not rendered by default.

manifests/0000_50_olm_00-installplans.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1
22
kind: CustomResourceDefinition
33
metadata:
44
annotations:
5-
controller-gen.kubebuilder.io/version: v0.2.8
5+
controller-gen.kubebuilder.io/version: v0.3.0
66
creationTimestamp: null
77
name: installplans.operators.coreos.com
88
spec:

manifests/0000_50_olm_00-operatorgroups.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1
22
kind: CustomResourceDefinition
33
metadata:
44
annotations:
5-
controller-gen.kubebuilder.io/version: v0.2.8
5+
controller-gen.kubebuilder.io/version: v0.3.0
66
creationTimestamp: null
77
name: operatorgroups.operators.coreos.com
88
spec:

manifests/0000_50_olm_00-subscriptions.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1
22
kind: CustomResourceDefinition
33
metadata:
44
annotations:
5-
controller-gen.kubebuilder.io/version: v0.2.8
5+
controller-gen.kubebuilder.io/version: v0.3.0
66
creationTimestamp: null
77
name: subscriptions.operators.coreos.com
88
spec:

pkg/controller/install/certresources.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ type webhookDescriptionWithCAPEM struct {
103103
}
104104

105105
func (i *webhookDescriptionWithCAPEM) getName() string {
106-
return i.webhookDescription.Name
106+
return i.webhookDescription.GenerateName
107107
}
108108

109109
func (i *webhookDescriptionWithCAPEM) setCAPEM(caPEM []byte) {

pkg/controller/install/webhook.go

Lines changed: 78 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import (
99

1010
log "github.com/sirupsen/logrus"
1111
admissionregistrationv1 "k8s.io/api/admissionregistration/v1"
12-
k8serrors "k8s.io/apimachinery/pkg/api/errors"
1312
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1413
"k8s.io/apimachinery/pkg/labels"
1514
)
@@ -72,80 +71,107 @@ func (i *StrategyDeploymentInstaller) createOrUpdateWebhook(caPEM []byte, desc v
7271
}
7372

7473
func (i *StrategyDeploymentInstaller) createOrUpdateMutatingWebhook(ogNamespacelabelSelector *metav1.LabelSelector, caPEM []byte, desc v1alpha1.WebhookDescription) error {
75-
webhooks := []admissionregistrationv1.MutatingWebhook{
76-
desc.GetMutatingWebhook(i.owner.GetNamespace(), ogNamespacelabelSelector, caPEM),
74+
webhookLabels := ownerutil.OwnerLabel(i.owner, i.owner.GetObjectKind().GroupVersionKind().Kind)
75+
webhookLabels[WebhookDescKey] = desc.GenerateName
76+
webhookSelector := labels.SelectorFromSet(webhookLabels).String()
77+
78+
existingWebhooks, err := i.strategyClient.GetOpClient().KubernetesInterface().AdmissionregistrationV1().MutatingWebhookConfigurations().List(context.TODO(), metav1.ListOptions{LabelSelector: webhookSelector})
79+
if err != nil {
80+
return err
7781
}
78-
existingHook, err := i.strategyClient.GetOpClient().KubernetesInterface().AdmissionregistrationV1().MutatingWebhookConfigurations().Get(context.TODO(), desc.Name, metav1.GetOptions{})
79-
if err == nil {
80-
// Check if the only owners are this CSV or in this CSV's replacement chain
81-
if ownerutil.Adoptable(i.owner, existingHook.GetOwnerReferences()) {
82-
ownerutil.AddNonBlockingOwner(existingHook, i.owner)
83-
}
8482

85-
// Update the list of webhooks
86-
existingHook.Webhooks = webhooks
83+
if len(existingWebhooks.Items) == 0 {
84+
// Create a MutatingWebhookConfiguration
85+
webhook := admissionregistrationv1.MutatingWebhookConfiguration{
86+
ObjectMeta: metav1.ObjectMeta{
87+
GenerateName: desc.GenerateName + "-",
88+
Namespace: i.owner.GetNamespace(),
89+
Labels: ownerutil.OwnerLabel(i.owner, i.owner.GetObjectKind().GroupVersionKind().Kind),
90+
},
91+
Webhooks: []admissionregistrationv1.MutatingWebhook{
92+
desc.GetMutatingWebhook(i.owner.GetNamespace(), ogNamespacelabelSelector, caPEM),
93+
},
94+
}
95+
addWebhookLabels(&webhook, desc)
8796

88-
// Attempt an update
89-
if _, err := i.strategyClient.GetOpClient().KubernetesInterface().AdmissionregistrationV1().MutatingWebhookConfigurations().Update(context.TODO(), existingHook, metav1.UpdateOptions{}); err != nil {
90-
log.Warnf("could not update MutatingWebhookConfiguration %s", existingHook.GetName())
97+
if _, err := i.strategyClient.GetOpClient().KubernetesInterface().AdmissionregistrationV1().MutatingWebhookConfigurations().Create(context.TODO(), &webhook, metav1.CreateOptions{}); err != nil {
98+
log.Errorf("Webhooks: Error creating MutatingWebhookConfiguration: %v", err)
9199
return err
92100
}
93-
} else if k8serrors.IsNotFound(err) {
94-
hook := admissionregistrationv1.MutatingWebhookConfiguration{
95-
ObjectMeta: metav1.ObjectMeta{Name: desc.Name,
96-
Namespace: i.owner.GetNamespace(),
97-
},
98-
Webhooks: webhooks,
101+
return nil
102+
}
103+
for _, webhook := range existingWebhooks.Items {
104+
// Update the list of webhooks
105+
webhook.Webhooks = []admissionregistrationv1.MutatingWebhook{
106+
desc.GetMutatingWebhook(i.owner.GetNamespace(), ogNamespacelabelSelector, caPEM),
99107
}
100-
// Add an owner
101-
ownerutil.AddNonBlockingOwner(&hook, i.owner)
102-
if _, err := i.strategyClient.GetOpClient().KubernetesInterface().AdmissionregistrationV1().MutatingWebhookConfigurations().Create(context.TODO(), &hook, metav1.CreateOptions{}); err != nil {
103-
log.Errorf("Webhooks: Error creating mutating MutatingVebhookConfiguration: %v", err)
108+
109+
// Attempt an update
110+
if _, err := i.strategyClient.GetOpClient().KubernetesInterface().AdmissionregistrationV1().MutatingWebhookConfigurations().Update(context.TODO(), &webhook, metav1.UpdateOptions{}); err != nil {
111+
log.Warnf("could not update MutatingWebhookConfiguration %s", webhook.GetName())
104112
return err
105113
}
106-
} else {
107-
return err
108114
}
109115

110116
return nil
111117
}
112118

113119
func (i *StrategyDeploymentInstaller) createOrUpdateValidatingWebhook(ogNamespacelabelSelector *metav1.LabelSelector, caPEM []byte, desc v1alpha1.WebhookDescription) error {
114-
webhooks := []admissionregistrationv1.ValidatingWebhook{
115-
desc.GetValidatingWebhook(i.owner.GetNamespace(), ogNamespacelabelSelector, caPEM),
120+
webhookLabels := ownerutil.OwnerLabel(i.owner, i.owner.GetObjectKind().GroupVersionKind().Kind)
121+
webhookLabels[WebhookDescKey] = desc.GenerateName
122+
webhookSelector := labels.SelectorFromSet(webhookLabels).String()
123+
124+
existingWebhooks, err := i.strategyClient.GetOpClient().KubernetesInterface().AdmissionregistrationV1().ValidatingWebhookConfigurations().List(context.TODO(), metav1.ListOptions{LabelSelector: webhookSelector})
125+
if err != nil {
126+
return err
116127
}
117-
existingHook, err := i.strategyClient.GetOpClient().KubernetesInterface().AdmissionregistrationV1().ValidatingWebhookConfigurations().Get(context.TODO(), desc.Name, metav1.GetOptions{})
118-
if err == nil {
119-
// Check if the only owners are this CSV or in this CSV's replacement chain
120-
if ownerutil.Adoptable(i.owner, existingHook.GetOwnerReferences()) {
121-
ownerutil.AddNonBlockingOwner(existingHook, i.owner)
122-
}
123128

124-
// Update the list of webhooks
125-
existingHook.Webhooks = webhooks
129+
if len(existingWebhooks.Items) == 0 {
130+
// Create a ValidatingWebhookConfiguration
131+
webhook := admissionregistrationv1.ValidatingWebhookConfiguration{
132+
ObjectMeta: metav1.ObjectMeta{
133+
GenerateName: desc.GenerateName + "-",
134+
Namespace: i.owner.GetNamespace(),
135+
Labels: ownerutil.OwnerLabel(i.owner, i.owner.GetObjectKind().GroupVersionKind().Kind),
136+
},
137+
Webhooks: []admissionregistrationv1.ValidatingWebhook{
138+
desc.GetValidatingWebhook(i.owner.GetNamespace(), ogNamespacelabelSelector, caPEM),
139+
},
140+
}
141+
addWebhookLabels(&webhook, desc)
126142

127-
// Attempt an update
128-
if _, err := i.strategyClient.GetOpClient().KubernetesInterface().AdmissionregistrationV1().ValidatingWebhookConfigurations().Update(context.TODO(), existingHook, metav1.UpdateOptions{}); err != nil {
129-
log.Warnf("could not update ValidatingWebhookConfiguration %s", existingHook.GetName())
143+
if _, err := i.strategyClient.GetOpClient().KubernetesInterface().AdmissionregistrationV1().ValidatingWebhookConfigurations().Create(context.TODO(), &webhook, metav1.CreateOptions{}); err != nil {
144+
log.Errorf("Webhooks: Error creating ValidatingWebhookConfiguration: %v", err)
130145
return err
131146
}
132-
} else if k8serrors.IsNotFound(err) {
133-
// Create a ValidatingWebhookConfiguration
134-
hook := admissionregistrationv1.ValidatingWebhookConfiguration{
135-
ObjectMeta: metav1.ObjectMeta{Name: desc.Name,
136-
Namespace: i.owner.GetNamespace(),
137-
},
138-
Webhooks: webhooks,
147+
return nil
148+
}
149+
for _, webhook := range existingWebhooks.Items {
150+
// Update the list of webhooks
151+
webhook.Webhooks = []admissionregistrationv1.ValidatingWebhook{
152+
desc.GetValidatingWebhook(i.owner.GetNamespace(), ogNamespacelabelSelector, caPEM),
139153
}
140154

141-
// Add an owner
142-
ownerutil.AddNonBlockingOwner(&hook, i.owner)
143-
if _, err := i.strategyClient.GetOpClient().KubernetesInterface().AdmissionregistrationV1().ValidatingWebhookConfigurations().Create(context.TODO(), &hook, metav1.CreateOptions{}); err != nil {
144-
log.Errorf("Webhooks: Error create creating ValidationVebhookConfiguration: %v", err)
155+
// Attempt an update
156+
if _, err := i.strategyClient.GetOpClient().KubernetesInterface().AdmissionregistrationV1().ValidatingWebhookConfigurations().Update(context.TODO(), &webhook, metav1.UpdateOptions{}); err != nil {
157+
log.Warnf("could not update ValidatingWebhookConfiguration %s", webhook.GetName())
145158
return err
146159
}
147-
} else {
148-
return err
149160
}
161+
162+
return nil
163+
}
164+
165+
const WebhookDescKey = "webhookDescriptionGenerateName"
166+
167+
// addWebhookLabels adds webhook labels to an object
168+
func addWebhookLabels(object metav1.Object, webhookDesc v1alpha1.WebhookDescription) error {
169+
labels := object.GetLabels()
170+
if labels == nil {
171+
labels = map[string]string{}
172+
}
173+
labels[WebhookDescKey] = webhookDesc.GenerateName
174+
object.SetLabels(labels)
175+
150176
return nil
151177
}

pkg/controller/operators/olm/apiservices.go

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,14 @@ import (
1010
rbacv1 "k8s.io/api/rbac/v1"
1111
k8serrors "k8s.io/apimachinery/pkg/api/errors"
1212
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
13+
"k8s.io/apimachinery/pkg/labels"
1314
utilerrors "k8s.io/apimachinery/pkg/util/errors"
1415

1516
"github.com/operator-framework/api/pkg/operators/v1alpha1"
1617
"github.com/operator-framework/operator-lifecycle-manager/pkg/controller/certs"
1718
olmerrors "github.com/operator-framework/operator-lifecycle-manager/pkg/controller/errors"
1819
"github.com/operator-framework/operator-lifecycle-manager/pkg/controller/install"
20+
"github.com/operator-framework/operator-lifecycle-manager/pkg/lib/ownerutil"
1921
)
2022

2123
const (
@@ -255,10 +257,8 @@ func (a *Operator) areAPIServicesAvailable(csv *v1alpha1.ClusterServiceVersion)
255257
return true, nil
256258
}
257259

258-
// updateDeploymentSpecsWithApiServiceData transforms an install strategy to include information about apiservices
259-
// it is used in generating hashes for deployment specs to know when something in the spec has changed,
260-
// but duplicates a lot of installAPIServiceRequirements and should be refactored.
261-
func (a *Operator) getCaBundle(csv *v1alpha1.ClusterServiceVersion) ([]byte, error) {
260+
// getCABundle returns the CA associated with a deployment
261+
func (a *Operator) getCABundle(csv *v1alpha1.ClusterServiceVersion) ([]byte, error) {
262262
for _, desc := range csv.GetOwnedAPIServiceDescriptions() {
263263
apiServiceName := desc.GetName()
264264
apiService, err := a.lister.APIRegistrationV1().APIServiceLister().Get(apiServiceName)
@@ -271,22 +271,27 @@ func (a *Operator) getCaBundle(csv *v1alpha1.ClusterServiceVersion) ([]byte, err
271271
}
272272

273273
for _, desc := range csv.Spec.WebhookDefinitions {
274-
webhookName := desc.Name
275-
if desc.Type == "ValidatingAdmissionWebhook" {
276-
webhook, err := a.opClient.KubernetesInterface().AdmissionregistrationV1().ValidatingWebhookConfigurations().Get(context.TODO(), webhookName, metav1.GetOptions{})
274+
webhookLabels := ownerutil.OwnerLabel(csv, v1alpha1.ClusterServiceVersionKind)
275+
webhookLabels[install.WebhookDescKey] = desc.GenerateName
276+
webhookSelector := labels.SelectorFromSet(webhookLabels).String()
277+
if desc.Type == v1alpha1.MutatingAdmissionWebhook {
278+
existingWebhooks, err := a.opClient.KubernetesInterface().AdmissionregistrationV1().MutatingWebhookConfigurations().List(context.TODO(), metav1.ListOptions{LabelSelector: webhookSelector})
277279
if err != nil {
278-
return nil, fmt.Errorf("could not retrieve generated APIService: %v", err)
280+
return nil, fmt.Errorf("could not retrieve generated MutatingWebhookConfiguration: %v", err)
279281
}
280-
if len(webhook.Webhooks[0].ClientConfig.CABundle) > 0 {
281-
return webhook.Webhooks[0].ClientConfig.CABundle, nil
282+
283+
if len(existingWebhooks.Items) > 0 {
284+
return existingWebhooks.Items[0].Webhooks[0].ClientConfig.CABundle, nil
282285
}
283-
} else {
284-
webhook, err := a.opClient.KubernetesInterface().AdmissionregistrationV1().MutatingWebhookConfigurations().Get(context.TODO(), webhookName, metav1.GetOptions{})
286+
287+
} else if desc.Type == v1alpha1.ValidatingAdmissionWebhook {
288+
existingWebhooks, err := a.opClient.KubernetesInterface().AdmissionregistrationV1().ValidatingWebhookConfigurations().List(context.TODO(), metav1.ListOptions{LabelSelector: webhookSelector})
285289
if err != nil {
286-
return nil, fmt.Errorf("could not retrieve generated APIService: %v", err)
290+
return nil, fmt.Errorf("could not retrieve generated ValidatingWebhookConfiguration: %v", err)
287291
}
288-
if len(webhook.Webhooks[0].ClientConfig.CABundle) > 0 {
289-
return webhook.Webhooks[0].ClientConfig.CABundle, nil
292+
293+
if len(existingWebhooks.Items) > 0 {
294+
return existingWebhooks.Items[0].Webhooks[0].ClientConfig.CABundle, nil
290295
}
291296
}
292297
}
@@ -313,7 +318,7 @@ func (a *Operator) updateDeploymentSpecsWithApiServiceData(csv *v1alpha1.Cluster
313318
depSpecs[sddSpec.Name] = sddSpec.Spec
314319
}
315320

316-
caBundle, err := a.getCaBundle(csv)
321+
caBundle, err := a.getCABundle(csv)
317322
if err != nil {
318323
return nil, fmt.Errorf("could not retrieve caBundle: %v", err)
319324
}
@@ -400,7 +405,7 @@ func (a *Operator) updateDeploymentSpecsWithApiServiceData(csv *v1alpha1.Cluster
400405

401406
depSpec, ok := depSpecs[desc.DeploymentName]
402407
if !ok {
403-
return nil, fmt.Errorf("StrategyDetailsDeployment missing deployment %s for owned APIServices %s", desc.DeploymentName, desc.Name)
408+
return nil, fmt.Errorf("StrategyDetailsDeployment missing deployment %s for WebhookDescription %s", desc.DeploymentName, desc.GenerateName)
404409
}
405410

406411
if depSpec.Template.Spec.ServiceAccountName == "" {

0 commit comments

Comments
 (0)