We would like to switch to a shared gRPC server in the big three terrajet-based providers: provider-jet-aws, provider-jet-gcp and provider-jet-azure. This is a reconfiguration of certain runtime aspects of the providers and no API changes and the like are expected. Terraform CLI by default forks a (native) provider plugin process per invocation and in the context of a terrajet-based Crossplane provider, this corresponds to forking multiple processes of the native provider plugin in the same container. By switching to a shared gRPC server implementation, we would like to improve these provider's resource consumption. With https://github.com/crossplane/terrajet/pull/267, we have already extended the Terrajet runtime to optionally support running with a shared native provider process. It also turns out that terraform-provider-google does not support the command-line options we can employ for provider-jet-azure and provider-jet-aws for running a shared native provider.
How could Terrajet help solve your problem?
We can switch to a cookie-based shared provider forking and then switch to the described shared execution model for the big three terrajet-based providers.
What problem are you facing?
We would like to switch to a shared gRPC server in the big three terrajet-based providers:
provider-jet-aws
,provider-jet-gcp
andprovider-jet-azure
. This is a reconfiguration of certain runtime aspects of the providers and no API changes and the like are expected. Terraform CLI by default forks a (native) provider plugin process per invocation and in the context of a terrajet-based Crossplane provider, this corresponds to forking multiple processes of the native provider plugin in the same container. By switching to a shared gRPC server implementation, we would like to improve these provider's resource consumption. With https://github.com/crossplane/terrajet/pull/267, we have already extended the Terrajet runtime to optionally support running with a shared native provider process. It also turns out thatterraform-provider-google
does not support the command-line options we can employ forprovider-jet-azure
andprovider-jet-aws
for running a shared native provider.How could Terrajet help solve your problem?
We can switch to a cookie-based shared provider forking and then switch to the described shared execution model for the big three terrajet-based providers.