Files
aiops/backend/static/assets/k8s-yaml-utils-4KZB_Bq_.js
T
Logan.Li 1fd9a631e5 chore(build): 更新 embed 前端静态资源
同步 ./run.sh build 产出的 backend/static 哈希资源与 index.html。
2026-06-26 16:22:57 +08:00

9 lines
5.7 KiB
JavaScript

function F(r){if(!r)return"";const n=r.replace(/\r\n/g,`
`).split(`
`),o=[];let e=0;const w=new Set(["uid","resourceVersion","creationTimestamp","generation","selfLink","clusterName","generateName","deletionTimestamp"]),L=new Set(["managedFields","ownerReferences","finalizers"]),h={dnsPolicy:["ClusterFirst"],restartPolicy:["Always"],schedulerName:["default-scheduler"],terminationGracePeriodSeconds:["30"],serviceAccountName:["default"],enableServiceLinks:["true"],automountServiceAccountToken:["true"],progressDeadlineSeconds:["600"],revisionHistoryLimit:["10"],sessionAffinity:["None"],externalTrafficPolicy:["Cluster"],internalTrafficPolicy:["Cluster"],ipFamilyPolicy:["SingleStack"],allocateLoadBalancerNodePorts:["true"],preemptionPolicy:["PreemptLowerPriority"],priority:["0"]},C={imagePullPolicy:["Always","IfNotPresent"],terminationMessagePath:["/dev/termination-log"],terminationMessagePolicy:["File"],stdin:["false"],tty:["false"],stdinOnce:["false"]},_=new Set(["clusterIP","clusterIPs","ipFamilies","healthCheckNodePort"]),D=new Set(["kubectl.kubernetes.io/last-applied-configuration","kubectl.kubernetes.io/change-cause","deployment.kubernetes.io/revision","deployment.kubernetes.io/desired-replicas","deployment.kubernetes.io/max-replicas","kubectl.kubernetes.io/restartedAt","control-plane.alpha.kubernetes.io/leader","autoscaling.alpha.kubernetes.io/conditions","kubernetes.io/config.hash","pv.kubernetes.io/bind-completed","pv.kubernetes.io/bound-by-controller"]),W=new Set(["pod-template-hash","controller-revision-hash"]),R=["kube-api-access-","default-token-","kube-"];let A=!1,p=!1,I=!1,T=!1,g=!1,S=!1,E=!1,N=!1,M=0;function m(s){return s.length-s.trimStart().length}function P(s){const l=s.trimStart().match(/^([a-zA-Z_][a-zA-Z0-9_./-]*)\s*:/);return l?l[1]:null}function b(s){const l=s.trim().split(":").slice(1).join(":").trim();return l!==""&&!/^[>|]/.test(l)}function d(s){for(e++;e<n.length;){const l=n[e],i=l.trimStart();if(i===""||i.startsWith("#")){e++;continue}if(m(l)<=s)break;e++}}function $(s){const l=P(s);return l?R.some(i=>l.startsWith(i)):!1}for(;e<n.length;){const s=n[e],l=s.trimStart(),i=m(s),t=P(s);if(l===""||l.startsWith("#")){o.push(s),e++;continue}if(i===0&&t==="status"){d(0);continue}if(i===0&&t==="metadata"){A=!0,o.push(s),e++;continue}if(i===0&&t!=="metadata"&&(A=!1,p=!1),i===0&&t==="spec"){I=!0,o.push(s),e++;continue}if(i===0&&t!=="spec"&&(I=!1,T=!1,g=!1,S=!1,N=!1),A){if(i===2&&t==="annotations"){p=!0,o.push(s),e++;continue}if(i<=2&&t!=="annotations"&&(p=!1),i>=2&&i<=4){const a=P(s);if(a&&W.has(a)){e++;continue}}if(i===2&&t&&w.has(t)){b(s)?e++:d(2);continue}if(i===2&&t&&L.has(t)){for(e++;e<n.length;){const a=n[e],u=a.trimStart();if(u===""||u.startsWith("#")){e++;continue}const f=m(a);if(f>2||f===2&&u.startsWith("-")){e++;continue}break}continue}if(p&&i>2&&t&&D.has(t)){if(b(s))e++;else{const a=l.split(":").slice(1).join(":").trim();/^[>|]/.test(a)?d(i):e++}continue}}if(I){if(i===2&&t==="template"){o.push(s),e++;continue}if(i===2&&t){if(_.has(t)){b(s)?e++:d(i);continue}if(h[t]){const c=l.split(":").slice(1).join(":").trim();if(h[t].includes(c)){e++;continue}}}if(i===2&&t==="nodeName"){e++;continue}if(i===2&&t==="strategy"){const c=[];let a=e;for(;a<n.length;){const k=n[a],v=k.trimStart();if(v===""||v.startsWith("#")){c.push(k),a++;continue}if(a>e&&m(k)<=i)break;c.push(k),a++}const u=c.join(`
`);if(u.includes("type: RollingUpdate")&&(u.includes("maxUnavailable: 25%")||u.includes("maxUnavailable: 0"))&&(u.includes("maxSurge: 25%")||u.includes("maxSurge: 1"))){e=a;continue}}if(i===2&&t==="spec"){T=!0,M=i,o.push(s),e++;continue}}if(T&&i>M){if(t==="containers"){g=!0,S=!1,o.push(s),e++;continue}if(t==="initContainers"){S=!0,g=!1,o.push(s),e++;continue}if(t==="volumes"){N=!0,o.push(s),e++;continue}if(t&&h[t]){const c=l.split(":").slice(1).join(":").trim();if(h[t].includes(c)){e++;continue}}if(t==="nodeName"){e++;continue}if(t==="serviceAccount"&&l.endsWith(":")){b(s)?e++:d(i);continue}}if((g||S)&&i>=6){if(t&&C[t]){const c=l.split(":").slice(1).join(":").trim();if(C[t].includes(c)){e++;continue}}if(t==="volumeMounts"&&(E=!0),E&&l.startsWith("- name:")){let c=[s],a=e+1,u=!1;for(;a<n.length;){const f=n[a].trimStart();if(f===""||f.startsWith("#")){c.push(n[a]),a++;continue}if(m(n[a])<=i)break;x(f)&&(u=!0),c.push(n[a]),a++}if(u){e=a;continue}E=!1}}if(N&&i>=4&&l.startsWith("- name:")&&$(l)){const c=i;for(e++;e<n.length;){const a=n[e],u=a.trimStart();if(u===""||u.startsWith("#")){e++;continue}if(m(a)<=c)break;e++}continue}if(l===""&&o.length>0&&o[o.length-1].trim()===""){e++;continue}o.push(s),e++}return o.join(`
`).replace(/\n{3,}/g,`
`).trimEnd()+`
`}function x(r){return r.includes("mountPath:")&&(r.includes("/var/run/secrets/kubernetes.io")||r.includes("/var/run/secrets/sa"))}const y={green:"#10b981",orange:"#f59e0b",red:"#ef4444",blue:"#326CE5"};function O(r){if(!r)return"#64748b";const n=r.toLowerCase();return["running","available","ready","active","completed","succeeded"].includes(n)?y.green:["pending","updating","progressing","containercreating"].includes(n)?y.orange:["failed","error","crashloopbackoff","imagepullbackoff","errimageneverpull"].includes(n)?y.red:y.blue}function K(r){if(!r)return"-";const n=new Date(r);if(isNaN(n.getTime()))return r;const o=e=>String(e).padStart(2,"0");return`${n.getFullYear()}-${o(n.getMonth()+1)}-${o(n.getDate())} ${o(n.getHours())}:${o(n.getMinutes())}:${o(n.getSeconds())}`}function U(r,n){if(!r||!n)return null;const o=new Date(r).getTime(),e=new Date(n).getTime();return isNaN(o)||isNaN(e)||e<o?null:Math.max(0,Math.round((e-o)/1e3))}function V(r){if(r==null)return"-";if(r<60)return`${r}s`;if(r<3600)return`${Math.floor(r/60)}m${r%60}s`;const n=Math.floor(r/3600),o=Math.floor(r%3600/60);return`${n}h${o}m`}export{y as S,V as a,F as c,U as e,K as f,O as s};