Skip to content

Commit 13017ef

Browse files
I065450kerenlahav
andauthored
BUG FIX - controller crash when parametersFrom contains invalid data (#510)
--------- Co-authored-by: I501080 <[email protected]>
1 parent f0bc776 commit 13017ef

File tree

4 files changed

+19
-14
lines changed

4 files changed

+19
-14
lines changed

api/v1/types.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@ package v1
44
type ParametersFromSource struct {
55
// The Secret key to select from.
66
// The value must be a JSON object.
7-
// +optional
8-
SecretKeyRef *SecretKeyReference `json:"secretKeyRef,omitempty"`
7+
SecretKeyRef *SecretKeyReference `json:"secretKeyRef,required"`
98
}
109

1110
// SecretKeyReference references a key of a Secret.

config/crd/bases/services.cloud.sap.com_servicebindings.yaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
33
kind: CustomResourceDefinition
44
metadata:
55
annotations:
6-
controller-gen.kubebuilder.io/version: v0.16.1
6+
controller-gen.kubebuilder.io/version: v0.17.2
77
name: servicebindings.services.cloud.sap.com
88
spec:
99
group: services.cloud.sap.com
@@ -115,6 +115,8 @@ spec:
115115
- key
116116
- name
117117
type: object
118+
required:
119+
- secretKeyRef
118120
type: object
119121
type: array
120122
secretKey:

config/crd/bases/services.cloud.sap.com_serviceinstances.yaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
33
kind: CustomResourceDefinition
44
metadata:
55
annotations:
6-
controller-gen.kubebuilder.io/version: v0.16.1
6+
controller-gen.kubebuilder.io/version: v0.17.2
77
name: serviceinstances.services.cloud.sap.com
88
spec:
99
group: services.cloud.sap.com
@@ -122,6 +122,8 @@ spec:
122122
- key
123123
- name
124124
type: object
125+
required:
126+
- secretKeyRef
125127
type: object
126128
type: array
127129
serviceOfferingName:

internal/utils/parameters.go

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,17 +28,19 @@ func BuildSMRequestParameters(namespace string, parameters *runtime.RawExtension
2828
if err != nil {
2929
return nil, nil, err
3030
}
31-
secretsSet[string(secret.UID)] = secret
32-
for k, v := range fps {
33-
// we don't want to add shared param because sm api does not support updating
34-
// shared param with other params, for sharing we have different function.
35-
if k == "shared" {
36-
continue
31+
if secret != nil {
32+
secretsSet[string(secret.UID)] = secret
33+
for k, v := range fps {
34+
// we don't want to add shared param because sm api does not support updating
35+
// shared param with other params, for sharing we have different function.
36+
if k == "shared" {
37+
continue
38+
}
39+
if _, ok := params[k]; ok {
40+
return nil, nil, fmt.Errorf("conflict: duplicate entry for parameter %q", k)
41+
}
42+
params[k] = v
3743
}
38-
if _, ok := params[k]; ok {
39-
return nil, nil, fmt.Errorf("conflict: duplicate entry for parameter %q", k)
40-
}
41-
params[k] = v
4244
}
4345
}
4446
}

0 commit comments

Comments
 (0)