You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As part of removing AWS request signing dependency on curl, I have run into an issue which surfaces due to grpc credentials extension being instantiated with a CommonFactoryContext.
AWS request signing credential retrieval has now been refactored to use Http::AsyncClient. This creates a dependency on ServerFactoryContext->initManager(), as we need to wait for clusters to come online before attempting to retrieve credentials.
This is fine for normal extension initialization case (upstream and downstream filter). However initmanager is not available in CommonFactoryContext.
Is this even possible? I'm not entirely clear on the rationale behind the two different factory contexts, why grpc credentials uses Common rather than Server or whether an init manager is reasonable for this part of the startup process.
best I've been able to work out is that the grpc credentials extension kicks in very early, before ThreadLocalClusterManager is available. So even with Init Manager access, I won't be able to add these clusters.
It seems like a catch-22, if the grpc credentials extension depends on us, which depends on ThreadLocalClusterManager to be initialized, I have to find a way to wait for initialization to complete first. I'll keep kicking the tyres on this to see what I can work out.
As part of removing AWS request signing dependency on curl, I have run into an issue which surfaces due to grpc credentials extension being instantiated with a CommonFactoryContext.
AWS request signing credential retrieval has now been refactored to use Http::AsyncClient. This creates a dependency on ServerFactoryContext->initManager(), as we need to wait for clusters to come online before attempting to retrieve credentials.
envoy/source/extensions/common/aws/credentials_provider_impl.cc
Line 155 in ee61634
This is fine for normal extension initialization case (upstream and downstream filter). However initmanager is not available in CommonFactoryContext.
Is this even possible? I'm not entirely clear on the rationale behind the two different factory contexts, why grpc credentials uses Common rather than Server or whether an init manager is reasonable for this part of the startup process.
envoy/source/extensions/grpc_credentials/aws_iam/config.cc
Line 26 in ee61634
@wbpcode
The text was updated successfully, but these errors were encountered: