@rancher/shell 0.3.9 → 0.3.10
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/assets/translations/en-us.yaml +19 -24
- package/assets/translations/zh-hans.yaml +82 -16
- package/chart/istio.vue +11 -11
- package/chart/rancher-backup/S3.vue +1 -1
- package/components/AsyncButton.vue +2 -2
- package/components/ButtonGroup.vue +1 -1
- package/components/CompoundStatusBadge.vue +1 -1
- package/components/CopyCode.vue +1 -1
- package/components/DetailTop.vue +1 -1
- package/components/ExplorerProjectsNamespaces.vue +3 -3
- package/components/GlobalRoleBindings.vue +1 -1
- package/components/HarvesterServiceAddOnConfig.vue +2 -117
- package/components/ResourceDetail/Masthead.vue +1 -1
- package/components/ResourceList/Masthead.vue +0 -6
- package/components/ResourceList/ResourceLoadingIndicator.vue +1 -9
- package/components/ResourceList/index.vue +7 -6
- package/components/ResourceTable.vue +13 -3
- package/components/SortableTable/THead.vue +3 -3
- package/components/SortableTable/index.vue +3 -3
- package/components/Tabbed/Tab.vue +1 -1
- package/components/Tabbed/index.vue +1 -1
- package/components/Wizard.vue +9 -6
- package/components/__tests__/NamespaceFilter.test.ts +26 -7
- package/components/auth/RoleDetailEdit.vue +1 -1
- package/components/auth/SelectPrincipal.vue +1 -1
- package/components/fleet/FleetRepos.vue +1 -1
- package/components/form/ArrayList.vue +1 -1
- package/components/form/KeyValue.vue +3 -2
- package/components/form/Labels.vue +34 -14
- package/components/form/Members/ClusterPermissionsEditor.vue +1 -1
- package/components/form/NameNsDescription.vue +1 -1
- package/components/form/PlusMinus.vue +2 -2
- package/components/form/Probe.vue +1 -1
- package/components/form/ProjectMemberEditor.vue +8 -4
- package/components/form/ResourceQuota/NamespaceRow.vue +1 -1
- package/components/form/ServicePorts.vue +2 -2
- package/components/form/Tolerations.vue +30 -3
- package/components/form/WorkloadPorts.vue +2 -1
- package/components/form/__tests__/KeyValue.test.ts +17 -0
- package/components/formatter/ClusterLink.vue +3 -3
- package/components/formatter/LiveDate.vue +1 -1
- package/components/formatter/PodImages.vue +1 -1
- package/components/formatter/RKETemplateName.vue +1 -1
- package/components/formatter/Shortened.vue +1 -1
- package/components/nav/Header.vue +7 -7
- package/components/nav/NamespaceFilter.vue +103 -54
- package/config/labels-annotations.js +8 -5
- package/config/settings.ts +2 -5
- package/config/types.js +6 -4
- package/core/plugin-routes.ts +26 -7
- package/core/plugins-loader.js +2 -0
- package/detail/provisioning.cattle.io.cluster.vue +4 -4
- package/edit/cis.cattle.io.clusterscan.vue +1 -1
- package/edit/k8s.cni.cncf.io.networkattachmentdefinition.vue +19 -149
- package/edit/logging-flow/index.vue +2 -2
- package/edit/logging.banzaicloud.io.output/providers/elasticsearch.vue +12 -0
- package/edit/logging.banzaicloud.io.output/providers/opensearch.vue +12 -0
- package/edit/management.cattle.io.project.vue +7 -0
- package/edit/monitoring.coreos.com.alertmanagerconfig/index.vue +1 -1
- package/edit/monitoring.coreos.com.alertmanagerconfig/routeConfig.vue +2 -2
- package/edit/monitoring.coreos.com.prometheusrule/GroupRules.vue +11 -8
- package/edit/networking.k8s.io.networkpolicy/PolicyRule.vue +2 -2
- package/edit/networking.k8s.io.networkpolicy/PolicyRuleTarget.vue +12 -4
- package/edit/networking.k8s.io.networkpolicy/__tests__/PolicyRuleTarget.spec.ts +140 -0
- package/edit/networking.k8s.io.networkpolicy/__tests__/utils/mock.json +158 -0
- package/edit/networking.k8s.io.networkpolicy/__tests__/utils/selectors.ts +45 -0
- package/edit/networking.k8s.io.networkpolicy/index.vue +1 -1
- package/edit/provisioning.cattle.io.cluster/AgentConfiguration.vue +1 -1
- package/edit/provisioning.cattle.io.cluster/MachinePool.vue +1 -1
- package/edit/provisioning.cattle.io.cluster/RegistryConfigs.vue +1 -1
- package/edit/provisioning.cattle.io.cluster/RegistryMirrors.vue +2 -2
- package/edit/provisioning.cattle.io.cluster/__tests__/rke2.test.ts +143 -169
- package/edit/provisioning.cattle.io.cluster/rke2.vue +15 -6
- package/edit/resources.cattle.io.restore.vue +2 -2
- package/edit/service.vue +22 -3
- package/edit/storage.k8s.io.storageclass/index.vue +1 -1
- package/edit/workload/Job.vue +2 -2
- package/edit/workload/index.vue +1 -1
- package/edit/workload/mixins/workload.js +7 -1
- package/edit/workload/storage/__tests__/Storage.test.ts +84 -5
- package/initialize/index.js +1 -0
- package/layouts/default.vue +1 -1
- package/mixins/resource-fetch-namespaced.js +19 -27
- package/mixins/resource-fetch.js +0 -5
- package/models/__tests__/namespace.test.ts +125 -0
- package/models/management.cattle.io.project.js +6 -1
- package/models/persistentvolume.js +1 -1
- package/models/workload.service.js +22 -7
- package/package.json +17 -5
- package/pages/auth/login.vue +46 -49
- package/pages/c/_cluster/apps/charts/chart.vue +1 -1
- package/pages/c/_cluster/apps/charts/install.vue +42 -51
- package/pages/c/_cluster/explorer/index.vue +1 -1
- package/pages/c/_cluster/monitoring/index.vue +1 -1
- package/pages/c/_cluster/settings/performance.vue +53 -18
- package/pages/c/_cluster/uiplugins/PluginInfoPanel.vue +1 -1
- package/pages/c/_cluster/uiplugins/index.vue +16 -5
- package/pages/home.vue +1 -1
- package/pkg/vue.config.js +1 -0
- package/plugins/clean-html-directive.js +1 -1
- package/plugins/clean-tooltip-directive.js +33 -0
- package/plugins/dashboard-store/actions.js +4 -2
- package/plugins/dashboard-store/getters.js +6 -0
- package/plugins/dashboard-store/mutations.js +2 -2
- package/plugins/plugin.js +6 -1
- package/plugins/steve/actions.js +1 -1
- package/plugins/steve/getters.js +14 -3
- package/plugins/steve/resourceWatcher.js +36 -62
- package/plugins/steve/subscribe.js +137 -21
- package/plugins/steve/worker/index.js +7 -1
- package/plugins/steve/worker/web-worker.advanced.js +26 -8
- package/plugins/steve/worker/web-worker.basic.js +23 -4
- package/rancher-components/components/Form/Checkbox/Checkbox.vue +2 -2
- package/rancher-components/components/Form/Radio/RadioGroup.vue +2 -2
- package/rancher-components/components/LabeledTooltip/LabeledTooltip.vue +1 -1
- package/store/index.js +16 -61
- package/store/store-types.js +5 -0
- package/store/type-map.js +1 -1
- package/types/shell/index.d.ts +23 -7
- package/utils/__tests__/create-yaml.test.ts +63 -0
- package/utils/array.ts +4 -0
- package/utils/create-yaml.js +5 -5
- package/utils/namespace-filter.js +17 -5
- package/utils/projectAndNamespaceFiltering.utils.ts +62 -0
- package/utils/selector.js +6 -5
- package/utils/settings.ts +5 -7
- package/models/k8s.cni.cncf.io.networkattachmentdefinition.js +0 -93
|
@@ -2783,6 +2783,10 @@ logging:
|
|
|
2783
2783
|
clientKeyPass: Client Key Pass from Secret
|
|
2784
2784
|
verifySsl: Verify SSL
|
|
2785
2785
|
sslVersion: SSL Version
|
|
2786
|
+
suppressTypeName:
|
|
2787
|
+
label: Suppress Type Names
|
|
2788
|
+
elasticSearchTips: Suppress type names by default to be compatible with log server. You should enable it for Elasticsearch >= 8.0.0
|
|
2789
|
+
openSearchTips: Suppress type names by default to be compatible with log server. You should enable it for OpenSearch >= 2.0.0
|
|
2786
2790
|
redis:
|
|
2787
2791
|
host: Host
|
|
2788
2792
|
port: Port
|
|
@@ -3025,7 +3029,7 @@ members:
|
|
|
3025
3029
|
clusterAndProject: Cluster and Project Members
|
|
3026
3030
|
createActionLabel: Add
|
|
3027
3031
|
clusterMemebership: Cluster Membership
|
|
3028
|
-
projectMembership: Project
|
|
3032
|
+
projectMembership: Project Membership
|
|
3029
3033
|
clusterPermissions:
|
|
3030
3034
|
noDescription: User created - no description
|
|
3031
3035
|
label: Cluster Permissions
|
|
@@ -4587,8 +4591,8 @@ resourceList:
|
|
|
4587
4591
|
create: Create
|
|
4588
4592
|
createFromYaml: Create from YAML
|
|
4589
4593
|
createResource: "Create {resourceName}"
|
|
4590
|
-
nsFiltering: "
|
|
4591
|
-
nsFilterToolTip: "
|
|
4594
|
+
nsFiltering: "Please select one or more namespaces or projects using the filter above."
|
|
4595
|
+
nsFilterToolTip: "Filtering is restricted to projects and namespaces"
|
|
4592
4596
|
resourceLoadingIndicator:
|
|
4593
4597
|
loading: Loading
|
|
4594
4598
|
|
|
@@ -4799,20 +4803,7 @@ servicesPage:
|
|
|
4799
4803
|
title: Add-on Config
|
|
4800
4804
|
ipam:
|
|
4801
4805
|
label: IPAM
|
|
4802
|
-
|
|
4803
|
-
label: Health Check Port
|
|
4804
|
-
healthCheckSuccessThreshold:
|
|
4805
|
-
label: Health Check Success Threshold
|
|
4806
|
-
description: If the number of times the prober continuously detects an address successfully reaches the success threshold, then the backend server can start to forward traffic.
|
|
4807
|
-
healthCheckFailureThreshold:
|
|
4808
|
-
label: Health Check Failure Threshold
|
|
4809
|
-
description: The backend server will stop forwarding traffic if the number of health check failures reaches the failure threshold.
|
|
4810
|
-
healthCheckPeriod:
|
|
4811
|
-
label: Health Check Period
|
|
4812
|
-
healthCheckTimeout:
|
|
4813
|
-
label: Health Check Timeout
|
|
4814
|
-
healthCheckEnabled:
|
|
4815
|
-
label: Health Check
|
|
4806
|
+
|
|
4816
4807
|
ips:
|
|
4817
4808
|
define: Service Ports
|
|
4818
4809
|
clusterIpHelpText: The Cluster IP address must be within the CIDR range configured for the API server.
|
|
@@ -6023,7 +6014,7 @@ workload:
|
|
|
6023
6014
|
noExecute: NoExecute
|
|
6024
6015
|
noSchedule: "NoSchedule"
|
|
6025
6016
|
preferNoSchedule: PreferNoSchedule
|
|
6026
|
-
labelKey:
|
|
6017
|
+
labelKey: Key
|
|
6027
6018
|
operator: Operator
|
|
6028
6019
|
operatorOptions:
|
|
6029
6020
|
equal: =
|
|
@@ -6990,6 +6981,7 @@ performance:
|
|
|
6990
6981
|
When enabled, resources will appear more quickly, but it may take slightly longer to load the entire set of resources. This setting only applies to resources that come from the Kubernetes API
|
|
6991
6982
|
checkboxLabel: Enable incremental loading
|
|
6992
6983
|
inputLabel: Resource Threshold
|
|
6984
|
+
incompatibleDescription: "Incremental Loading is incomaptible with Namespace/Project filtering. Enabling this will disable it."
|
|
6993
6985
|
manualRefresh:
|
|
6994
6986
|
label: Manual Refresh
|
|
6995
6987
|
setting: You can configure a threshold above which manual refresh will be enabled.
|
|
@@ -6998,6 +6990,7 @@ performance:
|
|
|
6998
6990
|
When enabled, list data will not auto-update but instead the user must manually trigger a list-view refresh. This setting only applies to resources that come from the Kubernetes API
|
|
6999
6991
|
checkboxLabel: Enable manual refresh of data for lists
|
|
7000
6992
|
inputLabel: Resource Threshold
|
|
6993
|
+
incompatibleDescription: "Manual Refresh is incomaptible with Namespace/Project filtering. Enabling this will disable it."
|
|
7001
6994
|
websocketNotification:
|
|
7002
6995
|
label: Websocket Notifications
|
|
7003
6996
|
description: |-
|
|
@@ -7025,12 +7018,10 @@ performance:
|
|
|
7025
7018
|
description: Resource types must exceed this amount to be considered for garbage collection.
|
|
7026
7019
|
inputLabel: Resource Count
|
|
7027
7020
|
nsFiltering:
|
|
7028
|
-
label: Require Namespace Filtering
|
|
7029
|
-
description:
|
|
7030
|
-
checkboxLabel: Enable Required Namespace Filtering
|
|
7031
|
-
|
|
7032
|
-
inputLabel: Resource Threshold
|
|
7033
|
-
description: The threshold above which filtering by a namespace is required
|
|
7021
|
+
label: Require Namespace / Project Filtering
|
|
7022
|
+
description: Require the user to select namespaces and/or projects. This restricts the number of resources fetched when viewing lists and should help the responsiveness of the UI in systems with a lot of resources.
|
|
7023
|
+
checkboxLabel: Enable Required Namespace / Project Filtering
|
|
7024
|
+
incompatibleDescription: "Required Namespace / Project Filtering is incomaptible with Manual Refresh and Incremental Loading. Enabling this will disable them."
|
|
7034
7025
|
advancedWorker:
|
|
7035
7026
|
label: Websocket Web Worker
|
|
7036
7027
|
description: Updates to resources pushed to the UI come via WebSocket and are handled in the UI thread. Enable this option to handle cluster WebSocket updates in a Web Worker in a separate thread. This should help the responsiveness of the UI in systems where resources change often.
|
|
@@ -7281,3 +7272,7 @@ auth:
|
|
|
7281
7272
|
vncConsole:
|
|
7282
7273
|
error:
|
|
7283
7274
|
message: Web VNC console connection is disconnected
|
|
7275
|
+
|
|
7276
|
+
networkAttachmentDefinition:
|
|
7277
|
+
tabs:
|
|
7278
|
+
config: Config
|
|
@@ -456,7 +456,13 @@ authConfig:
|
|
|
456
456
|
objectClass: 对象类
|
|
457
457
|
password: 密码
|
|
458
458
|
port: 端口
|
|
459
|
+
protocol: 协议
|
|
460
|
+
protocols:
|
|
461
|
+
starttls: 启用 TLS
|
|
462
|
+
ldap: LDAP
|
|
463
|
+
tls: LDAPS (TLS)
|
|
459
464
|
customizeSchema: 自定义模式
|
|
465
|
+
oktaSchema: '以下默认值适用于通用 OpenLDAP Server。有关使用 Okta LDAP 接口时要使用的值,请参阅 <a target="_blank" rel="noopener noreferrer nofollow" href="https://help.okta.com/en-us/Content/Topics/Directory/LDAP-interface-connection-settings.htm">Okta LDAP 接口连接设置</a>'
|
|
460
466
|
users: 用户
|
|
461
467
|
groups: 组
|
|
462
468
|
searchAttribute: 搜索属性
|
|
@@ -466,7 +472,7 @@ authConfig:
|
|
|
466
472
|
serviceAccountPassword: Service Account 密码
|
|
467
473
|
serviceAccountInfo: '{vendor} 需要一个对所有能够登录的域名都有只读访问权的 Service Account,以在用户使用 API 密钥进行请求时,确定用户属于什么组。'
|
|
468
474
|
starttls:
|
|
469
|
-
label:
|
|
475
|
+
label: 启用 TLS
|
|
470
476
|
tip: 通过在连接过程中使用 TLS 封装来升级非加密连接。不能与 TLS 结合使用。
|
|
471
477
|
tls: TLS
|
|
472
478
|
userEnabledAttribute: 用户启用属性
|
|
@@ -501,6 +507,13 @@ authConfig:
|
|
|
501
507
|
shibboleth: 配置 Shibboleth 账号
|
|
502
508
|
showLdap: 配置 OpenLDAP server
|
|
503
509
|
userName: 用户名字段
|
|
510
|
+
search:
|
|
511
|
+
title: 用户和组搜索
|
|
512
|
+
message: SAML 协议不支持搜索或查找用户或组。要启用搜索,你必须配置 OpenLDAP Server。
|
|
513
|
+
on: 已配置 LDAP 用户和组搜索
|
|
514
|
+
off: 未配置 LDAP 用户和组搜索
|
|
515
|
+
show: 显示详情
|
|
516
|
+
hide: 隐藏详情
|
|
504
517
|
azuread:
|
|
505
518
|
tenantId: 租户 ID
|
|
506
519
|
applicationId: 应用 ID
|
|
@@ -1244,7 +1257,7 @@ cluster:
|
|
|
1244
1257
|
memory: 内存
|
|
1245
1258
|
disk: 磁盘
|
|
1246
1259
|
image: 镜像
|
|
1247
|
-
network:
|
|
1260
|
+
network:
|
|
1248
1261
|
title: 网络
|
|
1249
1262
|
network: 网络
|
|
1250
1263
|
addNetwork: 添加网络
|
|
@@ -1606,6 +1619,27 @@ cluster:
|
|
|
1606
1619
|
additionalManifest:
|
|
1607
1620
|
title: 其它清单文件
|
|
1608
1621
|
tooltip: '集群启动时要应用的其它 Kubernetes 清单 YAML'
|
|
1622
|
+
agentConfig:
|
|
1623
|
+
tabs:
|
|
1624
|
+
cluster: Cluster Agent
|
|
1625
|
+
fleet: Fleet Agent
|
|
1626
|
+
groups:
|
|
1627
|
+
deploymentLabels: 部署标签
|
|
1628
|
+
selector: 选择器
|
|
1629
|
+
podAffinity: 亲和性
|
|
1630
|
+
podTolerations: 容忍度
|
|
1631
|
+
podRequestsAndLimits: 请求和限制
|
|
1632
|
+
subGroups:
|
|
1633
|
+
podAffinityAnti: Pod 亲和性/反亲和性
|
|
1634
|
+
nodeAffinity: 节点亲和性
|
|
1635
|
+
banners:
|
|
1636
|
+
advanced: 以下是高级配置,通常不修改。
|
|
1637
|
+
tolerations: 其他 Pod 容忍度将添加到 Rancher 应用的默认容忍度中。
|
|
1638
|
+
limits: Pod 请求和限制没有默认配置。
|
|
1639
|
+
windowsCompatibility: "不建议删除用于阻止 <b>Agent</b> 在 Windows 节点上运行的节点亲和性规则,因为这不是受支持的配置。"
|
|
1640
|
+
affinity:
|
|
1641
|
+
default: 使用 Rancher 定义的默认亲和性规则
|
|
1642
|
+
custom: 使用自定义亲和性规则
|
|
1609
1643
|
advanced:
|
|
1610
1644
|
argInfo:
|
|
1611
1645
|
title: 补充 Kubelet 参数
|
|
@@ -1822,7 +1856,7 @@ cluster:
|
|
|
1822
1856
|
option: 默认 - 嵌入 RKE2
|
|
1823
1857
|
defaultPodSecurityAdmissionConfigurationTemplateName:
|
|
1824
1858
|
label: PSA 配置模板
|
|
1825
|
-
option:
|
|
1859
|
+
option:
|
|
1826
1860
|
none: (None)
|
|
1827
1861
|
default: 默认 - 嵌入 RKE2
|
|
1828
1862
|
cisProfile:
|
|
@@ -2197,11 +2231,11 @@ fleet:
|
|
|
2197
2231
|
error: 错误
|
|
2198
2232
|
ready: 就绪
|
|
2199
2233
|
errors: 错误
|
|
2200
|
-
workspaces:
|
|
2234
|
+
workspaces:
|
|
2201
2235
|
tabs:
|
|
2202
2236
|
restrictions: 允许的目标命名空间
|
|
2203
2237
|
timeout: 工作空间创建超时。工作空间可能已创建,建议在创建另一个工作空间之前检查工作空间页面。
|
|
2204
|
-
restrictions:
|
|
2238
|
+
restrictions:
|
|
2205
2239
|
addTitle: 'allowedTargetNamespaces'
|
|
2206
2240
|
addLabel: 添加
|
|
2207
2241
|
banner: "{count, plural, =0 { 在这里添加命名空间会创建一个 GitRepoRestriction。} other { 只有 Git Repo Restriction 的 <code>allowedTargetNamespaces</code> 在此处管理,你可以对 Git Repo Restriction 进行其他更改。} }"
|
|
@@ -2216,6 +2250,7 @@ footer:
|
|
|
2216
2250
|
modalText: 扫码关注 Rancher 中国微信技术群
|
|
2217
2251
|
|
|
2218
2252
|
gatekeeperConstraint:
|
|
2253
|
+
downloadViolations: 下载违规
|
|
2219
2254
|
match:
|
|
2220
2255
|
title: 匹配
|
|
2221
2256
|
tab:
|
|
@@ -2247,14 +2282,14 @@ gatekeeperConstraint:
|
|
|
2247
2282
|
action: 执行动作
|
|
2248
2283
|
violations:
|
|
2249
2284
|
title: "违反规定:{total}"
|
|
2250
|
-
notAll:
|
|
2285
|
+
notAll: 由于配置的 OPA Gatekeeper 约束违规限制,未显示全部内容 - 该约束仅包含 {shown} 的详细信息。
|
|
2251
2286
|
|
|
2252
2287
|
gatekeeperIndex:
|
|
2253
2288
|
poweredBy: OPA Gatekeeper
|
|
2254
2289
|
unavailable: OPA Gatekeeper 不在 system-charts 应用商店中.
|
|
2255
2290
|
violations: 违反规定
|
|
2256
2291
|
|
|
2257
|
-
gatekeeperInstall:
|
|
2292
|
+
gatekeeperInstall:
|
|
2258
2293
|
auditInterval: 自动间隔
|
|
2259
2294
|
constraintViolationsLimit: 约束违规限制
|
|
2260
2295
|
runtimeDefaultSeccompProfile: 启用运行时默认 Seccomp 配置文件
|
|
@@ -2756,6 +2791,10 @@ logging:
|
|
|
2756
2791
|
clientKeyPass: 传自密文的客户端密钥
|
|
2757
2792
|
verifySsl: 验证 SSL
|
|
2758
2793
|
sslVersion: SSL 版本
|
|
2794
|
+
suppressTypeName:
|
|
2795
|
+
label: 抑制类型名称
|
|
2796
|
+
elasticSearchTips: 默认抑制类型名称,用于兼容日志服务器。如果你的 Elasticsearch >= 8.0.0,则需要启用。
|
|
2797
|
+
openSearchTips: 默认抑制类型名称,用于兼容日志服务器。如果你的 OpenSearch >= 2.0.0,则需要启用。
|
|
2759
2798
|
redis:
|
|
2760
2799
|
host: 主机
|
|
2761
2800
|
port: 端口
|
|
@@ -2795,6 +2834,7 @@ logging:
|
|
|
2795
2834
|
sslClientCertKey: SSL 客户端证书密钥
|
|
2796
2835
|
loki:
|
|
2797
2836
|
url: URL
|
|
2837
|
+
urlInvalid: URL 格式不正确。请在保存前检查并更正 URL 格式。
|
|
2798
2838
|
tenant: 租户
|
|
2799
2839
|
username: 用户名
|
|
2800
2840
|
password: 密码
|
|
@@ -3945,6 +3985,15 @@ podDisruptionBudget:
|
|
|
3945
3985
|
maxUnavailable:
|
|
3946
3986
|
label: 最大不可用 Pod
|
|
3947
3987
|
|
|
3988
|
+
inactivity:
|
|
3989
|
+
title: 会话即将过期
|
|
3990
|
+
titleExpired: 会话已过期
|
|
3991
|
+
banner: 由于不活动,你的会话即将过期。任何未保存的更改都将丢失。
|
|
3992
|
+
bannerExpired: 由于不活动,此选项卡中的会话已过期。
|
|
3993
|
+
content: 单击“恢复会话”来让选项卡中的会话保持活动状态,或在会话过期后刷新浏览器。
|
|
3994
|
+
contentExpired: 要返回此页面,请单击下面的“刷新”或刷新浏览器。
|
|
3995
|
+
cta: 恢复会话
|
|
3996
|
+
ctaExpired: 刷新
|
|
3948
3997
|
|
|
3949
3998
|
# Rancher Extensions
|
|
3950
3999
|
plugins:
|
|
@@ -4044,7 +4093,7 @@ plugins:
|
|
|
4044
4093
|
podSecurityAdmission:
|
|
4045
4094
|
name: Pod 安全准入
|
|
4046
4095
|
description: 定义要用于 Pod 安全的准入控制模式
|
|
4047
|
-
banner:
|
|
4096
|
+
banner:
|
|
4048
4097
|
modifications: '如果你更改正在使用的模板,在下次更新集群时会更新这些活动集群'
|
|
4049
4098
|
labels:
|
|
4050
4099
|
enforce: 执行
|
|
@@ -4058,7 +4107,7 @@ podSecurityAdmission:
|
|
|
4058
4107
|
restricted: restricted
|
|
4059
4108
|
version:
|
|
4060
4109
|
placeholder: '版本(默认:latest)'
|
|
4061
|
-
exemptions:
|
|
4110
|
+
exemptions:
|
|
4062
4111
|
title: 豁免
|
|
4063
4112
|
description: 允许为特定的用户名、RuntimeClassName 和命名空间创建 Pod,否则它们会被上方设置的策略禁止。
|
|
4064
4113
|
placeholder: 输入以逗号分隔的 {psaExemptionsControl} 列表
|
|
@@ -5179,7 +5228,7 @@ storageClass:
|
|
|
5179
5228
|
warning: '{provisioner} 树内插件已弃用。你可以在<a target="_blank" rel="noopener noreferrer nofollow" href="https://kubernetes-csi.github.io/docs/drivers.html">这里</a>查找 CSI 驱动。'
|
|
5180
5229
|
harvesterhci:
|
|
5181
5230
|
title: Harvester (CSI)
|
|
5182
|
-
warning:
|
|
5231
|
+
warning:
|
|
5183
5232
|
unSatisfiesVersion: 请升级 Harvester CSI 驱动版本来使用此功能(csi-driver >= v0.1.15)
|
|
5184
5233
|
hostStorageClass:
|
|
5185
5234
|
label: 主机存储类
|
|
@@ -5221,6 +5270,7 @@ tableHeaders:
|
|
|
5221
5270
|
clusterGroups: 集群组
|
|
5222
5271
|
commit: Commit
|
|
5223
5272
|
condition: 状态
|
|
5273
|
+
constraint: 约束
|
|
5224
5274
|
completions: 完成 Job 历史数
|
|
5225
5275
|
count: 数量
|
|
5226
5276
|
createdAt: 创建于
|
|
@@ -5386,6 +5436,7 @@ tableHeaders:
|
|
|
5386
5436
|
target: 目标
|
|
5387
5437
|
targetKind: 目标类型
|
|
5388
5438
|
targetPort: 目标
|
|
5439
|
+
template: 模板
|
|
5389
5440
|
type: 类型
|
|
5390
5441
|
updated: 更新时间
|
|
5391
5442
|
up-to-date: 最新
|
|
@@ -5926,15 +5977,19 @@ workload:
|
|
|
5926
5977
|
antiAffinityTitle: 在不与选择器匹配的节点上运行 Pod
|
|
5927
5978
|
affinityOption: 亲和性
|
|
5928
5979
|
antiAffinityOption: 反亲和性
|
|
5980
|
+
matchFields:
|
|
5981
|
+
label: 字段
|
|
5929
5982
|
matchExpressions:
|
|
5983
|
+
label: 表达式
|
|
5930
5984
|
addRule: 添加规则
|
|
5931
5985
|
doesNotExist: 未设置
|
|
5932
5986
|
exists: 已设置
|
|
5933
5987
|
greaterThan: ">"
|
|
5934
5988
|
in: 在列表中
|
|
5935
|
-
inNamespaces: "
|
|
5989
|
+
inNamespaces: "特定命名空间"
|
|
5936
5990
|
key: 键
|
|
5937
5991
|
lessThan: <
|
|
5992
|
+
matchType: 匹配类型
|
|
5938
5993
|
namespaces: 命名空间
|
|
5939
5994
|
notIn: 不在列表中
|
|
5940
5995
|
operator: 运算符
|
|
@@ -5950,6 +6005,7 @@ workload:
|
|
|
5950
6005
|
schedulingRules: 在匹配调度规则的节点上运行 Pod
|
|
5951
6006
|
specificNode: 在指定节点上运行 Pod
|
|
5952
6007
|
thisPodNamespace: 此 Pod 的命名空间
|
|
6008
|
+
allNamespaces: 所有命名空间
|
|
5953
6009
|
topologyKey:
|
|
5954
6010
|
label: 拓扑键
|
|
5955
6011
|
placeholder: 例如:failure-domain.beta.kubernetes.io/zone
|
|
@@ -5969,10 +6025,10 @@ workload:
|
|
|
5969
6025
|
podScheduling: Pod 调度
|
|
5970
6026
|
priority: 优先级
|
|
5971
6027
|
tab: 调度
|
|
5972
|
-
tolerations:
|
|
6028
|
+
tolerations: 容忍度
|
|
5973
6029
|
limits: 限制和预留
|
|
5974
6030
|
tolerations:
|
|
5975
|
-
addToleration:
|
|
6031
|
+
addToleration: 添加容忍度
|
|
5976
6032
|
effect: 效果
|
|
5977
6033
|
effectOptions:
|
|
5978
6034
|
all: 全部
|
|
@@ -6122,8 +6178,6 @@ workload:
|
|
|
6122
6178
|
pod: Pod
|
|
6123
6179
|
containers: 容器
|
|
6124
6180
|
|
|
6125
|
-
|
|
6126
|
-
|
|
6127
6181
|
##############################
|
|
6128
6182
|
# Model Properties
|
|
6129
6183
|
##############################
|
|
@@ -6769,7 +6823,7 @@ typeLabel:
|
|
|
6769
6823
|
{count, plural,
|
|
6770
6824
|
one { 集群注册 Token }
|
|
6771
6825
|
other { 集群注册 Token }
|
|
6772
|
-
}
|
|
6826
|
+
}
|
|
6773
6827
|
|
|
6774
6828
|
action:
|
|
6775
6829
|
clone: 克隆
|
|
@@ -7003,6 +7057,14 @@ performance:
|
|
|
7003
7057
|
label: Websocket Web Worker
|
|
7004
7058
|
description: 推送到 UI 的资源更新来自 WebSocket,并在 UI 线程中处理。启用此选项可在单独的线程中处理 Web Worker 中的集群 WebSocket 更新。这有助于提高 UI 在资源经常变化的系统中的响应能力。
|
|
7005
7059
|
checkboxLabel: 启用高级 Websocket Web Worker
|
|
7060
|
+
inactivity:
|
|
7061
|
+
title: 闲置状态
|
|
7062
|
+
checkboxLabel: 启用闲置会话过期
|
|
7063
|
+
inputLabel: 闲置超时时间(分钟)
|
|
7064
|
+
information: 要更改自动注销行为,请在"设置"页面编辑授权和/或会话 Token 超时值(<code>auth-user-session-ttl-minutes</code> 和 <code>auth-token-max-ttl-minutes</code>)。
|
|
7065
|
+
description: 启用后,如果用户在指定的超时时间内未有活动,UI 将不再刷新页面内容,用户必须重新加载页面才能继续。
|
|
7066
|
+
authUserTTL: 该超时时间不能超过用户会话超时时间 auth-user-session-ttl-minutes(当前为 {current} 分钟)。
|
|
7067
|
+
|
|
7006
7068
|
|
|
7007
7069
|
banner:
|
|
7008
7070
|
label: 固定横幅
|
|
@@ -7486,3 +7548,7 @@ charts:
|
|
|
7486
7548
|
ingress.host:
|
|
7487
7549
|
label: 7 层负载均衡主机名
|
|
7488
7550
|
description: "7 层负载均衡主机名"
|
|
7551
|
+
|
|
7552
|
+
networkAttachmentDefinition:
|
|
7553
|
+
tabs:
|
|
7554
|
+
config: 配置
|
package/chart/istio.vue
CHANGED
|
@@ -231,17 +231,17 @@ export default {
|
|
|
231
231
|
/>
|
|
232
232
|
</div>
|
|
233
233
|
<div class="col span-4" />
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
</
|
|
234
|
+
</div>
|
|
235
|
+
<div
|
|
236
|
+
v-if="showKialiBanner"
|
|
237
|
+
class="row"
|
|
238
|
+
>
|
|
239
|
+
<div class="col span-12">
|
|
240
|
+
<Banner color="info">
|
|
241
|
+
<span
|
|
242
|
+
v-clean-html="t('istio.pilotRequired', {}, true)"
|
|
243
|
+
/>
|
|
244
|
+
</Banner>
|
|
245
245
|
</div>
|
|
246
246
|
</div>
|
|
247
247
|
|
|
@@ -275,12 +275,12 @@ export default Vue.extend({
|
|
|
275
275
|
>
|
|
276
276
|
<i
|
|
277
277
|
v-if="displayIcon"
|
|
278
|
-
v-tooltip="tooltip"
|
|
278
|
+
v-clean-tooltip="tooltip"
|
|
279
279
|
:class="{icon: true, 'icon-lg': true, [displayIcon]: true}"
|
|
280
280
|
/>
|
|
281
281
|
<span
|
|
282
282
|
v-if="labelAs === 'text' && displayLabel"
|
|
283
|
-
v-tooltip="tooltip"
|
|
283
|
+
v-clean-tooltip="tooltip"
|
|
284
284
|
v-clean-html="displayLabel"
|
|
285
285
|
/>
|
|
286
286
|
</button>
|
|
@@ -75,7 +75,7 @@ export default {
|
|
|
75
75
|
<button
|
|
76
76
|
v-for="(opt,idx) in optionObjects"
|
|
77
77
|
:key="idx"
|
|
78
|
-
v-tooltip="opt.tooltipKey ? t(opt.tooltipKey) : opt.tooltip"
|
|
78
|
+
v-clean-tooltip="opt.tooltipKey ? t(opt.tooltipKey) : opt.tooltip"
|
|
79
79
|
:data-testid="`button-group-child-${idx}`"
|
|
80
80
|
type="button"
|
|
81
81
|
:class="opt.class"
|
package/components/CopyCode.vue
CHANGED
package/components/DetailTop.vue
CHANGED
|
@@ -252,7 +252,7 @@ export default {
|
|
|
252
252
|
/>
|
|
253
253
|
<span
|
|
254
254
|
v-if="internalTooltips[key]"
|
|
255
|
-
v-tooltip="prop ? `${key} : ${prop}` : key"
|
|
255
|
+
v-clean-tooltip="prop ? `${key} : ${prop}` : key"
|
|
256
256
|
>
|
|
257
257
|
<span>{{ internalTooltips[key] ? internalTooltips[key] : key }}</span>
|
|
258
258
|
<span v-if="showAllLabels">: {{ key }}</span>
|
|
@@ -451,12 +451,12 @@ export default {
|
|
|
451
451
|
</span>
|
|
452
452
|
<i
|
|
453
453
|
v-if="row.injectionEnabled"
|
|
454
|
-
v-tooltip="t('projectNamespaces.isIstioInjectionEnabled')"
|
|
454
|
+
v-clean-tooltip="t('projectNamespaces.isIstioInjectionEnabled')"
|
|
455
455
|
class="icon icon-istio ml-5"
|
|
456
456
|
/>
|
|
457
457
|
<i
|
|
458
458
|
v-if="row.hasSystemLabels"
|
|
459
|
-
v-tooltip="getPsaTooltip(row)"
|
|
459
|
+
v-clean-tooltip="getPsaTooltip(row)"
|
|
460
460
|
class="icon icon-lock ml-5"
|
|
461
461
|
/>
|
|
462
462
|
</div>
|
|
@@ -537,7 +537,7 @@ export default {
|
|
|
537
537
|
<style lang="scss">
|
|
538
538
|
.psa-tooltip {
|
|
539
539
|
// These could pop up a lot as the mouse moves around, keep them as small and unintrusive as possible
|
|
540
|
-
// (easier to test with v-tooltip="{ content: getPSA(row), autoHide: false, show: true }")
|
|
540
|
+
// (easier to test with v-clean-tooltip="{ content: getPSA(row), autoHide: false, show: true }")
|
|
541
541
|
margin: 3px 0;
|
|
542
542
|
padding: 0 8px 0 22px;
|
|
543
543
|
}
|
|
@@ -341,7 +341,7 @@ export default {
|
|
|
341
341
|
<span class="checkbox-label">{{ role.nameDisplay }}</span>
|
|
342
342
|
<i
|
|
343
343
|
v-if="!!assignOnlyRoles[role.id]"
|
|
344
|
-
v-tooltip="t('rbac.globalRoles.assignOnlyRole')"
|
|
344
|
+
v-clean-tooltip="t('rbac.globalRoles.assignOnlyRole')"
|
|
345
345
|
class="checkbox-info icon icon-info icon-lg"
|
|
346
346
|
/>
|
|
347
347
|
</div>
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
<script>
|
|
2
|
-
import { LabeledInput } from '@components/Form/LabeledInput';
|
|
3
2
|
import LabeledSelect from '@shell/components/form/LabeledSelect';
|
|
4
|
-
import { RadioGroup } from '@components/Form/Radio';
|
|
5
3
|
import { _CREATE } from '@shell/config/query-params';
|
|
6
4
|
import { get } from '@shell/utils/object';
|
|
7
5
|
import { HCI as HCI_LABELS_ANNOTATIONS } from '@shell/config/labels-annotations';
|
|
@@ -10,34 +8,10 @@ const HARVESTER_ADD_ON_CONFIG = [{
|
|
|
10
8
|
variableName: 'ipam',
|
|
11
9
|
key: HCI_LABELS_ANNOTATIONS.CLOUD_PROVIDER_IPAM,
|
|
12
10
|
default: 'dhcp'
|
|
13
|
-
}, {
|
|
14
|
-
variableName: 'healthcheckPort',
|
|
15
|
-
key: 'cloudprovider.harvesterhci.io/healthcheck-port',
|
|
16
|
-
default: '',
|
|
17
|
-
}, {
|
|
18
|
-
variableName: 'healthCheckSuccessThreshold',
|
|
19
|
-
key: 'cloudprovider.harvesterhci.io/healthcheck-success-threshold',
|
|
20
|
-
default: 1,
|
|
21
|
-
}, {
|
|
22
|
-
variableName: 'healthCheckFailureThreshold',
|
|
23
|
-
key: 'cloudprovider.harvesterhci.io/healthcheck-failure-threshold',
|
|
24
|
-
default: 3,
|
|
25
|
-
}, {
|
|
26
|
-
variableName: 'healthCheckPeriod',
|
|
27
|
-
key: 'cloudprovider.harvesterhci.io/healthcheck-periodseconds',
|
|
28
|
-
default: 5,
|
|
29
|
-
}, {
|
|
30
|
-
variableName: 'healthCheckTimeout',
|
|
31
|
-
key: 'cloudprovider.harvesterhci.io/healthcheck-timeoutseconds',
|
|
32
|
-
default: 3,
|
|
33
11
|
}];
|
|
34
12
|
|
|
35
13
|
export default {
|
|
36
|
-
components: {
|
|
37
|
-
LabeledInput,
|
|
38
|
-
LabeledSelect,
|
|
39
|
-
RadioGroup,
|
|
40
|
-
},
|
|
14
|
+
components: { LabeledSelect },
|
|
41
15
|
|
|
42
16
|
props: {
|
|
43
17
|
mode: {
|
|
@@ -71,10 +45,7 @@ export default {
|
|
|
71
45
|
harvesterAddOnConfig[c.variableName] = this.value.metadata.annotations[c.key] || c.default;
|
|
72
46
|
});
|
|
73
47
|
|
|
74
|
-
return {
|
|
75
|
-
...harvesterAddOnConfig,
|
|
76
|
-
healthCheckEnabled: !!harvesterAddOnConfig.healthcheckPort,
|
|
77
|
-
};
|
|
48
|
+
return { ...harvesterAddOnConfig };
|
|
78
49
|
},
|
|
79
50
|
|
|
80
51
|
computed: {
|
|
@@ -97,27 +68,9 @@ export default {
|
|
|
97
68
|
|
|
98
69
|
methods: {
|
|
99
70
|
willSave() {
|
|
100
|
-
const errors = [];
|
|
101
|
-
|
|
102
|
-
if (this.healthCheckEnabled && !this.healthcheckPort) {
|
|
103
|
-
errors.push(this.t('validation.required', { key: this.t('servicesPage.harvester.healthCheckPort.label') }, true));
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
if (errors.length > 0) {
|
|
107
|
-
return Promise.reject(errors);
|
|
108
|
-
}
|
|
109
|
-
|
|
110
71
|
HARVESTER_ADD_ON_CONFIG.forEach((c) => {
|
|
111
72
|
this.value.metadata.annotations[c.key] = String(get(this, c.variableName));
|
|
112
73
|
});
|
|
113
|
-
|
|
114
|
-
if (!this.healthCheckEnabled) {
|
|
115
|
-
delete this.value.metadata.annotations['cloudprovider.harvesterhci.io/healthcheck-port'];
|
|
116
|
-
delete this.value.metadata.annotations['cloudprovider.harvesterhci.io/healthcheck-success-threshold'];
|
|
117
|
-
delete this.value.metadata.annotations['cloudprovider.harvesterhci.io/healthcheck-failure-threshold'];
|
|
118
|
-
delete this.value.metadata.annotations['cloudprovider.harvesterhci.io/healthcheck-periodseconds'];
|
|
119
|
-
delete this.value.metadata.annotations['cloudprovider.harvesterhci.io/healthcheck-timeoutseconds'];
|
|
120
|
-
}
|
|
121
74
|
},
|
|
122
75
|
},
|
|
123
76
|
};
|
|
@@ -132,76 +85,8 @@ export default {
|
|
|
132
85
|
:mode="mode"
|
|
133
86
|
:options="ipamOptions"
|
|
134
87
|
:label="t('servicesPage.harvester.ipam.label')"
|
|
135
|
-
:disabled="mode === 'edit'"
|
|
136
88
|
/>
|
|
137
89
|
</div>
|
|
138
90
|
</div>
|
|
139
|
-
|
|
140
|
-
<div class="row mt-30">
|
|
141
|
-
<div class="col span-6">
|
|
142
|
-
<RadioGroup
|
|
143
|
-
v-model="healthCheckEnabled"
|
|
144
|
-
:mode="mode"
|
|
145
|
-
name="healthCheckEnabled"
|
|
146
|
-
:label="t('servicesPage.harvester.healthCheckEnabled.label')"
|
|
147
|
-
:labels="[t('generic.disabled'),t('generic.enabled')]"
|
|
148
|
-
:options="[false, true]"
|
|
149
|
-
/>
|
|
150
|
-
</div>
|
|
151
|
-
</div>
|
|
152
|
-
<div v-if="healthCheckEnabled">
|
|
153
|
-
<div class="row mt-10">
|
|
154
|
-
<div
|
|
155
|
-
v-if="healthCheckEnabled"
|
|
156
|
-
class="col span-6"
|
|
157
|
-
>
|
|
158
|
-
<LabeledSelect
|
|
159
|
-
v-model="healthcheckPort"
|
|
160
|
-
:mode="mode"
|
|
161
|
-
:options="portOptions"
|
|
162
|
-
required
|
|
163
|
-
:label="t('servicesPage.harvester.healthCheckPort.label')"
|
|
164
|
-
/>
|
|
165
|
-
</div>
|
|
166
|
-
<div class="col span-6">
|
|
167
|
-
<LabeledInput
|
|
168
|
-
v-model="healthCheckSuccessThreshold"
|
|
169
|
-
:mode="mode"
|
|
170
|
-
type="number"
|
|
171
|
-
:label="t('servicesPage.harvester.healthCheckSuccessThreshold.label')"
|
|
172
|
-
:tooltip="t('servicesPage.harvester.healthCheckSuccessThreshold.description')"
|
|
173
|
-
/>
|
|
174
|
-
</div>
|
|
175
|
-
</div>
|
|
176
|
-
<div class="row mt-10">
|
|
177
|
-
<div class="col span-6">
|
|
178
|
-
<LabeledInput
|
|
179
|
-
v-model="healthCheckFailureThreshold"
|
|
180
|
-
:mode="mode"
|
|
181
|
-
type="number"
|
|
182
|
-
:label="t('servicesPage.harvester.healthCheckFailureThreshold.label')"
|
|
183
|
-
:tooltip="t('servicesPage.harvester.healthCheckFailureThreshold.description')"
|
|
184
|
-
/>
|
|
185
|
-
</div>
|
|
186
|
-
<div class="col span-6">
|
|
187
|
-
<LabeledInput
|
|
188
|
-
v-model="healthCheckPeriod"
|
|
189
|
-
:mode="mode"
|
|
190
|
-
type="number"
|
|
191
|
-
:label="t('servicesPage.harvester.healthCheckPeriod.label')"
|
|
192
|
-
/>
|
|
193
|
-
</div>
|
|
194
|
-
</div>
|
|
195
|
-
<div class="row mt-10">
|
|
196
|
-
<div class="col span-6">
|
|
197
|
-
<LabeledInput
|
|
198
|
-
v-model="healthCheckTimeout"
|
|
199
|
-
:mode="mode"
|
|
200
|
-
type="number"
|
|
201
|
-
:label="t('servicesPage.harvester.healthCheckTimeout.label')"
|
|
202
|
-
/>
|
|
203
|
-
</div>
|
|
204
|
-
</div>
|
|
205
|
-
</div>
|
|
206
91
|
</div>
|
|
207
92
|
</template>
|