traefik / mesh

Traefik Mesh - Simpler Service Mesh
https://traefik.io/traefik-mesh
Apache License 2.0
2.02k stars 141 forks source link

Shadow service name length limit #746

Closed jspdown closed 3 years ago

jspdown commented 3 years ago

Bug Report

What did you do?

Create a service with a name and a namespace which once concatenated are closed to but less than 63 characters.

What did you expect to see?

I expected to see a shadow service associated with this service.

What did you see instead?

An error complaining about the shadow service being longer than 63 characters. When this situation happen we are also leaking ports (both udp and tcp port mappers)

Output of controller log: (What version of Traefik Mesh are you using?)

time="2020-09-11T15:33:30Z" level=error msg="Unable to complete work...must be no more than 63 characters"

What is your environment & configuration (arguments, provider, platform, ...)?

Version: 1.4

delucca commented 3 years ago

any updates on this issue? I'm facing a similar problem with OpenEBS

jspdown commented 3 years ago

Hello @delucca and thanks for your interest in Traefik Mesh. This issue has been addressed by PR https://github.com/traefik/mesh/pull/772. This is going to be merged shortly.

delucca commented 3 years ago

@jspdown thanks!

I'm facing a major issue with OpenEBS (I just would like to mention it here, since I've googled it for days with no success since I think no one faced it too).

In a nutshell, my Postgres pod was not able to mount using OpenEBS volumes since Traefik mesh was routing the pvc service and the new service name was more than 63 chars long.

Waiting for that PR to be merged!

delucca commented 3 years ago

@jspdown just a dumb question, I've saw that it was merged. There is any way for me to use that new version without waiting for a new full release?

jspdown commented 3 years ago

@delucca You can clone Traefik Mesh and build it from the master branch. You can find how to instructions in our documentation: https://doc.traefik.io/traefik-mesh/contributing/building-testing/

delucca commented 3 years ago

@jspdown great! thanks!

delucca commented 3 years ago

@jspdown just one last thing, can you give me a hand at #781? I'm trying to remove Traefik Mesh from my cluster until building it from source, or a new release, but I'm not being able to do so.

Thanks in advance :)

ayamGelo commented 2 years ago

Hi @kevinpollet Is the new version got fix of this? which is 1.4.8

ayamGelo commented 2 years ago

Why this patch not merged into latest version? I see this code already fixing but only in PR not in latest master or latest version, May I know the problem? Maybe I can help u @kevinpollet Patch code

Latest master

Latest version right now, 1.4.8

kevinpollet commented 2 years ago

Hi @ayamGelo,

Why this patch not merged into latest version?

As the fix for this issue introduces a breaking change, the patch was merged into master as we were working on a major release. As this takes more time than expected, we recently changed the master branch history to be able to release new minor versions. We kept the previous master history in a dedicated dev branch.

ayamGelo commented 2 years ago

Hi @ayamGelo,

Why this patch not merged into latest version?

As the fix for this issue introduces a breaking change, the patch was merged into master as we were working on a major release. As this takes more time than expected, we recently changed the master branch history to be able to release new minor versions. We kept the previous master history in a dedicated dev branch.

I really need this feature, does enterprise version got fix of this?

deas commented 2 years ago

@jspdown This or a somewhat similar issue hits me with traefikee and the latest helm chart 1.1.4:

unable to sync shadow service: Service \"traefikee-datadog-agent-cluster-agent-admission-controller-6d61657368-datadog\" is invalid: metadata.name: Invalid value: \"traefikee-datadog-agent-cluster-agent-admission-controller-6d61657368-datadog\": must be no more than 63 characters"

BTW: How would one contribute patches to the EE helm chart?

kevinpollet commented 1 year ago

Hello all,

As said earlier fixing this issue requires a breaking change which cannot be done in a minor release. As the enterprise version is based on the community one the problem remains the same as @deas said.

BTW: How would one contribute patches to the EE helm chart?

The chart is currently private but we are discussing it.

deas commented 1 year ago

@kevinpollet As datadog appears to be related, does this issue cause degradation of metrics or logs?

kevinpollet commented 1 year ago

Hello @deas,

As datadog appears to be related, does this issue cause degradation of metrics or logs?

This issue does not cause any degradation of metrics/logs. This means that it is not possible to send meshed requests to the above service (which seems to be not an issue). Maybe adding a way to disable the shadow service creation for some services could be a great addition.

ayamGelo commented 1 year ago

Hello @deas,

As datadog appears to be related, does this issue cause degradation of metrics or logs?

This issue does not cause any degradation of metrics/logs. This means that it is not possible to send meshed requests to the above service (which seems to be not an issue). Maybe adding a way to disable the shadow service creation for some services could be a great addition.

This issue could a problem with kubernetes length standarization, even with labels or dns name

My service and namespace is under 63 characters or same (for sure my service is valid on kubernetes) But with your feature so uniquely combine service and namespace make it one entity, it must be more than 63 caharacters, this traefik itself break the state

Why the heaven, you are not generate some id, reference your id to them, this is so seamless integration.., meh, even enterprise solution don't cover this

The shortest solution path i must create another service with short name

mjhaller commented 1 year ago

@kevinpollet any idea when this change would be released? i understand it is breaking but we are starting fresh with traefik, so it wouldn't affect us.

even if you pushed an alpha or snapshot tag, we could use that, so we don't have to create a custom image in our own registry. (although, we can do that too.)

muffl0n commented 1 year ago

Is there any roadmap for the mentioned release? We're planning to use traefik-mesh but this is a showstopper, unfortunately. :(