carvel-dev / carvel-dev/kapp

Improve --json behaviour with interactive prompts

Open
#248 3 comments 0 reactions 0 assignees View on GitHub
carvel accepted discussion enhancement
Dominant language
Go
Stars
1.1k
Forks
134
PR merge metrics
No merged PRs in 30d

Description

**What steps did you take:**

Create an ``example.yaml`` file containing:

```
apiVersion: v1
kind: ConfigMap
metadata:
name: xxx
data:
xyz: abc
```

Run:

```
kapp deploy -a website -f example.yaml --json
```

**What happened:**

It appeared to crash and generate a Golang stack trace.

```
{
"Tables": [
{
"Content": "",
"Header": {
"age": "Age",
"conditions": "Conds.",
"kind": "Kind",
"name": "Name",
"namespace": "Namespace",
"op": "Op",
"op_strategy": "Op st.",
"reconcile_info": "Ri",
"reconcile_state": "Rs",
"wait_to": "Wait to"
},
"Rows": [
{
"age": "",
"conditions": "",
"kind": "ConfigMap",
"name": "xxx",
"namespace": "lab-carvel-ytt-01-w01-s002",
"op": "create",
"op_strategy": "",
"reconcile_info": "",
"reconcile_state": "",
"wait_to": "reconcile"
}
],
"Notes": [
"Op: 1 create, 0 delete, 0 update, 0 noop",
"Wait to: 1 reconcile, 0 delete, 0 noop"
]
}
],
"Blocks": null,
"Lines": [
"Target cluster 'https://10.96.0.1:443'"
]
}panic: Cannot ask for confirmation in JSON UI

goroutine 1 [running]:
github.com/cppforlife/go-cli-ui/ui.(*JSONUI).AskForConfirmation(0xc0003daa00, 0x1535358, 0xc000cad1d0)
github.com/cppforlife/go-cli-ui@v0.0.0-20200716203538-1e47f820817f/ui/json_ui.go:114 +0x39
github.com/cppforlife/go-cli-ui/ui.(*ConfUI).AskForConfirmation(0xc0003ebd80, 0xc0001be140, 0xc0000791a0)
github.com/cppforlife/go-cli-ui@v0.0.0-20200716203538-1e47f820817f/ui/conf_ui.go:105 +0x33
github.com/k14s/kapp/pkg/kapp/cmd/app.(*DeployOptions).Run(0xc00012cc80, 0x0, 0x0)
github.com/k14s/kapp/pkg/kapp/cmd/app/deploy.go:171 +0xc8f
github.com/k14s/kapp/pkg/kapp/cmd/app.NewDeployCmd.func1(0xc00013f340, 0xc00007df90, 0x0, 0x5, 0xc000374580, 0x1527ef0)
github.com/k14s/kapp/pkg/kapp/cmd/app/deploy.go:54 +0x2a
github.com/k14s/kapp/pkg/kapp/cmd.NewKappCmd.func1.1(0xc00013f340, 0xc00007df90, 0x0, 0x5, 0x0, 0x0)
github.com/k14s/kapp/pkg/kapp/cmd/kapp.go:126 +0xb8
github.com/cppforlife/cobrautil.WrapRunEForCmd.func1.1(0xc00013f340, 0xc00007df90, 0x0, 0x5, 0x0, 0x0)
github.com/cppforlife/cobrautil@v0.0.0-20200514214827-bb86e6965d72/misc.go:45 +0xb2
github.com/cppforlife/cobrautil.WrapRunEForCmd.func1.1(0xc00013f340, 0xc00007df90, 0x0, 0x5, 0x0, 0x0)
github.com/cppforlife/cobrautil@v0.0.0-20200514214827-bb86e6965d72/misc.go:45 +0xb2
github.com/cppforlife/cobrautil.WrapRunEForCmd.func1.1(0xc00013f340, 0xc00007df90, 0x0, 0x5, 0x0, 0x0)
github.com/cppforlife/cobrautil@v0.0.0-20200514214827-bb86e6965d72/misc.go:45 +0xb2
github.com/spf13/cobra.(*Command).execute(0xc00013f340, 0xc00007df40, 0x5, 0x5, 0xc00013f340, 0xc00007df40)
github.com/spf13/cobra@v1.1.1/command.go:850 +0x472
github.com/spf13/cobra.(*Command).ExecuteC(0xc00013e580, 0xc00013e580, 0xc0003ebd80, 0x7f73f8ce0108)
github.com/spf13/cobra@v1.1.1/command.go:958 +0x375
github.com/spf13/cobra.(*Command).Execute(...)
github.com/spf13/cobra@v1.1.1/command.go:895
main.nonExitingMain(0x0, 0x0)
github.com/k14s/kapp/cmd/kapp/kapp.go:42 +0x167
main.main()
github.com/k14s/kapp/cmd/kapp/kapp.go:21 +0x26
```

**What did you expect:**

Am not sure. I was trying to work out what the ``--json`` option actually did when it occurred, so not sure if this is expected and normal, but it sort of looks wrong.

**Anything else you would like to add:**

Nope.

**Environment:**

```
$ kapp --version
kapp version 0.37.0
```

---
Vote on this request

This is an invitation to the community to vote on issues, to help us prioritize our backlog. Use the "smiley face" up to the right of this comment to vote.

👍 "I would like to see this addressed as soon as possible"
👎 "There are other more important things to focus on right now"

We are also happy to receive and review Pull Requests if you want to help working on this issue.

cc @jorgemoralespou

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.