MCPcopy
hub / github.com/fluid-cloudnative/fluid / TestBuildWorkersAffinity

Function TestBuildWorkersAffinity

pkg/ctrl/affinity_test.go:36–285  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

34)
35
36func TestBuildWorkersAffinity(t *testing.T) {
37 type fields struct {
38 dataset *datav1alpha1.Dataset
39 worker *appsv1.StatefulSet
40 want *v1.Affinity
41 }
42 tests := []struct {
43 name string
44 fields fields
45 want *v1.Affinity
46 }{
47 {name: "exlusive",
48 fields: fields{
49 dataset: &datav1alpha1.Dataset{
50 ObjectMeta: metav1.ObjectMeta{
51 Name: "test1",
52 Namespace: "big-data",
53 },
54 Spec: datav1alpha1.DatasetSpec{
55 PlacementMode: datav1alpha1.ExclusiveMode,
56 },
57 },
58 worker: &appsv1.StatefulSet{
59 ObjectMeta: metav1.ObjectMeta{
60 Name: "test1-jindofs-worker",
61 Namespace: "big-data",
62 },
63 Spec: appsv1.StatefulSetSpec{
64 Replicas: ptr.To[int32](1),
65 },
66 },
67 want: &v1.Affinity{
68 PodAntiAffinity: &v1.PodAntiAffinity{
69 RequiredDuringSchedulingIgnoredDuringExecution: []v1.PodAffinityTerm{
70 {
71 LabelSelector: &metav1.LabelSelector{
72 MatchExpressions: []metav1.LabelSelectorRequirement{
73 {
74 Key: "fluid.io/dataset",
75 Operator: metav1.LabelSelectorOpExists,
76 },
77 },
78 },
79 TopologyKey: "kubernetes.io/hostname",
80 },
81 },
82 },
83 NodeAffinity: &v1.NodeAffinity{
84 PreferredDuringSchedulingIgnoredDuringExecution: []v1.PreferredSchedulingTerm{
85 {
86 Weight: 100,
87 Preference: v1.NodeSelectorTerm{
88 MatchExpressions: []v1.NodeSelectorRequirement{
89 {
90 Key: "fluid.io/f-big-data-test1",
91 Operator: v1.NodeSelectorOpIn,
92 Values: []string{"true"},
93 },

Callers

nothing calls this directly

Calls 5

NewFakeClientWithSchemeFunction · 0.92
BuildRuntimeInfoFunction · 0.92
NullLoggerFunction · 0.92
BuildHelperFunction · 0.85
BuildWorkersAffinityMethod · 0.80

Tested by

no test coverage detected