diff --git a/main.go b/main.go index e17aab3a06..08ea064dd1 100644 --- a/main.go +++ b/main.go @@ -124,17 +124,18 @@ func main() { } ctx := context.Background() - var caContent []byte - operatorCATLSCert, err := kubeClient.CoreV1().Secrets(miniov2.GetNSFromFile()).Get(ctx, "operator-ca-tls", metav1.GetOptions{}) - // if custom ca.crt is not present in kubernetes secrets use the one stored in the pod - if err != nil { - caContent = miniov2.GetPodCAFromFile() - } else { + + // Default kubernetes CA certificate + caContent := miniov2.GetPodCAFromFile() + // custom ca certificate to be used by operator + operatorCATLSCert, err := kubeClient.CoreV1().Secrets(miniov2.GetNSFromFile()).Get(ctx, cluster.OperatorTLSCASecretName, metav1.GetOptions{}) + if err == nil && operatorCATLSCert != nil { if val, ok := operatorCATLSCert.Data["ca.crt"]; ok { - caContent = val + caContent = append(caContent, val...) + } else if val, ok = operatorCATLSCert.Data["public.crt"]; ok { + caContent = append(caContent, val...) } } - if len(caContent) > 0 { crd, err := extClient.ApiextensionsV1().CustomResourceDefinitions().Get(context.Background(), "tenants.minio.min.io", metav1.GetOptions{}) if err != nil { diff --git a/pkg/controller/cluster/operator.go b/pkg/controller/cluster/operator.go index 9b311f4ae6..90b66e1da9 100644 --- a/pkg/controller/cluster/operator.go +++ b/pkg/controller/cluster/operator.go @@ -272,19 +272,20 @@ func (c *Controller) getTransport() *http.Transport { if c.transport != nil { return c.transport } - + rootCAs := miniov2.MustGetSystemCertPool() + // Default kubernetes CA certificate + rootCAs.AppendCertsFromPEM(miniov2.GetPodCAFromFile()) var caContent []byte + // Custom ca certificate to be used by operator operatorCATLSCert, err := c.kubeClientSet.CoreV1().Secrets(miniov2.GetNSFromFile()).Get(context.Background(), OperatorTLSCASecretName, metav1.GetOptions{}) - // if custom ca.crt is not present in kubernetes secrets use the one stored in the pod - if err != nil { - caContent = miniov2.GetPodCAFromFile() - } else { + if err == nil && operatorCATLSCert != nil { if val, ok := operatorCATLSCert.Data["ca.crt"]; ok { caContent = val + } else if val, ok = operatorCATLSCert.Data["public.crt"]; ok { + caContent = val } } - rootCAs := miniov2.MustGetSystemCertPool() if len(caContent) > 0 { rootCAs.AppendCertsFromPEM(caContent) }