From 69920a3a291ab21be648b8ccf91ec58c7d8fb9ca Mon Sep 17 00:00:00 2001 From: Steven Fackler Date: Mon, 20 Jan 2025 11:00:22 -0500 Subject: [PATCH] rgw: fix error handling for secret lookup Get will return a non-nil pointer even in the error case. Signed-off-by: Steven Fackler (cherry picked from commit 6935dfdc47b02e0057139ab188d07c363db4a05f) --- pkg/operator/ceph/object/spec.go | 6 +++--- pkg/operator/ceph/object/spec_test.go | 6 ++++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/pkg/operator/ceph/object/spec.go b/pkg/operator/ceph/object/spec.go index 371d8ef10..32fc57eb3 100644 --- a/pkg/operator/ceph/object/spec.go +++ b/pkg/operator/ceph/object/spec.go @@ -872,10 +872,10 @@ func (c *clusterConfig) generateVolumeSourceWithCaBundleSecret() (*v1.SecretVolu func (c *clusterConfig) rgwTLSSecretType(secretName string) (v1.SecretType, error) { rgwTlsSecret, err := c.context.Clientset.CoreV1().Secrets(c.clusterInfo.Namespace).Get(c.clusterInfo.Context, secretName, metav1.GetOptions{}) - if rgwTlsSecret != nil { - return rgwTlsSecret.Type, nil + if err != nil { + return "", errors.Wrapf(err, "failed to get Kubernetes secrets referring the TLS certificates") } - return "", errors.Wrapf(err, "no Kubernetes secrets referring TLS certificates found") + return rgwTlsSecret.Type, nil } func getDaemonName(rgwConfig *rgwConfig) string { diff --git a/pkg/operator/ceph/object/spec_test.go b/pkg/operator/ceph/object/spec_test.go index b7892cd4b..d9be467c6 100644 --- a/pkg/operator/ceph/object/spec_test.go +++ b/pkg/operator/ceph/object/spec_test.go @@ -182,6 +182,12 @@ func TestSSLPodSpec(t *testing.T) { assert.Error(t, err) // Using SSLCertificateRef + + c.store.Spec.Gateway.SSLCertificateRef = "bogusCert" + // Secret missing, will return error + _, err = c.makeRGWPodSpec(rgwConfig) + assert.Error(t, err) + // Opaque Secret c.store.Spec.Gateway.SSLCertificateRef = "mycert" rgwtlssecret := &v1.Secret{