Infrastructure Adapter
Create a cluster services adapter which runs alongside functions, abstracting services offered by the cluster. At first this service should:
- Start on a well-known port in loopback, thus reusing service credentials and remaining itself implicitly local.
- Proffer a simple REST JSON API with outbound connections using full client libraries (usually gRPC).
- Provide hooks for integrating varying implementations based on environment
- Have provisions for starting in local development mode
Some of the advantages this architecture is expected to provide are:
- Future support of varying underlying cluster configurations (local development, Knative, others),
- The centralization of work related to complex integration rather than requiring re-implementation for each language.
- Provide runtime introspection without the need for client connections
- A simplified interface to function developers resulting in even optionally omitting any client libraries whatsoever
- The support of local development using a lightweight single-node implementation of features.
- Allowing function developers to configure their services entirely in the language of their choice.
- Retaining the function developer's ability to use logic during the initialization step, rather than relying on config file pre-processors.
@lkingland it's not clear to me how grid (assuming this issue and grid are the same) affects the faas cli. What am I missing?
That's exactly right @lance , the solution to this issue (using an adapter) is to create a new service in a separate repository. This issue was created primarily for requirements capturing prior to the grid repository being created. I would expect the acceptance criteria for this issue would be when the Client Library (via the CLI) can actually start a function with the grid service running and reachable.
This issue is stale because it has been open for 90 days with no
activity. It will automatically close after 30 more days of
inactivity. Reopen the issue with /reopen. Mark the issue as
fresh by adding the comment /remove-lifecycle stale.
This issue is stale because it has been open for 90 days with no
activity. It will automatically close after 30 more days of
inactivity. Reopen the issue with /reopen. Mark the issue as
fresh by adding the comment /remove-lifecycle stale.