Skip to content

Commit 0f49f0b

Browse files
committed
Improved logging
1 parent ba3faf9 commit 0f49f0b

File tree

2 files changed

+38
-21
lines changed

2 files changed

+38
-21
lines changed

pkg/deployment/resources/services.go

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,18 +34,23 @@ func (r *Resources) EnsureServices() error {
3434
owner := apiObject.AsOwner()
3535
spec := r.context.GetSpec()
3636

37-
log.Debug().Msg("creating services...")
38-
39-
if _, err := k8sutil.CreateHeadlessService(kubecli, apiObject, owner); err != nil {
37+
svcName, newlyCreated, err := k8sutil.CreateHeadlessService(kubecli, apiObject, owner)
38+
if err != nil {
4039
log.Debug().Err(err).Msg("Failed to create headless service")
4140
return maskAny(err)
4241
}
42+
if newlyCreated {
43+
log.Debug().Str("service", svcName).Msg("Created headless service")
44+
}
4345
single := spec.GetMode().HasSingleServers()
44-
svcName, err := k8sutil.CreateDatabaseClientService(kubecli, apiObject, single, owner)
46+
svcName, newlyCreated, err = k8sutil.CreateDatabaseClientService(kubecli, apiObject, single, owner)
4547
if err != nil {
4648
log.Debug().Err(err).Msg("Failed to create database client service")
4749
return maskAny(err)
4850
}
51+
if newlyCreated {
52+
log.Debug().Str("service", svcName).Msg("Created database client service")
53+
}
4954
status := r.context.GetStatus()
5055
if status.ServiceName != svcName {
5156
status.ServiceName = svcName
@@ -55,11 +60,14 @@ func (r *Resources) EnsureServices() error {
5560
}
5661

5762
if spec.Sync.IsEnabled() {
58-
svcName, err := k8sutil.CreateSyncMasterClientService(kubecli, apiObject, owner)
63+
svcName, newlyCreated, err := k8sutil.CreateSyncMasterClientService(kubecli, apiObject, owner)
5964
if err != nil {
6065
log.Debug().Err(err).Msg("Failed to create syncmaster client service")
6166
return maskAny(err)
6267
}
68+
if newlyCreated {
69+
log.Debug().Str("service", svcName).Msg("Created syncmasters service")
70+
}
6371
status := r.context.GetStatus()
6472
if status.SyncServiceName != svcName {
6573
status.SyncServiceName = svcName

pkg/util/k8sutil/services.go

Lines changed: 25 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,8 @@ func CreateSyncMasterClientServiceName(deploymentName string) string {
5050
// DNS name for all pods.
5151
// If the service already exists, nil is returned.
5252
// If another error occurs, that error is returned.
53-
func CreateHeadlessService(kubecli kubernetes.Interface, deployment metav1.Object, owner metav1.OwnerReference) (string, error) {
53+
// The returned bool is true if the service is created, or false when the service already existed.
54+
func CreateHeadlessService(kubecli kubernetes.Interface, deployment metav1.Object, owner metav1.OwnerReference) (string, bool, error) {
5455
deploymentName := deployment.GetName()
5556
svcName := CreateHeadlessServiceName(deploymentName)
5657
ports := []v1.ServicePort{
@@ -62,16 +63,18 @@ func CreateHeadlessService(kubecli kubernetes.Interface, deployment metav1.Objec
6263
}
6364
publishNotReadyAddresses := false
6465
sessionAffinity := v1.ServiceAffinityNone
65-
if err := createService(kubecli, svcName, deploymentName, deployment.GetNamespace(), ClusterIPNone, "", ports, publishNotReadyAddresses, sessionAffinity, owner); err != nil {
66-
return "", maskAny(err)
66+
newlyCreated, err := createService(kubecli, svcName, deploymentName, deployment.GetNamespace(), ClusterIPNone, "", ports, publishNotReadyAddresses, sessionAffinity, owner)
67+
if err != nil {
68+
return "", false, maskAny(err)
6769
}
68-
return svcName, nil
70+
return svcName, newlyCreated, nil
6971
}
7072

7173
// CreateDatabaseClientService prepares and creates a service in k8s, used by database clients within the k8s cluster.
7274
// If the service already exists, nil is returned.
7375
// If another error occurs, that error is returned.
74-
func CreateDatabaseClientService(kubecli kubernetes.Interface, deployment metav1.Object, single bool, owner metav1.OwnerReference) (string, error) {
76+
// The returned bool is true if the service is created, or false when the service already existed.
77+
func CreateDatabaseClientService(kubecli kubernetes.Interface, deployment metav1.Object, single bool, owner metav1.OwnerReference) (string, bool, error) {
7578
deploymentName := deployment.GetName()
7679
svcName := CreateDatabaseClientServiceName(deploymentName)
7780
ports := []v1.ServicePort{
@@ -89,16 +92,18 @@ func CreateDatabaseClientService(kubecli kubernetes.Interface, deployment metav1
8992
}
9093
publishNotReadyAddresses := true
9194
sessionAffinity := v1.ServiceAffinityClientIP
92-
if err := createService(kubecli, svcName, deploymentName, deployment.GetNamespace(), "", role, ports, publishNotReadyAddresses, sessionAffinity, owner); err != nil {
93-
return "", maskAny(err)
95+
newlyCreated, err := createService(kubecli, svcName, deploymentName, deployment.GetNamespace(), "", role, ports, publishNotReadyAddresses, sessionAffinity, owner)
96+
if err != nil {
97+
return "", false, maskAny(err)
9498
}
95-
return svcName, nil
99+
return svcName, newlyCreated, nil
96100
}
97101

98102
// CreateSyncMasterClientService prepares and creates a service in k8s, used by syncmaster clients within the k8s cluster.
99103
// If the service already exists, nil is returned.
100104
// If another error occurs, that error is returned.
101-
func CreateSyncMasterClientService(kubecli kubernetes.Interface, deployment metav1.Object, owner metav1.OwnerReference) (string, error) {
105+
// The returned bool is true if the service is created, or false when the service already existed.
106+
func CreateSyncMasterClientService(kubecli kubernetes.Interface, deployment metav1.Object, owner metav1.OwnerReference) (string, bool, error) {
102107
deploymentName := deployment.GetName()
103108
svcName := CreateSyncMasterClientServiceName(deploymentName)
104109
ports := []v1.ServicePort{
@@ -110,17 +115,19 @@ func CreateSyncMasterClientService(kubecli kubernetes.Interface, deployment meta
110115
}
111116
publishNotReadyAddresses := true
112117
sessionAffinity := v1.ServiceAffinityNone
113-
if err := createService(kubecli, svcName, deploymentName, deployment.GetNamespace(), "", "syncmaster", ports, publishNotReadyAddresses, sessionAffinity, owner); err != nil {
114-
return "", maskAny(err)
118+
newlyCreated, err := createService(kubecli, svcName, deploymentName, deployment.GetNamespace(), "", "syncmaster", ports, publishNotReadyAddresses, sessionAffinity, owner)
119+
if err != nil {
120+
return "", false, maskAny(err)
115121
}
116-
return svcName, nil
122+
return svcName, newlyCreated, nil
117123
}
118124

119125
// createService prepares and creates a service in k8s.
120126
// If the service already exists, nil is returned.
121127
// If another error occurs, that error is returned.
128+
// The returned bool is true if the service is created, or false when the service already existed.
122129
func createService(kubecli kubernetes.Interface, svcName, deploymentName, ns, clusterIP, role string,
123-
ports []v1.ServicePort, publishNotReadyAddresses bool, sessionAffinity v1.ServiceAffinity, owner metav1.OwnerReference) error {
130+
ports []v1.ServicePort, publishNotReadyAddresses bool, sessionAffinity v1.ServiceAffinity, owner metav1.OwnerReference) (bool, error) {
124131
labels := LabelsForDeployment(deploymentName, role)
125132
svc := &v1.Service{
126133
ObjectMeta: metav1.ObjectMeta{
@@ -142,8 +149,10 @@ func createService(kubecli kubernetes.Interface, svcName, deploymentName, ns, cl
142149
},
143150
}
144151
addOwnerRefToObject(svc.GetObjectMeta(), &owner)
145-
if _, err := kubecli.CoreV1().Services(ns).Create(svc); err != nil && !IsAlreadyExists(err) {
146-
return maskAny(err)
152+
if _, err := kubecli.CoreV1().Services(ns).Create(svc); IsAlreadyExists(err) {
153+
return false, nil
154+
} else if err != nil {
155+
return false, maskAny(err)
147156
}
148-
return nil
157+
return true, nil
149158
}

0 commit comments

Comments
 (0)