mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 11:50:44 +00:00
TCPSocket could not be used as it was not checked in validation
Attempting to use it gave the error "must register one handler". Added more tests for it.
This commit is contained in:
parent
08402d798c
commit
d3a5a48d00
@ -454,6 +454,14 @@ func validateHTTPGetAction(http *api.HTTPGetAction) errs.ValidationErrorList {
|
||||
return allErrors
|
||||
}
|
||||
|
||||
func validateTCPSocketAction(tcp *api.TCPSocketAction) errs.ValidationErrorList {
|
||||
allErrors := errs.ValidationErrorList{}
|
||||
if len(tcp.Port.StrVal) == 0 && tcp.Port.IntVal == 0 {
|
||||
allErrors = append(allErrors, errs.NewFieldRequired("port", tcp.Port))
|
||||
}
|
||||
return allErrors
|
||||
}
|
||||
|
||||
func validateHandler(handler *api.Handler) errs.ValidationErrorList {
|
||||
numHandlers := 0
|
||||
allErrors := errs.ValidationErrorList{}
|
||||
@ -465,6 +473,10 @@ func validateHandler(handler *api.Handler) errs.ValidationErrorList {
|
||||
numHandlers++
|
||||
allErrors = append(allErrors, validateHTTPGetAction(handler.HTTPGet).Prefix("httpGet")...)
|
||||
}
|
||||
if handler.TCPSocket != nil {
|
||||
numHandlers++
|
||||
allErrors = append(allErrors, validateTCPSocketAction(handler.TCPSocket).Prefix("tcpSocket")...)
|
||||
}
|
||||
if numHandlers != 1 {
|
||||
allErrors = append(allErrors, errs.NewFieldInvalid("", handler, "exactly 1 handler type is required"))
|
||||
}
|
||||
|
@ -469,6 +469,32 @@ func TestValidateContainers(t *testing.T) {
|
||||
ImagePullPolicy: "IfNotPresent",
|
||||
},
|
||||
},
|
||||
"invalid lifecycle, no tcp socket port.": {
|
||||
{
|
||||
Name: "life-123",
|
||||
Image: "image",
|
||||
Lifecycle: &api.Lifecycle{
|
||||
PreStop: &api.Handler{
|
||||
TCPSocket: &api.TCPSocketAction{},
|
||||
},
|
||||
},
|
||||
ImagePullPolicy: "IfNotPresent",
|
||||
},
|
||||
},
|
||||
"invalid lifecycle, zero tcp socket port.": {
|
||||
{
|
||||
Name: "life-123",
|
||||
Image: "image",
|
||||
Lifecycle: &api.Lifecycle{
|
||||
PreStop: &api.Handler{
|
||||
TCPSocket: &api.TCPSocketAction{
|
||||
Port: util.IntOrString{IntVal: 0},
|
||||
},
|
||||
},
|
||||
},
|
||||
ImagePullPolicy: "IfNotPresent",
|
||||
},
|
||||
},
|
||||
"invalid lifecycle, no action.": {
|
||||
{
|
||||
Name: "life-123",
|
||||
@ -479,6 +505,28 @@ func TestValidateContainers(t *testing.T) {
|
||||
ImagePullPolicy: "IfNotPresent",
|
||||
},
|
||||
},
|
||||
"invalid liveness probe, no tcp socket port.": {
|
||||
{
|
||||
Name: "life-123",
|
||||
Image: "image",
|
||||
LivenessProbe: &api.Probe{
|
||||
Handler: api.Handler{
|
||||
TCPSocket: &api.TCPSocketAction{},
|
||||
},
|
||||
},
|
||||
ImagePullPolicy: "IfNotPresent",
|
||||
},
|
||||
},
|
||||
"invalid liveness probe, no action.": {
|
||||
{
|
||||
Name: "life-123",
|
||||
Image: "image",
|
||||
LivenessProbe: &api.Probe{
|
||||
Handler: api.Handler{},
|
||||
},
|
||||
ImagePullPolicy: "IfNotPresent",
|
||||
},
|
||||
},
|
||||
"privilege disabled": {
|
||||
{Name: "abc", Image: "image", Privileged: true},
|
||||
},
|
||||
|
Loading…
Reference in New Issue
Block a user