diff --git a/deepfence_frontend/apps/dashboard/src/components/forms/SearchableHostList.tsx b/deepfence_frontend/apps/dashboard/src/components/forms/SearchableHostList.tsx index ed0c99f3d0..96e4515cde 100644 --- a/deepfence_frontend/apps/dashboard/src/components/forms/SearchableHostList.tsx +++ b/deepfence_frontend/apps/dashboard/src/components/forms/SearchableHostList.tsx @@ -14,6 +14,7 @@ export type SearchableHostListProps = { valueKey?: 'nodeId' | 'hostName' | 'nodeName'; active?: boolean; agentRunning?: boolean; + showOnlyKubernetesHosts?: boolean; triggerVariant?: 'select' | 'button'; helperText?: string; color?: 'error' | 'default'; @@ -28,6 +29,7 @@ const SearchableHost = ({ valueKey = 'nodeId', active, agentRunning = true, + showOnlyKubernetesHosts, triggerVariant, helperText, color, @@ -54,6 +56,7 @@ const SearchableHost = ({ searchText, active, agentRunning, + showOnlyKubernetesHosts, order: { sortBy: 'host_name', descending: false, diff --git a/deepfence_frontend/apps/dashboard/src/features/topology/data-components/tables/PodsTable.tsx b/deepfence_frontend/apps/dashboard/src/features/topology/data-components/tables/PodsTable.tsx index 291ff47950..25d90a2ba9 100644 --- a/deepfence_frontend/apps/dashboard/src/features/topology/data-components/tables/PodsTable.tsx +++ b/deepfence_frontend/apps/dashboard/src/features/topology/data-components/tables/PodsTable.tsx @@ -137,6 +137,7 @@ function Filters() { { diff --git a/deepfence_frontend/apps/dashboard/src/queries/search.tsx b/deepfence_frontend/apps/dashboard/src/queries/search.tsx index a0adb217a3..a914cbc415 100644 --- a/deepfence_frontend/apps/dashboard/src/queries/search.tsx +++ b/deepfence_frontend/apps/dashboard/src/queries/search.tsx @@ -22,6 +22,7 @@ export const searchQueries = createQueryKeys('search', { size: number; active?: boolean; agentRunning?: boolean; + showOnlyKubernetesHosts?: boolean; order?: { sortBy: string; descending: boolean; @@ -38,7 +39,8 @@ export const searchQueries = createQueryKeys('search', { nodeName: string; }[]; }> => { - const { searchText, size, active, agentRunning, order } = filters; + const { searchText, size, active, agentRunning, showOnlyKubernetesHosts, order } = + filters; const searchSearchNodeReq: SearchSearchNodeReq = { node_filter: { filters: { @@ -48,6 +50,9 @@ export const searchQueries = createQueryKeys('search', { ...(active && { active: [active === true] }), }, }, + not_contains_filter: { + filter_in: {}, + }, order_filter: { order_fields: [ { @@ -88,6 +93,11 @@ export const searchQueries = createQueryKeys('search', { 'agent_running' ] = [agentRunning]; } + if (showOnlyKubernetesHosts) { + searchSearchNodeReq.node_filter.filters.not_contains_filter!.filter_in![ + 'kubernetes_cluster_id' + ] = ['']; + } const searchHostsApi = apiWrapper({ fn: getSearchApiClient().searchHosts, });