• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

kubernetes-sigs / lws / 17902435856

22 Sep 2025 02:06AM UTC coverage: 35.096% (+1.3%) from 33.767%
17902435856

Pull #649

github

andyzhangx
fix comments
Pull Request #649: doc: add volumeClaimTemplates example

803 of 2288 relevant lines covered (35.1%)

2.08 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

46.43
/pkg/utils/controller/controller_utils.go
1
/*
2
Copyright 2023.
3

4
Licensed under the Apache License, Version 2.0 (the "License");
5
you may not use this file except in compliance with the License.
6
You may obtain a copy of the License at
7

8
    http://www.apache.org/licenses/LICENSE-2.0
9

10
Unless required by applicable law or agreed to in writing, software
11
distributed under the License is distributed on an "AS IS" BASIS,
12
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
See the License for the specific language governing permissions and
14
limitations under the License.
15
*/
16

17
package controller
18

19
import (
20
        "context"
21

22
        corev1 "k8s.io/api/core/v1"
23
        metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
24
        "k8s.io/apimachinery/pkg/runtime"
25
        "k8s.io/apimachinery/pkg/types"
26
        ctrl "sigs.k8s.io/controller-runtime"
27
        "sigs.k8s.io/controller-runtime/pkg/client"
28

29
        leaderworkerset "sigs.k8s.io/lws/api/leaderworkerset/v1"
30
)
31

32
func CreateHeadlessServiceIfNotExists(ctx context.Context, k8sClient client.Client, Scheme *runtime.Scheme, lws *leaderworkerset.LeaderWorkerSet, serviceName string, serviceSelector map[string]string, owner metav1.Object) error {
33
        log := ctrl.LoggerFrom(ctx)
×
34
        // If the headless service does not exist in the namespace, create it.
×
35
        var headlessService corev1.Service
×
36
        if err := k8sClient.Get(ctx, types.NamespacedName{Name: serviceName, Namespace: lws.Namespace}, &headlessService); err != nil {
×
37
                if client.IgnoreNotFound(err) != nil {
×
38
                        return err
×
39
                }
×
40
                headlessService := corev1.Service{
×
41
                        ObjectMeta: metav1.ObjectMeta{
×
42
                                Name:      serviceName,
×
43
                                Namespace: lws.Namespace,
×
44
                                Labels:    map[string]string{leaderworkerset.SetNameLabelKey: lws.Name},
×
45
                        },
×
46
                        Spec: corev1.ServiceSpec{
×
47
                                ClusterIP:                "None", // defines service as headless
×
48
                                Selector:                 serviceSelector,
×
49
                                PublishNotReadyAddresses: true,
×
50
                        },
×
51
                }
×
52

×
53
                // Set the controller owner reference for garbage collection and reconciliation.
×
54
                if err := ctrl.SetControllerReference(owner, &headlessService, Scheme); err != nil {
×
55
                        return err
×
56
                }
×
57
                // create the service in the cluster
×
58
                log.V(2).Info("Creating headless service.")
59
                if err := k8sClient.Create(ctx, &headlessService); err != nil {
×
60
                        return err
×
61
                }
×
62
        }
×
63
        return nil
64
}
×
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc