@rancher/shell 0.3.9 → 0.3.11

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.
Files changed (132) hide show
  1. package/assets/translations/en-us.yaml +19 -24
  2. package/assets/translations/zh-hans.yaml +82 -16
  3. package/chart/istio.vue +11 -11
  4. package/chart/rancher-backup/S3.vue +1 -1
  5. package/components/AsyncButton.vue +2 -2
  6. package/components/ButtonGroup.vue +1 -1
  7. package/components/CompoundStatusBadge.vue +1 -1
  8. package/components/CopyCode.vue +1 -1
  9. package/components/DetailText.vue +1 -0
  10. package/components/DetailTop.vue +1 -1
  11. package/components/ExplorerProjectsNamespaces.vue +3 -3
  12. package/components/GlobalRoleBindings.vue +1 -1
  13. package/components/HarvesterServiceAddOnConfig.vue +2 -117
  14. package/components/ResourceDetail/Masthead.vue +1 -1
  15. package/components/ResourceList/Masthead.vue +0 -6
  16. package/components/ResourceList/ResourceLoadingIndicator.vue +1 -9
  17. package/components/ResourceList/index.vue +7 -6
  18. package/components/ResourceTable.vue +13 -3
  19. package/components/SortableTable/THead.vue +4 -3
  20. package/components/SortableTable/index.vue +3 -3
  21. package/components/Tabbed/Tab.vue +1 -1
  22. package/components/Tabbed/index.vue +1 -1
  23. package/components/Wizard.vue +9 -6
  24. package/components/__tests__/NamespaceFilter.test.ts +26 -7
  25. package/components/auth/RoleDetailEdit.vue +1 -1
  26. package/components/auth/SelectPrincipal.vue +1 -1
  27. package/components/fleet/FleetRepos.vue +1 -1
  28. package/components/form/ArrayList.vue +1 -1
  29. package/components/form/ChangePassword.vue +3 -0
  30. package/components/form/KeyValue.vue +3 -2
  31. package/components/form/Labels.vue +34 -14
  32. package/components/form/Members/ClusterPermissionsEditor.vue +1 -1
  33. package/components/form/NameNsDescription.vue +1 -1
  34. package/components/form/PlusMinus.vue +2 -2
  35. package/components/form/Probe.vue +1 -1
  36. package/components/form/ProjectMemberEditor.vue +8 -4
  37. package/components/form/ResourceQuota/NamespaceRow.vue +1 -1
  38. package/components/form/ServicePorts.vue +2 -2
  39. package/components/form/Tolerations.vue +30 -3
  40. package/components/form/WorkloadPorts.vue +2 -1
  41. package/components/form/__tests__/KeyValue.test.ts +17 -0
  42. package/components/formatter/ClusterLink.vue +3 -3
  43. package/components/formatter/LiveDate.vue +1 -1
  44. package/components/formatter/PodImages.vue +1 -1
  45. package/components/formatter/RKETemplateName.vue +1 -1
  46. package/components/formatter/Shortened.vue +1 -1
  47. package/components/nav/Header.vue +7 -7
  48. package/components/nav/NamespaceFilter.vue +103 -54
  49. package/config/labels-annotations.js +8 -5
  50. package/config/settings.ts +2 -5
  51. package/config/types.js +6 -4
  52. package/core/plugin-routes.ts +26 -7
  53. package/core/plugins-loader.js +2 -0
  54. package/detail/helm.cattle.io.projecthelmchart.vue +2 -2
  55. package/detail/provisioning.cattle.io.cluster.vue +4 -4
  56. package/edit/cis.cattle.io.clusterscan.vue +1 -1
  57. package/edit/k8s.cni.cncf.io.networkattachmentdefinition.vue +19 -149
  58. package/edit/logging-flow/index.vue +2 -2
  59. package/edit/logging.banzaicloud.io.output/providers/elasticsearch.vue +12 -0
  60. package/edit/logging.banzaicloud.io.output/providers/opensearch.vue +12 -0
  61. package/edit/management.cattle.io.project.vue +7 -0
  62. package/edit/monitoring.coreos.com.alertmanagerconfig/index.vue +1 -1
  63. package/edit/monitoring.coreos.com.alertmanagerconfig/routeConfig.vue +2 -2
  64. package/edit/monitoring.coreos.com.prometheusrule/GroupRules.vue +11 -8
  65. package/edit/networking.k8s.io.networkpolicy/PolicyRule.vue +2 -2
  66. package/edit/networking.k8s.io.networkpolicy/PolicyRuleTarget.vue +12 -4
  67. package/edit/networking.k8s.io.networkpolicy/__tests__/PolicyRuleTarget.spec.ts +140 -0
  68. package/edit/networking.k8s.io.networkpolicy/__tests__/utils/mock.json +158 -0
  69. package/edit/networking.k8s.io.networkpolicy/__tests__/utils/selectors.ts +45 -0
  70. package/edit/networking.k8s.io.networkpolicy/index.vue +1 -1
  71. package/edit/provisioning.cattle.io.cluster/AgentConfiguration.vue +1 -1
  72. package/edit/provisioning.cattle.io.cluster/MachinePool.vue +1 -1
  73. package/edit/provisioning.cattle.io.cluster/RegistryConfigs.vue +1 -1
  74. package/edit/provisioning.cattle.io.cluster/RegistryMirrors.vue +2 -2
  75. package/edit/provisioning.cattle.io.cluster/__tests__/rke2.test.ts +143 -169
  76. package/edit/provisioning.cattle.io.cluster/rke2.vue +15 -6
  77. package/edit/resources.cattle.io.restore.vue +2 -2
  78. package/edit/service.vue +22 -3
  79. package/edit/storage.k8s.io.storageclass/index.vue +1 -1
  80. package/edit/token.vue +1 -0
  81. package/edit/workload/Job.vue +2 -2
  82. package/edit/workload/index.vue +1 -1
  83. package/edit/workload/mixins/workload.js +7 -1
  84. package/edit/workload/storage/__tests__/Storage.test.ts +84 -5
  85. package/initialize/index.js +1 -0
  86. package/layouts/default.vue +1 -1
  87. package/mixins/resource-fetch-namespaced.js +19 -27
  88. package/mixins/resource-fetch.js +0 -5
  89. package/models/__tests__/namespace.test.ts +125 -0
  90. package/models/management.cattle.io.project.js +6 -1
  91. package/models/persistentvolume.js +1 -1
  92. package/models/workload.service.js +22 -7
  93. package/package.json +17 -5
  94. package/pages/account/index.vue +3 -0
  95. package/pages/auth/login.vue +46 -49
  96. package/pages/c/_cluster/apps/charts/chart.vue +1 -1
  97. package/pages/c/_cluster/apps/charts/install.vue +42 -51
  98. package/pages/c/_cluster/explorer/index.vue +1 -1
  99. package/pages/c/_cluster/monitoring/index.vue +1 -1
  100. package/pages/c/_cluster/settings/performance.vue +53 -18
  101. package/pages/c/_cluster/uiplugins/PluginInfoPanel.vue +1 -1
  102. package/pages/c/_cluster/uiplugins/index.vue +16 -5
  103. package/pages/home.vue +1 -1
  104. package/pkg/vue.config.js +1 -0
  105. package/plugins/clean-html-directive.js +1 -1
  106. package/plugins/clean-tooltip-directive.js +33 -0
  107. package/plugins/dashboard-store/actions.js +4 -2
  108. package/plugins/dashboard-store/getters.js +6 -0
  109. package/plugins/dashboard-store/mutations.js +2 -2
  110. package/plugins/plugin.js +6 -1
  111. package/plugins/steve/actions.js +1 -1
  112. package/plugins/steve/getters.js +14 -3
  113. package/plugins/steve/resourceWatcher.js +36 -62
  114. package/plugins/steve/subscribe.js +164 -21
  115. package/plugins/steve/worker/index.js +8 -1
  116. package/plugins/steve/worker/web-worker.advanced.js +26 -8
  117. package/plugins/steve/worker/web-worker.basic.js +23 -4
  118. package/rancher-components/components/Form/Checkbox/Checkbox.vue +2 -2
  119. package/rancher-components/components/Form/Radio/RadioGroup.vue +2 -2
  120. package/rancher-components/components/LabeledTooltip/LabeledTooltip.vue +1 -1
  121. package/store/index.js +16 -61
  122. package/store/store-types.js +5 -0
  123. package/store/type-map.js +1 -1
  124. package/types/shell/index.d.ts +23 -7
  125. package/utils/__tests__/create-yaml.test.ts +63 -0
  126. package/utils/array.ts +4 -0
  127. package/utils/create-yaml.js +5 -5
  128. package/utils/namespace-filter.js +17 -5
  129. package/utils/projectAndNamespaceFiltering.utils.ts +62 -0
  130. package/utils/selector.js +6 -5
  131. package/utils/settings.ts +5 -7
  132. 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 Memebership
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: "There are too many {resource}.<br>Please filter them by selecting a Namespace above."
4591
- nsFilterToolTip: "There are too many resources, filtering is restricted to a single {mode}."
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
- healthCheckPort:
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: Label Key
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: When there are too many resources to show in a list, require the user to select a single namespace and only fetch resources from within it.
7030
- checkboxLabel: Enable Required Namespace Filtering
7031
- count:
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: 启动 TLS
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: 没有显示全部 - 仅包含 {shown} 的详细信息
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: "这些命名空间中的 Pod:"
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
- <div
235
- v-if="showKialiBanner"
236
- class="row"
237
- >
238
- <div class="col span-12">
239
- <Banner color="info">
240
- <span
241
- v-clean-html="t('istio.pilotRequired', {}, true)"
242
- />
243
- </Banner>
244
- </div>
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
 
