TCP Echo Service Test (examples/tcp-echo-service.yaml) only works in default namespace
- Dominant language
- Go
- Stars
- 293
- Forks
- 145
- PR merge metrics
- No merged PRs in 30d
Description
**What happened**:
I have deployed the examples/tcp-echo-service.yaml test case.
When using the default namespace, it works. I can exec into the container running the tcp-echo and perform an nslookup on the service:

I can see edgemesh getting the DNS request:

However, when I add a namespace (argus) to the Service and Deployment:

The nslookup fails:

And Edgemesh DNS request is failing:

**What you expected to happen**:
When using non-default namespace, the DNS request for the service should succeed.
**How to reproduce it (as minimally and precisely as possible)**:
Deploy the examples/tcp-echo-service.yaml test case with a non-default namespace (I have used one of my own and also create a separate namespace and both fail.
**Anything else we need to know?**:
**Environment**:
- EdgeMesh version: aa2119a4a1e838e2daaf6203c41183951fc8938f (HEAD as of 23/06/2022)
- Kubernetes version (use `kubectl version`): Major:"1", Minor:"23", GitVersion:"v1.23.1", GitCommit:"86ec240af8cbd1b60bcc4c03c20da9b98005b92e", GitTreeState:"clean", BuildDate:"2021-12-16T11:34:54Z", GoVersion:"go1.17.5", Compiler:"gc", Platform:"linux/amd64"
- KubeEdge version(e.g. `cloudcore --version` and `edgecore --version`): cloudcore+edgecore: d750c6ec1639ff007f9bf52edb42d6631cabe3e7 (HEAD as of 23/06/2022)
- Cloud nodes Environment:
- Hardware configuration (e.g. `lscpu`):
- OS (e.g. `cat /etc/os-release`):
- Kernel (e.g. `uname -a`):
- Go version (e.g. `go version`):
- Others:
- Edge nodes Environment:
- edgecore version (e.g. `edgecore --version`): d750c6ec1639ff007f9bf52edb42d6631cabe3e7 (HEAD as of 23/06/2022)
- Hardware configuration (e.g. `lscpu`):
- OS (e.g. `cat /etc/os-release`):
- Kernel (e.g. `uname -a`):
- Go version (e.g. `go version`):
- Others:
Contributor guide
Research direction
Reproduce the failure using examples/tcp-echo-service.yaml after placing the Service and Deployment in a non-default namespace. Compare the successful default-namespace lookup with the failing namespaced lookup, then trace the related EdgeMesh DNS handling. Done means the service DNS request succeeds in a non-default namespace as well as in default.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- kubernetes
- Domain
- networking
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100