Replies: 4 comments
-
|
Shall we revisit the resource path (POST /api/internal/v1/artifacts/{artifactId}/gateway-deployments) to a alternative one - I find it a bit confusing compared to what I actually does, we are actually creating an API Artifact itself, not really a deployment. The deployment is already created in the gateway. We are only doing a CP side artifact creation and mapping it with what we already have in the gateway. Shall we go with something like : URL:Request Body:configuration: # Gateway Artifact Yaml config
apiVersion: ...
kind: ... # LLMProvider | LLMProviderTemplate | LLMProxy | MCPProxy | REST | ...
metadata:
name: ... # used for uniqueness / upsert
spec: ...
<any other properties which is necessay>: ... # optional. Even if we don't have any, lets wrap the "Gateway Artifact Yaml config" with "configuration" field so we can add any properties if necessary later in the future.Response Body200:
id: ... # Platform-API-side id (returned so the gateway can correlate if necessary)
status: deployed | pending | failed | undeployed
origin: DP
createdAt: ...
updatedAt: ...
deployedAt: ...
deployedVersion: ...I think, in the original request payload:
We will also need to consider how the Choreo/Bijira specific components should be created when doing the bottom up approach. Because, here the gateway only connect to Platform API and inform that the artifact is created, and now Platform API has to cordinate with the rest of the Control Plane components (including Choreo/Bijira) to create the other required artifacts. |
Beta Was this translation helpful? Give feedback.
-
|
In Gateway with On-Prem APIM mode, bottom up API deployments directly calls the publisher portal's import API resource and creates the API in the control plane. With the below PR it will be changed to consider the internal REST API available for the platform API in the on-prem APIM. When considering above two descriptions I found below two approaches.
In both scenarios we need to consider below, To create LLM providers,
To create LLM proxies
|
Beta Was this translation helpful? Give feedback.
-
|
The resource path of REST endpoint in the Platform API will be : URLRequest body:id:
description: Unique identifier for the api artifact. This preserves the artifact uuid in both the gateway and platform API.
configuration:
apiVersion: ...
kind: ... # LLMProvider | LLMProviderTemplate | LLMProxy | MCPProxy | REST | ...
metadata:
name: ...
annotations:
project: ...
spec: ...
status:
description: Status of the artifact (deployed, pending, failed, undeployed)
properties: # optional. To add any properties if necessary later in the future.Response Body200:
id: ...
status: deployed | pending | failed | undeployed
origin: DP
createdAt: ...
updatedAt: ...
deployedAt: ...
deployedVersion: ...Artifacts will be pushed to the CP from the Gateway upon reconnection and when a new artifact is created in the Gateway and the CP is connected. The artifact that is pushed from the DP is marked as read only in the CP and only updates that will not affect the gateway runtime artifact is allowed, such as adding documentation. Deleting an artifact from the gateway will remove the deployment, but the artifact will remain in the control plane as an undeployed entity, requiring a separate, manual deletion action in the control plane to remove it entirely. The Control Plane will not support redeploying an API that was deleted from the gateway. A DP initiated artifact cannot be deleted from the CP. Distinguishing between top-down and bottom-up APIs will be determined by adding a database field The information in the deployment artifact is split in to metadata and gateway specific information so that only one gateway will be configured to synchronize metadata with the control plane's working copy, while other gateways will synchronize only deployment-specific configuration information. This will be managed via a synchronization flag The callback from the gateway is used to identify if the API was actually deployed in an gateway. |
Beta Was this translation helpful? Give feedback.
-
Update -Move the Remove the Implement a lock to solve concurrent updates in the CP to the same artifact. Implement a retry mechanism for the artifact pushing. Change the Deploy and push artifacts to the CP when it is created from the immutable gateway. Introduce a new configuration |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Problem
The AI Gateway currently lacks the support for pushing artifacts created in the gateway to the AI Workspace: LLM Provider Templates, LLM providers, LLM Proxies and MCP proxies. Therefore the AI workspace is unaware of the artifacts directly created in the AI Gateway using the Gateway controller REST APIs.
Solution
Provide the ability to push the artifacts created in the Gateway to the AI workspace. The artifact created in the gateway will be the single source of truth and the artifacts will appear in the AI Workspace in a read only mode.
Design
An endpoint already exists in the Platform API to support the DP to CP flow of REST APIs.
POST /api/internal/v1/apis/{apiId}/gateway-deploymentsapiId- ID of the API that is created in the GatewayRequest body -
This endpoint will be generalized to support:
Updated REST API :-
POST /api/internal/v1/artifacts/{artifactId}/gateway-deploymentsartifactId- ID of the Artifact that is created in the GatewayRequest body -
Origin field to keeps track of where the artifact was created and triggers the readonly mode in the CP.
ArtifactConfiguration -
Response -
The artifacts will be persisted in the relevant tables in the AI Workspace (Platform API) based on the
kindinArtifactConfiguration.Discussion points
Beta Was this translation helpful? Give feedback.
All reactions