Closed danelson closed 1 month ago
@danelson Hey, thanks for the issue! I would like to know more about your use case before deciding on what to do here. What are you trying to accomplish and what alternatives have you tried?
@mx-psi thanks for the response.
My component basically implements its own authentication and I load a bunch of tokens in via environment variables which I validate incoming headers against. I actually have a different flow where I do something similar via nginx so I am thinking that is a better approach that I can leverage. I just need to update some routing in my cluster.
I could also load the environment variables based on a convention (prefix) which would allow me to collapse this to a single environment variable.
I know there are some auth extensions (although I don't think any serve my use case). I could also explore writing my own.
So I know I have have some workarounds. Just wanted to make sure this was an intentional change since it was breaking from before.
@danelson this is technically an unexpected consequence of making the env vars expanded by the envprovider instead of the expandconverter, but a true fix is probably too much work to be worth it. I think we'll just bump the recursive check constant to a higher number since this is a startup check and not hot-path execution and there are lots of work arounds like you mentioned.
Describe the bug After updating to v0.104.0 I receive the following error.
https://github.com/open-telemetry/opentelemetry-collector/blob/main/confmap/expand.go#L27
I am not actually sure this is a bug but as it seems somewhat intentional based on the above link. It is at least a regression with the previous behavior.
Steps to reproduce Create a string in the collector config that contains more than 100 environment variables.
What did you expect to see? I expected it not to error.
What did you see instead? Collector fails to start with the following error:
What version did you use? v0.104.0
What config did you use?
Environment otel/opentelemetry-collector-contrib:0.104.0 in docker
Additional context The above config is just an example. I have a custom component that loads ~110 environment variables (which will continue to grow) as a common separated list. I could modify this component to work differently but just wanted to make sure this was intended.
Disabling the feature flag
confmap.unifyEnvVarExpansion
allows the above config to be loaded successfully.