@@ -139,7 +139,7 @@ export default {
139
139
  />
140
140
  <div class="ca-tooltip">
141
141
  <i
142
- v-tooltip="t('backupRestoreOperator.s3.endpointCA.prompt')"
142
+ v-clean-tooltip="t('backupRestoreOperator.s3.endpointCA.prompt')"
143
143
  class="icon icon-info"
144
144
  />
145
145
  </div>
@@ -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"
@@ -24,7 +24,7 @@ export default {
24
24
 
25
25
  <template>
26
26
  <div
27
- v-tooltip.bottom="tooltipText"
27
+ v-clean-tooltip.bottom="tooltipText"
28
28
  class="compound-cluster-badge"
29
29
  :class="`bg-${badgeClass}`"
30
30
  >
@@ -53,7 +53,7 @@ export default {
53
53
 
54
54
  <template>
55
55
  <code
56
- v-tooltip="tooltip"
56
+ v-clean-tooltip="tooltip"
57
57
  class="copy"
58
58
  @click.stop.prevent="clicked"
59
59
  ><slot /></code>
@@ -170,6 +170,7 @@ export default {
170
170
  <span
171
171
  v-else
172
172
  v-clean-html="bodyHtml"
173
+ data-testid="detail-top_html"
173
174
  :class="{'conceal': concealed, 'monospace': monospace && !isBinary}"
174
175
  />
175
176
 
@@ -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>