Skip to content

Commit 1b79a53

Browse files
author
Arka Saha
committed
Use generic func to create certificate for server,peer,client
Signed-off-by: Arka Saha <[email protected]>
1 parent 5e902b6 commit 1b79a53

File tree

1 file changed

+34
-25
lines changed

1 file changed

+34
-25
lines changed

internal/controller/utils.go

Lines changed: 34 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -86,22 +86,29 @@ func reconcileStatefulSet(ctx context.Context, logger logr.Logger, ec *ecv1alpha
8686
}
8787

8888
// Add or remove server and peer certificate
89-
if addMember {
90-
if replicas > 0 {
91-
if ec.Spec.TLS != nil {
92-
createServerPeerCertErr := createServerPeerCertificate(ec, replicas, ctx, c)
93-
if createServerPeerCertErr != nil {
94-
logger.Error(createServerPeerCertErr, "Error creating Server or Peer Certificate")
89+
if ec.Spec.TLS != nil {
90+
if addMember {
91+
if replicas > 0 {
92+
createServerCertErr := createServerCertificate(ec, replicas, ctx, c)
93+
if createServerCertErr != nil {
94+
logger.Error(createServerCertErr, "Error creating Server or Peer Certificate")
95+
96+
}
97+
createPeerCertErr := createPeerCertificate(ec, replicas, ctx, c)
98+
if createPeerCertErr != nil {
99+
logger.Error(createPeerCertErr, "Error creating Server or Peer Certificate")
100+
95101
}
96-
} else {
97-
// TODO: instead of logging error, set default autoConfig
98-
logger.Error(nil, fmt.Sprintf("missing TLS config for %s", ec.Name))
99102
}
100-
}
101-
} else {
102-
deleteServerPeerCertErr := deleteServerPeerCertificate(ec, replicas, ctx, c)
103-
if deleteServerPeerCertErr != nil {
104-
logger.Error(deleteServerPeerCertErr, "Error deleting Server or Peer Certificate")
103+
} else {
104+
deleteServerCertErr := deleteServerCertificate(ec, replicas, ctx, c)
105+
if deleteServerCertErr != nil {
106+
logger.Error(deleteServerCertErr, "Error deleting Server or Peer Certificate")
107+
}
108+
deletePeerCertErr := deletePeerCertificate(ec, replicas, ctx, c)
109+
if deletePeerCertErr != nil {
110+
logger.Error(deletePeerCertErr, "Error deleting Server or Peer Certificate")
111+
}
105112
}
106113
}
107114

@@ -601,13 +608,8 @@ func createCertificate(ec *ecv1alpha1.EtcdCluster, ctx context.Context, c client
601608
}
602609
return nil
603610
default:
604-
if ec.Spec.TLS.ProviderCfg.AutoCfg == nil {
605-
// TODO: instead of error, set default autoConfig which will be applied if Provider/ProviderConfig is not set
606-
return errors.New("default autoCertificate config not defined")
607-
}
608-
cmConfig := createAutoCertificateConfig(ec.Spec.TLS.ProviderCfg.AutoCfg)
609-
createCertErr := cert.EnsureCertificateSecret(ctx, certName, ec.Namespace, cmConfig)
610-
log.Printf("Error creating certificate, maybe already present: %s", createCertErr)
611+
// TODO: Use AuthProvider, since both AutoCfg and CertManagerCfg is not present
612+
log.Printf("Error creating certificate, valid certificate provider not defined.")
611613
return nil
612614
}
613615
} else {
@@ -640,27 +642,34 @@ func createClientCertificate(ec *ecv1alpha1.EtcdCluster, ctx context.Context, c
640642
return createClientCertErr
641643
}
642644

643-
func createServerPeerCertificate(ec *ecv1alpha1.EtcdCluster, replicas int32, ctx context.Context, c client.Client) error {
645+
func createServerCertificate(ec *ecv1alpha1.EtcdCluster, replicas int32, ctx context.Context, c client.Client) error {
644646
serverCertName := fmt.Sprintf("%s-%s-%s-tls", ec.Name, string(replicas-1), "server")
645-
peerCertName := fmt.Sprintf("%s-%s-%s-tls", ec.Name, string(replicas-1), "peer")
646647
createServerCertErr := createCertificate(ec, ctx, c, serverCertName)
647648
if createServerCertErr != nil {
648649
return createServerCertErr
649650
}
651+
return nil
652+
}
653+
654+
func createPeerCertificate(ec *ecv1alpha1.EtcdCluster, replicas int32, ctx context.Context, c client.Client) error {
655+
peerCertName := fmt.Sprintf("%s-%s-%s-tls", ec.Name, string(replicas-1), "peer")
650656
createPeerCertErr := createCertificate(ec, ctx, c, peerCertName)
651657
if createPeerCertErr != nil {
652658
return createPeerCertErr
653659
}
654660
return nil
655661
}
656662

657-
func deleteServerPeerCertificate(ec *ecv1alpha1.EtcdCluster, replicas int32, ctx context.Context, c client.Client) error {
663+
func deleteServerCertificate(ec *ecv1alpha1.EtcdCluster, replicas int32, ctx context.Context, c client.Client) error {
658664
serverCertName := fmt.Sprintf("%s-%s-%s-tls", ec.Name, string(replicas), "server")
659-
peerCertName := fmt.Sprintf("%s-%s-%s-tls", ec.Name, string(replicas), "peer")
660665
deleteServerCertErr := deleteCertificate(ec, ctx, c, serverCertName)
661666
if deleteServerCertErr != nil {
662667
return deleteServerCertErr
663668
}
669+
return nil
670+
}
671+
func deletePeerCertificate(ec *ecv1alpha1.EtcdCluster, replicas int32, ctx context.Context, c client.Client) error {
672+
peerCertName := fmt.Sprintf("%s-%s-%s-tls", ec.Name, string(replicas), "peer")
664673
deletePeerCertErr := deleteCertificate(ec, ctx, c, peerCertName)
665674
if deletePeerCertErr != nil {
666675
return deletePeerCertErr

0 commit comments

Comments
 (0)