PageSourceSearch

https://zop.dev/zopnight/app/assets/DeploymentsPage-BK5U6uz_.js

js zop.dev collected 2026-09-25 14:34:09 UTC 17,771 bytes, 2 lines download raw bytes

1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/K8sLogViewer-BSXvWtLv.js","assets/react-vendor-CSsSSEML.js","assets/index-BVsjb7mB.js","assets/tanstack-vendor-D2LStv3_.js","assets/sentry-vendor-DQkRq1-W.js","assets/index-5XzA6R5n.css"])))=>i.map(i=>d[i]);
2import{f as Y,a1 as G,a8 as J,ab as q,ac as Q,S as X,E as ee,P as se,a9 as te,aa as ae,a5 as ne,D as re,_ as le}from"./index-BVsjb7mB.js";import{p as ie,u as W,f as ce,r as x,j as e}from"./react-vendor-CSsSSEML.js";import{D as oe}from"./DataTable-CQvcDxIv.js";import{E as de}from"./ErrorState-CE1mnLGb.js";import{T as U,h as z}from"./GenericResourcePage-ChmNpngD.js";import{P as me}from"./Pagination-BnDSIG0w.js";import{L as xe}from"./LiveBadge-Dqdxs81d.js";import{R as pe}from"./ResourceSearchInput-C7e3zrsg.js";import{p as B,a as O,C as K}from"./ContainerResourceChart-Dj-26_5p.js";import{g as ue}from"./tanstack-vendor-D2LStv3_.js";import"./sentry-vendor-DQkRq1-W.js";import"./useDebouncedValue-x0dK07ix.js";import"./recharts-vendor-Bx3e4fJd.js";(function(){try{var s=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};s.SENTRY_RELEASE={id:"33b2f1a2eb67da61a8a79f4c3c0fca45c630c2e5"};var l=new s.Error().stack;l&&(s._sentryDebugIds=s._sentryDebugIds||{},s._sentryDebugIds[l]="991356f2-2251-4258-8f1b-799709f03545",s._sentryDebugIdIdentifier="sentry-dbid-991356f2-2251-4258-8f1b-799709f03545")}catch{}})();const he=x.lazy(()=>le(()=>import("./K8sLogViewer-BSXvWtLv.js"),__vite__mapDeps([0,1,2,3,4,5])));function Z({min:s,current:l,max:i}){if(s===i)return e.jsx("span",{className:"text-xs font-mono font-semibold text-primary-600",children:l});const R=i-s,y=Math.max(0,Math.min(100,(l-s)/R*100)),d=l>=i,j=l<=s,p=10,C=`calc(${y}% + ${(.5-y/100)*p}px - ${p/2}px)`,o=d?"bg-danger-500":"bg-primary-600";return e.jsxs("div",{className:"w-28",title:`current ${l} · min ${s} · max ${i}`,children:[e.jsx("div",{className:"relative h-1.5 bg-primary-200/60 rounded",children:e.jsx("div",{className:`absolute top-1/2 -translate-y-1/2 rounded-full ${o} border border-white shadow`,style:{left:C,width:p,height:p}})}),e.jsxs("div",{className:"relative h-3 mt-1 font-mono text-[10px]",children:[e.jsx("span",{className:`absolute left-0 ${j?"font-semibold text-primary-600":"text-text-muted"}`,children:s}),!j&&!d&&e.jsx("span",{className:"absolute -translate-x-1/2 font-semibold text-primary-600",style:{left:`${y}%`},children:l}),e.jsx("span",{className:`absolute right-0 ${d?"font-semibold text-danger-600":"text-text-muted"}`,children:i})]})]})}function $({label:s,children:l}){return e.jsxs("div",{className:"bg-surface-secondary rounded px-3 py-2.5",children:[e.jsx("span",{className:"text-[10px] uppercase tracking-wider text-text-muted font-medium block mb-0.5",children:s}),e.jsx("div",{className:"text-sm font-medium text-text-primary",children:l})]})}function ge({deployment:s,clusterResId:l,clusterId:i,clusterUid:R,onClose:y}){const d=s._hpa,j=W(),[p,C]=x.useState(null),o=s.name||s.Name||"",S=s.namespace||s.Namespace||"",{data:L}=te(l,S),H=ae(l,R),N=x.useMemo(()=>{const a=L?.items??[],n=s.selector??s.Selector??s.matchLabels??{},m=n.matchLabels??n,f=Object.entries(m);return f.length===0?a.filter(c=>{const h=c.name||c.Name||"";return h.startsWith(o+"-")&&h.slice(o.length+1).includes("-")}):a.filter(c=>{const h=c.labels||c.Labels||{};return f.every(([t,r])=>h[t]===r)})},[L,o,s]),{data:k}=ne(l,S),_=x.useMemo(()=>(k?.items??(Array.isArray(k)?k:[])).filter(n=>n.object?.includes(o)),[k,o]),I=s.readyReplicas??s.ReadyReplicas??0,v=s.replicas??s.Replicas??0,E=`${I}/${v}`,P=s.updatedReplicas??s.UpdatedReplicas??v,u=s.availableReplicas??s.AvailableReplicas??v,M=z(s.creationTime||s.CreationTime),D=s.strategy??s.Strategy??"RollingUpdate",T=s.conditions??s.Conditions??[],V=s.selector??s.Selector??{};return e.jsxs(e.Fragment,{children:[e.jsx(re,{open:!0,onClose:y,title:o||"Deployment",half:!0,children:e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{className:"text-xs text-text-muted",children:S}),e.jsx("div",{className:"flex items-center gap-2",children:e.jsxs("button",{onClick:()=>C(!0),className:"inline-flex items-center gap-1.5 px-2.5 py-1.5 text-xs font-medium rounded-md bg-surface-tertiary text-text-primary border border-border hover:bg-surface-elevated hover:border-primary-600/20 transition-colors",children:[e.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16",fill:"currentColor",className:"w-3.5 h-3.5",children:e.jsx("path",{fillRule:"evenodd",d:"M2 3.75A.75.75 0 0 1 2.75 3h10.5a.75.75 0 0 1 0 1.5H2.75A.75.75 0 0 1 2 3.75ZM2 7.75A.75.75 0 0 1 2.75 7h10.5a.75.75 0 0 1 0 1.5H2.75A.75.75 0 0 1 2 7.75ZM2 11.75a.75.75 0 0 1 .75-.75h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1-.75-.75Z",clipRule:"evenodd"})}),"Logs"]})})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[e.jsx($,{label:"Ready",children:e.jsx("span",{className:"font-mono",children:E})}),e.jsx($,{label:"Replicas",children:e.jsx("span",{className:"font-mono",children:v})}),e.jsx($,{label:"Up-to-date",children:e.jsx("span",{className:"font-mono",children:P})}),e.jsx($,{label:"Available",children:e.jsx("span",{className:"font-mono",children:u})}),e.jsx($,{label:"Age",children:M}),e.jsx($,{label:"Strategy",children:D})]}),d&&e.jsxs("div",{className:"bg-primary-50 border border-primary-200 rounded-lg p-3",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",className:"text-primary-700",children:e.jsx("polyline",{points:"22 12 18 12 15 21 9 3 6 12 2 12"})}),e.jsx("span",{className:"text-[10px] font-semibold text-primary-800 uppercase tracking-wide",children:"Autoscaled by HPA"}),e.jsxs("button",{onClick:()=>j(`/k8s/clusters/${i}/hpa`),className:"text-xs font-mono text-primary-700 hover:underline inline-flex items-center gap-1",children:[d.targetRef||"HPA",e.jsxs("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",className:"opacity-70",children:[e.jsx("path",{d:"M18 13v6a2 2 0 01-2 2H5a2 2 0 01-2-2V8a2 2 0 012-2h6"}),e.jsx("polyline",{points:"15 3 21 3 21 9"}),e.jsx("line",{x1:"10",y1:"14",x2:"21",y2:"3"})]})]})]}),e.jsx(Z,{min:d.minReplicas??1,current:v,max:d.maxReplicas??10})]}),e.jsxs("div",{children:[e.jsx("h4",{className:"text-sm font-semibold text-text-primary mb-2",children:"Running Pods"}),N.length>0?e.jsx("div",{className:"space-y-4",children:N.map(a=>e.jsxs("div",{className:"border-l-2 border-border pl-3",children:[e.jsxs("button",{onClick:()=>j(`/k8s/clusters/${i}/pods?ns=${a.namespace}`),className:"text-xs font-mono text-primary-600 hover:underline inline-flex items-center gap-1 mb-2",children:[a.name,e.jsxs("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",className:"opacity-60",children:[e.jsx("path",{d:"M18 13v6a2 2 0 01-2 2H5a2 2 0 01-2-2V8a2 2 0 012-2h6"}),e.jsx("polyline",{points:"15 3 21 3 21 9"}),e.jsx("line",{x1:"10",y1:"14",x2:"21",y2:"3"})]})]}),e.jsx("div",{className:"space-y-2",children:(a.containers??[]).map(n=>{const m=H[`${a.namespace}/${a.name}/${n.name}`],f=B(n.cpuRequest),c=B(n.cpuLimit),h=O(n.memoryRequest),t=O(n.memoryLimit),r=m?.cpu
2UsageMillis||0,g=m?.memoryUsageBytes||0,b=n.stateReason||n.state||"unknown",w=n.ready;return e.jsxs("div",{className:"bg-surface-secondary rounded-lg p-2.5",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2 min-w-0 flex-1",children:[e.jsx("span",{className:`w-2 h-2 rounded-full shrink-0 ${w?"bg-success-500":"bg-warning-500"}`}),e.jsx("span",{className:"text-xs font-medium text-text-primary",children:n.name}),n.image&&e.jsx("span",{className:"text-[10px] text-text-muted font-mono truncate",children:n.image}),n.restartCount>0&&e.jsxs("span",{className:"text-[10px] text-text-muted",children:["↻",n.restartCount]})]}),e.jsx("span",{className:`px-1.5 py-0.5 rounded text-[10px] font-medium shrink-0 ml-2 ${w?"bg-success-100 text-success-700":"bg-warning-100 text-warning-700"}`,children:b})]}),e.jsxs("div",{className:"mt-2 grid grid-cols-2 gap-3",children:[e.jsxs("div",{children:[e.jsx("span",{className:"text-[9px] uppercase tracking-wider text-text-muted font-medium",children:"CPU"}),e.jsx(K,{label:"CPU",request:f,limit:c,usage:r,requestLabel:n.cpuRequest||void 0,limitLabel:n.cpuLimit||void 0})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-[9px] uppercase tracking-wider text-text-muted font-medium",children:"Memory"}),e.jsx(K,{label:"Mem",request:h,limit:t,usage:g,requestLabel:n.memoryRequest||void 0,limitLabel:n.memoryLimit||void 0})]})]})]},n.name)})})]},a.name))}):e.jsx("p",{className:"text-xs text-text-muted",children:"No running pods"})]}),Object.keys(V).length>0&&e.jsxs("div",{children:[e.jsx("h4",{className:"text-sm font-semibold text-text-primary mb-2",children:"Selector"}),e.jsx("div",{className:"border border-border rounded overflow-hidden",children:e.jsx("table",{className:"w-full text-xs",children:e.jsx("tbody",{children:Object.entries(V).map(([a,n],m)=>e.jsxs("tr",{className:m%2?"bg-surface-secondary/30":"",children:[e.jsx("td",{className:"px-3 py-2 font-mono text-text-primary",children:a}),e.jsx("td",{className:"py-2 text-text-muted w-4 text-center",children:"|"}),e.jsx("td",{className:"px-3 py-2 text-text-secondary",children:String(n)})]},a))})})})]}),T.length>0&&e.jsxs("div",{children:[e.jsx("h4",{className:"text-sm font-semibold text-text-primary mb-3",children:"Conditions"}),e.jsx("div",{className:"space-y-4",children:T.map((a,n)=>{const m=(a.Status||a.status)==="True",f=a.Type||a.type||"",c=a.Reason||a.reason||"",h=a.Message||a.message||"";return e.jsxs("div",{className:`border-l-[3px] pl-3 py-1 ${m?"border-success-500":"border-warning-500"}`,children:[e.jsxs("div",{className:"flex items-baseline gap-2",children:[e.jsx("span",{className:`text-sm font-semibold ${m?"text-success-600":"text-warning-600"}`,children:f}),e.jsx("span",{className:"text-xs text-text-muted italic",children:c})]}),h&&e.jsx("p",{className:"text-sm text-text-secondary mt-0.5",children:h})]},n)})})]}),e.jsxs("div",{children:[e.jsx("h4",{className:"text-sm font-semibold text-text-primary mb-2",children:"Events"}),_.length>0?e.jsx("div",{className:"space-y-2",children:_.map((a,n)=>e.jsxs("div",{className:`border-l-2 pl-3 py-1.5 ${a.type==="Warning"?"border-warning-400":"border-success-400"}`,children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:`text-xs font-medium ${a.type==="Warning"?"text-warning-700":"text-success-700"}`,children:a.reason}),a.count>1&&e.jsxs("span",{className:"text-xs text-text-muted",children:["x",a.count]})]}),a.message&&e.jsx("p",{className:"text-xs text-text-secondary mt-0.5",children:a.message})]},n))}):e.jsx("p",{className:"text-xs text-text-muted",children:"No events"})]})]})}),p&&e.jsx(x.Suspense,{fallback:null,children:e.jsx(he,{resourceId:l,clusterUid:R,workloadName:o,pods:N,onClose:()=>C(null)})})]})}const A=ue();function Pe(){const{cluster:s,namespace:l,clusterResId:i}=ie(),R=Y(se.RESOURCE_DELETE)&&!G(s),y=W(),[d]=ce(),j=window.location.pathname.match(/\/k8s\/clusters\/([^/]+)/)?.[1],[p,C]=x.useState(""),{page:o,currentToken:S,goNext:L,goPrev:H}=J([l,p]),{data:N,isLoading:k,isError:_,error:I,refetch:v}=q(i,"deployment",l,{continue:S,search:p}
2),[E,P]=x.useState(null),[u,M]=x.useState(null),D=Q(),[T,V]=x.useState([]),a=N?.hasMore??!1,n=N?.continue??"",{data:m}=q(i,"hpa",l,{interval:6e4,staleTime:3e4}),f=x.useMemo(()=>{const t={};for(const r of m?.items??[])if((r.targetKind||r.TargetKind)==="Deployment"){const g=r.namespace||r.Namespace||"",b=r.targetRef||r.TargetRef||"";t[`${g}/${b}`]=r}return t},[m]),c=x.useMemo(()=>(N?.items??[]).map(r=>{const g=r.namespace||r.Namespace||"",b=r.name||r.Name||"",w=f[`${g}/${b}`]||null;return{...r,_hpa:w}}),[N,f]),h=x.useMemo(()=>[A.accessor(t=>t.name||t.Name||"",{id:"name",header:"Name",meta:{sortable:!0},enableSorting:!0,cell:t=>e.jsx(U,{className:"font-medium text-text-primary",maxW:"max-w-[220px]",children:t.getValue()})}),A.accessor(t=>t.namespace||t.Namespace||"",{id:"namespace",header:"Namespace",meta:{sortable:!0},enableSorting:!0,cell:t=>e.jsx(U,{className:"text-text-secondary",children:t.getValue()})}),A.accessor(t=>`${t.readyReplicas??t.ReadyReplicas??0}/${t.replicas??t.Replicas??0}`,{id:"ready",header:"Ready",cell:t=>{const[r,g]=t.getValue().split("/"),b=r===g&&g!=="0";return e.jsxs("span",{className:"inline-flex items-center gap-1.5 text-xs font-mono",children:[t.getValue(),e.jsx("span",{className:`w-2 h-2 rounded-full ${b?"bg-success-500":"bg-warning-500"}`})]})}}),A.display({id:"replicasHPA",header:"Replicas / HPA",cell:({row:t})=>{const r=t.original;if(r._hpa){const g=r._hpa.minReplicas??r._hpa.MinReplicas??1,b=r._hpa.currentReplicas??r._hpa.CurrentReplicas??r.replicas??r.Replicas??0,w=r._hpa.maxReplicas??r._hpa.MaxReplicas??10;return e.jsxs("div",{className:"inline-flex items-center gap-1.5 cursor-pointer rounded px-1 -mx-1 py-0.5 hover:bg-primary-50",onClick:F=>{F.stopPropagation(),y(`/k8s/clusters/${j}/hpa${d.get("ns")?`?ns=${d.get("ns")}`:""}`)},title:`Autoscaled by HPA (min ${g} · max ${w}). Click to view.`,children:[e.jsx(Z,{min:g,current:b,max:w}),e.jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",className:"text-text-muted opacity-60 shrink-0",children:[e.jsx("path",{d:"M18 13v6a2 2 0 01-2 2H5a2 2 0 01-2-2V8a2 2 0 012-2h6"}),e.jsx("polyline",{points:"15 3 21 3 21 9"}),e.jsx("line",{x1:"10",y1:"14",x2:"21",y2:"3"})]})]})}return e.jsx("span",{className:"text-xs font-mono text-text-secondary",children:r.replicas??r.Replicas??0})}}),A.accessor(t=>z(t.creationTime||t.CreationTime),{id:"age",header:"Age",meta:{sortable:!0},enableSorting:!0,cell:t=>e.jsx(U,{className:"text-text-secondary",children:t.getValue()})})],[f,j,y,d]);return e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("h2",{className:"text-sm font-semibold text-text-primary",children:["Deployments ",e.jsxs("span",{className:"text-text-muted font-normal",children:["(",c.length,")"]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(pe,{onChange:C,placeholder:"Search deployments…"}),e.jsx(xe,{})]})]}),k?e.jsx("div",{className:"flex justify-center py-16",children:e.jsx(X,{})}):_?e.jsx(de,{error:I,onRetry:v}):c.length===0?e.jsx(ee,{message:p?`No deployments match “${p}”.`:"No deployments in the selected namespace."}):e.jsx(oe,{data:c,columns:h,onRowClick:t=>P(t),sorting:T,onSortingChange:V,manualSorting:!1,rowActions:t=>[{label:"Details",onClick:()=>P(t)},...R?[{label:"Delete",onClick:()=>M(t),variant:"danger"}]:[]]}),(o>1||a)&&e.jsx(me,{page:o,hasMore:a,count:c.length,pageSize:50,label:"deployments",onPageChange:t=>t>o?L(n):H()}),E&&e.jsx(ge,{deployment:E,clusterResId:i,clusterId:j,clusterUid:s?.uid,onClose:()=>P(null)}),u&&e.jsxs("div",{className:"fixed inset-0 z-[200] flex items-center justify-center",children:[e.jsx("div",{className:"absolute inset-0 bg-black/50 backdrop-blur-sm",onClick:()=>M(null)}),e.jsxs("div",{className:"relative bg-surface-elevated rounded-xl shadow-xl w-full max-w-md p-6 animate-fade-in",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[e.jsx("div",{className:"w-10 h-10 rounded-full bg-danger-50 flex items-center justify-center shrink-0",children:e.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",className:"w-5 h-5 text-danger-500",children:e.jsx("path",{fillRule:"evenodd",d:"M8.75 1A2.75 2.75 0 006 3.75v.443
2c-.795.077-1.584.176-2.365.298a.75.75 0 10.23 1.482l.149-.022.841 10.518A2.75 2.75 0 007.596 19h4.807a2.75 2.75 0 002.742-2.53l.841-10.52.149.023a.75.75 0 00.23-1.482A41.03 41.03 0 0014 4.193V3.75A2.75 2.75 0 0011.25 1h-2.5zM10 4c.84 0 1.673.025 2.5.075V3.75c0-.69-.56-1.25-1.25-1.25h-2.5c-.69 0-1.25.56-1.25 1.25v.325C8.327 4.025 9.16 4 10 4zM8.58 7.72a.75.75 0 00-1.5.06l.3 7.5a.75.75 0 101.5-.06l-.3-7.5zm4.34.06a.75.75 0 10-1.5-.06l-.3 7.5a.75.75 0 101.5.06l.3-7.5z",clipRule:"evenodd"})})}),e.jsxs("div",{children:[e.jsxs("h3",{className:"text-base font-semibold text-text-primary",children:["Delete ",u.name||u.Name,"?"]}),e.jsx("p",{className:"text-sm text-text-secondary mt-0.5",children:"This will permanently delete the deployment from the cluster. This action cannot be undone."})]})]}),e.jsxs("div",{className:"flex items-center gap-2 bg-surface-secondary rounded-lg px-3 py-2 mb-5 text-xs",children:[e.jsx("span",{className:"text-text-muted",children:"Kind:"})," ",e.jsx("span",{className:"font-medium",children:"Deployment"}),e.jsx("span",{className:"text-text-muted ml-2",children:"Namespace:"})," ",e.jsx("span",{className:"font-medium",children:u.namespace||u.Namespace||"default"})]}),e.jsxs("div",{className:"flex justify-end gap-3",children:[e.jsx("button",{onClick:()=>M(null),className:"px-4 py-2 text-sm font-medium text-text-primary bg-surface-tertiary rounded-lg hover:bg-surface-secondary transition-colors",children:"Cancel"}),e.jsx("button",{onClick:async()=>{await D.mutateAsync({clusterResId:i,kind:"deployment",namespace:u.namespace||u.Namespace||"",name:u.name||u.Name||"",provider:s?.provider,region:s?.region,cloudAccountId:s?.cloudAccountId,clusterName:s?.name,clusterUid:s?.uid}),M(null)},disabled:D.isPending,className:"px-4 py-2 text-sm font-medium text-white bg-danger-500 rounded-lg hover:bg-danger-600 disabled:opacity-50 transition-colors",children:D.isPending?"Deleting...":"Delete"})]})]})]})]})}export{Pe as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.