UNPKG

@cardonexinc/freelens-argo-rollouts-extension

Version:
68 lines (67 loc) 4.27 kB
"use strict"; Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const react_jsxRuntime = require("../_virtual/react_jsx-runtime.js"); const _freelensapp_extensions = require("../_virtual/@freelensapp_extensions.js"); const mobxReact = require("../_virtual/mobx-react.js"); const react = require("../_virtual/react.js"); const argoRolloutsStore = require("../src/common/store/argo-rollouts-store.js"); const errorPage = require("../components/error-page.js"); const { Component: { DrawerItem, DrawerTitle, KubeObjectListLayout, KubeObjectAge } } = _freelensapp_extensions._freelensapp_extensionsExports.Renderer; function getDashboardUrl(baseUrl, namespace, rolloutName) { return `${baseUrl}/rollouts/rollout/${namespace}/${rolloutName}`; } const ArgoRolloutDetails = mobxReact.mobxReactExports.observer((props) => { const [preferencesStore, _setPreferencesStore] = react.reactExports.useState(argoRolloutsStore.ArgoRolloutsPreferencesStore.getInstanceOrCreate()); const clusterId = window.location.hostname.split(".")[0]; const { object: argoRollout } = props; return errorPage.withErrorPage(props, () => { const podsStore = _freelensapp_extensions._freelensapp_extensionsExports.Renderer.K8sApi.apiManager.getStore("/api/v1/pods"); const baseUrl = preferencesStore.getDashboardUrl(clusterId); console.log("[ARGO-ROLLOUTS-DRAWER] baseUrl", baseUrl); return /* @__PURE__ */ react_jsxRuntime.react_jsxRuntimeExports.jsxs(react_jsxRuntime.react_jsxRuntimeExports.Fragment, { children: [ argoRollout.metadata.annotations?.["rollout.argoproj.io/revision"] && /* @__PURE__ */ react_jsxRuntime.react_jsxRuntimeExports.jsx(DrawerItem, { name: "Revision", children: argoRollout.metadata.annotations["rollout.argoproj.io/revision"] || "N/A" }), argoRollout.status?.currentPodHash && /* @__PURE__ */ react_jsxRuntime.react_jsxRuntimeExports.jsx(DrawerItem, { name: "Current Pod Hash", children: argoRollout.status.currentPodHash || "N/A" }), argoRollout.status?.phase && /* @__PURE__ */ react_jsxRuntime.react_jsxRuntimeExports.jsx(DrawerItem, { name: "Phase", children: argoRollout.status.phase || "N/A" }), baseUrl && /* @__PURE__ */ react_jsxRuntime.react_jsxRuntimeExports.jsx(DrawerItem, { name: "Rollouts Dashboard", children: /* @__PURE__ */ react_jsxRuntime.react_jsxRuntimeExports.jsx("a", { href: getDashboardUrl(baseUrl, argoRollout?.getNs() ?? "", argoRollout?.metadata?.name ?? ""), target: "_blank", rel: "noopener noreferrer", children: argoRollout.metadata.name }) }), /* @__PURE__ */ react_jsxRuntime.react_jsxRuntimeExports.jsx(DrawerTitle, { children: "Pods" }), /* @__PURE__ */ react_jsxRuntime.react_jsxRuntimeExports.jsx(KubeObjectListLayout, { tableId: "argoRolloutPodsTable", className: "argoRolloutPods", store: podsStore, getItems: () => { return podsStore.getAllByNs(argoRollout?.getNs() ?? "default").filter((pod) => { const labels = pod.metadata.labels || {}; return labels["rollouts-pod-template-hash"] === argoRollout.status?.currentPodHash && argoRollout.spec.selector?.matchLabels && Object.entries(argoRollout.spec.selector.matchLabels).every(([key, value]) => labels[key] === value); }); }, isConfigurable: false, showHeader: false, sortingCallbacks: { name: (pod) => pod.getName(), namespace: (pod) => pod.getNs() }, searchFilters: [(pod) => pod.getSearchFields()], renderHeaderTitle: "Pods", renderTableHeader: [{ title: "Name", sortBy: "name" }, { title: "Ready", sortBy: "ready" }, { title: "Status", sortBy: "status" }, { title: "Restarts", sortBy: "restarts" }, { title: "Age", sortBy: "age" }], renderTableContents: (pod) => { let realPod = pod; return [realPod.getName(), `${realPod.getRunningContainers().length} / ${realPod.getContainers().length}`, realPod.getStatus(), realPod.getRestartsCount(), /* @__PURE__ */ react_jsxRuntime.react_jsxRuntimeExports.jsx(KubeObjectAge, { object: realPod }, "age")]; } }) ] }); }); }); exports.ArgoRolloutDetails = ArgoRolloutDetails; //# sourceMappingURL=argo-rollout-details.js.map