kubeless
kubeless copied to clipboard
kubeless topic ls - panic: assignment to entry in nil map
BUG REPORT
What happened:
kubeless topic ls
panic: assignment to entry in nil map
goroutine 1 [running]:
net/textproto.MIMEHeader.Set(...)
/usr/local/Cellar/go/1.12.6/libexec/src/net/textproto/header.go:22
net/http.Header.Set(...)
/usr/local/Cellar/go/1.12.6/libexec/src/net/http/header.go:37
github.com/kubeless/kubeless/vendor/k8s.io/client-go/plugin/pkg/client/auth/exec.(*roundTripper).RoundTrip(0xc000497e80, 0xc000105400, 0xc000047bc0, 0x7, 0x200b38e)
/private/tmp/kubeless-20190702-51707-1pec8sr/kubeless-1.0.4/src/github.com/kubeless/kubeless/vendor/k8s.io/client-go/plugin/pkg/client/auth/exec/exec.go:176 +0x270
github.com/kubeless/kubeless/cmd/kubeless/topic.execCommand(0xc0001768c0, 0x22bd9e0, 0xc000132b40, 0x200b38e, 0x8, 0xc0001460a0, 0x5, 0x5, 0x2256400, 0xc0000ec000, ...)
/private/tmp/kubeless-20190702-51707-1pec8sr/kubeless-1.0.4/src/github.com/kubeless/kubeless/cmd/kubeless/topic/topicCreate.go:103 +0x48f
github.com/kubeless/kubeless/cmd/kubeless/topic.listTopic(...)
/private/tmp/kubeless-20190702-51707-1pec8sr/kubeless-1.0.4/src/github.com/kubeless/kubeless/cmd/kubeless/topic/topicList.go:60
github.com/kubeless/kubeless/cmd/kubeless/topic.glob..func4(0x2e1a780, 0x2e46e90, 0x0, 0x0)
/private/tmp/kubeless-20190702-51707-1pec8sr/kubeless-1.0.4/src/github.com/kubeless/kubeless/cmd/kubeless/topic/topicList.go:47 +0x2bb
github.com/kubeless/kubeless/vendor/github.com/spf13/cobra.(*Command).execute(0x2e1a780, 0x2e46e90, 0x0, 0x0, 0x2e1a780, 0x2e46e90)
/private/tmp/kubeless-20190702-51707-1pec8sr/kubeless-1.0.4/src/github.com/kubeless/kubeless/vendor/github.com/spf13/cobra/command.go:766 +0x2ae
github.com/kubeless/kubeless/vendor/github.com/spf13/cobra.(*Command).ExecuteC(0xc000134500, 0x1d89f5a, 0xc0003e1f88, 0xc0000c0058)
/private/tmp/kubeless-20190702-51707-1pec8sr/kubeless-1.0.4/src/github.com/kubeless/kubeless/vendor/github.com/spf13/cobra/command.go:852 +0x2ec
github.com/kubeless/kubeless/vendor/github.com/spf13/cobra.(*Command).Execute(...)
/private/tmp/kubeless-20190702-51707-1pec8sr/kubeless-1.0.4/src/github.com/kubeless/kubeless/vendor/github.com/spf13/cobra/command.go:800
main.main()
/private/tmp/kubeless-20190702-51707-1pec8sr/kubeless-1.0.4/src/github.com/kubeless/kubeless/cmd/kubeless/kubeless.go:48 +0x28
What you expected to happen:
List topics in Kafka.
Environment:
- Kubernetes version (use
kubectl version
):
Client Version: version.Info{Major:"1", Minor:"13+", GitVersion:"v1.13.9-2+4a03651a7e7e04", GitCommit:"4a03651a7e7e04a0021b2ef087963dfb7bd0a17e", GitTreeState:"clean", BuildDate:"2019-08-16T19:08:17Z", GoVersion:"go1.11.5", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"13+", GitVersion:"v1.13.10-eks-5ac0f1", GitCommit:"5ac0f1d9ab2c254ea2b0ce3534fd72932094c6e1", GitTreeState:"clean", BuildDate:"2019-08-20T22:39:46Z", GoVersion:"go1.11.13", Compiler:"gc", Platform:"linux/amd64"}
- Kubeless version (use
kubeless version
):
Kubeless version: v1.0.4
- Cloud provider or physical cluster:
Amazon EKS
- Installed the Kafka trigger with:
kubectl create -f https://github.com/kubeless/kafka-trigger/releases/download/v1.0.2/kafka-zookeeper-v1.0.2.yaml
- Listing of Kubeless pods:
kubectl get pods --namespace kubeless
NAME READY STATUS RESTARTS AGE
kafka-0 1/1 Running 0 2d23h
kafka-trigger-controller-69cf947d6b-nbc4v 1/1 Running 0 2d23h
kubeless-controller-manager-646876977-qb46g 3/3 Running 0 17d
zoo-0 1/1 Running 0 2d23h
Any ideas on this? Blocker for me. Thanks
The kubeless topic
command assumes a few things in the cluster, it's mainly used for testing purposes (I wouldn't recommend using it for any production setup).
If you really want to do it, what the kubeless
CLI does under the hood, is exec
into the kafka
pod and execute: /opt/bitnami/kafka/bin/kafka-topics.sh --zookeeper zookeeper.kubeless:2181 --list
https://github.com/kubeless/kubeless/blob/master/cmd/kubeless/topic/topicList.go#L56
You can manually run that using kubectl
instead.
@andresmgot thanks for the reply. Running:
MacBook-Pro ➜ ~ kubectl get pods --namespace kubeless
NAME READY STATUS RESTARTS AGE
kafka-0 1/1 Running 0 9d
kafka-trigger-controller-69cf947d6b-nbc4v 1/1 Running 0 9d
kubeless-controller-manager-646876977-qb46g 3/3 Running 0 24d
zoo-0 1/1 Running 0 9d
MacBook-Pro ➜ ~ kubectl --namespace kubeless exec -it kafka-0 -- /bin/bash
/opt/bitnami/kafka/bin/kafka-topics.sh --zookeeper zookeeper.kubeless:2181 --list
Worked. This seems to indicate an issue then in kubeless since go is crashing with panic: assignment to entry in nil map
.
The kubeless topic command assumes a few things in the cluster, it's mainly used for testing purposes (I wouldn't recommend using it for any production setup).
What do you recommend then to create topics kubeless topic create
and kubeless topic publish
?
Yes, probably something in the client-go
library is wrong (or not updated) and that's why you are getting that error.
What do you recommend then to create topics kubeless topic create and kubeless topic publish?
You can follow the same approach, you can check what the commands do in the code:
https://github.com/kubeless/kubeless/blob/master/cmd/kubeless/topic/topicCreate.go#L61
https://github.com/kubeless/kubeless/blob/master/cmd/kubeless/topic/topicPublish.go#L67
In the case of the publish
command you need to pipe the text to be published.