Skip to content

Commit

Permalink
fix: kube play liveness probe http path
Browse files Browse the repository at this point in the history
Use the default / for http probe path.
Update to URI schemes ensuring lowercase

Signed-off-by: Piotr <[email protected]>
  • Loading branch information
piotr-sk committed Sep 28, 2022
1 parent dca5ead commit 66517d8
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 8 deletions.
10 changes: 5 additions & 5 deletions pkg/k8s.io/api/core/v1/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -939,15 +939,15 @@ type HTTPHeader struct {

// HTTPGetAction describes an action based on HTTP Get requests.
type HTTPGetAction struct {
// Path to access on the HTTP server.
// Path to access on the HTTP server. Defaults to /.
// +optional
Path string `json:"path,omitempty"`
// Name or number of the port to access on the container.
// Number must be in the range 1 to 65535.
// Name must be an IANA_SVC_NAME.
Port intstr.IntOrString `json:"port"`
// Host name to connect to, defaults to the pod IP. You probably want to set
// "Host" in httpHeaders instead.
// Host name to connect to. You probably want to set "Host" in httpHeaders instead.
// Defaults to the pod IP in Kubernetes, in case of Podman to localhost.
// +optional
Host string `json:"host,omitempty"`
// Scheme to use for connecting to the host.
Expand All @@ -964,9 +964,9 @@ type URIScheme string

const (
// URISchemeHTTP means that the scheme used will be http://
URISchemeHTTP URIScheme = "HTTP"
URISchemeHTTP URIScheme = "http"
// URISchemeHTTPS means that the scheme used will be https://
URISchemeHTTPS URIScheme = "HTTPS"
URISchemeHTTPS URIScheme = "https"
)

// TCPSocketAction describes an action based on opening a socket
Expand Down
8 changes: 6 additions & 2 deletions pkg/specgen/generate/kube/kube.go
Original file line number Diff line number Diff line change
Expand Up @@ -507,15 +507,19 @@ func setupLivenessProbe(s *specgen.SpecGenerator, containerYAML v1.Container, re
commandString = fmt.Sprintf("%s || %s", execString, failureCmd)
case probeHandler.HTTPGet != nil:
// set defaults as in https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#http-probes
var uriScheme v1.URIScheme = "http"
uriScheme := v1.URISchemeHTTP
if probeHandler.HTTPGet.Scheme != "" {
uriScheme = probeHandler.HTTPGet.Scheme
}
host := "localhost" // Kubernetes default is host IP, but with Podman there is only one node
if probeHandler.HTTPGet.Host != "" {
host = probeHandler.HTTPGet.Host
}
commandString = fmt.Sprintf("curl -f %s://%s:%d%s || %s", uriScheme, host, probeHandler.HTTPGet.Port.IntValue(), probeHandler.HTTPGet.Path, failureCmd)
path := "/"
if probeHandler.HTTPGet.Path != "" {
path = probeHandler.HTTPGet.Path
}
commandString = fmt.Sprintf("curl -f %s://%s:%d%s || %s", uriScheme, host, probeHandler.HTTPGet.Port.IntValue(), path, failureCmd)
case probeHandler.TCPSocket != nil:
commandString = fmt.Sprintf("nc -z -v %s %d || %s", probeHandler.TCPSocket.Host, probeHandler.TCPSocket.Port.IntValue(), failureCmd)
}
Expand Down
1 change: 0 additions & 1 deletion pkg/specgen/generate/kube/play_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -897,7 +897,6 @@ func TestHttpLivenessProbe(t *testing.T) {
Handler: v1.Handler{
HTTPGet: &v1.HTTPGetAction{
Port: intstr.FromInt(80),
Path: "/",
},
},
},
Expand Down

0 comments on commit 66517d8

Please sign in to comment.