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

tensorchord / openmodelz / 6689709675

30 Oct 2023 07:40AM UTC coverage: 24.968% (-1.0%) from 25.971%
6689709675

Pull #194

github

xieydd
Fix ci error

Signed-off-by: xieydd <xieydd@gmail.com>
Pull Request #194: feat: Support volume

321 of 321 new or added lines in 8 files covered. (100.0%)

969 of 3881 relevant lines covered (24.97%)

1.58 hits per line

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

0.0
/modelzetes/pkg/controller/persistentvolume.go
1
package controller
2

3
import (
4
        "github.com/tensorchord/openmodelz/modelzetes/pkg/apis/modelzetes/v2alpha1"
5
        "github.com/tensorchord/openmodelz/modelzetes/pkg/consts"
6
        corev1 "k8s.io/api/core/v1"
7
        "k8s.io/apimachinery/pkg/api/resource"
8
        metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
9
        "k8s.io/apimachinery/pkg/runtime/schema"
10
        glog "k8s.io/klog"
11
)
12

13
const (
14
        capacity = "100Gi"
15
)
16

17
func makePersistentVolumeName(name string) string {
×
18
        return name + "-pv"
×
19
}
×
20

21
func newPersistentVolume(function *v2alpha1.Inference, volume v2alpha1.VolumeConfig) *corev1.PersistentVolume {
×
22
        pv := &corev1.PersistentVolume{
×
23
                ObjectMeta: metav1.ObjectMeta{
×
24
                        Name: makePersistentVolumeName(volume.Name),
×
25
                        OwnerReferences: []metav1.OwnerReference{
×
26
                                *metav1.NewControllerRef(function, schema.GroupVersionKind{
×
27
                                        Group:   v2alpha1.SchemeGroupVersion.Group,
×
28
                                        Version: v2alpha1.SchemeGroupVersion.Version,
×
29
                                        Kind:    v2alpha1.Kind,
×
30
                                }),
×
31
                        },
×
32
                },
×
33
                Spec: corev1.PersistentVolumeSpec{
×
34
                        AccessModes: []corev1.PersistentVolumeAccessMode{
×
35
                                corev1.ReadWriteOnce,
×
36
                        },
×
37
                        PersistentVolumeReclaimPolicy: corev1.PersistentVolumeReclaimDelete,
×
38
                },
×
39
        }
×
40

×
41
        switch volume.Type {
×
42
        case v2alpha1.VolumeTypeGCSFuse:
×
43
                pv.Spec.Capacity = corev1.ResourceList{
×
44
                        corev1.ResourceStorage: resource.MustParse(capacity),
×
45
                }
×
46
                pv.Spec.StorageClassName = consts.GCSStorageClassName
×
47
                csi := &corev1.CSIPersistentVolumeSource{
×
48
                        Driver:       consts.GCSCSIDriverName,
×
49
                        VolumeHandle: consts.GCSVolumeHandle,
×
50
                }
×
51
                if volume.SecretName != nil {
×
52
                        csi.NodePublishSecretRef = &corev1.SecretReference{
×
53
                                Name:      *volume.SecretName,
×
54
                                Namespace: function.Namespace,
×
55
                        }
×
56
                }
×
57
                pv.Spec.CSI = csi
×
58
        case v2alpha1.VolumeTypeLocal:
×
59
                pv.Spec.Capacity = corev1.ResourceList{
×
60
                        corev1.ResourceStorage: resource.MustParse(capacity),
×
61
                }
×
62
                mode := corev1.PersistentVolumeFilesystem
×
63
                pv.Spec.VolumeMode = &mode
×
64
                pv.Spec.StorageClassName = consts.LocalStorageClassName
×
65
                pv.Spec.Local = &corev1.LocalVolumeSource{
×
66
                        Path: *volume.SubPath,
×
67
                }
×
68
                pv.Spec.NodeAffinity = &corev1.VolumeNodeAffinity{
×
69
                        Required: &corev1.NodeSelector{
×
70
                                NodeSelectorTerms: []corev1.NodeSelectorTerm{
×
71
                                        {
×
72
                                                MatchExpressions: []corev1.NodeSelectorRequirement{
×
73
                                                        {
×
74
                                                                Key:      corev1.LabelHostname,
×
75
                                                                Operator: corev1.NodeSelectorOpIn,
×
76
                                                                Values:   volume.NodeNames,
×
77
                                                        },
×
78
                                                },
×
79
                                        },
×
80
                                },
×
81
                        },
×
82
                }
×
83
        default:
×
84
                glog.Errorf("unknown volume type: %s", volume.Type)
×
85
                return nil
×
86
        }
87

88
        return pv
×
89
}
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