@@ -19,6 +19,7 @@ func TestDev(t *testing.T) {
19
19
kapp := Kapp {t , env .Namespace , env .KappBinaryPath , logger }
20
20
21
21
appName := "dev-test"
22
+ gitAppName := "dev-gitapp-test"
22
23
saAppName := "dev-test"
23
24
24
25
sa := ServiceAccounts {env .Namespace }.ForNamespaceYAML ()
47
48
intoNs: kctrl-test
48
49
` , appName )
49
50
51
+ gitAppYaml := fmt .Sprintf (`---
52
+ apiVersion: kappctrl.k14s.io/v1alpha1
53
+ kind: App
54
+ metadata:
55
+ name: %s
56
+ namespace: kctrl-test
57
+ spec:
58
+ serviceAccountName: kappctrl-e2e-ns-sa
59
+ fetch:
60
+ - git:
61
+ url: https://github.com/k14s/k8s-simple-app-example
62
+ ref: origin/develop
63
+ subPath: config-step-2-template
64
+ template:
65
+ - ytt: {}
66
+ deploy:
67
+ - kapp:
68
+ intoNs: kctrl-test
69
+ ` , gitAppName )
70
+
50
71
cleanUp := func () {
51
72
kapp .Run ([]string {"delete" , "-a" , fmt .Sprintf ("%s.app" , appName )})
73
+ kapp .Run ([]string {"delete" , "-a" , fmt .Sprintf ("%s.app" , gitAppName )})
52
74
kapp .Run ([]string {"delete" , "-a" , saAppName })
53
75
}
54
76
cleanUp ()
@@ -79,4 +101,105 @@ spec:
79
101
}
80
102
require .Exactly (t , expectedOutputRows , replaceAgeAndSinceDeployed (output .Tables [0 ].Rows ))
81
103
})
104
+
105
+ logger .Section ("dev deploy git app" , func () {
106
+ out , err := kappCtrl .RunWithOpts ([]string {"dev" , "-f" , "-" }, RunOpts {StdinReader : strings .NewReader (gitAppYaml )})
107
+ fmt .Printf ("\n \n Out: %s \n err: %+v " , out , err )
108
+ })
109
+
110
+ logger .Section ("inspect gitApp app resources" , func () {
111
+ out := kapp .Run ([]string {"inspect" , "-a" , fmt .Sprintf ("%s.app" , gitAppName ), "--json" })
112
+ output := uitest .JSONUIFromBytes (t , []byte (out ))
113
+
114
+ expectedOutputRows := []map [string ]string {
115
+ {
116
+ "age" : "<replaced>" ,
117
+ "kind" : "Deployment" ,
118
+ "name" : "simple-app" ,
119
+ "namespace" : "kctrl-test" ,
120
+ "owner" : "kapp" ,
121
+ "reconcile_info" : "" ,
122
+ "reconcile_state" : "ok" ,
123
+ },
124
+ {
125
+ "age" : "<replaced>" ,
126
+ "kind" : "Endpoints" ,
127
+ "name" : "simple-app" ,
128
+ "namespace" : "kctrl-test" ,
129
+ "owner" : "cluster" ,
130
+ "reconcile_info" : "" ,
131
+ "reconcile_state" : "ok" ,
132
+ },
133
+ {
134
+ "age" : "<replaced>" ,
135
+ "kind" : "Service" ,
136
+ "name" : "simple-app" ,
137
+ "namespace" : "kctrl-test" ,
138
+ "owner" : "kapp" ,
139
+ "reconcile_info" : "" ,
140
+ "reconcile_state" : "ok" ,
141
+ },
142
+ {
143
+ "age" : "<replaced>" ,
144
+ "kind" : "ReplicaSet" ,
145
+ "name" : "simple-app" ,
146
+ "namespace" : "kctrl-test" ,
147
+ "owner" : "cluster" ,
148
+ "reconcile_info" : "" ,
149
+ "reconcile_state" : "ok" ,
150
+ },
151
+ {
152
+ "age" : "<replaced>" ,
153
+ "kind" : "Pod" ,
154
+ "name" : "simple-app" ,
155
+ "namespace" : "kctrl-test" ,
156
+ "owner" : "cluster" ,
157
+ "reconcile_info" : "" ,
158
+ "reconcile_state" : "ok" ,
159
+ },
160
+ {
161
+ "age" : "<replaced>" ,
162
+ "kind" : "EndpointSlice" ,
163
+ "name" : "simple-app" ,
164
+ "namespace" : "kctrl-test" ,
165
+ "owner" : "cluster" ,
166
+ "reconcile_info" : "" ,
167
+ "reconcile_state" : "ok" ,
168
+ },
169
+ }
170
+
171
+ require .Len (t , output .Tables [0 ].Rows , 6 )
172
+
173
+ deploymentItem := filterByKeyValuePair (output .Tables [0 ].Rows , "kind" , "Deployment" )
174
+ require .Exactly (t , expectedOutputRows [0 ], replaceAgeAndSinceDeployed (deploymentItem )[0 ])
175
+
176
+ endpointItem := filterByKeyValuePair (output .Tables [0 ].Rows , "kind" , "Endpoints" )
177
+ require .Exactly (t , expectedOutputRows [1 ], replaceAgeAndSinceDeployed (endpointItem )[0 ])
178
+
179
+ serviceItem := filterByKeyValuePair (output .Tables [0 ].Rows , "kind" , "Service" )
180
+ require .Exactly (t , expectedOutputRows [2 ], replaceAgeAndSinceDeployed (serviceItem )[0 ])
181
+
182
+ replicaSetItem := filterByKeyValuePair (output .Tables [0 ].Rows , "kind" , "ReplicaSet" )
183
+ replicaSetItem [0 ]["name" ] = "simple-app"
184
+ require .Exactly (t , expectedOutputRows [3 ], replaceAgeAndSinceDeployed (replicaSetItem )[0 ])
185
+
186
+ podItem := filterByKeyValuePair (output .Tables [0 ].Rows , "kind" , "Pod" )
187
+ podItem [0 ]["name" ] = "simple-app"
188
+ require .Exactly (t , expectedOutputRows [4 ], replaceAgeAndSinceDeployed (podItem )[0 ])
189
+
190
+ endpointSliceItem := filterByKeyValuePair (output .Tables [0 ].Rows , "kind" , "EndpointSlice" )
191
+ endpointSliceItem [0 ]["name" ] = "simple-app"
192
+ require .Exactly (t , expectedOutputRows [5 ], replaceAgeAndSinceDeployed (endpointSliceItem )[0 ])
193
+ })
194
+ }
195
+
196
+ func filterByKeyValuePair (slice []map [string ]string , key , value string ) []map [string ]string {
197
+ var filteredSlice []map [string ]string
198
+
199
+ for _ , item := range slice {
200
+ if item [key ] == value {
201
+ filteredSlice = append (filteredSlice , item )
202
+ }
203
+ }
204
+ return filteredSlice
82
205
}
0 commit comments