Skip to content

Commit

Permalink
rgw: fix startup probe
Browse files Browse the repository at this point in the history
It's better to set the same handler to startupProbe as livenessProbe.
Otherwise, we might hit the following problem.

#6304

Signed-off-by: Satoru Takeuchi <satoru.takeuchi@gmail.com>
(cherry picked from commit af88b50)
  • Loading branch information
satoru-takeuchi authored and mergify-bot committed Jan 6, 2022
1 parent d294ab6 commit 1332d7c
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 12 deletions.
16 changes: 4 additions & 12 deletions pkg/operator/ceph/object/spec.go
Original file line number Diff line number Diff line change
Expand Up @@ -420,18 +420,10 @@ func (c *clusterConfig) defaultReadinessProbe() *v1.Probe {
}

func (c *clusterConfig) defaultStartupProbe() *v1.Probe {
return &v1.Probe{
Handler: v1.Handler{
HTTPGet: &v1.HTTPGetAction{
Path: readinessProbePath,
Port: c.generateProbePort(),
Scheme: c.generateReadinessProbeScheme(),
},
},
InitialDelaySeconds: 10,
PeriodSeconds: 10,
FailureThreshold: 18,
}
probe := c.defaultLivenessProbe()
probe.PeriodSeconds = 10
probe.FailureThreshold = 18
return probe
}

func (c *clusterConfig) generateReadinessProbeScheme() v1.URIScheme {
Expand Down
50 changes: 50 additions & 0 deletions pkg/operator/ceph/object/spec_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -333,6 +333,56 @@ func TestDefaultLivenessProbe(t *testing.T) {
assert.Equal(t, desiredProbe, p)
}

func TestDefaultStartupProbe(t *testing.T) {
store := simpleStore()
c := &clusterConfig{
store: store,
clusterSpec: &cephv1.ClusterSpec{
Network: cephv1.NetworkSpec{
HostNetwork: false,
},
},
}

desiredProbe := &v1.Probe{
Handler: v1.Handler{
TCPSocket: &v1.TCPSocketAction{
Port: intstr.FromInt(8080),
},
},
InitialDelaySeconds: 10,
PeriodSeconds: 10,
FailureThreshold: 18,
}
// No SSL - HostNetwork is disabled - using internal port
p := c.defaultStartupProbe()
assert.Equal(t, desiredProbe, p)

// No SSL - HostNetwork is enabled
c.store.Spec.Gateway.Port = 123
c.store.Spec.Gateway.SecurePort = 0
c.clusterSpec.Network.HostNetwork = true
p = c.defaultStartupProbe()
desiredProbe.Handler.TCPSocket.Port = intstr.FromInt(123)
assert.Equal(t, desiredProbe, p)

// SSL - HostNetwork is enabled
c.store.Spec.Gateway.Port = 0
c.store.Spec.Gateway.SecurePort = 321
c.store.Spec.Gateway.SSLCertificateRef = "foo"
p = c.defaultStartupProbe()
desiredProbe.Handler.TCPSocket.Port = intstr.FromInt(321)
assert.Equal(t, desiredProbe, p)

// Both Non-SSL and SSL are enabled
// livenessProbe just on Non-SSL
c.store.Spec.Gateway.Port = 123
c.store.Spec.Gateway.SecurePort = 321
p = c.defaultStartupProbe()
desiredProbe.Handler.TCPSocket.Port = intstr.FromInt(123)
assert.Equal(t, desiredProbe, p)
}

func TestDefaultReadinessProbe(t *testing.T) {
store := simpleStore()
c := &clusterConfig{
Expand Down

0 comments on commit 1332d7c

Please sign in to comment.