Skip to content

Commit 70fe465

Browse files
committed
Reuse common labels
1 parent 16bc8bc commit 70fe465

File tree

3 files changed

+31
-33
lines changed

3 files changed

+31
-33
lines changed

internal/controller/etcdcluster_controller.go

+7-23
Original file line numberDiff line numberDiff line change
@@ -168,24 +168,16 @@ func (r *EtcdClusterReconciler) ensureClusterService(ctx context.Context, cluste
168168
ObjectMeta: metav1.ObjectMeta{
169169
Name: cluster.Name,
170170
Namespace: cluster.Namespace,
171-
Labels: map[string]string{
172-
"app.kubernetes.io/name": "etcd",
173-
"app.kubernetes.io/instance": cluster.Name,
174-
"app.kubernetes.io/managed-by": "etcd-operator",
175-
},
171+
Labels: factory.NewLabelsBuilder().WithName().WithInstance(cluster.Name).WithManagedBy(),
176172
},
177173
Spec: corev1.ServiceSpec{
178174
Ports: []corev1.ServicePort{
179175
{Name: "peer", TargetPort: intstr.FromInt32(2380), Port: 2380, Protocol: corev1.ProtocolTCP},
180176
{Name: "client", TargetPort: intstr.FromInt32(2379), Port: 2379, Protocol: corev1.ProtocolTCP},
181177
},
182-
Type: corev1.ServiceTypeClusterIP,
183-
ClusterIP: "None",
184-
Selector: map[string]string{
185-
"app.kubernetes.io/name": "etcd",
186-
"app.kubernetes.io/instance": cluster.Name,
187-
"app.kubernetes.io/managed-by": "etcd-operator",
188-
},
178+
Type: corev1.ServiceTypeClusterIP,
179+
ClusterIP: "None",
180+
Selector: factory.NewLabelsBuilder().WithName().WithInstance(cluster.Name).WithManagedBy(),
189181
PublishNotReadyAddresses: true,
190182
},
191183
}
@@ -216,22 +208,14 @@ func (r *EtcdClusterReconciler) ensureClusterClientService(ctx context.Context,
216208
ObjectMeta: metav1.ObjectMeta{
217209
Name: r.getClientServiceName(cluster),
218210
Namespace: cluster.Namespace,
219-
Labels: map[string]string{
220-
"app.kubernetes.io/name": "etcd",
221-
"app.kubernetes.io/instance": cluster.Name,
222-
"app.kubernetes.io/managed-by": "etcd-operator",
223-
},
211+
Labels: factory.NewLabelsBuilder().WithName().WithInstance(cluster.Name).WithManagedBy(),
224212
},
225213
Spec: corev1.ServiceSpec{
226214
Ports: []corev1.ServicePort{
227215
{Name: "client", TargetPort: intstr.FromInt32(2379), Port: 2379, Protocol: corev1.ProtocolTCP},
228216
},
229-
Type: corev1.ServiceTypeClusterIP,
230-
Selector: map[string]string{
231-
"app.kubernetes.io/name": "etcd",
232-
"app.kubernetes.io/instance": cluster.Name,
233-
"app.kubernetes.io/managed-by": "etcd-operator",
234-
},
217+
Type: corev1.ServiceTypeClusterIP,
218+
Selector: factory.NewLabelsBuilder().WithName().WithInstance(cluster.Name).WithManagedBy(),
235219
},
236220
}
237221
if err = ctrl.SetControllerReference(cluster, svc, r.Scheme); err != nil {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package factory
2+
3+
type LabelsBuilder map[string]string
4+
5+
func NewLabelsBuilder() LabelsBuilder {
6+
return make(map[string]string)
7+
}
8+
9+
func (b LabelsBuilder) WithName() LabelsBuilder {
10+
b["app.kubernetes.io/name"] = "etcd"
11+
return b
12+
}
13+
14+
func (b LabelsBuilder) WithInstance(name string) LabelsBuilder {
15+
b["app.kubernetes.io/instance"] = name
16+
return b
17+
}
18+
19+
func (b LabelsBuilder) WithManagedBy() LabelsBuilder {
20+
b["app.kubernetes.io/managed-by"] = "etcd-operator"
21+
return b
22+
}

internal/controller/factory/statefulset.go

+2-10
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,7 @@ func CreateOrUpdateStatefulSet(
3838
rscheme *runtime.Scheme,
3939
) error {
4040
podMetadata := metav1.ObjectMeta{
41-
Labels: map[string]string{
42-
"app.kubernetes.io/name": "etcd",
43-
"app.kubernetes.io/instance": cluster.Name,
44-
"app.kubernetes.io/managed-by": "etcd-operator",
45-
},
41+
Labels: NewLabelsBuilder().WithName().WithInstance(cluster.Name).WithManagedBy(),
4642
}
4743

4844
if cluster.Spec.PodSpec.PodMetadata != nil {
@@ -88,11 +84,7 @@ func CreateOrUpdateStatefulSet(
8884
ServiceName: cluster.Name,
8985
PodManagementPolicy: appsv1.ParallelPodManagement,
9086
Selector: &metav1.LabelSelector{
91-
MatchLabels: map[string]string{
92-
"app.kubernetes.io/name": "etcd",
93-
"app.kubernetes.io/instance": cluster.Name,
94-
"app.kubernetes.io/managed-by": "etcd-operator",
95-
},
87+
MatchLabels: NewLabelsBuilder().WithName().WithInstance(cluster.Name).WithManagedBy(),
9688
},
9789
Template: corev1.PodTemplateSpec{
9890
ObjectMeta: podMetadata,

0 commit comments

Comments
 (0)