Skip to content

[ECS-Plugin] Implement Livestate Plugin#6620

Open
armistcxy wants to merge 2 commits intopipe-cd:masterfrom
armistcxy:ecs-plugin/livestate
Open

[ECS-Plugin] Implement Livestate Plugin#6620
armistcxy wants to merge 2 commits intopipe-cd:masterfrom
armistcxy:ecs-plugin/livestate

Conversation

@armistcxy
Copy link
Copy Markdown
Contributor

What this PR does: Implements the livestate plugin for the ECS plugin, enabling PipeCD to report the live state of ECS applications to the control plane

Why we need it:

Which issue(s) this PR fixes: Part of #6443

Does this PR introduce a user-facing change?: Yes

  • How are users affected by this change: Without this, PipeCD has no visibility into the live state of ECS applications after deployment. Users cannot tell whether their ECS serviceis healthy, how many tasks are running vs desired, or whether the cluster is drifted from the declared Git state.
  • Is this breaking change:
  • How to migrate (if breaking change):

Signed-off-by: Hoang Ngo <adlehoang118@gmail.com>
Signed-off-by: Hoang Ngo <adlehoang118@gmail.com>
@armistcxy armistcxy force-pushed the ecs-plugin/livestate branch from 779ed18 to b564211 Compare March 27, 2026 16:48
@armistcxy
Copy link
Copy Markdown
Contributor Author

Some screenshots as proof:

Overview

image

Resource detail

image image

Note

There's an issue with the UI (pipecd/web) that seems like currently support only K8s (my guess because I see "Kind", "Namespace", "API Version")

image

I quick fix the issue with Claude Code just to verify the livestate plugin implementation, have a look here

export const ResourceDetail: FC<ResourceDetailProps> = ({
resource,
onClose,
}) => {
return (
<PanelWrap square>
<CloseButton onClick={onClose} size="large">
<CloseIcon />
</CloseButton>
<PanelTitle>{resource.name}</PanelTitle>
<Box
sx={{
pt: 1,
display: "flex",
alignItems: "center",
}}
>
<InfoRowTitle>Kind</InfoRowTitle>
<InfoRowValue>
{findMetadataByKey(resource.resourceMetadataMap, "Kind")}
</InfoRowValue>
</Box>
<Box
sx={{
pt: 1,
display: "flex",
alignItems: "center",
}}
>
<InfoRowTitle>Namespace</InfoRowTitle>
<InfoRowValue>
{findMetadataByKey(resource.resourceMetadataMap, "Namespace")}
</InfoRowValue>
</Box>
<Box
sx={{
pt: 1,
display: "flex",
alignItems: "center",
}}
>
<InfoRowTitle>Api Version</InfoRowTitle>
<InfoRowValue>
{findMetadataByKey(resource.resourceMetadataMap, "API Version")}
</InfoRowValue>
</Box>
<Box
sx={{
pt: 1,
}}
>
<InfoRowTitle>Health Description</InfoRowTitle>
<InfoRowValue>{resource.healthDescription || "Empty"}</InfoRowValue>
</Box>
</PanelWrap>
);
};
.

will create a PR soon ^^

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant