...
1 package normalizer
2
3 import (
4 "testing"
5
6 "sigs.k8s.io/kustomize/kyaml/kio"
7 "sigs.k8s.io/kustomize/kyaml/yaml"
8 )
9
10 var data1 = `apiVersion: apps/v1
11 kind: Deployment
12 metadata:
13 name: ctlfish
14 namespace: ctlfish
15 spec:
16 replicas: 1
17 spec:
18 serviceAccountName: agent-sa
19 resources:
20 limits:
21 cpu: 500
22 memory: "246Mi"
23 volumes:
24 - name: config-volume
25 configMap:
26 name: ctlfish-config
27 `
28
29 var quotedData1 = `apiVersion: apps/v1
30 kind: Deployment
31 metadata:
32 name: ctlfish
33 namespace: ctlfish
34 spec:
35 replicas: 1
36 spec:
37 serviceAccountName: agent-sa
38 resources:
39 limits:
40 cpu: "500"
41 memory: "246Mi"
42 volumes:
43 - name: config-volume
44 configMap:
45 name: ctlfish-config
46 `
47
48 var data2 = `apiVersion: v1
49 kind: test
50 spec:
51 name: Bar
52 limits:
53 cpu: 1
54 ---
55 apiVersion: v1
56 kind: test
57 spec:
58 name: Baz
59 limits:
60 cpu: '2'
61 resource:
62 limits:
63 cpu: 2
64 ---
65 apiVersion: v1
66 kind: test
67 spec:
68 name: Foo
69 `
70
71 var quotedData2 = `apiVersion: v1
72 kind: test
73 spec:
74 name: Bar
75 limits:
76 cpu: "1"
77 ---
78 apiVersion: v1
79 kind: test
80 spec:
81 name: Baz
82 limits:
83 cpu: "2"
84 resource:
85 limits:
86 cpu: "2"
87 ---
88 apiVersion: v1
89 kind: test
90 spec:
91 name: Foo
92 `
93
94
95 func TestConvertLimitsForSingleNode(t *testing.T) {
96 obj, err := yaml.Parse(data1)
97
98 if err != nil {
99 t.Fatal(err)
100 }
101 input := []*yaml.RNode{obj}
102 quoteCPULimitsForNodes(input)
103 str, err := input[0].String()
104 if err != nil {
105 t.Fatal(err)
106 }
107 if str != quotedData1 {
108 t.Fatal("test data1 doesn't match quotedData1")
109 }
110 }
111
112
113 func TestConvertLimitsForNodes(t *testing.T) {
114 nodes, err := kio.ParseAll(data2)
115 if err != nil {
116 t.Fatal(err)
117 } else if len(nodes) != 3 {
118 t.Fatalf("Didn't parse into 3 nodes. Got %d", len(nodes))
119 }
120
121 quoteCPULimitsForNodes(nodes)
122
123 str, err := kio.StringAll(nodes)
124 if err != nil {
125 t.Fatal(err)
126 }
127 if str != quotedData2 {
128 t.Fatal("test data2 doesn't match quotedData2")
129 }
130 }
131
View as plain text