Skip to content

Commit 0594982

Browse files
Adding os environment keys to cmd environment (#1391)
* Adding os environment keys to cmd environment Signed-off-by: rcmadhankumar <[email protected]> * kctrl dev test added for fetch from git source Signed-off-by: rcmadhankumar <[email protected]> --------- Signed-off-by: rcmadhankumar <[email protected]>
1 parent 59d4642 commit 0594982

File tree

2 files changed

+127
-0
lines changed

2 files changed

+127
-0
lines changed

cli/pkg/kctrl/local/detailed_cmd_runner.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ package local
66
import (
77
"fmt"
88
"io"
9+
"os"
910
goexec "os/exec"
1011

1112
"github.com/vmware-tanzu/carvel-kapp-controller/pkg/exec"
@@ -28,6 +29,9 @@ func (r DetailedCmdRunner) Run(cmd *goexec.Cmd) error {
2829
cmd.Stderr = io.MultiWriter(r.log, cmd.Stderr)
2930
}
3031

32+
// Adding os environment keys to cmd environment
33+
cmd.Env = append(os.Environ(), cmd.Env...)
34+
3135
fmt.Fprintf(r.log, "==> Executing %s %v\n", cmd.Path, cmd.Args)
3236
defer fmt.Fprintf(r.log, "==> Finished executing %s\n\n", cmd.Path)
3337

cli/test/e2e/dev_test.go

Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ func TestDev(t *testing.T) {
1919
kapp := Kapp{t, env.Namespace, env.KappBinaryPath, logger}
2020

2121
appName := "dev-test"
22+
gitAppName := "dev-gitapp-test"
2223
saAppName := "dev-test"
2324

2425
sa := ServiceAccounts{env.Namespace}.ForNamespaceYAML()
@@ -47,8 +48,29 @@ spec:
4748
intoNs: kctrl-test
4849
`, appName)
4950

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+
5071
cleanUp := func() {
5172
kapp.Run([]string{"delete", "-a", fmt.Sprintf("%s.app", appName)})
73+
kapp.Run([]string{"delete", "-a", fmt.Sprintf("%s.app", gitAppName)})
5274
kapp.Run([]string{"delete", "-a", saAppName})
5375
}
5476
cleanUp()
@@ -79,4 +101,105 @@ spec:
79101
}
80102
require.Exactly(t, expectedOutputRows, replaceAgeAndSinceDeployed(output.Tables[0].Rows))
81103
})
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
82205
}

0 commit comments

Comments
 (0)