Closed cofyc closed 4 years ago
Here is an example:
# aws-k8s-tester version {"git-commit":"36fe29fdb301","release-version":"v0.9.6","build-time":"2020-03-31_22:38:35"} # export AWS_K8S_TESTER_EKS_ADD_ON_MANAGED_NODE_GROUPS_ENABLE=true # export AWS_K8S_TESTER_EKS_ADD_ON_MANAGED_NODE_GROUPS_MNGS='{"eks-mng-8775":{"name":"eks-mng-8775","ami-type":"AL2_x86_64","asg-min-size":3,"asg-max-size":3,"asg-desired-capacity":3,"instance-types":["c5.xlarge"],"volume-size":40}}' ********************************* overwriting config file from environment variables... panic: reflect: call of reflect.Value.Field on zero Value goroutine 1 [running]: reflect.Value.Field(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2b4b780) /usr/local/go/src/reflect/value.go:827 +0x123 github.com/aws/aws-k8s-tester/eksconfig.parseEnvs(0x260843b, 0x2e, 0x1fdeb20, 0x0, 0x1fdeba0, 0x0, 0x0, 0x0) /home/ANT.AMAZON.COM/leegyuho/go/src/github.com/aws/aws-k8s-tester/eksconfig/env.go:206 +0x4d6 github.com/aws/aws-k8s-tester/eksconfig.(*Config).UpdateFromEnvs(0xc0009110e0, 0x0, 0x0) /home/ANT.AMAZON.COM/leegyuho/go/src/github.com/aws/aws-k8s-tester/eksconfig/env.go:85 +0x273 github.com/aws/aws-k8s-tester/cmd/aws-k8s-tester/eks.configFunc(0xc000890000, 0xc0002add80, 0x0, 0x2) /home/ANT.AMAZON.COM/leegyuho/go/src/github.com/aws/aws-k8s-tester/cmd/aws-k8s-tester/eks/create.go:45 +0x10b github.com/spf13/cobra.(*Command).execute(0xc000890000, 0xc0002add60, 0x2, 0x2, 0xc000890000, 0xc0002add60) /home/ANT.AMAZON.COM/leegyuho/go/src/github.com/aws/aws-k8s-tester/vendor/github.com/spf13/cobra/command.go:830 +0x29d github.com/spf13/cobra.(*Command).ExecuteC(0x3f09760, 0xc000811680, 0xc0004ff400, 0xc0004ff400) /home/ANT.AMAZON.COM/leegyuho/go/src/github.com/aws/aws-k8s-tester/vendor/github.com/spf13/cobra/command.go:914 +0x2fb github.com/spf13/cobra.(*Command).Execute(...) /home/ANT.AMAZON.COM/leegyuho/go/src/github.com/aws/aws-k8s-tester/vendor/github.com/spf13/cobra/command.go:864 main.main() /home/ANT.AMAZON.COM/leegyuho/go/src/github.com/aws/aws-k8s-tester/cmd/aws-k8s-tester/main.go:33 +0x31
Sync() calls IsEnabledAddOnManagedNodeGroups and other IsEnableXXX functions which will nil fields if they are not enabled. Then UpdateFromEnvs will fail with the above error because field to parse is nil now.
Sync()
IsEnabledAddOnManagedNodeGroups
IsEnableXXX
UpdateFromEnvs
https://github.com/aws/aws-k8s-tester/blob/36fe29fdb301fd095722b1bacc97be38f7481dae/eksconfig/config.go#L292-L301
https://github.com/aws/aws-k8s-tester/blob/36fe29fdb301fd095722b1bacc97be38f7481dae/cmd/aws-k8s-tester/eks/create.go#L39-L41
What do you think? Fix in UpdateFromEnvs or don't nil fields in IsEnableXXX functions?
@gyuho I've submitted a PR for this: https://github.com/aws/aws-k8s-tester/pull/83
Here is an example:
Sync()
callsIsEnabledAddOnManagedNodeGroups
and otherIsEnableXXX
functions which will nil fields if they are not enabled. ThenUpdateFromEnvs
will fail with the above error because field to parse is nil now.https://github.com/aws/aws-k8s-tester/blob/36fe29fdb301fd095722b1bacc97be38f7481dae/eksconfig/config.go#L292-L301
https://github.com/aws/aws-k8s-tester/blob/36fe29fdb301fd095722b1bacc97be38f7481dae/cmd/aws-k8s-tester/eks/create.go#L39-L41
What do you think? Fix in
UpdateFromEnvs
or don't nil fields inIsEnableXXX
functions?