Skip to content

Commit c0be633

Browse files
committed
add unit test
Signed-off-by: Jirka Kremser <jiri.kremser@gmail.com>
1 parent 367df1d commit c0be633

File tree

2 files changed

+191
-0
lines changed

2 files changed

+191
-0
lines changed

cmd/template/cluster/runner_test.go

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,45 @@ func Test_run(t *testing.T) {
201201
args: nil,
202202
expectedGoldenFile: "run_template_cluster_capz.golden",
203203
},
204+
{
205+
name: "case 5: template cluster capv",
206+
flags: &flag{
207+
Name: "test1",
208+
Provider: "vsphere",
209+
Description: "yet another test cluster",
210+
Organization: "test",
211+
KubernetesVersion: "v1.2.3",
212+
App: provider.AppConfig{
213+
ClusterVersion: "1.2.3",
214+
ClusterCatalog: "foo-catalog",
215+
DefaultAppsCatalog: "foo-default-catalog",
216+
DefaultAppsVersion: "3.2.1",
217+
},
218+
VSphere: provider.VSphereConfig{
219+
ServiceLoadBalancerCIDR: "1.2.3.4/32",
220+
ResourcePool: "foopool",
221+
NetworkName: "foonet",
222+
CredentialsSecretName: "foosecret",
223+
ImageTemplate: "foo-%-os",
224+
ControlPlane: provider.VSphereControlPlane{
225+
VSphereMachineTemplate: provider.VSphereMachineTemplate{
226+
DiskGiB: 42,
227+
MemoryMiB: 42000,
228+
NumCPUs: 6,
229+
Replicas: 5,
230+
},
231+
},
232+
Worker: provider.VSphereMachineTemplate{
233+
DiskGiB: 43,
234+
MemoryMiB: 43000,
235+
NumCPUs: 7,
236+
Replicas: 4,
237+
},
238+
},
239+
},
240+
args: nil,
241+
expectedGoldenFile: "run_template_cluster_capv.golden",
242+
},
204243
}
205244

206245
for _, tc := range testCases {
@@ -209,6 +248,9 @@ func Test_run(t *testing.T) {
209248

210249
out := new(bytes.Buffer)
211250
tc.flags.print = genericclioptions.NewPrintFlags("").WithDefaultOutput(output.TypeDefault)
251+
if err := tc.flags.Validate(); err != nil {
252+
t.Fatalf("failed to validate the flags: %s", err.Error())
253+
}
212254

213255
logger, err := micrologger.New(micrologger.Config{})
214256
if err != nil {
Lines changed: 149 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,149 @@
1+
---
2+
apiVersion: v1
3+
data:
4+
values: |
5+
baseDomain: test.gigantic.io
6+
cluster:
7+
kubernetesVersion: v1.2.3
8+
clusterDescription: yet another test cluster
9+
connectivity:
10+
network:
11+
allowAllEgress: true
12+
controlPlaneEndpoint:
13+
host: ""
14+
ipPoolName: wc-cp-ips
15+
port: 6443
16+
loadBalancers:
17+
cidrBlocks:
18+
- 1.2.3.4/32
19+
controlPlane:
20+
image:
21+
repository: registry.k8s.io
22+
machineTemplate:
23+
cloneMode: linkedClone
24+
diskGiB: 42
25+
memoryMiB: 42000
26+
network:
27+
devices:
28+
- dhcp4: true
29+
networkName: foonet
30+
numCPUs: 6
31+
resourcePool: foopool
32+
template: foo-%!o(string=v1.2.3)s
33+
replicas: 5
34+
helmReleases:
35+
cilium:
36+
interval: 20s
37+
coredns:
38+
interval: 30s
39+
cpi:
40+
interval: 30s
41+
nodeClasses:
42+
default:
43+
cloneMode: linkedClone
44+
diskGiB: 43
45+
memoryMiB: 43000
46+
network:
47+
devices:
48+
- dhcp4: true
49+
networkName: foonet
50+
numCPUs: 7
51+
resourcePool: foopool
52+
template: foo-%!o(string=v1.2.3)s
53+
nodePools:
54+
worker:
55+
class: default
56+
replicas: 4
57+
organization: test
58+
kind: ConfigMap
59+
metadata:
60+
creationTimestamp: null
61+
labels:
62+
giantswarm.io/cluster: test1
63+
name: test1-userconfig
64+
namespace: org-test
65+
---
66+
apiVersion: application.giantswarm.io/v1alpha1
67+
kind: App
68+
metadata:
69+
labels:
70+
app-operator.giantswarm.io/version: 0.0.0
71+
name: test1
72+
namespace: org-test
73+
spec:
74+
catalog: foo-catalog
75+
config:
76+
configMap:
77+
name: ""
78+
namespace: ""
79+
secret:
80+
name: ""
81+
namespace: ""
82+
extraConfigs:
83+
- kind: secret
84+
name: container-registries-configuration
85+
namespace: default
86+
priority: 25
87+
kubeConfig:
88+
context:
89+
name: ""
90+
inCluster: true
91+
secret:
92+
name: ""
93+
namespace: ""
94+
name: cluster-vsphere
95+
namespace: org-test
96+
userConfig:
97+
configMap:
98+
name: test1-userconfig
99+
namespace: org-test
100+
secret:
101+
name: foosecret
102+
namespace: org-test
103+
version: 1.2.3
104+
---
105+
apiVersion: v1
106+
data:
107+
values: |
108+
clusterName: test1
109+
organization: test
110+
kind: ConfigMap
111+
metadata:
112+
creationTimestamp: null
113+
labels:
114+
giantswarm.io/cluster: test1
115+
name: test1-default-apps-userconfig
116+
namespace: org-test
117+
---
118+
apiVersion: application.giantswarm.io/v1alpha1
119+
kind: App
120+
metadata:
121+
labels:
122+
app-operator.giantswarm.io/version: 0.0.0
123+
giantswarm.io/cluster: test1
124+
giantswarm.io/managed-by: cluster
125+
name: test1-default-apps
126+
namespace: org-test
127+
spec:
128+
catalog: foo-default-catalog
129+
config:
130+
configMap:
131+
name: test1-cluster-values
132+
namespace: org-test
133+
secret:
134+
name: ""
135+
namespace: ""
136+
kubeConfig:
137+
context:
138+
name: ""
139+
inCluster: true
140+
secret:
141+
name: ""
142+
namespace: ""
143+
name: default-apps-vsphere
144+
namespace: org-test
145+
userConfig:
146+
configMap:
147+
name: test1-default-apps-userconfig
148+
namespace: org-test
149+
version: 3.2.1

0 commit comments

Comments
 (0)