-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Decision Tracker - Describe the Workload Deployment Status mechanism #10
Comments
@margo/technical-wg new proposal for review on deployment status file. |
We probably need some additional information. What about expanding it to something like this
apiVersion: deployment.margo/v1
kind: DeploymentStatus
metadata:
deploymentId:
timeStamp:
status:
state:
error:
code:
message:
components:
- name:
state:
error:
code:
message: Example 1 apiVersion: deployment.margo/v1
kind: DeploymentStatus
metadata:
deploymentId: 3a5549f2-02a4-4faf-9bc4-1ea9866684c1
timeStamp: 2024-06-10 08:37:54Z
status:
state: installing
components:
- name: digitron-orchestrator
state: installed
- name: database-services
state: installing Example 2 apiVersion: deployment.margo/v1
kind: DeploymentStatus
metadata:
deploymentId: 3a5549f2-02a4-4faf-9bc4-1ea9866684c1
timeStamp: "2024-06-10 09:03:27Z"
status:
state: installed
components:
- name: digitron-orchestrator
state: installed
- name: database-services
state: installed Example 3 apiVersion: deployment.margo/v1
kind: DeploymentStatus
metadata:
deploymentId: 3a5549f2-02a4-4faf-9bc4-1ea9866684c1
timeStamp: "2024-06-10 08:51:13Z"
status:
state: failed
components:
- name: digitron-orchestrator
state: installed
- name: database-services
state: failed
error:
code: InvalidArgument
message: "failed to provision volume with StorageClass 'default': rpc error: code = InvalidArgument desc = unsupported access mode: MULTI_NODE_MULTI_WRITER" Example 4 apiVersion: deployment.margo/v1
kind: DeploymentStatus
metadata:
deploymentId: 3a5549f2-02a4-4faf-9bc4-1ea9866684c1
timeStamp: "2024-06-10 09:03:27Z"
status:
state: failed
error:
code: HostUnavailable
Error: "Unable to communicate with the Kubernetes cluster"
components:
- name: digitron-orchestrator
state: pending
- name: database-services
state: pending This is the workflow I have in mind for installing new applications. |
One question on status field below: Specifically for app with multiple components is the "status->state" field is the aggregated state considering the status of different components? If so then we should be also defining how the individual components status can be used to arrive at single state at app level i.e. "status->state". Otherwise it will be difficult to convey the app level status to the user consistently. |
I'm thinking of the process in stages where each stage could potentially fail: Pre-processing Processing Post-processing |
This content will be moved to the Margo Interface Issue that is being produced. As we discussed, the interaction patterns from WOA to WOS will be done via a REST API instead of posting of a particular file. |
This issue is now tied directly to the Margo Management Interface PR where the latest deployment status file can be found. @margo/approvers - Let's consider this another Decision tracker item. This issue will be closed when the PR is merged. |
Below, I have outlined a proposal for the Deployment Status Update File, that is utilized by the Workload Orchestration Agent to inform the WOS of the status per deployment.
Note: This proposal is one option to inform the WOS the status of the deployments. An additional option would be to utilize OTEL, but IMO I think we should have a mechanism for simple status updates and OTEL to provide further detail depending on the level of adoption the WOS intends to implement.
The associated workflow / use case for this is detailed below:
Proposed Margo Deployment Status Update
Top-level Attributes
Metadata Atrributes
Deployment Information Attributes
The text was updated successfully, but these errors were encountered: