@cardonexinc/freelens-argo-rollouts-extension
Version:
Argo Rollouts extension for Freelens
68 lines (67 loc) • 4.27 kB
JavaScript
;
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