diff --git a/bin/periphery/src/docker/task.rs b/bin/periphery/src/docker/task.rs index dab210c55..be2a652af 100644 --- a/bin/periphery/src/docker/task.rs +++ b/bin/periphery/src/docker/task.rs @@ -53,6 +53,33 @@ fn convert_task_list_item( ) }) .unwrap_or_default(); + let (configs, secrets) = task + .spec + .and_then(|spec| { + spec.container_spec.map(|spec| { + ( + spec + .configs + .map(|config| { + config + .into_iter() + .filter_map(|config| config.config_name) + .collect::>() + }) + .unwrap_or_default(), + spec + .secrets + .map(|secret| { + secret + .into_iter() + .filter_map(|secret| secret.secret_name) + .collect::>() + }) + .unwrap_or_default(), + ) + }) + }) + .unwrap_or_default(); SwarmTaskListItem { id: task.id, name: task.name, @@ -61,6 +88,8 @@ fn convert_task_list_item( container_id, state, desired_state: task.desired_state.map(convert_task_state), + configs, + secrets, created_at: task.created_at, updated_at: task.updated_at, } diff --git a/client/core/rs/src/entities/docker/task.rs b/client/core/rs/src/entities/docker/task.rs index 0e00df6d1..121112467 100644 --- a/client/core/rs/src/entities/docker/task.rs +++ b/client/core/rs/src/entities/docker/task.rs @@ -35,6 +35,14 @@ pub struct SwarmTaskListItem { #[serde(rename = "DesiredState")] pub desired_state: Option, + /// Attached config names + #[serde(rename = "Configs")] + pub configs: Vec, + + /// Attached secret names + #[serde(rename = "Secrets")] + pub secrets: Vec, + #[serde(rename = "CreatedAt")] pub created_at: Option, diff --git a/client/core/ts/src/types.ts b/client/core/ts/src/types.ts index beac115cf..be58daf9e 100644 --- a/client/core/ts/src/types.ts +++ b/client/core/ts/src/types.ts @@ -4256,6 +4256,10 @@ export interface SwarmTaskListItem { ContainerID?: string; State?: TaskState; DesiredState?: TaskState; + /** Attached config names */ + Configs: string[]; + /** Attached secret names */ + Secrets: string[]; CreatedAt?: string; UpdatedAt?: string; } diff --git a/frontend/public/client/types.d.ts b/frontend/public/client/types.d.ts index 87edfefc1..e9f10dc73 100644 --- a/frontend/public/client/types.d.ts +++ b/frontend/public/client/types.d.ts @@ -4246,6 +4246,10 @@ export interface SwarmTaskListItem { ContainerID?: string; State?: TaskState; DesiredState?: TaskState; + /** Attached config names */ + Configs: string[]; + /** Attached secret names */ + Secrets: string[]; CreatedAt?: string; UpdatedAt?: string; } diff --git a/frontend/src/pages/swarm/task.tsx b/frontend/src/pages/swarm/task.tsx index bfb6b1a8e..38c5ca661 100644 --- a/frontend/src/pages/swarm/task.tsx +++ b/frontend/src/pages/swarm/task.tsx @@ -23,7 +23,7 @@ import { stroke_color_class_by_intention, swarm_state_intention, } from "@lib/color"; -import { ReactNode, useMemo } from "react"; +import { Fragment, ReactNode, useMemo } from "react"; import { MobileFriendlyTabsSelector } from "@ui/mobile-friendly-tabs"; import { SwarmServiceLogs } from "./log"; import { Section } from "@components/layouts"; @@ -124,6 +124,28 @@ export default function SwarmTaskPage() { resource_id={service?.ID} name={service?.Name} /> + {task?.Configs.map((config) => ( + + | + + + ))} + {task?.Secrets.map((secret) => ( + + | + + + ))}