<#3483 [BUG] flytectl fails to unmarshal execution...
# flyte-github
a
#3483 [BUG] flytectl fails to unmarshal execution spec with certain input key Issue created by honnix Describe the bug If execution spec has input parameter named as
n
,
y
,
no
,
yes
, etc.
flytectl
fails to unmarshal the spec correctly. As an example:
Copy code
inputs:
  n: 42
flytectl
wil fail with
Copy code
Error: no matching type for [false]
{"json":{},"level":"error","msg":"no matching type for [false]","ts":"2023-03-14T10:48:56-04:00"}
After a quick investigation, this is because of using sigs.k8s.io/yaml in flytectl: https://github.com/flyteorg/flytectl/blob/cea39d9bdf2476f9a5313d1bf19bf08b3923237a/cmd/create/execution_util.go#L13. This yaml library depends on
go-yaml
v2, which does not support YAML 1.2 specification, see go-yaml/yaml#214. If an input argument is named as
n
, when creating an execution via a execution spec file, that argument must be quoted as
"n"
, otherwise
flytectl
would fail because when unmarshalling
n
is parsed as
false
as the input parameter name. Expected behavior
flytectl
should correctly unmarshal the execution spec that is compliant with YAML 1.2 specification. Additional context to reproduce No response Screenshots No response Are you sure this issue hasn't been raised already? ☑︎ Yes Have you read the Code of Conduct? ☑︎ Yes flyteorg/flyte