@dovetail-v2/refine 0.4.3 → 0.4.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{PodShell-43c7028e.cjs → PodShell-a335b2b2.cjs} +4 -2
- package/dist/{PodShell-76331418.js → PodShell-a6ed3498.js} +4 -2
- package/dist/components/CopyButton/index.d.ts +7 -0
- package/dist/components/ErrorContent/index.d.ts +3 -4
- package/dist/components/FormWidgets/NameInputWidget.d.ts +0 -48
- package/dist/components/IngressRulesComponent/PathWithCopy.d.ts +7 -0
- package/dist/components/ServiceComponents/index.d.ts +10 -0
- package/dist/components/Shell/ShellToolbar.d.ts +1 -1
- package/dist/components/ShowContent/fields.d.ts +4 -0
- package/dist/components/Table/index.d.ts +2 -2
- package/dist/components/index.d.ts +1 -3
- package/dist/contexts/component.d.ts +14 -5
- package/dist/contexts/index.d.ts +1 -0
- package/dist/hooks/useDeleteModal/index.d.ts +1 -0
- package/dist/hooks/useEagleTable/columns.d.ts +5 -4
- package/dist/hooks/useSubmitForm.d.ts +1 -1
- package/dist/hooks/useTableData.d.ts +1 -1
- package/dist/i18n.d.ts +25 -0
- package/dist/{index-31874f77.cjs → index-053ee180.cjs} +1 -1
- package/dist/{index-ab97826a.js → index-d7bc2ee6.js} +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/locales/en-US/index.d.ts +12 -0
- package/dist/locales/zh-CN/index.d.ts +13 -0
- package/dist/models/daemonset-model.d.ts +0 -3
- package/dist/models/statefulset-model.d.ts +0 -3
- package/dist/models/workload-base-model.d.ts +3 -0
- package/dist/models/workload-model.d.ts +3 -0
- package/dist/pages/deployments/form/index.d.ts +2 -1
- package/dist/plugins/model-plugin.d.ts +1 -1
- package/dist/refine.cjs +1175 -1031
- package/dist/refine.js +1178 -1034
- package/dist/shell.cjs +1 -1
- package/dist/shell.js +1 -1
- package/dist/style.css +148 -4
- package/dist/types/resource.d.ts +9 -9
- package/package.json +17 -6
package/dist/refine.cjs
CHANGED
|
@@ -20,6 +20,7 @@ const yaml$2 = require("js-yaml");
|
|
|
20
20
|
const sunflowerAntd = require("sunflower-antd");
|
|
21
21
|
const usehooksTs = require("usehooks-ts");
|
|
22
22
|
const k8sApiProvider = require("k8s-api-provider");
|
|
23
|
+
const copyToClipboard$1 = require("copy-to-clipboard");
|
|
23
24
|
const reactLogViewer = require("@patternfly/react-log-viewer");
|
|
24
25
|
const reactHookForm = require("react-hook-form");
|
|
25
26
|
const monaco = require("monaco-editor");
|
|
@@ -456,6 +457,18 @@ function Trans(_ref) {
|
|
|
456
457
|
...additionalProps
|
|
457
458
|
});
|
|
458
459
|
}
|
|
460
|
+
const add_container$1 = "Add container";
|
|
461
|
+
const container_index$1 = "Container {{index}}";
|
|
462
|
+
const container_name$1 = "Container name";
|
|
463
|
+
const container_image$1 = "Container image";
|
|
464
|
+
const advanced_settings$1 = "Advanced settings";
|
|
465
|
+
const app$1 = {
|
|
466
|
+
add_container: add_container$1,
|
|
467
|
+
container_index: container_index$1,
|
|
468
|
+
container_name: container_name$1,
|
|
469
|
+
container_image: container_image$1,
|
|
470
|
+
advanced_settings: advanced_settings$1
|
|
471
|
+
};
|
|
459
472
|
const copy$1 = "Copy";
|
|
460
473
|
const reset_arguments$1 = "Reset";
|
|
461
474
|
const view_changes$1 = "Show diff";
|
|
@@ -623,7 +636,7 @@ const available_state$1 = "Available";
|
|
|
623
636
|
const bound_state$1 = "Bound";
|
|
624
637
|
const released_state$1 = "Released";
|
|
625
638
|
const failed_state$1 = "Failed";
|
|
626
|
-
const exec_pod = "Execute shell";
|
|
639
|
+
const exec_pod$1 = "Execute shell";
|
|
627
640
|
const search$1 = "Search";
|
|
628
641
|
const edit_label$1 = "Edit label";
|
|
629
642
|
const csi$1 = "CSI driver";
|
|
@@ -736,6 +749,11 @@ const pause_scheduling$1 = "Suspend scheduling";
|
|
|
736
749
|
const port_name$1 = "Port name";
|
|
737
750
|
const target_port_range_limit$1 = "Only integers between 1 and 65535, or strings, are supported.";
|
|
738
751
|
const service_port_name_tip$1 = "When the port count is 1, this field is optional; when it is greater than 1, this field is mandatory.";
|
|
752
|
+
const network_error$1 = "Network error";
|
|
753
|
+
const retry_when_access_data_failed$1 = "Failed to load data. Click to retry.";
|
|
754
|
+
const service$1 = "Service";
|
|
755
|
+
const ingress$1 = "Ingress";
|
|
756
|
+
const fstype$1 = "Filesystem type";
|
|
739
757
|
const dovetail$1 = {
|
|
740
758
|
copy: copy$1,
|
|
741
759
|
reset_arguments: reset_arguments$1,
|
|
@@ -907,7 +925,7 @@ const dovetail$1 = {
|
|
|
907
925
|
bound_state: bound_state$1,
|
|
908
926
|
released_state: released_state$1,
|
|
909
927
|
failed_state: failed_state$1,
|
|
910
|
-
exec_pod,
|
|
928
|
+
exec_pod: exec_pod$1,
|
|
911
929
|
search: search$1,
|
|
912
930
|
edit_label: edit_label$1,
|
|
913
931
|
csi: csi$1,
|
|
@@ -1019,11 +1037,29 @@ const dovetail$1 = {
|
|
|
1019
1037
|
pause_scheduling: pause_scheduling$1,
|
|
1020
1038
|
port_name: port_name$1,
|
|
1021
1039
|
target_port_range_limit: target_port_range_limit$1,
|
|
1022
|
-
service_port_name_tip: service_port_name_tip$1
|
|
1040
|
+
service_port_name_tip: service_port_name_tip$1,
|
|
1041
|
+
network_error: network_error$1,
|
|
1042
|
+
retry_when_access_data_failed: retry_when_access_data_failed$1,
|
|
1043
|
+
service: service$1,
|
|
1044
|
+
ingress: ingress$1,
|
|
1045
|
+
fstype: fstype$1
|
|
1023
1046
|
};
|
|
1024
1047
|
const EN = {
|
|
1048
|
+
app: app$1,
|
|
1025
1049
|
dovetail: dovetail$1
|
|
1026
1050
|
};
|
|
1051
|
+
const add_container = "添加容器";
|
|
1052
|
+
const container_index = "容器 {{index}}";
|
|
1053
|
+
const container_name = "容器名称";
|
|
1054
|
+
const container_image = "容器镜像";
|
|
1055
|
+
const advanced_settings = "高级设置";
|
|
1056
|
+
const app = {
|
|
1057
|
+
add_container,
|
|
1058
|
+
container_index,
|
|
1059
|
+
container_name,
|
|
1060
|
+
container_image,
|
|
1061
|
+
advanced_settings
|
|
1062
|
+
};
|
|
1027
1063
|
const copy = "复制";
|
|
1028
1064
|
const reset_arguments = "重置";
|
|
1029
1065
|
const view_changes = "查看改动";
|
|
@@ -1303,6 +1339,12 @@ const no_labels = "无标签";
|
|
|
1303
1339
|
const no_annotations = "无注解";
|
|
1304
1340
|
const pause_scheduling = "暂停调度";
|
|
1305
1341
|
const service_port_name_tip = "端口数量为 1 时,名称为选填项;大于 1 时,名称为必填项。";
|
|
1342
|
+
const exec_pod = "执行 Shell";
|
|
1343
|
+
const network_error = "网络错误";
|
|
1344
|
+
const retry_when_access_data_failed = "数据加载失败,点击重试。";
|
|
1345
|
+
const service = "服务";
|
|
1346
|
+
const ingress = "Ingress";
|
|
1347
|
+
const fstype = "文件系统类型";
|
|
1306
1348
|
const dovetail = {
|
|
1307
1349
|
copy,
|
|
1308
1350
|
reset_arguments,
|
|
@@ -1585,9 +1627,16 @@ const dovetail = {
|
|
|
1585
1627
|
no_labels,
|
|
1586
1628
|
no_annotations,
|
|
1587
1629
|
pause_scheduling,
|
|
1588
|
-
service_port_name_tip
|
|
1630
|
+
service_port_name_tip,
|
|
1631
|
+
exec_pod,
|
|
1632
|
+
network_error,
|
|
1633
|
+
retry_when_access_data_failed,
|
|
1634
|
+
service,
|
|
1635
|
+
ingress,
|
|
1636
|
+
fstype
|
|
1589
1637
|
};
|
|
1590
1638
|
const ZH = {
|
|
1639
|
+
app,
|
|
1591
1640
|
dovetail
|
|
1592
1641
|
};
|
|
1593
1642
|
const resources = {
|
|
@@ -7319,9 +7368,7 @@ class K8sOpenAPI {
|
|
|
7319
7368
|
return this.schemas;
|
|
7320
7369
|
}
|
|
7321
7370
|
try {
|
|
7322
|
-
const response = await fetch(
|
|
7323
|
-
`${this.pathPrefix}${this.resourceBasePath}`
|
|
7324
|
-
);
|
|
7371
|
+
const response = await fetch(`${this.pathPrefix}${this.resourceBasePath}`);
|
|
7325
7372
|
const result = await response.json();
|
|
7326
7373
|
this.schemas = Object.values(result.components.schemas);
|
|
7327
7374
|
if (this.schemas) {
|
|
@@ -7393,33 +7440,42 @@ function useApiGroupSchema() {
|
|
|
7393
7440
|
loading: false,
|
|
7394
7441
|
error: null
|
|
7395
7442
|
});
|
|
7396
|
-
const fetchSchema = React.useCallback(
|
|
7397
|
-
|
|
7398
|
-
|
|
7399
|
-
|
|
7400
|
-
|
|
7401
|
-
|
|
7402
|
-
|
|
7403
|
-
|
|
7404
|
-
|
|
7405
|
-
|
|
7406
|
-
|
|
7407
|
-
|
|
7408
|
-
|
|
7409
|
-
|
|
7410
|
-
|
|
7411
|
-
|
|
7412
|
-
|
|
7413
|
-
|
|
7414
|
-
|
|
7415
|
-
|
|
7416
|
-
|
|
7417
|
-
|
|
7418
|
-
|
|
7419
|
-
|
|
7420
|
-
|
|
7421
|
-
|
|
7422
|
-
|
|
7443
|
+
const fetchSchema = React.useCallback(
|
|
7444
|
+
async (apiGroups, schemaUrlPrefix) => {
|
|
7445
|
+
setState((prev) => ({ ...prev, loading: true, error: null }));
|
|
7446
|
+
try {
|
|
7447
|
+
const results = await Promise.all(
|
|
7448
|
+
apiGroups.map(async (apiGroup) => {
|
|
7449
|
+
if (state2.schemasMap[apiGroup]) {
|
|
7450
|
+
return { apiGroup, schemas: state2.schemasMap[apiGroup] };
|
|
7451
|
+
}
|
|
7452
|
+
const groupSchemas = await schemaStore.fetchSchemas(
|
|
7453
|
+
apiGroup,
|
|
7454
|
+
schemaUrlPrefix
|
|
7455
|
+
);
|
|
7456
|
+
return { apiGroup, schemas: groupSchemas || [] };
|
|
7457
|
+
})
|
|
7458
|
+
);
|
|
7459
|
+
const newSchemasMap = results.reduce(
|
|
7460
|
+
(acc, { apiGroup, schemas }) => {
|
|
7461
|
+
acc[apiGroup] = schemas;
|
|
7462
|
+
return acc;
|
|
7463
|
+
},
|
|
7464
|
+
{}
|
|
7465
|
+
);
|
|
7466
|
+
const allSchemas = results.flatMap(({ schemas }) => schemas);
|
|
7467
|
+
setState({
|
|
7468
|
+
schemas: allSchemas,
|
|
7469
|
+
schemasMap: newSchemasMap,
|
|
7470
|
+
loading: false,
|
|
7471
|
+
error: null
|
|
7472
|
+
});
|
|
7473
|
+
} catch (e2) {
|
|
7474
|
+
setState((prev) => ({ ...prev, loading: false, error: e2 }));
|
|
7475
|
+
}
|
|
7476
|
+
},
|
|
7477
|
+
[state2.schemasMap]
|
|
7478
|
+
);
|
|
7423
7479
|
return { ...state2, fetchSchema };
|
|
7424
7480
|
}
|
|
7425
7481
|
function useSchema(options) {
|
|
@@ -7435,7 +7491,11 @@ function useSchema(options) {
|
|
|
7435
7491
|
setLoading(true);
|
|
7436
7492
|
setError(null);
|
|
7437
7493
|
try {
|
|
7438
|
-
const schema2 = await schemaStore.fetchSchema(
|
|
7494
|
+
const schema2 = await schemaStore.fetchSchema(
|
|
7495
|
+
(_a2 = resource == null ? void 0 : resource.meta) == null ? void 0 : _a2.resourceBasePath,
|
|
7496
|
+
schemaUrlPrefix,
|
|
7497
|
+
(_b2 = resource == null ? void 0 : resource.meta) == null ? void 0 : _b2.kind
|
|
7498
|
+
);
|
|
7439
7499
|
setSchema(schema2 || null);
|
|
7440
7500
|
setError(null);
|
|
7441
7501
|
} catch (e2) {
|
|
@@ -7456,6 +7516,34 @@ function useSchema(options) {
|
|
|
7456
7516
|
fetchSchema
|
|
7457
7517
|
};
|
|
7458
7518
|
}
|
|
7519
|
+
const useDeleteManyModal = (resource, ids) => {
|
|
7520
|
+
const { mutate } = core.useDeleteMany();
|
|
7521
|
+
const [visible, setVisible] = React.useState(false);
|
|
7522
|
+
const { t: t2 } = common.useTranslation();
|
|
7523
|
+
const modalProps = {
|
|
7524
|
+
title: t2("dovetail.delete"),
|
|
7525
|
+
okText: t2("dovetail.delete"),
|
|
7526
|
+
okButtonProps: {
|
|
7527
|
+
danger: true
|
|
7528
|
+
},
|
|
7529
|
+
cancelText: t2("dovetail.cancel"),
|
|
7530
|
+
children: t2("dovetail.confirm_delete_text", {
|
|
7531
|
+
target: ids,
|
|
7532
|
+
interpolation: { escapeValue: false }
|
|
7533
|
+
}),
|
|
7534
|
+
onOk() {
|
|
7535
|
+
mutate({
|
|
7536
|
+
resource,
|
|
7537
|
+
ids
|
|
7538
|
+
});
|
|
7539
|
+
setVisible(false);
|
|
7540
|
+
},
|
|
7541
|
+
onCancel() {
|
|
7542
|
+
setVisible(false);
|
|
7543
|
+
}
|
|
7544
|
+
};
|
|
7545
|
+
return { modalProps, visible, setVisible };
|
|
7546
|
+
};
|
|
7459
7547
|
const ConfigsContext = React.createContext({});
|
|
7460
7548
|
function getCommonErrors(responseBody, i18n2) {
|
|
7461
7549
|
var _a;
|
|
@@ -7499,12 +7587,16 @@ function getCommonErrors(responseBody, i18n2) {
|
|
|
7499
7587
|
}
|
|
7500
7588
|
return [
|
|
7501
7589
|
i18n2.t(
|
|
7502
|
-
[
|
|
7590
|
+
[
|
|
7591
|
+
`error.${responseBody.code}`,
|
|
7592
|
+
`error.${responseBody.reason}`,
|
|
7593
|
+
responseBody.message || ""
|
|
7594
|
+
],
|
|
7503
7595
|
{ fallbackLng: "" }
|
|
7504
7596
|
)
|
|
7505
7597
|
];
|
|
7506
7598
|
}
|
|
7507
|
-
const
|
|
7599
|
+
const tag_19ts6m8 = "";
|
|
7508
7600
|
const StateTagStyle = "s82411";
|
|
7509
7601
|
const NameTagStyle = "n9ja9cs";
|
|
7510
7602
|
function shortenedImage(image2) {
|
|
@@ -7904,48 +7996,6 @@ function NameInputWidget(props) {
|
|
|
7904
7996
|
const { action } = core.useResource();
|
|
7905
7997
|
return /* @__PURE__ */ common.jsxRuntimeExports.jsx(eagle.Input, { ...props, disabled: action === "edit" });
|
|
7906
7998
|
}
|
|
7907
|
-
const dnsSubDomainRules = [
|
|
7908
|
-
{
|
|
7909
|
-
required: true,
|
|
7910
|
-
message: "名称不能为空"
|
|
7911
|
-
},
|
|
7912
|
-
{
|
|
7913
|
-
pattern: /^[a-z0-9]([-.a-z0-9]*[a-z0-9])?$/,
|
|
7914
|
-
message: "名称只能包含小写字母、数字,以及 '-' 和 '.',且必须以字母或数字开头和结束"
|
|
7915
|
-
},
|
|
7916
|
-
{
|
|
7917
|
-
max: 253,
|
|
7918
|
-
message: "名称长度不能超过253个字符"
|
|
7919
|
-
}
|
|
7920
|
-
];
|
|
7921
|
-
const rfc1123LabelRules = [
|
|
7922
|
-
{
|
|
7923
|
-
required: true,
|
|
7924
|
-
message: "名称不能为空"
|
|
7925
|
-
},
|
|
7926
|
-
{
|
|
7927
|
-
pattern: /^[a-z0-9]([-a-z0-9]*[a-z0-9])?$/,
|
|
7928
|
-
message: "名称只能包含小写字母、数字,以及 '-',且以字母或数字开头和结束"
|
|
7929
|
-
},
|
|
7930
|
-
{
|
|
7931
|
-
max: 63,
|
|
7932
|
-
message: "名称长度不能超过63个字符"
|
|
7933
|
-
}
|
|
7934
|
-
];
|
|
7935
|
-
const rfc1035LabelRules = [
|
|
7936
|
-
{
|
|
7937
|
-
required: true,
|
|
7938
|
-
message: "名称不能为空"
|
|
7939
|
-
},
|
|
7940
|
-
{
|
|
7941
|
-
pattern: /^[a-z]([-a-z0-9]*[a-z0-9])?$/,
|
|
7942
|
-
message: "名称只能包含小写字母、数字,以及 '-',且以字母开头,字母或数字结束"
|
|
7943
|
-
},
|
|
7944
|
-
{
|
|
7945
|
-
max: 63,
|
|
7946
|
-
message: "名称长度不能超过63个字符"
|
|
7947
|
-
}
|
|
7948
|
-
];
|
|
7949
7999
|
function NamespaceSelectWidget(props) {
|
|
7950
8000
|
const { action } = core.useResource();
|
|
7951
8001
|
const { data: data2 } = core.useList({
|
|
@@ -8007,10 +8057,13 @@ function KeyValueListWidget(props) {
|
|
|
8007
8057
|
const onChange = React.useCallback(
|
|
8008
8058
|
(newItems) => {
|
|
8009
8059
|
var _a;
|
|
8010
|
-
const newValue = newItems.reduce(
|
|
8011
|
-
result
|
|
8012
|
-
|
|
8013
|
-
|
|
8060
|
+
const newValue = newItems.reduce(
|
|
8061
|
+
(result, item) => {
|
|
8062
|
+
result[item.key] = item.value;
|
|
8063
|
+
return result;
|
|
8064
|
+
},
|
|
8065
|
+
{}
|
|
8066
|
+
);
|
|
8014
8067
|
(_a = props.onChange) == null ? void 0 : _a.call(props, newValue);
|
|
8015
8068
|
},
|
|
8016
8069
|
[props]
|
|
@@ -8056,7 +8109,7 @@ function KeyValueListWidget(props) {
|
|
|
8056
8109
|
}
|
|
8057
8110
|
function MetadataForm() {
|
|
8058
8111
|
return /* @__PURE__ */ common.jsxRuntimeExports.jsxs(common.jsxRuntimeExports.Fragment, { children: [
|
|
8059
|
-
/* @__PURE__ */ common.jsxRuntimeExports.jsx(eagle.Form.Item, { label: "Name", name: ["metadata", "name"],
|
|
8112
|
+
/* @__PURE__ */ common.jsxRuntimeExports.jsx(eagle.Form.Item, { label: "Name", name: ["metadata", "name"], children: /* @__PURE__ */ common.jsxRuntimeExports.jsx(NameInputWidget, {}) }),
|
|
8060
8113
|
/* @__PURE__ */ common.jsxRuntimeExports.jsx(
|
|
8061
8114
|
eagle.Form.Item,
|
|
8062
8115
|
{
|
|
@@ -8071,6 +8124,12 @@ function MetadataForm() {
|
|
|
8071
8124
|
] });
|
|
8072
8125
|
}
|
|
8073
8126
|
const ComponentContext = React.createContext({});
|
|
8127
|
+
function ComponentContextProvider({
|
|
8128
|
+
value: value2,
|
|
8129
|
+
children
|
|
8130
|
+
}) {
|
|
8131
|
+
return React.createElement(ComponentContext.Provider, { value: value2 }, children);
|
|
8132
|
+
}
|
|
8074
8133
|
const GlobalStoreContext = React.createContext({});
|
|
8075
8134
|
const index_1s9fcl3 = "";
|
|
8076
8135
|
const ErrorWrapper = /* @__PURE__ */ styled_default("div")({
|
|
@@ -8078,8 +8137,8 @@ const ErrorWrapper = /* @__PURE__ */ styled_default("div")({
|
|
|
8078
8137
|
class: "egn3dbn",
|
|
8079
8138
|
propsAsIs: false
|
|
8080
8139
|
});
|
|
8081
|
-
const
|
|
8082
|
-
name: "
|
|
8140
|
+
const ErrorContentBody = /* @__PURE__ */ styled_default("div")({
|
|
8141
|
+
name: "ErrorContentBody",
|
|
8083
8142
|
class: "e136jgy8",
|
|
8084
8143
|
propsAsIs: false
|
|
8085
8144
|
});
|
|
@@ -8090,7 +8149,7 @@ var ErrorContentType = /* @__PURE__ */ ((ErrorContentType2) => {
|
|
|
8090
8149
|
ErrorContentType2["Item"] = "item";
|
|
8091
8150
|
return ErrorContentType2;
|
|
8092
8151
|
})(ErrorContentType || {});
|
|
8093
|
-
const
|
|
8152
|
+
const ErrorContent = (props) => {
|
|
8094
8153
|
const {
|
|
8095
8154
|
refetch,
|
|
8096
8155
|
errorText,
|
|
@@ -8126,7 +8185,7 @@ const WidgetErrorContent = (props) => {
|
|
|
8126
8185
|
return /* @__PURE__ */ common.jsxRuntimeExports.jsx(ErrorWrapper, {
|
|
8127
8186
|
className: common.cx_default(props.className, type2),
|
|
8128
8187
|
style: props.style,
|
|
8129
|
-
children: /* @__PURE__ */ common.jsxRuntimeExports.jsxs(
|
|
8188
|
+
children: /* @__PURE__ */ common.jsxRuntimeExports.jsxs(ErrorContentBody, {
|
|
8130
8189
|
className: "error-content",
|
|
8131
8190
|
children: [/* @__PURE__ */ common.jsxRuntimeExports.jsx("p", {
|
|
8132
8191
|
className: common.cx_default(fontMap[type2], "title", `${type2}-title`),
|
|
@@ -8196,7 +8255,7 @@ function Table$1(props) {
|
|
|
8196
8255
|
if (loading) {
|
|
8197
8256
|
return /* @__PURE__ */ common.jsxRuntimeExports.jsx(eagle.Loading, {});
|
|
8198
8257
|
} else if (error) {
|
|
8199
|
-
return /* @__PURE__ */ common.jsxRuntimeExports.jsx(
|
|
8258
|
+
return /* @__PURE__ */ common.jsxRuntimeExports.jsx(ErrorContent, {
|
|
8200
8259
|
errorText: t2("dovetail.retry_when_access_data_failed"),
|
|
8201
8260
|
refetch,
|
|
8202
8261
|
style: {
|
|
@@ -8204,7 +8263,7 @@ function Table$1(props) {
|
|
|
8204
8263
|
}
|
|
8205
8264
|
});
|
|
8206
8265
|
} else if (dataSource.length === 0) {
|
|
8207
|
-
return /* @__PURE__ */ common.jsxRuntimeExports.jsx(
|
|
8266
|
+
return /* @__PURE__ */ common.jsxRuntimeExports.jsx(ErrorContent, {
|
|
8208
8267
|
errorText: empty2 || t2("dovetail.empty"),
|
|
8209
8268
|
style: {
|
|
8210
8269
|
padding: "15px 0"
|
|
@@ -8234,21 +8293,31 @@ function Table$1(props) {
|
|
|
8234
8293
|
})]
|
|
8235
8294
|
});
|
|
8236
8295
|
}
|
|
8237
|
-
function useTableData({
|
|
8296
|
+
function useTableData({
|
|
8297
|
+
data: data2,
|
|
8298
|
+
columns,
|
|
8299
|
+
pageSize = 10,
|
|
8300
|
+
defaultSorters
|
|
8301
|
+
}) {
|
|
8238
8302
|
const [currentPage, setCurrentPage] = React.useState(1);
|
|
8239
8303
|
const [sorters, setSorters] = React.useState(defaultSorters || []);
|
|
8240
|
-
const onSorterChange = React.useCallback(
|
|
8241
|
-
|
|
8242
|
-
|
|
8243
|
-
|
|
8244
|
-
|
|
8245
|
-
|
|
8246
|
-
|
|
8247
|
-
|
|
8248
|
-
|
|
8249
|
-
|
|
8250
|
-
|
|
8251
|
-
|
|
8304
|
+
const onSorterChange = React.useCallback(
|
|
8305
|
+
(order, key2) => {
|
|
8306
|
+
var _a;
|
|
8307
|
+
const ORDER_MAP = {
|
|
8308
|
+
descend: "desc",
|
|
8309
|
+
ascend: "asc"
|
|
8310
|
+
};
|
|
8311
|
+
const sorters2 = [
|
|
8312
|
+
{
|
|
8313
|
+
field: (_a = columns.find((col) => col.key === key2)) == null ? void 0 : _a.dataIndex,
|
|
8314
|
+
order: order ? ORDER_MAP[order] : order
|
|
8315
|
+
}
|
|
8316
|
+
];
|
|
8317
|
+
setSorters(sorters2);
|
|
8318
|
+
},
|
|
8319
|
+
[columns]
|
|
8320
|
+
);
|
|
8252
8321
|
return {
|
|
8253
8322
|
data: k8sApiProvider.paginateData(
|
|
8254
8323
|
{
|
|
@@ -8303,7 +8372,7 @@ const PodSelectorTable = ({ podSelectors = {} }) => {
|
|
|
8303
8372
|
});
|
|
8304
8373
|
if (datas.length === 0) {
|
|
8305
8374
|
return /* @__PURE__ */ common.jsxRuntimeExports.jsx(
|
|
8306
|
-
|
|
8375
|
+
ErrorContent,
|
|
8307
8376
|
{
|
|
8308
8377
|
errorText: t2("dovetail.no_resource", { kind: ` ${t2("dovetail.pod_selector")}` }),
|
|
8309
8378
|
type: ErrorContentType.Card
|
|
@@ -8328,7 +8397,7 @@ const PodSelectorTable = ({ podSelectors = {} }) => {
|
|
|
8328
8397
|
}
|
|
8329
8398
|
);
|
|
8330
8399
|
};
|
|
8331
|
-
const PortsTable = ({ service }) => {
|
|
8400
|
+
const PortsTable = ({ service: service2 }) => {
|
|
8332
8401
|
const { t: t2 } = common.useTranslation();
|
|
8333
8402
|
const component = React.useContext(ComponentContext);
|
|
8334
8403
|
const Table2 = component.Table || Table$1;
|
|
@@ -8375,7 +8444,7 @@ const PortsTable = ({ service }) => {
|
|
|
8375
8444
|
width: 199
|
|
8376
8445
|
}
|
|
8377
8446
|
];
|
|
8378
|
-
const ports = (
|
|
8447
|
+
const ports = (service2._rawYaml.spec.ports || []).map((port2) => ({
|
|
8379
8448
|
...port2,
|
|
8380
8449
|
id: port2.name || ""
|
|
8381
8450
|
}));
|
|
@@ -8390,7 +8459,7 @@ const PortsTable = ({ service }) => {
|
|
|
8390
8459
|
});
|
|
8391
8460
|
if ((ports == null ? void 0 : ports.length) === 0) {
|
|
8392
8461
|
return /* @__PURE__ */ common.jsxRuntimeExports.jsx(
|
|
8393
|
-
|
|
8462
|
+
ErrorContent,
|
|
8394
8463
|
{
|
|
8395
8464
|
errorText: t2("dovetail.no_resource", { kind: t2("dovetail.port") }),
|
|
8396
8465
|
type: ErrorContentType.Card
|
|
@@ -8512,20 +8581,22 @@ function EditFieldModal(props) {
|
|
|
8512
8581
|
popModal();
|
|
8513
8582
|
reset();
|
|
8514
8583
|
}, [popModal, reset]);
|
|
8515
|
-
return /* @__PURE__ */ common.jsxRuntimeExports.
|
|
8584
|
+
return /* @__PURE__ */ common.jsxRuntimeExports.jsx(ModalComponent, {
|
|
8516
8585
|
title: title || i18n2.t("dovetail.edit"),
|
|
8517
8586
|
confirmLoading: submitting,
|
|
8518
8587
|
onOk: onSubmit,
|
|
8519
8588
|
onCancel: close2,
|
|
8520
8589
|
okText: i18n2.t("dovetail.save"),
|
|
8521
8590
|
destroyOnClose: true,
|
|
8522
|
-
children:
|
|
8523
|
-
|
|
8524
|
-
|
|
8525
|
-
|
|
8526
|
-
|
|
8527
|
-
|
|
8528
|
-
|
|
8591
|
+
children: /* @__PURE__ */ common.jsxRuntimeExports.jsxs(common.jsxRuntimeExports.Fragment, {
|
|
8592
|
+
children: [renderContent(), /* @__PURE__ */ common.jsxRuntimeExports.jsx(FormErrorAlert, {
|
|
8593
|
+
style: {
|
|
8594
|
+
marginTop: 16
|
|
8595
|
+
},
|
|
8596
|
+
errorMsgs,
|
|
8597
|
+
isEdit: true
|
|
8598
|
+
})]
|
|
8599
|
+
})
|
|
8529
8600
|
});
|
|
8530
8601
|
}
|
|
8531
8602
|
function EditField(props) {
|
|
@@ -8790,6 +8861,38 @@ function PVCDistributeStorage({
|
|
|
8790
8861
|
)
|
|
8791
8862
|
] });
|
|
8792
8863
|
}
|
|
8864
|
+
const index_1oorxg6 = "";
|
|
8865
|
+
const CopyIconStyle = "c1oll6q9";
|
|
8866
|
+
const CopyButton = ({
|
|
8867
|
+
value: value2,
|
|
8868
|
+
className
|
|
8869
|
+
}) => {
|
|
8870
|
+
const {
|
|
8871
|
+
i18n: i18n2
|
|
8872
|
+
} = common.useTranslation();
|
|
8873
|
+
const [tooltip, setTooltip] = React.useState(i18n2.t("dovetail.copy"));
|
|
8874
|
+
return /* @__PURE__ */ common.jsxRuntimeExports.jsx(eagle.Tooltip, {
|
|
8875
|
+
title: tooltip,
|
|
8876
|
+
onVisibleChange: (visible) => {
|
|
8877
|
+
if (!visible) {
|
|
8878
|
+
setTimeout(() => {
|
|
8879
|
+
setTooltip(i18n2.t("dovetail.copy"));
|
|
8880
|
+
}, 80);
|
|
8881
|
+
}
|
|
8882
|
+
},
|
|
8883
|
+
children: /* @__PURE__ */ common.jsxRuntimeExports.jsx(eagle.Icon, {
|
|
8884
|
+
src: iconsReact.ClipboardCopy16GradientGrayIcon,
|
|
8885
|
+
hoverSrc: iconsReact.ClipboardCopy16GradientBlueIcon,
|
|
8886
|
+
className: common.cx_default(CopyIconStyle, className),
|
|
8887
|
+
iconWidth: 16,
|
|
8888
|
+
iconHeight: 16,
|
|
8889
|
+
onClick: () => {
|
|
8890
|
+
copyToClipboard$1(value2);
|
|
8891
|
+
setTooltip(i18n2.t("dovetail.copied"));
|
|
8892
|
+
}
|
|
8893
|
+
})
|
|
8894
|
+
});
|
|
8895
|
+
};
|
|
8793
8896
|
class ResourceModel {
|
|
8794
8897
|
constructor(_rawYaml, _globalStore) {
|
|
8795
8898
|
__publicField(this, "id");
|
|
@@ -8907,74 +9010,70 @@ const BASE_INIT_VALUE = {
|
|
|
8907
9010
|
}
|
|
8908
9011
|
};
|
|
8909
9012
|
const DEPLOYMENT_INIT_VALUE = {
|
|
8910
|
-
|
|
8911
|
-
|
|
8912
|
-
|
|
8913
|
-
|
|
8914
|
-
|
|
9013
|
+
apiVersion: "apps/v1",
|
|
9014
|
+
kind: "Deployment",
|
|
9015
|
+
metadata: {
|
|
9016
|
+
name: "example",
|
|
9017
|
+
namespace: "default"
|
|
8915
9018
|
},
|
|
8916
|
-
|
|
8917
|
-
|
|
8918
|
-
|
|
8919
|
-
|
|
9019
|
+
spec: {
|
|
9020
|
+
selector: {
|
|
9021
|
+
matchLabels: {
|
|
9022
|
+
app: "deployment-example"
|
|
8920
9023
|
}
|
|
8921
9024
|
},
|
|
8922
|
-
|
|
8923
|
-
|
|
8924
|
-
|
|
8925
|
-
|
|
8926
|
-
|
|
9025
|
+
replicas: 3,
|
|
9026
|
+
template: {
|
|
9027
|
+
metadata: {
|
|
9028
|
+
labels: {
|
|
9029
|
+
app: "deployment-example"
|
|
8927
9030
|
}
|
|
8928
9031
|
},
|
|
8929
|
-
|
|
8930
|
-
|
|
9032
|
+
spec: {
|
|
9033
|
+
containers: [
|
|
8931
9034
|
{
|
|
8932
|
-
|
|
8933
|
-
|
|
8934
|
-
|
|
9035
|
+
name: "deployment-example",
|
|
9036
|
+
image: "registry.smtx.io/kubesmart/bitnami/nginx:1.25.2-debian-11-r2",
|
|
9037
|
+
ports: [
|
|
8935
9038
|
{
|
|
8936
|
-
|
|
8937
|
-
|
|
9039
|
+
containerPort: 8080,
|
|
9040
|
+
protocol: "TCP"
|
|
8938
9041
|
}
|
|
8939
9042
|
]
|
|
8940
9043
|
}
|
|
8941
9044
|
]
|
|
8942
9045
|
}
|
|
8943
9046
|
},
|
|
8944
|
-
|
|
8945
|
-
|
|
8946
|
-
|
|
8947
|
-
|
|
8948
|
-
|
|
9047
|
+
strategy: {
|
|
9048
|
+
type: "RollingUpdate",
|
|
9049
|
+
rollingUpdate: {
|
|
9050
|
+
maxSurge: "25%",
|
|
9051
|
+
maxUnavailable: "25%"
|
|
8949
9052
|
}
|
|
8950
9053
|
}
|
|
8951
9054
|
}
|
|
8952
9055
|
};
|
|
8953
9056
|
const CRONJOB_INIT_VALUE = {
|
|
8954
|
-
|
|
8955
|
-
|
|
8956
|
-
|
|
8957
|
-
|
|
8958
|
-
|
|
9057
|
+
apiVersion: "batch/v1",
|
|
9058
|
+
kind: "CronJob",
|
|
9059
|
+
metadata: {
|
|
9060
|
+
name: "example",
|
|
9061
|
+
namespace: "default"
|
|
8959
9062
|
},
|
|
8960
|
-
|
|
8961
|
-
|
|
8962
|
-
|
|
8963
|
-
|
|
8964
|
-
|
|
8965
|
-
|
|
8966
|
-
|
|
9063
|
+
spec: {
|
|
9064
|
+
schedule: "@daily",
|
|
9065
|
+
jobTemplate: {
|
|
9066
|
+
spec: {
|
|
9067
|
+
template: {
|
|
9068
|
+
spec: {
|
|
9069
|
+
containers: [
|
|
8967
9070
|
{
|
|
8968
|
-
|
|
8969
|
-
|
|
8970
|
-
|
|
8971
|
-
"/bin/sh",
|
|
8972
|
-
"-c",
|
|
8973
|
-
"date; echo Hello from the Kubernetes cluster"
|
|
8974
|
-
]
|
|
9071
|
+
name: "example",
|
|
9072
|
+
image: "registry.smtx.io/kubesmart/alpine:3",
|
|
9073
|
+
args: ["/bin/sh", "-c", "date; echo Hello from the Kubernetes cluster"]
|
|
8975
9074
|
}
|
|
8976
9075
|
],
|
|
8977
|
-
|
|
9076
|
+
restartPolicy: "OnFailure"
|
|
8978
9077
|
}
|
|
8979
9078
|
}
|
|
8980
9079
|
}
|
|
@@ -8982,32 +9081,32 @@ const CRONJOB_INIT_VALUE = {
|
|
|
8982
9081
|
}
|
|
8983
9082
|
};
|
|
8984
9083
|
const DAEMONSET_INIT_VALUE = {
|
|
8985
|
-
|
|
8986
|
-
|
|
8987
|
-
|
|
8988
|
-
|
|
8989
|
-
|
|
9084
|
+
apiVersion: "apps/v1",
|
|
9085
|
+
kind: "DaemonSet",
|
|
9086
|
+
metadata: {
|
|
9087
|
+
name: "example",
|
|
9088
|
+
namespace: "default"
|
|
8990
9089
|
},
|
|
8991
|
-
|
|
8992
|
-
|
|
8993
|
-
|
|
8994
|
-
|
|
9090
|
+
spec: {
|
|
9091
|
+
selector: {
|
|
9092
|
+
matchLabels: {
|
|
9093
|
+
app: "daemonset-example"
|
|
8995
9094
|
}
|
|
8996
9095
|
},
|
|
8997
|
-
|
|
8998
|
-
|
|
8999
|
-
|
|
9000
|
-
|
|
9096
|
+
template: {
|
|
9097
|
+
metadata: {
|
|
9098
|
+
labels: {
|
|
9099
|
+
app: "daemonset-example"
|
|
9001
9100
|
}
|
|
9002
9101
|
},
|
|
9003
|
-
|
|
9004
|
-
|
|
9102
|
+
spec: {
|
|
9103
|
+
containers: [
|
|
9005
9104
|
{
|
|
9006
|
-
|
|
9007
|
-
|
|
9008
|
-
|
|
9105
|
+
name: "daemonset-example",
|
|
9106
|
+
image: "registry.smtx.io/kubesmart/bitnami/nginx:1.25.2-debian-11-r2",
|
|
9107
|
+
ports: [
|
|
9009
9108
|
{
|
|
9010
|
-
|
|
9109
|
+
containerPort: 8080
|
|
9011
9110
|
}
|
|
9012
9111
|
]
|
|
9013
9112
|
}
|
|
@@ -9017,98 +9116,86 @@ const DAEMONSET_INIT_VALUE = {
|
|
|
9017
9116
|
}
|
|
9018
9117
|
};
|
|
9019
9118
|
const JOB_INIT_VALUE = {
|
|
9020
|
-
|
|
9021
|
-
|
|
9022
|
-
|
|
9023
|
-
|
|
9024
|
-
|
|
9119
|
+
apiVersion: "batch/v1",
|
|
9120
|
+
kind: "Job",
|
|
9121
|
+
metadata: {
|
|
9122
|
+
name: "example",
|
|
9123
|
+
namespace: "default"
|
|
9025
9124
|
},
|
|
9026
|
-
|
|
9027
|
-
|
|
9028
|
-
|
|
9029
|
-
|
|
9030
|
-
|
|
9125
|
+
spec: {
|
|
9126
|
+
selector: {},
|
|
9127
|
+
template: {
|
|
9128
|
+
metadata: {
|
|
9129
|
+
name: "job-example"
|
|
9031
9130
|
},
|
|
9032
|
-
|
|
9033
|
-
|
|
9131
|
+
spec: {
|
|
9132
|
+
containers: [
|
|
9034
9133
|
{
|
|
9035
|
-
|
|
9036
|
-
|
|
9037
|
-
|
|
9038
|
-
"/bin/sh",
|
|
9039
|
-
"-c",
|
|
9040
|
-
"date; echo Hello from the Kubernetes cluster"
|
|
9041
|
-
]
|
|
9134
|
+
name: "job-example",
|
|
9135
|
+
image: "registry.smtx.io/kubesmart/alpine:3",
|
|
9136
|
+
command: ["/bin/sh", "-c", "date; echo Hello from the Kubernetes cluster"]
|
|
9042
9137
|
}
|
|
9043
9138
|
],
|
|
9044
|
-
|
|
9139
|
+
restartPolicy: "Never"
|
|
9045
9140
|
}
|
|
9046
9141
|
}
|
|
9047
9142
|
}
|
|
9048
9143
|
};
|
|
9049
9144
|
const STATEFULSET_INIT_VALUE = {
|
|
9050
|
-
|
|
9051
|
-
|
|
9052
|
-
|
|
9053
|
-
|
|
9054
|
-
|
|
9145
|
+
apiVersion: "apps/v1",
|
|
9146
|
+
kind: "StatefulSet",
|
|
9147
|
+
metadata: {
|
|
9148
|
+
name: "example",
|
|
9149
|
+
namespace: "default"
|
|
9055
9150
|
},
|
|
9056
|
-
|
|
9057
|
-
|
|
9058
|
-
|
|
9059
|
-
|
|
9060
|
-
|
|
9061
|
-
|
|
9151
|
+
spec: {
|
|
9152
|
+
serviceName: "statefulset-example",
|
|
9153
|
+
replicas: 3,
|
|
9154
|
+
selector: {
|
|
9155
|
+
matchLabels: {
|
|
9156
|
+
app: "statefulset-example"
|
|
9062
9157
|
}
|
|
9063
9158
|
},
|
|
9064
|
-
|
|
9065
|
-
|
|
9066
|
-
|
|
9067
|
-
|
|
9159
|
+
template: {
|
|
9160
|
+
metadata: {
|
|
9161
|
+
labels: {
|
|
9162
|
+
app: "statefulset-example"
|
|
9068
9163
|
}
|
|
9069
9164
|
},
|
|
9070
|
-
|
|
9071
|
-
|
|
9072
|
-
|
|
9165
|
+
spec: {
|
|
9166
|
+
terminationGracePeriodSeconds: 10,
|
|
9167
|
+
containers: [
|
|
9073
9168
|
{
|
|
9074
|
-
|
|
9075
|
-
|
|
9076
|
-
|
|
9077
|
-
|
|
9078
|
-
|
|
9079
|
-
"args": [
|
|
9080
|
-
"-A",
|
|
9081
|
-
"--render-try-index",
|
|
9082
|
-
"/data"
|
|
9083
|
-
],
|
|
9084
|
-
"ports": [
|
|
9169
|
+
name: "statefulset-example",
|
|
9170
|
+
image: "registry.smtx.io/kubesmart/fileserver:v1.0.0",
|
|
9171
|
+
command: ["dufs"],
|
|
9172
|
+
args: ["-A", "--render-try-index", "/data"],
|
|
9173
|
+
ports: [
|
|
9085
9174
|
{
|
|
9086
|
-
|
|
9087
|
-
|
|
9175
|
+
containerPort: 5e3,
|
|
9176
|
+
name: "http"
|
|
9088
9177
|
}
|
|
9089
9178
|
],
|
|
9090
|
-
|
|
9179
|
+
volumeMounts: [
|
|
9091
9180
|
{
|
|
9092
|
-
|
|
9093
|
-
|
|
9181
|
+
name: "file",
|
|
9182
|
+
mountPath: "/data"
|
|
9094
9183
|
}
|
|
9095
9184
|
]
|
|
9096
9185
|
}
|
|
9097
9186
|
]
|
|
9098
9187
|
}
|
|
9099
9188
|
},
|
|
9100
|
-
|
|
9189
|
+
volumeClaimTemplates: [
|
|
9101
9190
|
{
|
|
9102
|
-
|
|
9103
|
-
|
|
9191
|
+
metadata: {
|
|
9192
|
+
name: "file"
|
|
9104
9193
|
},
|
|
9105
|
-
|
|
9106
|
-
|
|
9107
|
-
|
|
9108
|
-
|
|
9109
|
-
|
|
9110
|
-
"requests": {
|
|
9111
|
-
"storage": "1Gi"
|
|
9194
|
+
spec: {
|
|
9195
|
+
accessModes: ["ReadWriteOnce"],
|
|
9196
|
+
resources: {
|
|
9197
|
+
requests: {
|
|
9198
|
+
storage: "1Gi"
|
|
9112
9199
|
}
|
|
9113
9200
|
}
|
|
9114
9201
|
}
|
|
@@ -9117,37 +9204,35 @@ const STATEFULSET_INIT_VALUE = {
|
|
|
9117
9204
|
}
|
|
9118
9205
|
};
|
|
9119
9206
|
const POD_INIT_VALUE = {
|
|
9120
|
-
|
|
9121
|
-
|
|
9122
|
-
|
|
9123
|
-
|
|
9124
|
-
|
|
9125
|
-
|
|
9126
|
-
|
|
9207
|
+
apiVersion: "v1",
|
|
9208
|
+
kind: "Pod",
|
|
9209
|
+
metadata: {
|
|
9210
|
+
name: "example",
|
|
9211
|
+
namespace: "default",
|
|
9212
|
+
labels: {
|
|
9213
|
+
app: "example"
|
|
9127
9214
|
}
|
|
9128
9215
|
},
|
|
9129
|
-
|
|
9130
|
-
|
|
9131
|
-
|
|
9132
|
-
|
|
9133
|
-
|
|
9216
|
+
spec: {
|
|
9217
|
+
securityContext: {
|
|
9218
|
+
runAsNonRoot: true,
|
|
9219
|
+
seccompProfile: {
|
|
9220
|
+
type: "RuntimeDefault"
|
|
9134
9221
|
}
|
|
9135
9222
|
},
|
|
9136
|
-
|
|
9223
|
+
containers: [
|
|
9137
9224
|
{
|
|
9138
|
-
|
|
9139
|
-
|
|
9140
|
-
|
|
9225
|
+
name: "example",
|
|
9226
|
+
image: "registry.smtx.io/kubesmart/bitnami/nginx:1.25.2-debian-11-r2",
|
|
9227
|
+
ports: [
|
|
9141
9228
|
{
|
|
9142
|
-
|
|
9229
|
+
containerPort: 8080
|
|
9143
9230
|
}
|
|
9144
9231
|
],
|
|
9145
|
-
|
|
9146
|
-
|
|
9147
|
-
|
|
9148
|
-
|
|
9149
|
-
"ALL"
|
|
9150
|
-
]
|
|
9232
|
+
securityContext: {
|
|
9233
|
+
allowPrivilegeEscalation: false,
|
|
9234
|
+
capabilities: {
|
|
9235
|
+
drop: ["ALL"]
|
|
9151
9236
|
}
|
|
9152
9237
|
}
|
|
9153
9238
|
}
|
|
@@ -9155,143 +9240,143 @@ const POD_INIT_VALUE = {
|
|
|
9155
9240
|
}
|
|
9156
9241
|
};
|
|
9157
9242
|
const SERVICE_CLUSTER_IP_INIT_VALUE = {
|
|
9158
|
-
|
|
9159
|
-
|
|
9160
|
-
|
|
9161
|
-
|
|
9162
|
-
|
|
9243
|
+
apiVersion: "v1",
|
|
9244
|
+
kind: "Service",
|
|
9245
|
+
metadata: {
|
|
9246
|
+
name: "example",
|
|
9247
|
+
namespace: "default"
|
|
9163
9248
|
},
|
|
9164
|
-
|
|
9165
|
-
|
|
9166
|
-
|
|
9249
|
+
spec: {
|
|
9250
|
+
selector: {
|
|
9251
|
+
app: "example"
|
|
9167
9252
|
},
|
|
9168
|
-
|
|
9253
|
+
ports: [
|
|
9169
9254
|
{
|
|
9170
|
-
|
|
9171
|
-
|
|
9172
|
-
|
|
9173
|
-
|
|
9255
|
+
name: "example",
|
|
9256
|
+
port: 8080,
|
|
9257
|
+
protocol: "TCP",
|
|
9258
|
+
targetPort: 8080
|
|
9174
9259
|
}
|
|
9175
9260
|
],
|
|
9176
|
-
|
|
9177
|
-
|
|
9261
|
+
sessionAffinity: "None",
|
|
9262
|
+
type: "ClusterIP"
|
|
9178
9263
|
}
|
|
9179
9264
|
};
|
|
9180
9265
|
const SERVICE_NODE_PORT_INIT_VALUE = {
|
|
9181
|
-
|
|
9182
|
-
|
|
9183
|
-
|
|
9184
|
-
|
|
9185
|
-
|
|
9266
|
+
apiVersion: "v1",
|
|
9267
|
+
kind: "Service",
|
|
9268
|
+
metadata: {
|
|
9269
|
+
name: "example",
|
|
9270
|
+
namespace: "default"
|
|
9186
9271
|
},
|
|
9187
|
-
|
|
9188
|
-
|
|
9189
|
-
|
|
9272
|
+
spec: {
|
|
9273
|
+
selector: {
|
|
9274
|
+
app: "example"
|
|
9190
9275
|
},
|
|
9191
|
-
|
|
9276
|
+
ports: [
|
|
9192
9277
|
{
|
|
9193
|
-
|
|
9194
|
-
|
|
9195
|
-
|
|
9196
|
-
|
|
9278
|
+
name: "example",
|
|
9279
|
+
port: 8080,
|
|
9280
|
+
protocol: "TCP",
|
|
9281
|
+
targetPort: 8080
|
|
9197
9282
|
}
|
|
9198
9283
|
],
|
|
9199
|
-
|
|
9200
|
-
|
|
9284
|
+
sessionAffinity: "None",
|
|
9285
|
+
type: "NodePort"
|
|
9201
9286
|
}
|
|
9202
9287
|
};
|
|
9203
9288
|
const SERVICE_LOAD_BALANCER_INIT_VALUE = {
|
|
9204
|
-
|
|
9205
|
-
|
|
9206
|
-
|
|
9207
|
-
|
|
9208
|
-
|
|
9289
|
+
apiVersion: "v1",
|
|
9290
|
+
kind: "Service",
|
|
9291
|
+
metadata: {
|
|
9292
|
+
name: "example",
|
|
9293
|
+
namespace: "default"
|
|
9209
9294
|
},
|
|
9210
|
-
|
|
9211
|
-
|
|
9212
|
-
|
|
9295
|
+
spec: {
|
|
9296
|
+
selector: {
|
|
9297
|
+
app: "example"
|
|
9213
9298
|
},
|
|
9214
|
-
|
|
9299
|
+
ports: [
|
|
9215
9300
|
{
|
|
9216
|
-
|
|
9217
|
-
|
|
9218
|
-
|
|
9219
|
-
|
|
9301
|
+
name: "example",
|
|
9302
|
+
port: 80,
|
|
9303
|
+
protocol: "TCP",
|
|
9304
|
+
targetPort: 8080
|
|
9220
9305
|
}
|
|
9221
9306
|
],
|
|
9222
|
-
|
|
9223
|
-
|
|
9307
|
+
sessionAffinity: "None",
|
|
9308
|
+
type: "LoadBalancer"
|
|
9224
9309
|
}
|
|
9225
9310
|
};
|
|
9226
9311
|
const SERVICE_EXTERNAL_NAME_INIT_VALUE = {
|
|
9227
|
-
|
|
9228
|
-
|
|
9229
|
-
|
|
9230
|
-
|
|
9231
|
-
|
|
9312
|
+
apiVersion: "v1",
|
|
9313
|
+
kind: "Service",
|
|
9314
|
+
metadata: {
|
|
9315
|
+
name: "example",
|
|
9316
|
+
namespace: "default"
|
|
9232
9317
|
},
|
|
9233
|
-
|
|
9234
|
-
|
|
9235
|
-
|
|
9318
|
+
spec: {
|
|
9319
|
+
selector: {
|
|
9320
|
+
app: "example"
|
|
9236
9321
|
},
|
|
9237
|
-
|
|
9322
|
+
ports: [
|
|
9238
9323
|
{
|
|
9239
|
-
|
|
9240
|
-
|
|
9241
|
-
|
|
9242
|
-
|
|
9324
|
+
name: "example",
|
|
9325
|
+
port: 8080,
|
|
9326
|
+
protocol: "TCP",
|
|
9327
|
+
targetPort: 8080
|
|
9243
9328
|
}
|
|
9244
9329
|
],
|
|
9245
|
-
|
|
9246
|
-
|
|
9247
|
-
|
|
9330
|
+
sessionAffinity: "None",
|
|
9331
|
+
type: "ExternalName",
|
|
9332
|
+
externalName: "app.example.com"
|
|
9248
9333
|
}
|
|
9249
9334
|
};
|
|
9250
9335
|
const SERVICE_HEADLESS_INIT_VALUE = {
|
|
9251
|
-
|
|
9252
|
-
|
|
9253
|
-
|
|
9254
|
-
|
|
9255
|
-
|
|
9336
|
+
apiVersion: "v1",
|
|
9337
|
+
kind: "Service",
|
|
9338
|
+
metadata: {
|
|
9339
|
+
name: "example",
|
|
9340
|
+
namespace: "default"
|
|
9256
9341
|
},
|
|
9257
|
-
|
|
9258
|
-
|
|
9259
|
-
|
|
9342
|
+
spec: {
|
|
9343
|
+
selector: {
|
|
9344
|
+
app: "example"
|
|
9260
9345
|
},
|
|
9261
|
-
|
|
9262
|
-
|
|
9346
|
+
clusterIP: "None",
|
|
9347
|
+
ports: [
|
|
9263
9348
|
{
|
|
9264
|
-
|
|
9265
|
-
|
|
9266
|
-
|
|
9267
|
-
|
|
9349
|
+
name: "example",
|
|
9350
|
+
port: null,
|
|
9351
|
+
protocol: "TCP",
|
|
9352
|
+
targetPort: null
|
|
9268
9353
|
}
|
|
9269
9354
|
],
|
|
9270
|
-
|
|
9271
|
-
|
|
9355
|
+
sessionAffinity: "None",
|
|
9356
|
+
type: "ClusterIP"
|
|
9272
9357
|
}
|
|
9273
9358
|
};
|
|
9274
9359
|
const INGRESS_INIT_VALUE = {
|
|
9275
|
-
|
|
9276
|
-
|
|
9277
|
-
|
|
9278
|
-
|
|
9279
|
-
|
|
9360
|
+
apiVersion: "networking.k8s.io/v1",
|
|
9361
|
+
kind: "Ingress",
|
|
9362
|
+
metadata: {
|
|
9363
|
+
name: "example",
|
|
9364
|
+
namespace: "default"
|
|
9280
9365
|
},
|
|
9281
|
-
|
|
9282
|
-
|
|
9366
|
+
spec: {
|
|
9367
|
+
rules: [
|
|
9283
9368
|
{
|
|
9284
|
-
|
|
9285
|
-
|
|
9286
|
-
|
|
9369
|
+
host: "example.com",
|
|
9370
|
+
http: {
|
|
9371
|
+
paths: [
|
|
9287
9372
|
{
|
|
9288
|
-
|
|
9289
|
-
|
|
9290
|
-
|
|
9291
|
-
|
|
9292
|
-
|
|
9293
|
-
|
|
9294
|
-
|
|
9373
|
+
path: "/testpath",
|
|
9374
|
+
pathType: "Prefix",
|
|
9375
|
+
backend: {
|
|
9376
|
+
service: {
|
|
9377
|
+
name: "test",
|
|
9378
|
+
port: {
|
|
9379
|
+
number: 80
|
|
9295
9380
|
}
|
|
9296
9381
|
}
|
|
9297
9382
|
}
|
|
@@ -9303,28 +9388,28 @@ const INGRESS_INIT_VALUE = {
|
|
|
9303
9388
|
}
|
|
9304
9389
|
};
|
|
9305
9390
|
const NETWORK_POLICY_INIT_VALUE = {
|
|
9306
|
-
|
|
9307
|
-
|
|
9308
|
-
|
|
9309
|
-
|
|
9310
|
-
|
|
9391
|
+
apiVersion: "networking.k8s.io/v1",
|
|
9392
|
+
kind: "NetworkPolicy",
|
|
9393
|
+
metadata: {
|
|
9394
|
+
name: "example",
|
|
9395
|
+
namespace: "default"
|
|
9311
9396
|
},
|
|
9312
|
-
|
|
9313
|
-
|
|
9314
|
-
|
|
9397
|
+
spec: {
|
|
9398
|
+
podSelector: {},
|
|
9399
|
+
policyTypes: []
|
|
9315
9400
|
}
|
|
9316
9401
|
};
|
|
9317
9402
|
const CONFIG_MAP_INIT_VALUE = {
|
|
9318
|
-
|
|
9319
|
-
|
|
9320
|
-
|
|
9321
|
-
|
|
9322
|
-
|
|
9403
|
+
apiVersion: "v1",
|
|
9404
|
+
kind: "ConfigMap",
|
|
9405
|
+
metadata: {
|
|
9406
|
+
name: "example",
|
|
9407
|
+
namespace: "default"
|
|
9323
9408
|
},
|
|
9324
|
-
|
|
9325
|
-
|
|
9409
|
+
data: {
|
|
9410
|
+
key: "value"
|
|
9326
9411
|
},
|
|
9327
|
-
|
|
9412
|
+
immutable: false
|
|
9328
9413
|
};
|
|
9329
9414
|
const SERVER_INSTANCE_INIT_VALUE = {
|
|
9330
9415
|
apiVersion: "kubesmart.smtx.io/v1alpha1",
|
|
@@ -9346,138 +9431,136 @@ const SERVER_INSTANCE_INIT_VALUE = {
|
|
|
9346
9431
|
};
|
|
9347
9432
|
const REDEPLOY_TIMESTAMP_KEY = "kubectl.kubernetes.io/restartedAt";
|
|
9348
9433
|
const SECRET_OPAQUE_INIT_VALUE = {
|
|
9349
|
-
|
|
9350
|
-
|
|
9351
|
-
|
|
9352
|
-
|
|
9353
|
-
|
|
9434
|
+
apiVersion: "v1",
|
|
9435
|
+
kind: "Secret",
|
|
9436
|
+
metadata: {
|
|
9437
|
+
name: "example",
|
|
9438
|
+
namespace: "default"
|
|
9354
9439
|
},
|
|
9355
|
-
|
|
9356
|
-
|
|
9357
|
-
|
|
9440
|
+
type: "Opaque",
|
|
9441
|
+
data: {
|
|
9442
|
+
key: "value"
|
|
9358
9443
|
}
|
|
9359
9444
|
};
|
|
9360
9445
|
const SECRET_IMAGE_REPO_INIT_VALUE = {
|
|
9361
|
-
|
|
9362
|
-
|
|
9363
|
-
|
|
9364
|
-
|
|
9365
|
-
|
|
9446
|
+
apiVersion: "v1",
|
|
9447
|
+
kind: "Secret",
|
|
9448
|
+
metadata: {
|
|
9449
|
+
name: "example",
|
|
9450
|
+
namespace: "default"
|
|
9366
9451
|
},
|
|
9367
|
-
|
|
9368
|
-
|
|
9452
|
+
type: "kubernetes.io/dockerconfigjson",
|
|
9453
|
+
data: {
|
|
9369
9454
|
".dockerconfigjson": ""
|
|
9370
9455
|
}
|
|
9371
9456
|
};
|
|
9372
9457
|
const SECRET_BASIC_AUTH_INIT_VALUE = {
|
|
9373
|
-
|
|
9374
|
-
|
|
9375
|
-
|
|
9376
|
-
|
|
9377
|
-
|
|
9458
|
+
apiVersion: "v1",
|
|
9459
|
+
kind: "Secret",
|
|
9460
|
+
metadata: {
|
|
9461
|
+
name: "example",
|
|
9462
|
+
namespace: "default"
|
|
9378
9463
|
},
|
|
9379
|
-
|
|
9380
|
-
|
|
9381
|
-
|
|
9382
|
-
|
|
9464
|
+
type: "kubernetes.io/basic-auth",
|
|
9465
|
+
data: {
|
|
9466
|
+
username: "example",
|
|
9467
|
+
password: "example"
|
|
9383
9468
|
}
|
|
9384
9469
|
};
|
|
9385
9470
|
const SECRET_SSH_AUTH_INIT_VALUE = {
|
|
9386
|
-
|
|
9387
|
-
|
|
9388
|
-
|
|
9389
|
-
|
|
9390
|
-
|
|
9471
|
+
apiVersion: "v1",
|
|
9472
|
+
kind: "Secret",
|
|
9473
|
+
metadata: {
|
|
9474
|
+
name: "example",
|
|
9475
|
+
namespace: "default"
|
|
9391
9476
|
},
|
|
9392
|
-
|
|
9393
|
-
|
|
9477
|
+
type: "kubernetes.io/ssh-auth",
|
|
9478
|
+
data: {
|
|
9394
9479
|
"ssh-publickey": "",
|
|
9395
9480
|
"ssh-privatekey": ""
|
|
9396
9481
|
}
|
|
9397
9482
|
};
|
|
9398
9483
|
const SECRET_TLS_INIT_VALUE = {
|
|
9399
|
-
|
|
9400
|
-
|
|
9401
|
-
|
|
9402
|
-
|
|
9403
|
-
|
|
9484
|
+
apiVersion: "v1",
|
|
9485
|
+
kind: "Secret",
|
|
9486
|
+
metadata: {
|
|
9487
|
+
name: "example",
|
|
9488
|
+
namespace: "default"
|
|
9404
9489
|
},
|
|
9405
|
-
|
|
9406
|
-
|
|
9490
|
+
type: "kubernetes.io/tls",
|
|
9491
|
+
data: {
|
|
9407
9492
|
"tls.crt": "",
|
|
9408
9493
|
"tls.key": ""
|
|
9409
9494
|
}
|
|
9410
9495
|
};
|
|
9411
9496
|
const SECRET_CUSTOM_INIT_VALUE = {
|
|
9412
|
-
|
|
9413
|
-
|
|
9414
|
-
|
|
9415
|
-
|
|
9416
|
-
|
|
9497
|
+
apiVersion: "v1",
|
|
9498
|
+
kind: "Secret",
|
|
9499
|
+
metadata: {
|
|
9500
|
+
name: "example",
|
|
9501
|
+
namespace: "default"
|
|
9417
9502
|
},
|
|
9418
|
-
|
|
9419
|
-
|
|
9503
|
+
type: "",
|
|
9504
|
+
data: {}
|
|
9420
9505
|
};
|
|
9421
9506
|
const NODE_INIT_VALUE = {
|
|
9422
|
-
|
|
9423
|
-
|
|
9424
|
-
|
|
9425
|
-
|
|
9426
|
-
|
|
9507
|
+
apiVersion: "v1",
|
|
9508
|
+
kind: "Node",
|
|
9509
|
+
metadata: {
|
|
9510
|
+
name: "example",
|
|
9511
|
+
namespace: "default"
|
|
9427
9512
|
},
|
|
9428
|
-
|
|
9513
|
+
spec: {}
|
|
9429
9514
|
};
|
|
9430
9515
|
const STORAGE_CLASS_INIT_VALUE = {
|
|
9431
|
-
|
|
9432
|
-
|
|
9433
|
-
|
|
9434
|
-
|
|
9516
|
+
apiVersion: "storage.k8s.io/v1",
|
|
9517
|
+
kind: "StorageClass",
|
|
9518
|
+
metadata: {
|
|
9519
|
+
name: ""
|
|
9435
9520
|
},
|
|
9436
|
-
|
|
9521
|
+
parameters: {
|
|
9437
9522
|
"csi.storage.k8s.io/fstype": "ext4"
|
|
9438
9523
|
},
|
|
9439
|
-
|
|
9440
|
-
|
|
9441
|
-
|
|
9442
|
-
|
|
9524
|
+
provisioner: "",
|
|
9525
|
+
reclaimPolicy: "Delete",
|
|
9526
|
+
allowVolumeExpansion: true,
|
|
9527
|
+
volumeBindingMode: "Immediate"
|
|
9443
9528
|
};
|
|
9444
9529
|
const PV_INIT_VALUE = {
|
|
9445
|
-
|
|
9446
|
-
|
|
9447
|
-
|
|
9448
|
-
|
|
9530
|
+
apiVersion: "v1",
|
|
9531
|
+
kind: "PersistentVolume",
|
|
9532
|
+
metadata: {
|
|
9533
|
+
name: "pvc-hostpath"
|
|
9449
9534
|
},
|
|
9450
|
-
|
|
9451
|
-
|
|
9452
|
-
|
|
9453
|
-
|
|
9454
|
-
"capacity": {
|
|
9455
|
-
"storage": "10Gi"
|
|
9535
|
+
spec: {
|
|
9536
|
+
accessModes: ["ReadWriteOnce"],
|
|
9537
|
+
capacity: {
|
|
9538
|
+
storage: "10Gi"
|
|
9456
9539
|
},
|
|
9457
|
-
|
|
9458
|
-
|
|
9459
|
-
|
|
9540
|
+
hostPath: {
|
|
9541
|
+
type: "DirectoryOrCreate",
|
|
9542
|
+
path: "/root/test"
|
|
9460
9543
|
},
|
|
9461
|
-
|
|
9462
|
-
|
|
9544
|
+
persistentVolumeReclaimPolicy: "Delete",
|
|
9545
|
+
volumeMode: "Filesystem"
|
|
9463
9546
|
}
|
|
9464
9547
|
};
|
|
9465
9548
|
const PVC_INIT_VALUE = {
|
|
9466
|
-
|
|
9467
|
-
|
|
9468
|
-
|
|
9469
|
-
|
|
9470
|
-
|
|
9549
|
+
apiVersion: "v1",
|
|
9550
|
+
kind: "PersistentVolumeClaim",
|
|
9551
|
+
metadata: {
|
|
9552
|
+
name: "",
|
|
9553
|
+
namespace: "default"
|
|
9471
9554
|
},
|
|
9472
|
-
|
|
9473
|
-
|
|
9474
|
-
|
|
9475
|
-
|
|
9476
|
-
|
|
9555
|
+
spec: {
|
|
9556
|
+
accessModes: [],
|
|
9557
|
+
resources: {
|
|
9558
|
+
requests: {
|
|
9559
|
+
storage: "10Gi"
|
|
9477
9560
|
}
|
|
9478
9561
|
},
|
|
9479
|
-
|
|
9480
|
-
|
|
9562
|
+
storageClassName: "",
|
|
9563
|
+
volumeMode: "Filesystem"
|
|
9481
9564
|
}
|
|
9482
9565
|
};
|
|
9483
9566
|
var ResourceState = /* @__PURE__ */ ((ResourceState2) => {
|
|
@@ -9584,6 +9667,16 @@ class WorkloadBaseModel extends ResourceModel {
|
|
|
9584
9667
|
);
|
|
9585
9668
|
return (containers == null ? void 0 : containers.map((container2) => shortenedImage(container2.image || ""))) || [];
|
|
9586
9669
|
}
|
|
9670
|
+
async fetchRestarts(selector, namespace2) {
|
|
9671
|
+
const pods = await this._globalStore.get("pods", {
|
|
9672
|
+
resourceBasePath: "/api/v1",
|
|
9673
|
+
kind: "Pod"
|
|
9674
|
+
});
|
|
9675
|
+
const myPods = pods.items.filter(
|
|
9676
|
+
(p) => matchSelector(p, selector, namespace2)
|
|
9677
|
+
);
|
|
9678
|
+
return lodashExports.sumBy(myPods, "restarts");
|
|
9679
|
+
}
|
|
9587
9680
|
}
|
|
9588
9681
|
class JobModel extends WorkloadBaseModel {
|
|
9589
9682
|
constructor(_rawYaml, _globalStore) {
|
|
@@ -9595,18 +9688,11 @@ class JobModel extends WorkloadBaseModel {
|
|
|
9595
9688
|
await this.getRestarts();
|
|
9596
9689
|
}
|
|
9597
9690
|
async getRestarts() {
|
|
9598
|
-
|
|
9599
|
-
|
|
9600
|
-
|
|
9601
|
-
|
|
9602
|
-
const myPods = pods.items.filter(
|
|
9603
|
-
(p) => {
|
|
9604
|
-
var _a;
|
|
9605
|
-
return matchSelector(p, (_a = this.spec) == null ? void 0 : _a.selector, this.metadata.namespace);
|
|
9606
|
-
}
|
|
9691
|
+
var _a;
|
|
9692
|
+
this.restarts = await this.fetchRestarts(
|
|
9693
|
+
(_a = this.spec) == null ? void 0 : _a.selector,
|
|
9694
|
+
this.metadata.namespace
|
|
9607
9695
|
);
|
|
9608
|
-
const result = lodashExports.sumBy(myPods, "restarts");
|
|
9609
|
-
this.restarts = result;
|
|
9610
9696
|
}
|
|
9611
9697
|
get duration() {
|
|
9612
9698
|
var _a, _b;
|
|
@@ -9671,18 +9757,11 @@ class WorkloadModel extends WorkloadBaseModel {
|
|
|
9671
9757
|
await this.getIngresses();
|
|
9672
9758
|
}
|
|
9673
9759
|
async getRestarts() {
|
|
9674
|
-
|
|
9675
|
-
|
|
9676
|
-
|
|
9677
|
-
|
|
9678
|
-
const myPods = pods.items.filter(
|
|
9679
|
-
(p) => {
|
|
9680
|
-
var _a;
|
|
9681
|
-
return matchSelector(p, (_a = this.spec) == null ? void 0 : _a.selector, this.metadata.namespace);
|
|
9682
|
-
}
|
|
9760
|
+
var _a;
|
|
9761
|
+
this.restarts = await this.fetchRestarts(
|
|
9762
|
+
(_a = this.spec) == null ? void 0 : _a.selector,
|
|
9763
|
+
this.metadata.namespace
|
|
9683
9764
|
);
|
|
9684
|
-
const result = lodashExports.sumBy(myPods, "restarts");
|
|
9685
|
-
this.restarts = result;
|
|
9686
9765
|
}
|
|
9687
9766
|
async getServices() {
|
|
9688
9767
|
const services = await this._globalStore.get("services", {
|
|
@@ -9699,10 +9778,10 @@ class WorkloadModel extends WorkloadBaseModel {
|
|
|
9699
9778
|
}
|
|
9700
9779
|
async getIngresses() {
|
|
9701
9780
|
const allIngresses = /* @__PURE__ */ new Map();
|
|
9702
|
-
for (const
|
|
9703
|
-
for (const
|
|
9704
|
-
const key2 = `${
|
|
9705
|
-
allIngresses.set(key2,
|
|
9781
|
+
for (const service2 of this.services) {
|
|
9782
|
+
for (const ingress2 of service2.ingresses) {
|
|
9783
|
+
const key2 = `${ingress2.namespace}-${ingress2.name}`;
|
|
9784
|
+
allIngresses.set(key2, ingress2);
|
|
9706
9785
|
}
|
|
9707
9786
|
}
|
|
9708
9787
|
this.ingresses = Array.from(allIngresses.values());
|
|
@@ -9735,6 +9814,23 @@ class WorkloadModel extends WorkloadBaseModel {
|
|
|
9735
9814
|
}
|
|
9736
9815
|
return newOne;
|
|
9737
9816
|
}
|
|
9817
|
+
getControllerRevisions(controllerRevisions) {
|
|
9818
|
+
return controllerRevisions.filter(
|
|
9819
|
+
(cr) => {
|
|
9820
|
+
var _a, _b;
|
|
9821
|
+
return (_b = (_a = cr.metadata) == null ? void 0 : _a.ownerReferences) == null ? void 0 : _b.some(
|
|
9822
|
+
(ref) => ref.kind === this.kind && ref.uid === this.metadata.uid
|
|
9823
|
+
);
|
|
9824
|
+
}
|
|
9825
|
+
);
|
|
9826
|
+
}
|
|
9827
|
+
getRevision(controllerRevisions) {
|
|
9828
|
+
const myRevisions = this.getControllerRevisions(controllerRevisions);
|
|
9829
|
+
return myRevisions.reduce(
|
|
9830
|
+
(result, cr) => Math.max(result, Number(cr.revision || 0)),
|
|
9831
|
+
0
|
|
9832
|
+
);
|
|
9833
|
+
}
|
|
9738
9834
|
}
|
|
9739
9835
|
class PodModel extends WorkloadBaseModel {
|
|
9740
9836
|
constructor(_rawYaml, _globalStore) {
|
|
@@ -10011,22 +10107,6 @@ class DaemonSetModel extends WorkloadModel {
|
|
|
10011
10107
|
super(_rawYaml, _globalStore);
|
|
10012
10108
|
this._rawYaml = _rawYaml;
|
|
10013
10109
|
}
|
|
10014
|
-
getControllerRevisions(controllerVisions) {
|
|
10015
|
-
return controllerVisions.filter(
|
|
10016
|
-
(controllerRevision) => {
|
|
10017
|
-
var _a, _b;
|
|
10018
|
-
return (_b = (_a = controllerRevision.metadata) == null ? void 0 : _a.ownerReferences) == null ? void 0 : _b.some(
|
|
10019
|
-
(ownerReference) => ownerReference.kind === "DaemonSet" && ownerReference.uid === this.metadata.uid
|
|
10020
|
-
);
|
|
10021
|
-
}
|
|
10022
|
-
);
|
|
10023
|
-
}
|
|
10024
|
-
getRevision(controllerVisions) {
|
|
10025
|
-
const myControllerVisions = this.getControllerRevisions(controllerVisions);
|
|
10026
|
-
return myControllerVisions.reduce((result, controllerRevision) => {
|
|
10027
|
-
return Math.max(result, Number(controllerRevision.revision || 0));
|
|
10028
|
-
}, 0);
|
|
10029
|
-
}
|
|
10030
10110
|
get stateDisplay() {
|
|
10031
10111
|
var _a, _b;
|
|
10032
10112
|
if (((_a = this.status) == null ? void 0 : _a.desiredNumberScheduled) !== ((_b = this.status) == null ? void 0 : _b.numberReady)) {
|
|
@@ -10046,22 +10126,6 @@ class StatefulSetModel extends WorkloadModel {
|
|
|
10046
10126
|
super(_rawYaml, _globalStore);
|
|
10047
10127
|
this._rawYaml = _rawYaml;
|
|
10048
10128
|
}
|
|
10049
|
-
getControllerRevisions(controllerVisions) {
|
|
10050
|
-
return controllerVisions.filter(
|
|
10051
|
-
(controllerRevision) => {
|
|
10052
|
-
var _a, _b;
|
|
10053
|
-
return (_b = (_a = controllerRevision.metadata) == null ? void 0 : _a.ownerReferences) == null ? void 0 : _b.some(
|
|
10054
|
-
(ownerReference) => ownerReference.kind === "StatefulSet" && ownerReference.uid === this.metadata.uid
|
|
10055
|
-
);
|
|
10056
|
-
}
|
|
10057
|
-
);
|
|
10058
|
-
}
|
|
10059
|
-
getRevision(controllerVisions) {
|
|
10060
|
-
const myControllerVisions = this.getControllerRevisions(controllerVisions);
|
|
10061
|
-
return myControllerVisions.reduce((result, controllerRevision) => {
|
|
10062
|
-
return Math.max(result, Number(controllerRevision.revision || 0));
|
|
10063
|
-
}, 0);
|
|
10064
|
-
}
|
|
10065
10129
|
get stateDisplay() {
|
|
10066
10130
|
var _a, _b, _c;
|
|
10067
10131
|
if (((_a = this.spec) == null ? void 0 : _a.replicas) === 0) {
|
|
@@ -10094,11 +10158,9 @@ class ServiceModel extends ResourceModel {
|
|
|
10094
10158
|
resourceBasePath: "/apis/networking.k8s.io/v1",
|
|
10095
10159
|
kind: "Ingress"
|
|
10096
10160
|
});
|
|
10097
|
-
const myIngresses = ingresses.items.filter((
|
|
10098
|
-
const rules =
|
|
10099
|
-
return rules.some(
|
|
10100
|
-
(rule2) => rule2.serviceName === this.name
|
|
10101
|
-
);
|
|
10161
|
+
const myIngresses = ingresses.items.filter((ingress2) => {
|
|
10162
|
+
const rules = ingress2.getFlattenedRules([]);
|
|
10163
|
+
return rules.some((rule2) => rule2.serviceName === this.name);
|
|
10102
10164
|
});
|
|
10103
10165
|
this.ingresses = myIngresses;
|
|
10104
10166
|
}
|
|
@@ -10290,15 +10352,15 @@ class IngressClassModel extends ResourceModel {
|
|
|
10290
10352
|
return (_a = this.spec) == null ? void 0 : _a.controller;
|
|
10291
10353
|
}
|
|
10292
10354
|
}
|
|
10293
|
-
const
|
|
10355
|
+
const index_1tz3o5 = "";
|
|
10294
10356
|
const ServiceInClusterAccessComponent = ({
|
|
10295
|
-
service
|
|
10357
|
+
service: service2
|
|
10296
10358
|
}) => {
|
|
10297
|
-
const spec =
|
|
10298
|
-
switch (
|
|
10359
|
+
const spec = service2._rawYaml.spec;
|
|
10360
|
+
switch (service2.displayType) {
|
|
10299
10361
|
case ServiceTypeEnum.ExternalName:
|
|
10300
10362
|
return /* @__PURE__ */ common.jsxRuntimeExports.jsx(ValueDisplay, {
|
|
10301
|
-
value:
|
|
10363
|
+
value: service2.dnsRecord
|
|
10302
10364
|
});
|
|
10303
10365
|
case ServiceTypeEnum.Headless:
|
|
10304
10366
|
return /* @__PURE__ */ common.jsxRuntimeExports.jsx(ValueDisplay, {
|
|
@@ -10314,26 +10376,59 @@ const BreakLineStyle = "b1vtjd4k";
|
|
|
10314
10376
|
const LinkStyle$2 = "luro4rx";
|
|
10315
10377
|
const ShowLinkStyle = "s1gydjqf";
|
|
10316
10378
|
const DashedUnderlineSpanStyle = "dvp1i89";
|
|
10379
|
+
const AccessAddressStyle = "azmggeh";
|
|
10380
|
+
const BreakLineListStyle = "bct30qn";
|
|
10381
|
+
const BreakLineItemStyle = "b1m9bqu";
|
|
10382
|
+
const ServiceAccessAddress = ({
|
|
10383
|
+
children,
|
|
10384
|
+
copyValue
|
|
10385
|
+
}) => {
|
|
10386
|
+
return /* @__PURE__ */ common.jsxRuntimeExports.jsxs("span", {
|
|
10387
|
+
className: AccessAddressStyle,
|
|
10388
|
+
children: [children, /* @__PURE__ */ common.jsxRuntimeExports.jsx(CopyButton, {
|
|
10389
|
+
value: copyValue
|
|
10390
|
+
})]
|
|
10391
|
+
});
|
|
10392
|
+
};
|
|
10393
|
+
function renderAccessItems(items, separator) {
|
|
10394
|
+
if (!items.length) {
|
|
10395
|
+
return void 0;
|
|
10396
|
+
}
|
|
10397
|
+
const result = [];
|
|
10398
|
+
for (let i2 = 0; i2 < items.length; i2++) {
|
|
10399
|
+
result.push(/* @__PURE__ */ common.jsxRuntimeExports.jsx(React.Fragment, {
|
|
10400
|
+
children: items[i2]
|
|
10401
|
+
}, `item-${i2}`));
|
|
10402
|
+
if (i2 < items.length - 1) {
|
|
10403
|
+
result.push(/* @__PURE__ */ common.jsxRuntimeExports.jsx(React.Fragment, {
|
|
10404
|
+
children: separator
|
|
10405
|
+
}, `separator-${i2}`));
|
|
10406
|
+
}
|
|
10407
|
+
}
|
|
10408
|
+
return result;
|
|
10409
|
+
}
|
|
10317
10410
|
const ServiceOutClusterAccessComponent = ({
|
|
10318
|
-
service,
|
|
10411
|
+
service: service2,
|
|
10319
10412
|
breakLine = true,
|
|
10320
10413
|
clusterVip,
|
|
10321
|
-
showDashedUnderline = true
|
|
10414
|
+
showDashedUnderline = true,
|
|
10415
|
+
showCopyButton = false
|
|
10322
10416
|
}) => {
|
|
10323
|
-
var _a, _b, _c, _d, _e;
|
|
10417
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
10324
10418
|
const {
|
|
10325
10419
|
i18n: i18n2
|
|
10326
10420
|
} = common.useTranslation();
|
|
10327
|
-
const spec =
|
|
10328
|
-
const status =
|
|
10421
|
+
const spec = service2._rawYaml.spec;
|
|
10422
|
+
const status = service2._rawYaml.status;
|
|
10329
10423
|
let content = "-";
|
|
10330
10424
|
switch (spec.type) {
|
|
10331
10425
|
case ServiceTypeEnum.NodePort:
|
|
10332
|
-
|
|
10333
|
-
|
|
10334
|
-
|
|
10426
|
+
content = (_a = spec.ports) == null ? void 0 : _a.filter((v) => !!v && v.nodePort).map((p) => {
|
|
10427
|
+
const address = `${clusterVip}:${p.nodePort}`;
|
|
10428
|
+
const link = /* @__PURE__ */ common.jsxRuntimeExports.jsx(eagle.Link, {
|
|
10429
|
+
href: `http://${address}`,
|
|
10335
10430
|
target: "_blank",
|
|
10336
|
-
className: common.cx_default(ShowLinkStyle, eagle.Typo.Label.l4_regular_title),
|
|
10431
|
+
className: breakLine ? common.cx_default(eagle.Typo.Label.l4_regular_title, BreakLineStyle, LinkStyle$2) : common.cx_default(ShowLinkStyle, eagle.Typo.Label.l4_regular_title),
|
|
10337
10432
|
children: /* @__PURE__ */ common.jsxRuntimeExports.jsx(eagle.Tooltip, {
|
|
10338
10433
|
title: i18n2.t("dovetail.default_http_protocol_tooltip"),
|
|
10339
10434
|
children: /* @__PURE__ */ common.jsxRuntimeExports.jsx("span", {
|
|
@@ -10341,50 +10436,60 @@ const ServiceOutClusterAccessComponent = ({
|
|
|
10341
10436
|
style: showDashedUnderline ? void 0 : {
|
|
10342
10437
|
borderBottom: "none"
|
|
10343
10438
|
},
|
|
10344
|
-
children:
|
|
10439
|
+
children: address
|
|
10345
10440
|
})
|
|
10346
10441
|
})
|
|
10347
|
-
}, p.name)
|
|
10442
|
+
}, p.name || p.nodePort);
|
|
10443
|
+
if (!showCopyButton) {
|
|
10444
|
+
return link;
|
|
10445
|
+
}
|
|
10446
|
+
return /* @__PURE__ */ common.jsxRuntimeExports.jsx(ServiceAccessAddress, {
|
|
10447
|
+
copyValue: address,
|
|
10448
|
+
children: link
|
|
10449
|
+
}, p.name || p.nodePort);
|
|
10450
|
+
});
|
|
10451
|
+
if (!breakLine) {
|
|
10348
10452
|
if (content && content instanceof Array) {
|
|
10349
|
-
|
|
10350
|
-
for (let i2 = 0; i2 < content.length; i2++) {
|
|
10351
|
-
result.push(content[i2]);
|
|
10352
|
-
if (i2 < content.length - 1) {
|
|
10353
|
-
result.push(", ");
|
|
10354
|
-
}
|
|
10355
|
-
}
|
|
10356
|
-
content = result;
|
|
10453
|
+
content = renderAccessItems(content, ", ");
|
|
10357
10454
|
}
|
|
10358
10455
|
break;
|
|
10359
10456
|
}
|
|
10360
|
-
|
|
10361
|
-
|
|
10362
|
-
|
|
10363
|
-
|
|
10364
|
-
|
|
10365
|
-
|
|
10366
|
-
|
|
10367
|
-
|
|
10368
|
-
|
|
10369
|
-
|
|
10370
|
-
},
|
|
10371
|
-
children: [clusterVip, ":", p.nodePort]
|
|
10372
|
-
})
|
|
10373
|
-
})
|
|
10374
|
-
}, p.nodePort));
|
|
10375
|
-
return /* @__PURE__ */ common.jsxRuntimeExports.jsx("ul", {
|
|
10376
|
-
children: content
|
|
10377
|
-
});
|
|
10457
|
+
if (content && content instanceof Array) {
|
|
10458
|
+
content = /* @__PURE__ */ common.jsxRuntimeExports.jsx("ul", {
|
|
10459
|
+
className: BreakLineListStyle,
|
|
10460
|
+
children: content.map((item, index2) => /* @__PURE__ */ common.jsxRuntimeExports.jsx("li", {
|
|
10461
|
+
className: BreakLineItemStyle,
|
|
10462
|
+
children: item
|
|
10463
|
+
}, `nodeport-${index2}`))
|
|
10464
|
+
});
|
|
10465
|
+
}
|
|
10466
|
+
break;
|
|
10378
10467
|
case ServiceTypeEnum.ExternalName:
|
|
10468
|
+
if (showCopyButton) {
|
|
10469
|
+
content = renderAccessItems(((_b = spec.externalIPs) == null ? void 0 : _b.map((ip) => /* @__PURE__ */ common.jsxRuntimeExports.jsx(ServiceAccessAddress, {
|
|
10470
|
+
copyValue: ip,
|
|
10471
|
+
children: ip
|
|
10472
|
+
}, ip))) || [], breakLine ? "\n" : ", ");
|
|
10473
|
+
break;
|
|
10474
|
+
}
|
|
10379
10475
|
content = /* @__PURE__ */ common.jsxRuntimeExports.jsx(ValueDisplay, {
|
|
10380
10476
|
useOverflow: false,
|
|
10381
10477
|
value: (_c = spec.externalIPs) == null ? void 0 : _c.join(breakLine ? "\n" : ", ")
|
|
10382
10478
|
});
|
|
10383
10479
|
break;
|
|
10384
10480
|
case ServiceTypeEnum.LoadBalancer:
|
|
10481
|
+
if (showCopyButton) {
|
|
10482
|
+
content = renderAccessItems(((_e = (_d = status.loadBalancer) == null ? void 0 : _d.ingress) == null ? void 0 : _e.map(({
|
|
10483
|
+
ip
|
|
10484
|
+
}) => ip).filter((ip) => !!ip).map((ip) => /* @__PURE__ */ common.jsxRuntimeExports.jsx(ServiceAccessAddress, {
|
|
10485
|
+
copyValue: ip,
|
|
10486
|
+
children: ip
|
|
10487
|
+
}, ip))) || [], breakLine ? "\n" : ", ");
|
|
10488
|
+
break;
|
|
10489
|
+
}
|
|
10385
10490
|
content = /* @__PURE__ */ common.jsxRuntimeExports.jsx(ValueDisplay, {
|
|
10386
10491
|
useOverflow: false,
|
|
10387
|
-
value: (
|
|
10492
|
+
value: (_g = (_f = status.loadBalancer) == null ? void 0 : _f.ingress) == null ? void 0 : _g.map(({
|
|
10388
10493
|
ip
|
|
10389
10494
|
}) => ip).join(breakLine ? "\n" : ", ")
|
|
10390
10495
|
});
|
|
@@ -10411,7 +10516,7 @@ const ServiceOutClusterAccessComponent = ({
|
|
|
10411
10516
|
children: content || "-"
|
|
10412
10517
|
});
|
|
10413
10518
|
};
|
|
10414
|
-
const
|
|
10519
|
+
const index_1l1kti4 = "";
|
|
10415
10520
|
const TagWrapper = "t13a6vox";
|
|
10416
10521
|
const TagStyle = "t12ikbmp";
|
|
10417
10522
|
const Tags = (props) => {
|
|
@@ -10629,7 +10734,7 @@ const ConditionsTable = ({ conditions = [] }) => {
|
|
|
10629
10734
|
const currentSize = 10;
|
|
10630
10735
|
if (conditionsWithId.length === 0) {
|
|
10631
10736
|
return /* @__PURE__ */ common.jsxRuntimeExports.jsx(
|
|
10632
|
-
|
|
10737
|
+
ErrorContent,
|
|
10633
10738
|
{
|
|
10634
10739
|
errorText: t2("dovetail.no_resource", { kind: t2("dovetail.condition") }),
|
|
10635
10740
|
type: ErrorContentType.List
|
|
@@ -10677,42 +10782,48 @@ function immutableSet(obj, path2, value2) {
|
|
|
10677
10782
|
return lodashEs.setWith(lodashEs.clone(obj), path2, value2, lodashEs.clone);
|
|
10678
10783
|
}
|
|
10679
10784
|
function usePathMap(options) {
|
|
10680
|
-
const {
|
|
10681
|
-
|
|
10682
|
-
|
|
10683
|
-
|
|
10684
|
-
|
|
10685
|
-
|
|
10686
|
-
|
|
10687
|
-
const
|
|
10688
|
-
|
|
10689
|
-
|
|
10690
|
-
|
|
10691
|
-
|
|
10692
|
-
|
|
10693
|
-
|
|
10694
|
-
|
|
10695
|
-
|
|
10696
|
-
|
|
10697
|
-
|
|
10698
|
-
let result = values;
|
|
10699
|
-
for (const { from, to } of pathMap || []) {
|
|
10700
|
-
result = immutableSet(
|
|
10701
|
-
values,
|
|
10702
|
-
from,
|
|
10703
|
-
lodashEs.get(result, to)
|
|
10704
|
-
);
|
|
10705
|
-
const toPath = [...to];
|
|
10706
|
-
const lastKey = toPath.pop();
|
|
10707
|
-
if (lastKey) {
|
|
10708
|
-
const obj = lodashEs.get(result, toPath);
|
|
10709
|
-
if (obj && typeof obj === "object") {
|
|
10710
|
-
delete obj[lastKey];
|
|
10785
|
+
const {
|
|
10786
|
+
pathMap,
|
|
10787
|
+
transformInitValues: transformInitValuesFromOptions,
|
|
10788
|
+
transformApplyValues: transformApplyValuesFromOptions
|
|
10789
|
+
} = options;
|
|
10790
|
+
const transformInitValues = React.useCallback(
|
|
10791
|
+
(values) => {
|
|
10792
|
+
const initValues = values._rawYaml || values;
|
|
10793
|
+
let result = initValues;
|
|
10794
|
+
for (const { from, to } of pathMap || []) {
|
|
10795
|
+
result = immutableSet(initValues, to, lodashEs.get(initValues, from));
|
|
10796
|
+
const fromPath = [...from];
|
|
10797
|
+
const lastKey = fromPath.pop();
|
|
10798
|
+
if (lastKey) {
|
|
10799
|
+
const obj = lodashEs.get(result, fromPath);
|
|
10800
|
+
if (obj && typeof obj === "object") {
|
|
10801
|
+
delete obj[lastKey];
|
|
10802
|
+
}
|
|
10711
10803
|
}
|
|
10712
10804
|
}
|
|
10713
|
-
|
|
10714
|
-
|
|
10715
|
-
|
|
10805
|
+
return (transformInitValuesFromOptions == null ? void 0 : transformInitValuesFromOptions(result)) || result;
|
|
10806
|
+
},
|
|
10807
|
+
[transformInitValuesFromOptions, pathMap]
|
|
10808
|
+
);
|
|
10809
|
+
const transformApplyValues = React.useCallback(
|
|
10810
|
+
(values) => {
|
|
10811
|
+
let result = values;
|
|
10812
|
+
for (const { from, to } of pathMap || []) {
|
|
10813
|
+
result = immutableSet(values, from, lodashEs.get(result, to));
|
|
10814
|
+
const toPath = [...to];
|
|
10815
|
+
const lastKey = toPath.pop();
|
|
10816
|
+
if (lastKey) {
|
|
10817
|
+
const obj = lodashEs.get(result, toPath);
|
|
10818
|
+
if (obj && typeof obj === "object") {
|
|
10819
|
+
delete obj[lastKey];
|
|
10820
|
+
}
|
|
10821
|
+
}
|
|
10822
|
+
}
|
|
10823
|
+
return (transformApplyValuesFromOptions == null ? void 0 : transformApplyValuesFromOptions(result)) || result;
|
|
10824
|
+
},
|
|
10825
|
+
[transformApplyValuesFromOptions, pathMap]
|
|
10826
|
+
);
|
|
10716
10827
|
return {
|
|
10717
10828
|
transformInitValues,
|
|
10718
10829
|
transformApplyValues
|
|
@@ -10775,278 +10886,276 @@ const ErrorWrapperStyle = "e19q2bnp";
|
|
|
10775
10886
|
const YamlEditorStyle = "y16u5v3w";
|
|
10776
10887
|
const MonacoYamlEditor$3 = React.lazy(() => Promise.resolve().then(() => MonacoYamlEditor$1));
|
|
10777
10888
|
const MonacoYamlDiffEditor$2 = React.lazy(() => Promise.resolve().then(() => MonacoYamlDiffEditor$1));
|
|
10778
|
-
const YamlEditorComponent = React.forwardRef(
|
|
10779
|
-
|
|
10780
|
-
|
|
10781
|
-
|
|
10782
|
-
|
|
10783
|
-
|
|
10784
|
-
|
|
10785
|
-
|
|
10786
|
-
|
|
10787
|
-
|
|
10788
|
-
|
|
10789
|
-
|
|
10790
|
-
|
|
10791
|
-
|
|
10792
|
-
|
|
10793
|
-
|
|
10794
|
-
|
|
10795
|
-
|
|
10796
|
-
|
|
10797
|
-
|
|
10798
|
-
|
|
10799
|
-
|
|
10800
|
-
|
|
10801
|
-
|
|
10802
|
-
|
|
10803
|
-
|
|
10804
|
-
|
|
10805
|
-
|
|
10806
|
-
|
|
10807
|
-
|
|
10808
|
-
|
|
10809
|
-
|
|
10810
|
-
|
|
10811
|
-
|
|
10812
|
-
|
|
10813
|
-
|
|
10814
|
-
|
|
10815
|
-
|
|
10816
|
-
|
|
10817
|
-
|
|
10818
|
-
(newVal) => {
|
|
10819
|
-
var _a;
|
|
10820
|
-
_setValue(newVal);
|
|
10821
|
-
(_a = props.onChange) == null ? void 0 : _a.call(props, newVal);
|
|
10822
|
-
},
|
|
10823
|
-
[props.onChange]
|
|
10824
|
-
);
|
|
10825
|
-
const finalOnChange = React.useMemo(() => {
|
|
10826
|
-
return debounceTime ? lodashEs.debounce(onChange, debounceTime) : onChange;
|
|
10827
|
-
}, [onChange, debounceTime]);
|
|
10828
|
-
const onValidate = React.useCallback(
|
|
10829
|
-
(valid, schemaValid) => {
|
|
10830
|
-
var _a;
|
|
10831
|
-
(_a = props.onValidate) == null ? void 0 : _a.call(props, valid, schemaValid);
|
|
10832
|
-
},
|
|
10833
|
-
[props.onValidate]
|
|
10834
|
-
);
|
|
10835
|
-
const onEditorCreate = React.useCallback(
|
|
10836
|
-
(editor) => {
|
|
10837
|
-
var _a, _b, _c;
|
|
10838
|
-
if (editor.getValue() !== _value) {
|
|
10839
|
-
(_b = (_a = editorInstance.current) == null ? void 0 : _a.getModel()) == null ? void 0 : _b.setValue(_valueString);
|
|
10840
|
-
}
|
|
10841
|
-
(_c = props.onEditorCreate) == null ? void 0 : _c.call(props, editor);
|
|
10842
|
-
},
|
|
10843
|
-
[_value, props.onEditorCreate]
|
|
10844
|
-
);
|
|
10845
|
-
const getInstance = React.useCallback((ins) => {
|
|
10846
|
-
editorInstance.current = ins;
|
|
10847
|
-
}, []);
|
|
10848
|
-
const getEditorValue = React.useCallback(() => {
|
|
10889
|
+
const YamlEditorComponent = React.forwardRef(function YamlEditorComponent2(props, ref) {
|
|
10890
|
+
const {
|
|
10891
|
+
title,
|
|
10892
|
+
collapsable = true,
|
|
10893
|
+
isDefaultCollapsed,
|
|
10894
|
+
value: value2,
|
|
10895
|
+
defaultValue = "",
|
|
10896
|
+
height,
|
|
10897
|
+
readOnly,
|
|
10898
|
+
errorMsgs = [],
|
|
10899
|
+
schemas,
|
|
10900
|
+
eleRef,
|
|
10901
|
+
className,
|
|
10902
|
+
debounceTime,
|
|
10903
|
+
isScrollOnFocus = true,
|
|
10904
|
+
isHideActions = false
|
|
10905
|
+
} = props;
|
|
10906
|
+
const { t: t2 } = common.useTranslation();
|
|
10907
|
+
const [isCollapsed, setIsCollapsed] = React.useState(
|
|
10908
|
+
collapsable ? isDefaultCollapsed : false
|
|
10909
|
+
);
|
|
10910
|
+
const [isDiff, setIsDiff] = React.useState(false);
|
|
10911
|
+
const [_value, _setValue] = React.useState(value2 || defaultValue);
|
|
10912
|
+
const editorInstance = React.useRef();
|
|
10913
|
+
const [copyTooltip, setCopyTooltip] = React.useState(t2("dovetail.copy"));
|
|
10914
|
+
const [resetTooltip, setResetTooltip] = React.useState(t2("dovetail.reset_arguments"));
|
|
10915
|
+
const defaultValueString = React.useMemo(() => {
|
|
10916
|
+
if (typeof defaultValue === "string") {
|
|
10917
|
+
return defaultValue;
|
|
10918
|
+
}
|
|
10919
|
+
return yaml$2.dump(defaultValue);
|
|
10920
|
+
}, [defaultValue]);
|
|
10921
|
+
const _valueString = React.useMemo(() => {
|
|
10922
|
+
if (typeof _value === "string") {
|
|
10923
|
+
return _value;
|
|
10924
|
+
}
|
|
10925
|
+
return yaml$2.dump(_value);
|
|
10926
|
+
}, [_value]);
|
|
10927
|
+
const onChange = React.useCallback(
|
|
10928
|
+
(newVal) => {
|
|
10849
10929
|
var _a;
|
|
10850
|
-
|
|
10851
|
-
|
|
10852
|
-
|
|
10853
|
-
|
|
10854
|
-
|
|
10855
|
-
|
|
10856
|
-
|
|
10857
|
-
|
|
10930
|
+
_setValue(newVal);
|
|
10931
|
+
(_a = props.onChange) == null ? void 0 : _a.call(props, newVal);
|
|
10932
|
+
},
|
|
10933
|
+
[props.onChange]
|
|
10934
|
+
);
|
|
10935
|
+
const finalOnChange = React.useMemo(() => {
|
|
10936
|
+
return debounceTime ? lodashEs.debounce(onChange, debounceTime) : onChange;
|
|
10937
|
+
}, [onChange, debounceTime]);
|
|
10938
|
+
const onValidate = React.useCallback(
|
|
10939
|
+
(valid, schemaValid) => {
|
|
10940
|
+
var _a;
|
|
10941
|
+
(_a = props.onValidate) == null ? void 0 : _a.call(props, valid, schemaValid);
|
|
10942
|
+
},
|
|
10943
|
+
[props.onValidate]
|
|
10944
|
+
);
|
|
10945
|
+
const onEditorCreate = React.useCallback(
|
|
10946
|
+
(editor) => {
|
|
10947
|
+
var _a, _b, _c;
|
|
10948
|
+
if (editor.getValue() !== _value) {
|
|
10949
|
+
(_b = (_a = editorInstance.current) == null ? void 0 : _a.getModel()) == null ? void 0 : _b.setValue(_valueString);
|
|
10858
10950
|
}
|
|
10859
|
-
|
|
10860
|
-
|
|
10861
|
-
|
|
10862
|
-
|
|
10863
|
-
|
|
10864
|
-
|
|
10865
|
-
|
|
10866
|
-
|
|
10867
|
-
|
|
10868
|
-
|
|
10869
|
-
|
|
10870
|
-
|
|
10871
|
-
|
|
10872
|
-
|
|
10873
|
-
|
|
10874
|
-
|
|
10875
|
-
|
|
10876
|
-
|
|
10877
|
-
|
|
10878
|
-
|
|
10879
|
-
|
|
10880
|
-
|
|
10881
|
-
|
|
10882
|
-
|
|
10883
|
-
|
|
10884
|
-
|
|
10885
|
-
|
|
10886
|
-
|
|
10887
|
-
|
|
10888
|
-
|
|
10889
|
-
|
|
10890
|
-
|
|
10891
|
-
|
|
10892
|
-
|
|
10893
|
-
|
|
10894
|
-
|
|
10895
|
-
|
|
10896
|
-
|
|
10897
|
-
|
|
10898
|
-
|
|
10899
|
-
|
|
10900
|
-
|
|
10901
|
-
|
|
10902
|
-
|
|
10903
|
-
|
|
10904
|
-
|
|
10905
|
-
|
|
10906
|
-
|
|
10907
|
-
|
|
10908
|
-
|
|
10909
|
-
|
|
10910
|
-
|
|
10911
|
-
|
|
10912
|
-
|
|
10913
|
-
|
|
10914
|
-
|
|
10915
|
-
|
|
10916
|
-
|
|
10917
|
-
|
|
10918
|
-
|
|
10919
|
-
|
|
10920
|
-
iconWidth: 16,
|
|
10921
|
-
iconHeight: 16,
|
|
10922
|
-
onClick: () => {
|
|
10923
|
-
if (!isCollapsed) {
|
|
10924
|
-
copyToClipboard(getEditorValue());
|
|
10925
|
-
setCopyTooltip(t2("dovetail.copied"));
|
|
10926
|
-
}
|
|
10927
|
-
}
|
|
10928
|
-
}
|
|
10929
|
-
)
|
|
10930
|
-
}
|
|
10931
|
-
),
|
|
10932
|
-
/* @__PURE__ */ common.jsxRuntimeExports.jsx(Separator, {}),
|
|
10933
|
-
/* @__PURE__ */ common.jsxRuntimeExports.jsx(
|
|
10934
|
-
eagle.Tooltip,
|
|
10935
|
-
{
|
|
10936
|
-
title: isCollapsed ? "" : resetTooltip,
|
|
10937
|
-
onVisibleChange: (visible) => {
|
|
10938
|
-
if (!visible) {
|
|
10939
|
-
setTimeout(() => {
|
|
10940
|
-
setResetTooltip(t2("dovetail.reset_arguments"));
|
|
10941
|
-
}, 80);
|
|
10942
|
-
}
|
|
10943
|
-
},
|
|
10944
|
-
children: /* @__PURE__ */ common.jsxRuntimeExports.jsx(
|
|
10945
|
-
eagle.Icon,
|
|
10946
|
-
{
|
|
10947
|
-
"data-disabled": isCollapsed,
|
|
10948
|
-
src: iconsReact.Retry16GradientGrayIcon,
|
|
10949
|
-
hoverSrc: isCollapsed ? void 0 : iconsReact.Retry16GradientBlueIcon,
|
|
10950
|
-
className: IconStyle,
|
|
10951
|
-
iconWidth: 16,
|
|
10952
|
-
iconHeight: 16,
|
|
10953
|
-
onClick: () => {
|
|
10954
|
-
var _a;
|
|
10955
|
-
if (!isCollapsed) {
|
|
10956
|
-
(_a = editorInstance.current) == null ? void 0 : _a.setValue(defaultValueString);
|
|
10957
|
-
setResetTooltip(t2("dovetail.already_reset"));
|
|
10958
|
-
}
|
|
10959
|
-
}
|
|
10960
|
-
}
|
|
10961
|
-
)
|
|
10962
|
-
}
|
|
10963
|
-
),
|
|
10964
|
-
/* @__PURE__ */ common.jsxRuntimeExports.jsx(Separator, {})
|
|
10965
|
-
] }),
|
|
10951
|
+
(_c = props.onEditorCreate) == null ? void 0 : _c.call(props, editor);
|
|
10952
|
+
},
|
|
10953
|
+
[_value, props.onEditorCreate]
|
|
10954
|
+
);
|
|
10955
|
+
const getInstance = React.useCallback((ins) => {
|
|
10956
|
+
editorInstance.current = ins;
|
|
10957
|
+
}, []);
|
|
10958
|
+
const getEditorValue = React.useCallback(() => {
|
|
10959
|
+
var _a;
|
|
10960
|
+
return ((_a = editorInstance.current) == null ? void 0 : _a.getValue()) ?? "";
|
|
10961
|
+
}, []);
|
|
10962
|
+
React.useEffect(() => {
|
|
10963
|
+
var _a, _b;
|
|
10964
|
+
if (value2 !== void 0 && !lodashEs.isEqual(value2, _value)) {
|
|
10965
|
+
const valueString = typeof value2 === "string" ? value2 : yaml$2.dump(value2);
|
|
10966
|
+
_setValue(value2);
|
|
10967
|
+
(_b = (_a = editorInstance.current) == null ? void 0 : _a.getModel()) == null ? void 0 : _b.setValue(valueString);
|
|
10968
|
+
}
|
|
10969
|
+
}, [value2]);
|
|
10970
|
+
React.useImperativeHandle(ref, () => {
|
|
10971
|
+
return {
|
|
10972
|
+
setValue: _setValue,
|
|
10973
|
+
setEditorValue: (value22) => {
|
|
10974
|
+
var _a, _b;
|
|
10975
|
+
(_b = (_a = editorInstance.current) == null ? void 0 : _a.getModel()) == null ? void 0 : _b.setValue(value22);
|
|
10976
|
+
},
|
|
10977
|
+
getEditorValue,
|
|
10978
|
+
getEditorInstance: () => editorInstance.current || null
|
|
10979
|
+
};
|
|
10980
|
+
});
|
|
10981
|
+
return /* @__PURE__ */ common.jsxRuntimeExports.jsxs(
|
|
10982
|
+
"div",
|
|
10983
|
+
{
|
|
10984
|
+
className: common.cx_default(WrapperStyle$4, className),
|
|
10985
|
+
"data-is-error": !!errorMsgs.length,
|
|
10986
|
+
ref: eleRef,
|
|
10987
|
+
children: [
|
|
10988
|
+
/* @__PURE__ */ common.jsxRuntimeExports.jsxs(
|
|
10989
|
+
eagle.Space,
|
|
10990
|
+
{
|
|
10991
|
+
className: common.cx_default(ToolBarStyle, isCollapsed ? "collapsed" : ""),
|
|
10992
|
+
direction: "vertical",
|
|
10993
|
+
size: 0,
|
|
10994
|
+
children: [
|
|
10995
|
+
/* @__PURE__ */ common.jsxRuntimeExports.jsxs(eagle.Space, { className: ToolBarHeaderStyle, children: [
|
|
10996
|
+
/* @__PURE__ */ common.jsxRuntimeExports.jsxs(eagle.Space, { size: 8, children: [
|
|
10997
|
+
collapsable && /* @__PURE__ */ common.jsxRuntimeExports.jsx(
|
|
10998
|
+
eagle.Icon,
|
|
10999
|
+
{
|
|
11000
|
+
src: iconsReact.HierarchyTriangleRight16GrayIcon,
|
|
11001
|
+
hoverSrc: iconsReact.HierarchyTriangleRight16BlueIcon,
|
|
11002
|
+
className: common.cx_default(IconStyle, isCollapsed ? "" : "arrow-down"),
|
|
11003
|
+
iconWidth: 16,
|
|
11004
|
+
iconHeight: 16,
|
|
11005
|
+
onClick: () => setIsCollapsed(!isCollapsed)
|
|
11006
|
+
}
|
|
11007
|
+
),
|
|
11008
|
+
/* @__PURE__ */ common.jsxRuntimeExports.jsx("div", { className: common.cx_default(TitleStyle$1, "yaml-editor-title"), children: title || t2("dovetail.configure_file") })
|
|
11009
|
+
] }),
|
|
11010
|
+
isHideActions ? null : /* @__PURE__ */ common.jsxRuntimeExports.jsxs(eagle.Space, { size: 14, children: [
|
|
11011
|
+
isDiff ? void 0 : /* @__PURE__ */ common.jsxRuntimeExports.jsxs(common.jsxRuntimeExports.Fragment, { children: [
|
|
10966
11012
|
/* @__PURE__ */ common.jsxRuntimeExports.jsx(
|
|
10967
11013
|
eagle.Tooltip,
|
|
10968
11014
|
{
|
|
10969
|
-
title: isCollapsed ? "" :
|
|
10970
|
-
|
|
11015
|
+
title: isCollapsed ? "" : copyTooltip,
|
|
11016
|
+
onVisibleChange: (visible) => {
|
|
11017
|
+
if (!visible) {
|
|
11018
|
+
setTimeout(() => {
|
|
11019
|
+
setCopyTooltip(t2("dovetail.copy"));
|
|
11020
|
+
}, 80);
|
|
11021
|
+
}
|
|
11022
|
+
},
|
|
11023
|
+
children: /* @__PURE__ */ common.jsxRuntimeExports.jsx(
|
|
10971
11024
|
eagle.Icon,
|
|
10972
11025
|
{
|
|
10973
11026
|
"data-disabled": isCollapsed,
|
|
10974
|
-
src: iconsReact.
|
|
10975
|
-
hoverSrc: isCollapsed ? void 0 : iconsReact.
|
|
11027
|
+
src: iconsReact.ClipboardCopy16GradientGrayIcon,
|
|
11028
|
+
hoverSrc: isCollapsed ? void 0 : iconsReact.ClipboardCopy16GradientBlueIcon,
|
|
10976
11029
|
className: IconStyle,
|
|
10977
11030
|
iconWidth: 16,
|
|
10978
11031
|
iconHeight: 16,
|
|
10979
|
-
onClick: () =>
|
|
11032
|
+
onClick: () => {
|
|
11033
|
+
if (!isCollapsed) {
|
|
11034
|
+
copyToClipboard(getEditorValue());
|
|
11035
|
+
setCopyTooltip(t2("dovetail.copied"));
|
|
11036
|
+
}
|
|
11037
|
+
}
|
|
10980
11038
|
}
|
|
10981
|
-
)
|
|
11039
|
+
)
|
|
11040
|
+
}
|
|
11041
|
+
),
|
|
11042
|
+
/* @__PURE__ */ common.jsxRuntimeExports.jsx(Separator, {}),
|
|
11043
|
+
/* @__PURE__ */ common.jsxRuntimeExports.jsx(
|
|
11044
|
+
eagle.Tooltip,
|
|
11045
|
+
{
|
|
11046
|
+
title: isCollapsed ? "" : resetTooltip,
|
|
11047
|
+
onVisibleChange: (visible) => {
|
|
11048
|
+
if (!visible) {
|
|
11049
|
+
setTimeout(() => {
|
|
11050
|
+
setResetTooltip(t2("dovetail.reset_arguments"));
|
|
11051
|
+
}, 80);
|
|
11052
|
+
}
|
|
11053
|
+
},
|
|
11054
|
+
children: /* @__PURE__ */ common.jsxRuntimeExports.jsx(
|
|
10982
11055
|
eagle.Icon,
|
|
10983
11056
|
{
|
|
10984
11057
|
"data-disabled": isCollapsed,
|
|
10985
|
-
src: iconsReact.
|
|
10986
|
-
hoverSrc: isCollapsed ? void 0 : iconsReact.
|
|
11058
|
+
src: iconsReact.Retry16GradientGrayIcon,
|
|
11059
|
+
hoverSrc: isCollapsed ? void 0 : iconsReact.Retry16GradientBlueIcon,
|
|
10987
11060
|
className: IconStyle,
|
|
10988
11061
|
iconWidth: 16,
|
|
10989
11062
|
iconHeight: 16,
|
|
10990
|
-
onClick: () =>
|
|
11063
|
+
onClick: () => {
|
|
11064
|
+
var _a;
|
|
11065
|
+
if (!isCollapsed) {
|
|
11066
|
+
(_a = editorInstance.current) == null ? void 0 : _a.setValue(defaultValueString);
|
|
11067
|
+
setResetTooltip(t2("dovetail.already_reset"));
|
|
11068
|
+
}
|
|
11069
|
+
}
|
|
10991
11070
|
}
|
|
10992
11071
|
)
|
|
10993
11072
|
}
|
|
10994
|
-
)
|
|
10995
|
-
|
|
10996
|
-
|
|
10997
|
-
|
|
10998
|
-
|
|
10999
|
-
|
|
11000
|
-
|
|
11001
|
-
|
|
11002
|
-
|
|
11003
|
-
|
|
11004
|
-
|
|
11005
|
-
|
|
11006
|
-
|
|
11007
|
-
|
|
11008
|
-
|
|
11009
|
-
|
|
11010
|
-
|
|
11011
|
-
|
|
11012
|
-
|
|
11013
|
-
|
|
11014
|
-
|
|
11015
|
-
|
|
11016
|
-
|
|
11017
|
-
|
|
11018
|
-
|
|
11019
|
-
|
|
11020
|
-
|
|
11021
|
-
|
|
11022
|
-
|
|
11023
|
-
|
|
11024
|
-
|
|
11025
|
-
|
|
11026
|
-
|
|
11027
|
-
|
|
11028
|
-
|
|
11029
|
-
|
|
11030
|
-
|
|
11031
|
-
}
|
|
11032
|
-
|
|
11033
|
-
|
|
11034
|
-
|
|
11035
|
-
|
|
11036
|
-
|
|
11037
|
-
|
|
11038
|
-
|
|
11039
|
-
|
|
11040
|
-
|
|
11041
|
-
|
|
11042
|
-
|
|
11043
|
-
|
|
11044
|
-
|
|
11045
|
-
|
|
11046
|
-
|
|
11047
|
-
|
|
11048
|
-
|
|
11049
|
-
|
|
11073
|
+
),
|
|
11074
|
+
/* @__PURE__ */ common.jsxRuntimeExports.jsx(Separator, {})
|
|
11075
|
+
] }),
|
|
11076
|
+
/* @__PURE__ */ common.jsxRuntimeExports.jsx(
|
|
11077
|
+
eagle.Tooltip,
|
|
11078
|
+
{
|
|
11079
|
+
title: isCollapsed ? "" : isDiff ? t2("dovetail.back_to_edit") : t2("dovetail.view_changes"),
|
|
11080
|
+
children: isDiff ? /* @__PURE__ */ common.jsxRuntimeExports.jsx(
|
|
11081
|
+
eagle.Icon,
|
|
11082
|
+
{
|
|
11083
|
+
"data-disabled": isCollapsed,
|
|
11084
|
+
src: iconsReact.EditPen16GradientGrayIcon,
|
|
11085
|
+
hoverSrc: isCollapsed ? void 0 : iconsReact.EditPen16GradientBlueIcon,
|
|
11086
|
+
className: IconStyle,
|
|
11087
|
+
iconWidth: 16,
|
|
11088
|
+
iconHeight: 16,
|
|
11089
|
+
onClick: () => isCollapsed ? void 0 : setIsDiff(false)
|
|
11090
|
+
}
|
|
11091
|
+
) : /* @__PURE__ */ common.jsxRuntimeExports.jsx(
|
|
11092
|
+
eagle.Icon,
|
|
11093
|
+
{
|
|
11094
|
+
"data-disabled": isCollapsed,
|
|
11095
|
+
src: iconsReact.Showdiff16GradientGrayIcon,
|
|
11096
|
+
hoverSrc: isCollapsed ? void 0 : iconsReact.Showdiff16GradientBlueIcon,
|
|
11097
|
+
className: IconStyle,
|
|
11098
|
+
iconWidth: 16,
|
|
11099
|
+
iconHeight: 16,
|
|
11100
|
+
onClick: () => isCollapsed ? void 0 : setIsDiff(true)
|
|
11101
|
+
}
|
|
11102
|
+
)
|
|
11103
|
+
}
|
|
11104
|
+
)
|
|
11105
|
+
] })
|
|
11106
|
+
] }),
|
|
11107
|
+
errorMsgs.length ? /* @__PURE__ */ common.jsxRuntimeExports.jsxs(eagle.Space, { className: ErrorWrapperStyle, size: 8, align: "start", children: [
|
|
11108
|
+
/* @__PURE__ */ common.jsxRuntimeExports.jsx(iconsReact.XmarkFailedSeriousWarningFill16RedIcon, { className: ErrorIconStyle$1 }),
|
|
11109
|
+
/* @__PURE__ */ common.jsxRuntimeExports.jsx("div", { children: errorMsgs.map((errorMsg, index2) => /* @__PURE__ */ common.jsxRuntimeExports.jsxs("pre", { className: ErrorMsgStyle, children: [
|
|
11110
|
+
errorMsgs.length > 1 ? `${index2 + 1}. ` : "",
|
|
11111
|
+
errorMsg
|
|
11112
|
+
] }, errorMsg)) })
|
|
11113
|
+
] }) : void 0
|
|
11114
|
+
]
|
|
11115
|
+
}
|
|
11116
|
+
),
|
|
11117
|
+
/* @__PURE__ */ common.jsxRuntimeExports.jsxs(
|
|
11118
|
+
"div",
|
|
11119
|
+
{
|
|
11120
|
+
style: {
|
|
11121
|
+
display: isCollapsed ? "none" : "block",
|
|
11122
|
+
width: "100%",
|
|
11123
|
+
height: height || "500px",
|
|
11124
|
+
zIndex: 1
|
|
11125
|
+
},
|
|
11126
|
+
children: [
|
|
11127
|
+
/* @__PURE__ */ common.jsxRuntimeExports.jsx(React.Suspense, { fallback: /* @__PURE__ */ common.jsxRuntimeExports.jsx("pre", { className: PlainCodeStyle, children: _valueString }), children: /* @__PURE__ */ common.jsxRuntimeExports.jsx("div", { style: { display: isDiff ? "none" : "block" }, children: /* @__PURE__ */ common.jsxRuntimeExports.jsx(
|
|
11128
|
+
MonacoYamlEditor$3,
|
|
11129
|
+
{
|
|
11130
|
+
id: props.id,
|
|
11131
|
+
getInstance,
|
|
11132
|
+
defaultValue: _value,
|
|
11133
|
+
height,
|
|
11134
|
+
onChange: finalOnChange,
|
|
11135
|
+
onValidate,
|
|
11136
|
+
onEditorCreate,
|
|
11137
|
+
onBlur: props.onBlur,
|
|
11138
|
+
schemas,
|
|
11139
|
+
readOnly,
|
|
11140
|
+
isScrollOnFocus
|
|
11141
|
+
}
|
|
11142
|
+
) }) }),
|
|
11143
|
+
isDiff ? /* @__PURE__ */ common.jsxRuntimeExports.jsx(React.Suspense, { fallback: /* @__PURE__ */ common.jsxRuntimeExports.jsx("pre", { className: PlainCodeStyle, children: _valueString }), children: /* @__PURE__ */ common.jsxRuntimeExports.jsx(
|
|
11144
|
+
MonacoYamlDiffEditor$2,
|
|
11145
|
+
{
|
|
11146
|
+
id: props.id,
|
|
11147
|
+
origin: defaultValueString,
|
|
11148
|
+
modified: _valueString,
|
|
11149
|
+
height
|
|
11150
|
+
}
|
|
11151
|
+
) }) : null
|
|
11152
|
+
]
|
|
11153
|
+
}
|
|
11154
|
+
)
|
|
11155
|
+
]
|
|
11156
|
+
}
|
|
11157
|
+
);
|
|
11158
|
+
});
|
|
11050
11159
|
function copyToClipboard(text) {
|
|
11051
11160
|
const input = document.createElement("textarea");
|
|
11052
11161
|
input.value = text;
|
|
@@ -11119,14 +11228,7 @@ function use409Retry({
|
|
|
11119
11228
|
function useK8sYamlEditor() {
|
|
11120
11229
|
const foldSymbol = React.useCallback(function(editor, symbol) {
|
|
11121
11230
|
const model = editor.getModel();
|
|
11122
|
-
const matchs = (model == null ? void 0 : model.findMatches(
|
|
11123
|
-
symbol,
|
|
11124
|
-
false,
|
|
11125
|
-
false,
|
|
11126
|
-
false,
|
|
11127
|
-
"",
|
|
11128
|
-
false
|
|
11129
|
-
).filter((match) => match.range.startColumn === 1)) || [];
|
|
11231
|
+
const matchs = (model == null ? void 0 : model.findMatches(symbol, false, false, false, "", false).filter((match) => match.range.startColumn === 1)) || [];
|
|
11130
11232
|
return new Promise(async (resolve, reject) => {
|
|
11131
11233
|
try {
|
|
11132
11234
|
for (const match of matchs) {
|
|
@@ -11140,19 +11242,22 @@ function useK8sYamlEditor() {
|
|
|
11140
11242
|
}
|
|
11141
11243
|
});
|
|
11142
11244
|
}, []);
|
|
11143
|
-
const fold2 = React.useCallback(
|
|
11144
|
-
|
|
11145
|
-
|
|
11146
|
-
|
|
11147
|
-
|
|
11148
|
-
|
|
11149
|
-
|
|
11150
|
-
|
|
11151
|
-
|
|
11152
|
-
|
|
11153
|
-
|
|
11154
|
-
|
|
11155
|
-
|
|
11245
|
+
const fold2 = React.useCallback(
|
|
11246
|
+
async function(editor) {
|
|
11247
|
+
await editor.getAction("editor.unfoldAll").run();
|
|
11248
|
+
const symbols = [
|
|
11249
|
+
" annotations:",
|
|
11250
|
+
" managedFields:",
|
|
11251
|
+
"status:",
|
|
11252
|
+
" kubectl.kubernetes.io/last-applied-configuration:"
|
|
11253
|
+
];
|
|
11254
|
+
for (const symbol of symbols) {
|
|
11255
|
+
await foldSymbol(editor, symbol);
|
|
11256
|
+
}
|
|
11257
|
+
editor.setScrollPosition({ scrollTop: 0 });
|
|
11258
|
+
},
|
|
11259
|
+
[foldSymbol]
|
|
11260
|
+
);
|
|
11156
11261
|
return {
|
|
11157
11262
|
fold: fold2
|
|
11158
11263
|
};
|
|
@@ -11349,7 +11454,14 @@ const useYamlForm = ({
|
|
|
11349
11454
|
pruneBeforeEdit(initialValues2);
|
|
11350
11455
|
}
|
|
11351
11456
|
return (transformInitValues == null ? void 0 : transformInitValues(initialValues2)) || initialValues2;
|
|
11352
|
-
}, [
|
|
11457
|
+
}, [
|
|
11458
|
+
queryResult,
|
|
11459
|
+
globalStore,
|
|
11460
|
+
initialValuesForCreate,
|
|
11461
|
+
action,
|
|
11462
|
+
initialValuesForEdit,
|
|
11463
|
+
transformInitValues
|
|
11464
|
+
]);
|
|
11353
11465
|
const finalErrors = React.useMemo(() => {
|
|
11354
11466
|
return lodashEs.uniq([...editorErrors, ...rulesErrors]);
|
|
11355
11467
|
}, [editorErrors, rulesErrors]);
|
|
@@ -11466,13 +11578,16 @@ const useYamlForm = ({
|
|
|
11466
11578
|
try {
|
|
11467
11579
|
let hasErrors = false;
|
|
11468
11580
|
setIsBeforeSubmitLoading(true);
|
|
11469
|
-
const result = await beforeSubmit(
|
|
11470
|
-
|
|
11471
|
-
|
|
11472
|
-
|
|
11473
|
-
|
|
11581
|
+
const result = await beforeSubmit(
|
|
11582
|
+
finalValues,
|
|
11583
|
+
(errors2) => {
|
|
11584
|
+
if (errors2 && errors2.length > 0) {
|
|
11585
|
+
setBeforeSubmitErrors(errors2);
|
|
11586
|
+
onBeforeSubmitError == null ? void 0 : onBeforeSubmitError(errors2);
|
|
11587
|
+
hasErrors = true;
|
|
11588
|
+
}
|
|
11474
11589
|
}
|
|
11475
|
-
|
|
11590
|
+
);
|
|
11476
11591
|
if (hasErrors) {
|
|
11477
11592
|
onSubmitAbort == null ? void 0 : onSubmitAbort();
|
|
11478
11593
|
return;
|
|
@@ -11667,7 +11782,7 @@ function YamlForm(props) {
|
|
|
11667
11782
|
isEdit: action === "edit"
|
|
11668
11783
|
})
|
|
11669
11784
|
})]
|
|
11670
|
-
}) : /* @__PURE__ */ common.jsxRuntimeExports.jsx(
|
|
11785
|
+
}) : /* @__PURE__ */ common.jsxRuntimeExports.jsx(ErrorContent, {
|
|
11671
11786
|
errorText: t2("dovetail.fetch_schema_fail"),
|
|
11672
11787
|
refetch: fetchSchema
|
|
11673
11788
|
});
|
|
@@ -11812,6 +11927,7 @@ function RawYamlFormModal(props) {
|
|
|
11812
11927
|
},
|
|
11813
11928
|
okText: ((_c = resourceConfig.formConfig) == null ? void 0 : _c.saveButtonText) || okText,
|
|
11814
11929
|
destroyOnClose: true,
|
|
11930
|
+
isContentFull: true,
|
|
11815
11931
|
children: [desc ? /* @__PURE__ */ common.jsxRuntimeExports.jsx("div", {
|
|
11816
11932
|
className: FormDescStyle$1,
|
|
11817
11933
|
children: desc
|
|
@@ -11854,8 +11970,9 @@ function useOpenForm() {
|
|
|
11854
11970
|
if (formType === void 0 || formType === FormContainerType.MODAL) {
|
|
11855
11971
|
pushModal({
|
|
11856
11972
|
component: () => {
|
|
11857
|
-
var _a2;
|
|
11858
|
-
|
|
11973
|
+
var _a2, _b2, _c;
|
|
11974
|
+
const isYamlOnlyForm = ((_a2 = resourceConfig.formConfig) == null ? void 0 : _a2.formType) !== FormType.FORM && !((_b2 = resourceConfig.formConfig) == null ? void 0 : _b2.CustomFormModal);
|
|
11975
|
+
if ((options == null ? void 0 : options.useYamlEditor) || isYamlOnlyForm) {
|
|
11859
11976
|
return /* @__PURE__ */ common.jsxRuntimeExports.jsx(
|
|
11860
11977
|
RawYamlFormModal,
|
|
11861
11978
|
{
|
|
@@ -11868,7 +11985,7 @@ function useOpenForm() {
|
|
|
11868
11985
|
}
|
|
11869
11986
|
);
|
|
11870
11987
|
}
|
|
11871
|
-
const ModalComponent = ((
|
|
11988
|
+
const ModalComponent = ((_c = resourceConfig.formConfig) == null ? void 0 : _c.CustomFormModal) || FormModal;
|
|
11872
11989
|
return /* @__PURE__ */ common.jsxRuntimeExports.jsx(
|
|
11873
11990
|
ModalComponent,
|
|
11874
11991
|
{
|
|
@@ -12388,34 +12505,6 @@ function CreateButton(props) {
|
|
|
12388
12505
|
}
|
|
12389
12506
|
);
|
|
12390
12507
|
}
|
|
12391
|
-
const useDeleteManyModal = (resource, ids) => {
|
|
12392
|
-
const { mutate } = core.useDeleteMany();
|
|
12393
|
-
const [visible, setVisible] = React.useState(false);
|
|
12394
|
-
const { t: t2 } = common.useTranslation();
|
|
12395
|
-
const modalProps = {
|
|
12396
|
-
title: t2("dovetail.delete"),
|
|
12397
|
-
okText: t2("dovetail.delete"),
|
|
12398
|
-
okButtonProps: {
|
|
12399
|
-
danger: true
|
|
12400
|
-
},
|
|
12401
|
-
cancelText: t2("dovetail.cancel"),
|
|
12402
|
-
children: t2("dovetail.confirm_delete_text", {
|
|
12403
|
-
target: ids,
|
|
12404
|
-
interpolation: { escapeValue: false }
|
|
12405
|
-
}),
|
|
12406
|
-
onOk() {
|
|
12407
|
-
mutate({
|
|
12408
|
-
resource,
|
|
12409
|
-
ids
|
|
12410
|
-
});
|
|
12411
|
-
setVisible(false);
|
|
12412
|
-
},
|
|
12413
|
-
onCancel() {
|
|
12414
|
-
setVisible(false);
|
|
12415
|
-
}
|
|
12416
|
-
};
|
|
12417
|
-
return { modalProps, visible, setVisible };
|
|
12418
|
-
};
|
|
12419
12508
|
const DeleteManyButton = (props) => {
|
|
12420
12509
|
const { resource } = core.useResource();
|
|
12421
12510
|
const { t: t2 } = common.useTranslation();
|
|
@@ -12523,7 +12612,7 @@ const CronjobJobsTable = ({
|
|
|
12523
12612
|
tableProps
|
|
12524
12613
|
} = useEagleTable(params);
|
|
12525
12614
|
if (!((_a = tableProps.data) == null ? void 0 : _a.length) && !tableProps.loading) {
|
|
12526
|
-
return /* @__PURE__ */ common.jsxRuntimeExports.jsx(
|
|
12615
|
+
return /* @__PURE__ */ common.jsxRuntimeExports.jsx(ErrorContent, {
|
|
12527
12616
|
errorText: i18n2.t("dovetail.no_resource", {
|
|
12528
12617
|
kind: " Job"
|
|
12529
12618
|
}),
|
|
@@ -12629,7 +12718,7 @@ const EventsTable = ({ uid }) => {
|
|
|
12629
12718
|
const Table2 = component.Table || Table$1;
|
|
12630
12719
|
if (!((_a = tableProps.data) == null ? void 0 : _a.length) && !tableProps.loading) {
|
|
12631
12720
|
return /* @__PURE__ */ common.jsxRuntimeExports.jsx(
|
|
12632
|
-
|
|
12721
|
+
ErrorContent,
|
|
12633
12722
|
{
|
|
12634
12723
|
errorText: i18n2.t("dovetail.no_resource", { kind: i18n2.t("dovetail.event") }),
|
|
12635
12724
|
type: ErrorContentType.List
|
|
@@ -12669,6 +12758,25 @@ function LinkFallback({
|
|
|
12669
12758
|
children: fullPath
|
|
12670
12759
|
});
|
|
12671
12760
|
}
|
|
12761
|
+
const PathWithCopy_mkk1t8 = "";
|
|
12762
|
+
const PathCellStyle = "prjtqnv";
|
|
12763
|
+
const PathTextStyle = "pci82dd";
|
|
12764
|
+
const PathCopyStyle = "pmf8toc";
|
|
12765
|
+
const PathWithCopy = ({
|
|
12766
|
+
value: value2,
|
|
12767
|
+
children
|
|
12768
|
+
}) => {
|
|
12769
|
+
return /* @__PURE__ */ common.jsxRuntimeExports.jsxs("div", {
|
|
12770
|
+
className: PathCellStyle,
|
|
12771
|
+
children: [/* @__PURE__ */ common.jsxRuntimeExports.jsx("span", {
|
|
12772
|
+
className: PathTextStyle,
|
|
12773
|
+
children
|
|
12774
|
+
}), /* @__PURE__ */ common.jsxRuntimeExports.jsx(CopyButton, {
|
|
12775
|
+
value: value2,
|
|
12776
|
+
className: PathCopyStyle
|
|
12777
|
+
})]
|
|
12778
|
+
});
|
|
12779
|
+
};
|
|
12672
12780
|
const index_x36tts = "";
|
|
12673
12781
|
const LinkStyle = "l1vnw9x0";
|
|
12674
12782
|
const ResourceLink = (props) => {
|
|
@@ -12719,7 +12827,7 @@ const ResourceLink = (props) => {
|
|
|
12719
12827
|
value: ""
|
|
12720
12828
|
});
|
|
12721
12829
|
};
|
|
12722
|
-
const IngressRulesTable = ({ ingress }) => {
|
|
12830
|
+
const IngressRulesTable = ({ ingress: ingress2 }) => {
|
|
12723
12831
|
const { t: t2 } = common.useTranslation();
|
|
12724
12832
|
const { data: serviceData } = core.useList({
|
|
12725
12833
|
resource: "services",
|
|
@@ -12729,8 +12837,8 @@ const IngressRulesTable = ({ ingress }) => {
|
|
|
12729
12837
|
}
|
|
12730
12838
|
});
|
|
12731
12839
|
const flattenedRules = React.useMemo(
|
|
12732
|
-
() => (serviceData == null ? void 0 : serviceData.data) ?
|
|
12733
|
-
[serviceData == null ? void 0 : serviceData.data,
|
|
12840
|
+
() => (serviceData == null ? void 0 : serviceData.data) ? ingress2.getFlattenedRules(serviceData == null ? void 0 : serviceData.data) : [],
|
|
12841
|
+
[serviceData == null ? void 0 : serviceData.data, ingress2]
|
|
12734
12842
|
);
|
|
12735
12843
|
const rows = React.useMemo(() => {
|
|
12736
12844
|
return addId(flattenedRules || [], "fullPath");
|
|
@@ -12755,7 +12863,10 @@ const IngressRulesTable = ({ ingress }) => {
|
|
|
12755
12863
|
width: 478,
|
|
12756
12864
|
sortable: true,
|
|
12757
12865
|
render(value2) {
|
|
12758
|
-
|
|
12866
|
+
if (!value2) {
|
|
12867
|
+
return /* @__PURE__ */ common.jsxRuntimeExports.jsx(ValueDisplay, { value: "" });
|
|
12868
|
+
}
|
|
12869
|
+
return /* @__PURE__ */ common.jsxRuntimeExports.jsx(PathWithCopy, { value: value2, children: /* @__PURE__ */ common.jsxRuntimeExports.jsx(LinkFallback, { fullPath: value2 }) });
|
|
12759
12870
|
}
|
|
12760
12871
|
},
|
|
12761
12872
|
{
|
|
@@ -12770,7 +12881,7 @@ const IngressRulesTable = ({ ingress }) => {
|
|
|
12770
12881
|
ResourceLink,
|
|
12771
12882
|
{
|
|
12772
12883
|
resourceName: "services",
|
|
12773
|
-
namespace:
|
|
12884
|
+
namespace: ingress2.metadata.namespace || "default",
|
|
12774
12885
|
name: serviceName
|
|
12775
12886
|
}
|
|
12776
12887
|
) : /* @__PURE__ */ common.jsxRuntimeExports.jsx(ValueDisplay, { value: "" });
|
|
@@ -12792,14 +12903,14 @@ const IngressRulesTable = ({ ingress }) => {
|
|
|
12792
12903
|
width: 160,
|
|
12793
12904
|
render(host2) {
|
|
12794
12905
|
var _a, _b;
|
|
12795
|
-
const secretName = (_b = (_a =
|
|
12906
|
+
const secretName = (_b = (_a = ingress2._rawYaml.spec.tls) == null ? void 0 : _a.find(
|
|
12796
12907
|
({ hosts }) => hosts == null ? void 0 : hosts.includes(host2)
|
|
12797
12908
|
)) == null ? void 0 : _b.secretName;
|
|
12798
12909
|
return secretName ? /* @__PURE__ */ common.jsxRuntimeExports.jsx(
|
|
12799
12910
|
ResourceLink,
|
|
12800
12911
|
{
|
|
12801
12912
|
resourceName: "secrets",
|
|
12802
|
-
namespace:
|
|
12913
|
+
namespace: ingress2.metadata.namespace || "default",
|
|
12803
12914
|
name: secretName
|
|
12804
12915
|
}
|
|
12805
12916
|
) : /* @__PURE__ */ common.jsxRuntimeExports.jsx(ValueDisplay, { value: "" });
|
|
@@ -12818,7 +12929,7 @@ const IngressRulesTable = ({ ingress }) => {
|
|
|
12818
12929
|
});
|
|
12819
12930
|
if ((rows == null ? void 0 : rows.length) === 0) {
|
|
12820
12931
|
return /* @__PURE__ */ common.jsxRuntimeExports.jsx(
|
|
12821
|
-
|
|
12932
|
+
ErrorContent,
|
|
12822
12933
|
{
|
|
12823
12934
|
errorText: t2("dovetail.no_resource", { kind: t2("dovetail.rule") }),
|
|
12824
12935
|
type: ErrorContentType.List
|
|
@@ -12873,7 +12984,7 @@ const KeyValue = (props) => {
|
|
|
12873
12984
|
}, key2);
|
|
12874
12985
|
});
|
|
12875
12986
|
if (!result.length) {
|
|
12876
|
-
return /* @__PURE__ */ common.jsxRuntimeExports.jsx(
|
|
12987
|
+
return /* @__PURE__ */ common.jsxRuntimeExports.jsx(ErrorContent, {
|
|
12877
12988
|
errorText: empty2 || t2("dovetail.empty"),
|
|
12878
12989
|
type: errorContent
|
|
12879
12990
|
});
|
|
@@ -12970,9 +13081,7 @@ function readFileAsBase64(file) {
|
|
|
12970
13081
|
if (isUtf8(arrayBuffer)) {
|
|
12971
13082
|
resolve(await file.text());
|
|
12972
13083
|
} else {
|
|
12973
|
-
const base64String = btoa(
|
|
12974
|
-
String.fromCharCode(...new Uint8Array(arrayBuffer))
|
|
12975
|
-
);
|
|
13084
|
+
const base64String = btoa(String.fromCharCode(...new Uint8Array(arrayBuffer)));
|
|
12976
13085
|
resolve(base64String);
|
|
12977
13086
|
}
|
|
12978
13087
|
return;
|
|
@@ -13538,7 +13647,7 @@ const NodeTaintsTable = ({
|
|
|
13538
13647
|
});
|
|
13539
13648
|
const currentSize = 10;
|
|
13540
13649
|
if (taintsWithId.length === 0) {
|
|
13541
|
-
return /* @__PURE__ */ common.jsxRuntimeExports.jsx(
|
|
13650
|
+
return /* @__PURE__ */ common.jsxRuntimeExports.jsx(ErrorContent, {
|
|
13542
13651
|
errorText: t2("dovetail.no_resource", {
|
|
13543
13652
|
kind: t2("dovetail.taint")
|
|
13544
13653
|
}),
|
|
@@ -13634,10 +13743,10 @@ function Table(props) {
|
|
|
13634
13743
|
var _a2;
|
|
13635
13744
|
(_a2 = tableProps.onClearSearchKeyword) == null ? void 0 : _a2.call(tableProps);
|
|
13636
13745
|
};
|
|
13637
|
-
return /* @__PURE__ */ common.jsxRuntimeExports.jsx(
|
|
13746
|
+
return /* @__PURE__ */ common.jsxRuntimeExports.jsx(ErrorContent, { errorText: i18n2.t("dovetail.no_search_result"), children: /* @__PURE__ */ common.jsxRuntimeExports.jsx(eagle.Button, { onClick: onClear, type: "ordinary", children: i18n2.t("dovetail.clear_search_condition") }) });
|
|
13638
13747
|
}
|
|
13639
13748
|
return /* @__PURE__ */ common.jsxRuntimeExports.jsx(
|
|
13640
|
-
|
|
13749
|
+
ErrorContent,
|
|
13641
13750
|
{
|
|
13642
13751
|
errorText: tableProps.empty || i18n2.t("dovetail.no_resource", { kind: resourceType }),
|
|
13643
13752
|
...errorContentProps
|
|
@@ -13729,7 +13838,7 @@ const StateTag = (props) => {
|
|
|
13729
13838
|
}
|
|
13730
13839
|
);
|
|
13731
13840
|
};
|
|
13732
|
-
const
|
|
13841
|
+
const WorkloadPodsTable_a750q3 = "";
|
|
13733
13842
|
const WorkloadPodsTable = ({
|
|
13734
13843
|
namespace: namespace2,
|
|
13735
13844
|
selector,
|
|
@@ -13765,14 +13874,16 @@ const WorkloadPodsTable = ({
|
|
|
13765
13874
|
kind: "Pod"
|
|
13766
13875
|
},
|
|
13767
13876
|
filters: {
|
|
13768
|
-
permanent: [
|
|
13769
|
-
|
|
13770
|
-
|
|
13771
|
-
|
|
13772
|
-
|
|
13877
|
+
permanent: [
|
|
13878
|
+
{
|
|
13879
|
+
field: "",
|
|
13880
|
+
value: "",
|
|
13881
|
+
fn(item) {
|
|
13882
|
+
return filter ? filter(item) : matchSelector(item, selector, namespace2);
|
|
13883
|
+
}
|
|
13773
13884
|
}
|
|
13774
13885
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
13775
|
-
|
|
13886
|
+
]
|
|
13776
13887
|
}
|
|
13777
13888
|
}
|
|
13778
13889
|
});
|
|
@@ -13780,7 +13891,7 @@ const WorkloadPodsTable = ({
|
|
|
13780
13891
|
return /* @__PURE__ */ common.jsxRuntimeExports.jsx(eagle.Loading, {});
|
|
13781
13892
|
}
|
|
13782
13893
|
if (((_a = tableProps.data) == null ? void 0 : _a.length) === 0) {
|
|
13783
|
-
return /* @__PURE__ */ common.jsxRuntimeExports.jsx(
|
|
13894
|
+
return /* @__PURE__ */ common.jsxRuntimeExports.jsx(ErrorContent, {
|
|
13784
13895
|
errorText: i18n2.t("dovetail.no_resource", {
|
|
13785
13896
|
kind: ` ${i18n2.t("dovetail.pod")}`
|
|
13786
13897
|
}),
|
|
@@ -14248,7 +14359,8 @@ const ServiceOutClusterAccessField = (clusterVip) => ({
|
|
|
14248
14359
|
service: record,
|
|
14249
14360
|
breakLine: false,
|
|
14250
14361
|
clusterVip,
|
|
14251
|
-
showDashedUnderline: false
|
|
14362
|
+
showDashedUnderline: false,
|
|
14363
|
+
showCopyButton: true
|
|
14252
14364
|
});
|
|
14253
14365
|
}
|
|
14254
14366
|
});
|
|
@@ -14266,14 +14378,14 @@ const PodSelectorField = () => ({
|
|
|
14266
14378
|
const PortsTableField = () => ({
|
|
14267
14379
|
key: "ports",
|
|
14268
14380
|
path: [],
|
|
14269
|
-
renderContent: (_,
|
|
14381
|
+
renderContent: (_, service2) => {
|
|
14270
14382
|
return /* @__PURE__ */ common.jsxRuntimeExports.jsx("div", {
|
|
14271
14383
|
style: {
|
|
14272
14384
|
padding: "0 24px",
|
|
14273
14385
|
height: "100%"
|
|
14274
14386
|
},
|
|
14275
14387
|
children: /* @__PURE__ */ common.jsxRuntimeExports.jsx(PortsTable, {
|
|
14276
|
-
service
|
|
14388
|
+
service: service2
|
|
14277
14389
|
})
|
|
14278
14390
|
});
|
|
14279
14391
|
}
|
|
@@ -14581,7 +14693,7 @@ const LabelsAndAnnotationsShow = ({
|
|
|
14581
14693
|
children: sksI18n.t("dovetail.label")
|
|
14582
14694
|
}), Object.keys(labels || {}).length ? /* @__PURE__ */ common.jsxRuntimeExports.jsx(Tags, {
|
|
14583
14695
|
value: labels
|
|
14584
|
-
}) : /* @__PURE__ */ common.jsxRuntimeExports.jsx(
|
|
14696
|
+
}) : /* @__PURE__ */ common.jsxRuntimeExports.jsx(ErrorContent, {
|
|
14585
14697
|
errorText: sksI18n.t("dovetail.no_labels"),
|
|
14586
14698
|
type: ErrorContentType.Item
|
|
14587
14699
|
})]
|
|
@@ -14609,7 +14721,7 @@ const NetworkPolicyRulesViewer = ({
|
|
|
14609
14721
|
t: t2
|
|
14610
14722
|
} = common.useTranslation();
|
|
14611
14723
|
if (!ingressOrEgress) {
|
|
14612
|
-
return /* @__PURE__ */ common.jsxRuntimeExports.jsx(
|
|
14724
|
+
return /* @__PURE__ */ common.jsxRuntimeExports.jsx(ErrorContent, {
|
|
14613
14725
|
errorText: t2("dovetail.no_resource", {
|
|
14614
14726
|
kind: kind || t2("dovetail.rule")
|
|
14615
14727
|
}),
|
|
@@ -14804,7 +14916,7 @@ const PodLog = ({
|
|
|
14804
14916
|
})]
|
|
14805
14917
|
}), /* @__PURE__ */ common.jsxRuntimeExports.jsx("div", {
|
|
14806
14918
|
className: ContentStyle$1,
|
|
14807
|
-
children: logType === "previous" && !logs.length ? /* @__PURE__ */ common.jsxRuntimeExports.jsx(
|
|
14919
|
+
children: logType === "previous" && !logs.length ? /* @__PURE__ */ common.jsxRuntimeExports.jsx(ErrorContent, {
|
|
14808
14920
|
style: {
|
|
14809
14921
|
height: "100%"
|
|
14810
14922
|
},
|
|
@@ -14970,11 +15082,11 @@ const NetworkPolicyIngressRulesTab = ({
|
|
|
14970
15082
|
fields: [{
|
|
14971
15083
|
key: "Ingress",
|
|
14972
15084
|
path: ["spec", "ingress"],
|
|
14973
|
-
render: (
|
|
15085
|
+
render: (ingress2) => {
|
|
14974
15086
|
return /* @__PURE__ */ common.jsxRuntimeExports.jsx("div", {
|
|
14975
15087
|
className: NetworkPolicyRulesViewerStyle,
|
|
14976
15088
|
children: /* @__PURE__ */ common.jsxRuntimeExports.jsx(NetworkPolicyRulesViewer, {
|
|
14977
|
-
ingressOrEgress:
|
|
15089
|
+
ingressOrEgress: ingress2
|
|
14978
15090
|
})
|
|
14979
15091
|
});
|
|
14980
15092
|
}
|
|
@@ -15049,7 +15161,9 @@ const PodContainersTable = ({
|
|
|
15049
15161
|
const isInit = initContainerStatuses.some(
|
|
15050
15162
|
(c2) => c2.containerID === record.containerID
|
|
15051
15163
|
);
|
|
15052
|
-
return i18n2.t(
|
|
15164
|
+
return i18n2.t(
|
|
15165
|
+
isInit ? "dovetail.init_container" : "dovetail.regular_container"
|
|
15166
|
+
);
|
|
15053
15167
|
}
|
|
15054
15168
|
},
|
|
15055
15169
|
{
|
|
@@ -15079,10 +15193,12 @@ const PodContainersTable = ({
|
|
|
15079
15193
|
[i18n2, initContainerStatuses]
|
|
15080
15194
|
);
|
|
15081
15195
|
const dataSource = React.useMemo(
|
|
15082
|
-
() => addId(containerStatuses.concat(initContainerStatuses), "containerID").map(
|
|
15083
|
-
|
|
15084
|
-
|
|
15085
|
-
|
|
15196
|
+
() => addId(containerStatuses.concat(initContainerStatuses), "containerID").map(
|
|
15197
|
+
(container2) => ({
|
|
15198
|
+
...container2,
|
|
15199
|
+
startedAt: lodashEs.get(container2, ["state", "running", "startedAt"]) || lodashEs.get(container2, ["state", "terminated", "startedAt"])
|
|
15200
|
+
})
|
|
15201
|
+
),
|
|
15086
15202
|
[containerStatuses, initContainerStatuses]
|
|
15087
15203
|
);
|
|
15088
15204
|
const {
|
|
@@ -15093,14 +15209,16 @@ const PodContainersTable = ({
|
|
|
15093
15209
|
} = useTableData({
|
|
15094
15210
|
data: dataSource,
|
|
15095
15211
|
columns,
|
|
15096
|
-
defaultSorters: [
|
|
15097
|
-
|
|
15098
|
-
|
|
15099
|
-
|
|
15212
|
+
defaultSorters: [
|
|
15213
|
+
{
|
|
15214
|
+
field: "startedAt",
|
|
15215
|
+
order: "desc"
|
|
15216
|
+
}
|
|
15217
|
+
]
|
|
15100
15218
|
});
|
|
15101
15219
|
if (dataSource.length === 0) {
|
|
15102
15220
|
return /* @__PURE__ */ common.jsxRuntimeExports.jsx(
|
|
15103
|
-
|
|
15221
|
+
ErrorContent,
|
|
15104
15222
|
{
|
|
15105
15223
|
errorText: i18n2.t("dovetail.no_resource", { kind: i18n2.t("dovetail.container") }),
|
|
15106
15224
|
type: ErrorContentType.Card
|
|
@@ -15114,7 +15232,9 @@ const PodContainersTable = ({
|
|
|
15114
15232
|
loading: false,
|
|
15115
15233
|
data: finalData,
|
|
15116
15234
|
total: dataSource.length,
|
|
15117
|
-
columns: addDefaultRenderToColumns(
|
|
15235
|
+
columns: addDefaultRenderToColumns(
|
|
15236
|
+
columns
|
|
15237
|
+
),
|
|
15118
15238
|
rowKey: "containerID",
|
|
15119
15239
|
error: false,
|
|
15120
15240
|
defaultSize: currentSize,
|
|
@@ -15237,11 +15357,11 @@ const NetworkPolicyIngressRulesGroup = (i18n2) => ({
|
|
|
15237
15357
|
{
|
|
15238
15358
|
key: "Ingress",
|
|
15239
15359
|
path: ["spec", "ingress"],
|
|
15240
|
-
renderContent: (
|
|
15360
|
+
renderContent: (ingress2) => {
|
|
15241
15361
|
return /* @__PURE__ */ common.jsxRuntimeExports.jsx(
|
|
15242
15362
|
NetworkPolicyRulesViewer,
|
|
15243
15363
|
{
|
|
15244
|
-
ingressOrEgress:
|
|
15364
|
+
ingressOrEgress: ingress2,
|
|
15245
15365
|
kind: ` ${i18n2.t("dovetail.ingress_rule")}`
|
|
15246
15366
|
}
|
|
15247
15367
|
);
|
|
@@ -15295,7 +15415,7 @@ function Tabs(props) {
|
|
|
15295
15415
|
return /* @__PURE__ */ common.jsxRuntimeExports.jsx(eagle.TabsTabPane, { tab: tab.title, children: tab.children }, tab.title);
|
|
15296
15416
|
}) });
|
|
15297
15417
|
}
|
|
15298
|
-
const
|
|
15418
|
+
const ShowContentView_szlndu = "";
|
|
15299
15419
|
const ShowContentWrapperStyle = "soapvs9";
|
|
15300
15420
|
const BackButton = "b13d603q";
|
|
15301
15421
|
const ToolBarWrapper = "tm8eaia";
|
|
@@ -15739,7 +15859,7 @@ function ReplicasDropdown(props) {
|
|
|
15739
15859
|
] });
|
|
15740
15860
|
}
|
|
15741
15861
|
const PodShell = React.lazy(
|
|
15742
|
-
() => Promise.resolve().then(() => require("./PodShell-
|
|
15862
|
+
() => Promise.resolve().then(() => require("./PodShell-a335b2b2.cjs")).then((module2) => ({ default: module2.PodShell }))
|
|
15743
15863
|
);
|
|
15744
15864
|
function PodShellModal(props) {
|
|
15745
15865
|
const { pod: pod2 } = props;
|
|
@@ -16086,9 +16206,9 @@ function ResourceShow(props) {
|
|
|
16086
16206
|
}
|
|
16087
16207
|
);
|
|
16088
16208
|
}
|
|
16089
|
-
const
|
|
16209
|
+
const button_a1727f = "";
|
|
16090
16210
|
const WarningButtonStyle = "wwyz7ti";
|
|
16091
|
-
const
|
|
16211
|
+
const modal_1muog24 = "";
|
|
16092
16212
|
const SmallModalStyle = "s1nc293e";
|
|
16093
16213
|
const ExtraSubmitFooter_15u4r8u = "";
|
|
16094
16214
|
const FooterStyle = "f16wn4bu";
|
|
@@ -17053,6 +17173,7 @@ const useForm = ({
|
|
|
17053
17173
|
const [transformedInitValues, setTransformedInitValues] = React.useState(useHookFormResult.getValues());
|
|
17054
17174
|
const [beforeSubmitErrors, setBeforeSubmitErrors] = React.useState([]);
|
|
17055
17175
|
const [isBeforeSubmitLoading, setIsBeforeSubmitLoading] = React.useState(false);
|
|
17176
|
+
const hasAppliedInitialDataRef = React.useRef(false);
|
|
17056
17177
|
const {
|
|
17057
17178
|
watch,
|
|
17058
17179
|
setValue,
|
|
@@ -17105,7 +17226,7 @@ const useForm = ({
|
|
|
17105
17226
|
}, [captureInitialResource, (_a = queryResult == null ? void 0 : queryResult.data) == null ? void 0 : _a.data]);
|
|
17106
17227
|
React.useEffect(() => {
|
|
17107
17228
|
var _a2;
|
|
17108
|
-
if (formState.isDirty)
|
|
17229
|
+
if (hasAppliedInitialDataRef.current || formState.isDirty)
|
|
17109
17230
|
return;
|
|
17110
17231
|
const data2 = (_a2 = queryResult == null ? void 0 : queryResult.data) == null ? void 0 : _a2.data;
|
|
17111
17232
|
if (!data2)
|
|
@@ -17123,6 +17244,7 @@ const useForm = ({
|
|
|
17123
17244
|
});
|
|
17124
17245
|
}
|
|
17125
17246
|
});
|
|
17247
|
+
hasAppliedInitialDataRef.current = true;
|
|
17126
17248
|
setTransformedInitValues(getValues());
|
|
17127
17249
|
}, [queryResult == null ? void 0 : queryResult.data, setValue, transformInitValues, formState.isDirty, getValues]);
|
|
17128
17250
|
React.useEffect(() => {
|
|
@@ -17781,31 +17903,43 @@ function CronJobDropdown(props) {
|
|
|
17781
17903
|
values: v,
|
|
17782
17904
|
successNotification() {
|
|
17783
17905
|
return {
|
|
17784
|
-
message: t2(
|
|
17785
|
-
|
|
17786
|
-
|
|
17787
|
-
|
|
17788
|
-
|
|
17906
|
+
message: t2(
|
|
17907
|
+
suspended ? "dovetail.resume_success_toast" : "dovetail.pause_success_toast",
|
|
17908
|
+
{
|
|
17909
|
+
kind: record.kind,
|
|
17910
|
+
name: id,
|
|
17911
|
+
interpolation: {
|
|
17912
|
+
escapeValue: false
|
|
17913
|
+
}
|
|
17789
17914
|
}
|
|
17790
|
-
|
|
17915
|
+
),
|
|
17791
17916
|
type: "success"
|
|
17792
17917
|
};
|
|
17793
17918
|
},
|
|
17794
17919
|
errorNotification() {
|
|
17795
17920
|
return {
|
|
17796
|
-
message: t2(
|
|
17797
|
-
|
|
17798
|
-
|
|
17799
|
-
|
|
17800
|
-
|
|
17921
|
+
message: t2(
|
|
17922
|
+
suspended ? "dovetail.resume_failed_toast" : "dovetail.pause_failed_toast",
|
|
17923
|
+
{
|
|
17924
|
+
kind: record.kind,
|
|
17925
|
+
name: id,
|
|
17926
|
+
interpolation: {
|
|
17927
|
+
escapeValue: false
|
|
17928
|
+
}
|
|
17801
17929
|
}
|
|
17802
|
-
|
|
17930
|
+
),
|
|
17803
17931
|
type: "error"
|
|
17804
17932
|
};
|
|
17805
17933
|
}
|
|
17806
17934
|
});
|
|
17807
17935
|
},
|
|
17808
|
-
children: /* @__PURE__ */ common.jsxRuntimeExports.jsx(
|
|
17936
|
+
children: /* @__PURE__ */ common.jsxRuntimeExports.jsx(
|
|
17937
|
+
eagle.Icon,
|
|
17938
|
+
{
|
|
17939
|
+
src: suspended ? iconsReact.RecoverContinue16GradientBlueIcon : iconsReact.Pause16GradientBlueIcon,
|
|
17940
|
+
children: t2(suspended ? "dovetail.resume" : "dovetail.suspend")
|
|
17941
|
+
}
|
|
17942
|
+
)
|
|
17809
17943
|
}
|
|
17810
17944
|
) : null });
|
|
17811
17945
|
}
|
|
@@ -18322,7 +18456,9 @@ const DeleteButton = () => {
|
|
|
18322
18456
|
const { resource } = core.useResource();
|
|
18323
18457
|
const { id } = core.useParsed();
|
|
18324
18458
|
const { t: t2 } = common.useTranslation();
|
|
18325
|
-
const { openDeleteConfirmModal } = useDeleteModal({
|
|
18459
|
+
const { openDeleteConfirmModal } = useDeleteModal({
|
|
18460
|
+
resourceName: (resource == null ? void 0 : resource.name) || ""
|
|
18461
|
+
});
|
|
18326
18462
|
return /* @__PURE__ */ common.jsxRuntimeExports.jsx(common.jsxRuntimeExports.Fragment, { children: /* @__PURE__ */ common.jsxRuntimeExports.jsx(
|
|
18327
18463
|
eagle.Button,
|
|
18328
18464
|
{
|
|
@@ -18333,7 +18469,7 @@ const DeleteButton = () => {
|
|
|
18333
18469
|
}
|
|
18334
18470
|
) });
|
|
18335
18471
|
};
|
|
18336
|
-
const
|
|
18472
|
+
const index_e6cgji = "";
|
|
18337
18473
|
const MenuStyle = "mdppgn0";
|
|
18338
18474
|
const Menu = () => {
|
|
18339
18475
|
const {
|
|
@@ -19470,9 +19606,9 @@ const PortsConfigForm = React.forwardRef(function PortsConfigForm2({ value: valu
|
|
|
19470
19606
|
});
|
|
19471
19607
|
const nodePortsFromOtherServices = React.useMemo(() => {
|
|
19472
19608
|
var _a;
|
|
19473
|
-
return ((_a = services == null ? void 0 : services.data) == null ? void 0 : _a.filter((
|
|
19609
|
+
return ((_a = services == null ? void 0 : services.data) == null ? void 0 : _a.filter((service2) => service2.id !== serviceId).map((service2) => {
|
|
19474
19610
|
var _a2, _b;
|
|
19475
|
-
return (_b = (_a2 =
|
|
19611
|
+
return (_b = (_a2 = service2 == null ? void 0 : service2.spec) == null ? void 0 : _a2.ports) == null ? void 0 : _b.map((port2) => port2.nodePort);
|
|
19476
19612
|
}).flat().filter((port2) => port2 !== void 0)) || [];
|
|
19477
19613
|
}, [services, serviceId]);
|
|
19478
19614
|
const columns = React.useMemo(() => {
|
|
@@ -19665,7 +19801,7 @@ const PortsConfigForm = React.forwardRef(function PortsConfigForm2({ value: valu
|
|
|
19665
19801
|
}
|
|
19666
19802
|
);
|
|
19667
19803
|
});
|
|
19668
|
-
const IngressRulesComponent = ({ ingress, noLink }) => {
|
|
19804
|
+
const IngressRulesComponent = ({ ingress: ingress2, noLink }) => {
|
|
19669
19805
|
const { data: serviceData } = core.useList({
|
|
19670
19806
|
resource: "services",
|
|
19671
19807
|
meta: {
|
|
@@ -19673,12 +19809,12 @@ const IngressRulesComponent = ({ ingress, noLink }) => {
|
|
|
19673
19809
|
apiVersion: "v1"
|
|
19674
19810
|
}
|
|
19675
19811
|
});
|
|
19676
|
-
const flattenedRules = (serviceData == null ? void 0 : serviceData.data) ?
|
|
19812
|
+
const flattenedRules = (serviceData == null ? void 0 : serviceData.data) ? ingress2.getFlattenedRules(serviceData == null ? void 0 : serviceData.data) : [];
|
|
19677
19813
|
const result = flattenedRules.map((r2) => {
|
|
19678
19814
|
var _a, _b;
|
|
19679
19815
|
const arrow = " → ";
|
|
19680
19816
|
const divider = " | ";
|
|
19681
|
-
const secretName = (_b = (_a =
|
|
19817
|
+
const secretName = (_b = (_a = ingress2.spec.tls) == null ? void 0 : _a.find(
|
|
19682
19818
|
({ hosts }) => hosts == null ? void 0 : hosts.includes(r2.host || "")
|
|
19683
19819
|
)) == null ? void 0 : _b.secretName;
|
|
19684
19820
|
let tooltip = r2.fullPath;
|
|
@@ -19699,7 +19835,7 @@ const IngressRulesComponent = ({ ingress, noLink }) => {
|
|
|
19699
19835
|
ResourceLink,
|
|
19700
19836
|
{
|
|
19701
19837
|
resourceName: "services",
|
|
19702
|
-
namespace:
|
|
19838
|
+
namespace: ingress2.metadata.namespace || "default",
|
|
19703
19839
|
name: r2.serviceName
|
|
19704
19840
|
}
|
|
19705
19841
|
),
|
|
@@ -19714,7 +19850,7 @@ const IngressRulesComponent = ({ ingress, noLink }) => {
|
|
|
19714
19850
|
ResourceLink,
|
|
19715
19851
|
{
|
|
19716
19852
|
resourceName: "secrets",
|
|
19717
|
-
namespace:
|
|
19853
|
+
namespace: ingress2.metadata.namespace || "default",
|
|
19718
19854
|
name: secretName
|
|
19719
19855
|
}
|
|
19720
19856
|
)
|
|
@@ -20083,7 +20219,10 @@ function ServiceOutClusterAccessTitle() {
|
|
|
20083
20219
|
})
|
|
20084
20220
|
});
|
|
20085
20221
|
}
|
|
20086
|
-
const ServiceOutClusterAccessColumnRenderer = (
|
|
20222
|
+
const ServiceOutClusterAccessColumnRenderer = (_i18n, options) => {
|
|
20223
|
+
const {
|
|
20224
|
+
clusterVip
|
|
20225
|
+
} = options;
|
|
20087
20226
|
return {
|
|
20088
20227
|
key: "outClusterAccess",
|
|
20089
20228
|
title: /* @__PURE__ */ common.jsxRuntimeExports.jsx(ServiceOutClusterAccessTitle, {}),
|
|
@@ -20123,10 +20262,8 @@ const PodWorkloadColumnRenderer = (i18n2) => {
|
|
|
20123
20262
|
}
|
|
20124
20263
|
};
|
|
20125
20264
|
};
|
|
20126
|
-
const IngressRulesColumnRenderer = ({
|
|
20127
|
-
|
|
20128
|
-
noLink
|
|
20129
|
-
}) => {
|
|
20265
|
+
const IngressRulesColumnRenderer = (i18n2, options) => {
|
|
20266
|
+
const noLink = options == null ? void 0 : options.noLink;
|
|
20130
20267
|
const dataIndex = ["spec", "rules"];
|
|
20131
20268
|
return {
|
|
20132
20269
|
key: "type",
|
|
@@ -20587,39 +20724,45 @@ const Dovetail = (props) => {
|
|
|
20587
20724
|
antd4Configs: {
|
|
20588
20725
|
getPopupContainer: antdGetPopupContainer || (() => document.body)
|
|
20589
20726
|
},
|
|
20590
|
-
children: /* @__PURE__ */ common.jsxRuntimeExports.jsx(
|
|
20591
|
-
|
|
20727
|
+
children: /* @__PURE__ */ common.jsxRuntimeExports.jsx(
|
|
20728
|
+
GlobalStoreContext.Provider,
|
|
20592
20729
|
{
|
|
20593
|
-
|
|
20594
|
-
|
|
20595
|
-
|
|
20596
|
-
|
|
20597
|
-
|
|
20598
|
-
|
|
20599
|
-
|
|
20600
|
-
|
|
20601
|
-
|
|
20602
|
-
|
|
20603
|
-
|
|
20604
|
-
|
|
20605
|
-
name: c2.name,
|
|
20606
|
-
meta: {
|
|
20607
|
-
dataProviderName: c2.dataProviderName,
|
|
20608
|
-
resourceBasePath: c2.basePath,
|
|
20609
|
-
kind: c2.kind,
|
|
20610
|
-
parent: c2.parent,
|
|
20611
|
-
label: `${c2.kind}s`
|
|
20730
|
+
value: globalStoreMap,
|
|
20731
|
+
children: /* @__PURE__ */ common.jsxRuntimeExports.jsx(
|
|
20732
|
+
core.Refine,
|
|
20733
|
+
{
|
|
20734
|
+
dataProvider: k8sApiProvider.dataProvider(globalStoreMap.default),
|
|
20735
|
+
liveProvider: k8sApiProvider.liveProvider(globalStoreMap.default),
|
|
20736
|
+
routerProvider,
|
|
20737
|
+
notificationProvider,
|
|
20738
|
+
options: {
|
|
20739
|
+
warnWhenUnsavedChanges: true,
|
|
20740
|
+
liveMode: "auto",
|
|
20741
|
+
disableTelemetry: true
|
|
20612
20742
|
},
|
|
20613
|
-
|
|
20614
|
-
|
|
20615
|
-
|
|
20616
|
-
|
|
20617
|
-
|
|
20618
|
-
|
|
20619
|
-
|
|
20620
|
-
|
|
20743
|
+
accessControlProvider,
|
|
20744
|
+
resources: resourcesConfig.map((c2) => {
|
|
20745
|
+
return {
|
|
20746
|
+
name: c2.name,
|
|
20747
|
+
meta: {
|
|
20748
|
+
dataProviderName: c2.dataProviderName,
|
|
20749
|
+
resourceBasePath: c2.basePath,
|
|
20750
|
+
kind: c2.kind,
|
|
20751
|
+
parent: c2.parent,
|
|
20752
|
+
label: `${c2.kind}s`
|
|
20753
|
+
},
|
|
20754
|
+
list: `${urlPrefix}/${c2.name}`,
|
|
20755
|
+
show: `${urlPrefix}/${c2.name}/show`,
|
|
20756
|
+
create: `${urlPrefix}/${c2.name}/create`,
|
|
20757
|
+
edit: `${urlPrefix}/${c2.name}/edit`
|
|
20758
|
+
};
|
|
20759
|
+
}),
|
|
20760
|
+
...props,
|
|
20761
|
+
children: content
|
|
20762
|
+
}
|
|
20763
|
+
)
|
|
20621
20764
|
}
|
|
20622
|
-
)
|
|
20765
|
+
)
|
|
20623
20766
|
}
|
|
20624
20767
|
) }) }) }) });
|
|
20625
20768
|
};
|
|
@@ -20680,8 +20823,8 @@ class ModelPlugin {
|
|
|
20680
20823
|
restoreItem(item) {
|
|
20681
20824
|
return item._rawYaml;
|
|
20682
20825
|
}
|
|
20683
|
-
setModelMap(key2,
|
|
20684
|
-
this.ModelMap.set(key2,
|
|
20826
|
+
setModelMap(key2, ModelClass) {
|
|
20827
|
+
this.ModelMap.set(key2, ModelClass);
|
|
20685
20828
|
}
|
|
20686
20829
|
}
|
|
20687
20830
|
const modelPlugin = new ModelPlugin();
|
|
@@ -20786,12 +20929,14 @@ exports.ClusterIpField = ClusterIpField;
|
|
|
20786
20929
|
exports.ColumnKeys = ColumnKeys;
|
|
20787
20930
|
exports.CommonSorter = CommonSorter;
|
|
20788
20931
|
exports.ComponentContext = ComponentContext;
|
|
20932
|
+
exports.ComponentContextProvider = ComponentContextProvider;
|
|
20789
20933
|
exports.ConditionsField = ConditionsField;
|
|
20790
20934
|
exports.ConditionsGroup = ConditionsGroup;
|
|
20791
20935
|
exports.ConditionsTab = ConditionsTab;
|
|
20792
20936
|
exports.ConditionsTable = ConditionsTable;
|
|
20793
20937
|
exports.ConfigsContext = ConfigsContext;
|
|
20794
20938
|
exports.ControllerRevisionModel = ControllerRevisionModel;
|
|
20939
|
+
exports.CopyButton = CopyButton;
|
|
20795
20940
|
exports.CreateButton = CreateButton;
|
|
20796
20941
|
exports.CronJobDropdown = CronJobDropdown;
|
|
20797
20942
|
exports.CronJobModel = CronJobModel;
|
|
@@ -20819,7 +20964,8 @@ exports.EditLabelDropdownMenuItem = EditLabelDropdownMenuItem;
|
|
|
20819
20964
|
exports.EditLabelForm = EditLabelForm;
|
|
20820
20965
|
exports.EditNodeTaintDropdownMenuItem = EditNodeTaintDropdownMenuItem;
|
|
20821
20966
|
exports.EditNodeTaintForm = EditNodeTaintForm;
|
|
20822
|
-
exports.ErrorContent =
|
|
20967
|
+
exports.ErrorContent = ErrorContent;
|
|
20968
|
+
exports.ErrorContentBody = ErrorContentBody;
|
|
20823
20969
|
exports.ErrorContentType = ErrorContentType;
|
|
20824
20970
|
exports.ErrorWrapper = ErrorWrapper;
|
|
20825
20971
|
exports.EventModel = EventModel;
|
|
@@ -21038,7 +21184,6 @@ exports.WorkloadReplicasForm = WorkloadReplicasForm;
|
|
|
21038
21184
|
exports.YamlEditorComponent = YamlEditorComponent;
|
|
21039
21185
|
exports.YamlForm = YamlForm;
|
|
21040
21186
|
exports.addDefaultRenderToColumns = addDefaultRenderToColumns;
|
|
21041
|
-
exports.dnsSubDomainRules = dnsSubDomainRules;
|
|
21042
21187
|
exports.dovetailRefineI18n = dovetailRefineI18n;
|
|
21043
21188
|
exports.generateSchemaTypeValue = generateSchemaTypeValue;
|
|
21044
21189
|
exports.generateValueFromSchema = generateValueFromSchema;
|
|
@@ -21052,12 +21197,11 @@ exports.pruneBeforeEdit = pruneBeforeEdit;
|
|
|
21052
21197
|
exports.relationPlugin = relationPlugin;
|
|
21053
21198
|
exports.renderCommonFormFiled = renderCommonFormFiled;
|
|
21054
21199
|
exports.resolveRef = resolveRef;
|
|
21055
|
-
exports.rfc1035LabelRules = rfc1035LabelRules;
|
|
21056
|
-
exports.rfc1123LabelRules = rfc1123LabelRules;
|
|
21057
21200
|
exports.routerProvider = routerProvider;
|
|
21058
21201
|
exports.shortenedImage = shortenedImage;
|
|
21059
21202
|
exports.transformResourceKindInSentence = transformResourceKindInSentence;
|
|
21060
21203
|
exports.useApiGroupSchema = useApiGroupSchema;
|
|
21204
|
+
exports.useDeleteManyModal = useDeleteManyModal;
|
|
21061
21205
|
exports.useDeleteModal = useDeleteModal;
|
|
21062
21206
|
exports.useDeleteModalOnly = useDeleteModalOnly;
|
|
21063
21207
|
exports.useDownloadYAML = useDownloadYAML;
|