@rancher/shell 0.1.21 → 0.2.1

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 (32) hide show
  1. package/assets/styles/global/_button.scss +1 -0
  2. package/assets/translations/en-us.yaml +48 -6
  3. package/assets/translations/zh-hans.yaml +18 -0
  4. package/components/HarvesterServiceAddOnConfig.vue +10 -10
  5. package/components/ResourceList/index.vue +34 -14
  6. package/components/ResourceTable.vue +19 -0
  7. package/components/SortableTable/THead.vue +311 -70
  8. package/components/SortableTable/advanced-filtering.js +272 -0
  9. package/components/SortableTable/filtering.js +90 -29
  10. package/components/SortableTable/index.vue +474 -271
  11. package/components/form/WorkloadPorts.vue +2 -2
  12. package/config/product/settings.js +1 -0
  13. package/config/product/uiplugins.js +1 -0
  14. package/config/uiplugins.js +13 -0
  15. package/creators/app/init +2 -2
  16. package/creators/app/package.json +1 -1
  17. package/creators/pkg/package.json +1 -1
  18. package/detail/provisioning.cattle.io.cluster.vue +1 -1
  19. package/edit/provisioning.cattle.io.cluster/ACE.vue +2 -1
  20. package/edit/provisioning.cattle.io.cluster/DrainOptions.vue +0 -1
  21. package/edit/provisioning.cattle.io.cluster/rke2.vue +25 -24
  22. package/edit/service.vue +1 -1
  23. package/models/management.cattle.io.cluster.js +9 -1
  24. package/package.json +1 -1
  25. package/pages/c/_cluster/apps/charts/install.vue +119 -31
  26. package/pages/c/_cluster/uiplugins/InstallDialog.vue +1 -1
  27. package/pages/c/_cluster/uiplugins/PluginInfoPanel.vue +5 -2
  28. package/pages/c/_cluster/uiplugins/UninstallDialog.vue +1 -1
  29. package/pages/c/_cluster/uiplugins/index.vue +48 -11
  30. package/promptRemove/mixin/roleDeletionCheck.js +15 -1
  31. package/scripts/record-deps.js +3 -3
  32. package/store/type-map.js +2 -0
@@ -139,6 +139,7 @@ fieldset[disabled] .btn {
139
139
  color: var(--disabled-text) !important;
140
140
  &:not(.role-link){
141
141
  background-color: var(--disabled-bg) !important;
142
+ border-color: var(--disabled-bg) !important;
142
143
  }
143
144
  }
144
145
 
@@ -752,8 +752,6 @@ backupRestoreOperator:
752
752
  useDefault: Use the default storage location configured during installation
753
753
  targetBackup: Target Backup
754
754
 
755
-
756
-
757
755
  catalog:
758
756
  app:
759
757
  managed: Managed
@@ -767,6 +765,13 @@ catalog:
767
765
  busy: The related resources will appear when {app} is fully installed.
768
766
  values: Values YAML
769
767
  chart:
768
+ registry:
769
+ label: Container Registry
770
+ tooltip: Container images are pulled from the Cluster Container or, failing that, the System Container Registry Setting. To change this default behavior enter or update the registry here
771
+ custom:
772
+ checkBoxLabel: Container Registry for Rancher System Container Images
773
+ inputLabel: Container Registry
774
+ placeholder: Registry domain and ports, ex. registry.io:5000
770
775
  header:
771
776
  charts: Charts
772
777
  info:
@@ -1566,6 +1571,9 @@ cluster:
1566
1571
  label: Roles
1567
1572
  labels:
1568
1573
  label: Kubernetes Node Labels
1574
+ noAccessBanner: "You do not have access to see this machine pool's configuration."
1575
+ configNotFound: "We could not find this machine pool's configuration. We recommend that you create a new cluster with the desired configuration."
1576
+ noPoolsDisclaimer: You do not have any machine pools defined, click the plus to add one.
1569
1577
  autoReplace:
1570
1578
  label: Auto Replace
1571
1579
  toolTip: If greater than 0, nodes that are unreachable for this duration will be automatically deleted and replaced.
@@ -1581,10 +1589,10 @@ cluster:
1581
1589
  noResults: No results found
1582
1590
  privateRegistry:
1583
1591
  systemDefaultRegistry:
1584
- label: Registry hostname for {vendor} System Container Images
1592
+ label: Registry hostname for Rancher System Container Images
1585
1593
  mode:
1586
- public: Use default global registry for {vendor} System Container Images
1587
- private: Use specified private registry for {vendor} System Container Images
1594
+ public: Use default global registry for Rancher System Container Images
1595
+ private: Use specified private registry for Rancher System Container Images
1588
1596
  advanced: Configure advanced containerd mirroring and registry authentication options
1589
1597
  provider:
1590
1598
  aliyunecs: Aliyun ECS
@@ -1642,6 +1650,7 @@ cluster:
1642
1650
  upcloud: UpCloud
1643
1651
  vmwarevsphere: VMware vSphere
1644
1652
  zstack: ZStack
1653
+ machineinventoryselectortemplate: Elemental Cluster
1645
1654
  providerTag:
1646
1655
  rke2:
1647
1656
  harvester: '{tag}'
@@ -3677,6 +3686,7 @@ plugins:
3677
3686
  descriptions:
3678
3687
  experimental: This Extension is marked as experimental
3679
3688
  third-party: This Extension is provided by a Third-Party
3689
+ built-in: This Extension is built-in
3680
3690
  error:
3681
3691
  title: Error loading extension
3682
3692
  message: Could not load extension code
@@ -3707,6 +3717,7 @@ plugins:
3707
3717
  updates: No updates available for installed Extensions
3708
3718
  loadError: An error occurred loading the code for this extension
3709
3719
  helmError: "An error occurred installing the extension via Helm"
3720
+ manageRepos: Manage Repositories
3710
3721
  tabs:
3711
3722
  all: All
3712
3723
  available: Available
@@ -4246,8 +4257,10 @@ resourceTable:
4246
4257
  namespace: Group by Namespace
4247
4258
  project: Group by Project
4248
4259
  node: Group by Node
4260
+ cluster: Group by Cluster
4249
4261
  groupLabel:
4250
4262
  cluster: "<span>Cluster:</span> {name}"
4263
+ notInACluster: Not in a Cluster
4251
4264
  namespace: "<span>Namespace:</span> {name}"
4252
4265
  notInAMachinePool: "Not In A Deployment"
4253
4266
  machinePool: "<span>Pool:</span> {name}"
@@ -4437,6 +4450,24 @@ servicesPage:
4437
4450
  placeholder: e.g. my.database.example.com
4438
4451
  input:
4439
4452
  label: DNS Name
4453
+ harvester:
4454
+ title: Add-on Config
4455
+ ipam:
4456
+ label: IPAM
4457
+ healthCheckPort:
4458
+ label: Health Check Port
4459
+ healthCheckSuccessThreshold:
4460
+ label: Health Check Success Threshold
4461
+ 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.
4462
+ healthCheckFailureThreshold:
4463
+ label: Health Check Failure Threshold
4464
+ description: The backend server will stop forwarding traffic if the number of health check failures reaches the failure threshold.
4465
+ healthCheckPeriod:
4466
+ label: Health Check Period
4467
+ healthCheckTimeout:
4468
+ label: Health Check Timeout
4469
+ healthCheckEnabled:
4470
+ label: Health Check
4440
4471
  ips:
4441
4472
  define: Service Ports
4442
4473
  clusterIpHelpText: The Cluster IP address must be within the CIDR range configured for the API server.
@@ -4537,6 +4568,16 @@ sortableTable:
4537
4568
  =1 {{count} {count, plural, =1 {{singularLabel}} other {{pluralLabel}}}}
4538
4569
  other {{from} - {to} of {count} {pluralLabel}}}
4539
4570
  search: Filter
4571
+ in: in
4572
+ addFilter: Add Filter
4573
+ filterFor: Filter for...
4574
+ selectCol: Select a column
4575
+ resetFilters: Reset
4576
+ add: Add
4577
+ tableHeader:
4578
+ noFilter: This column cannot be filtered by
4579
+ groupBy: Group by
4580
+ show: Show
4540
4581
 
4541
4582
  storageClass:
4542
4583
  actions:
@@ -4843,6 +4884,7 @@ tableHeaders:
4843
4884
  clusterCreatorDefault: Cluster Creator Default
4844
4885
  clusterFlow: Cluster Flow
4845
4886
  clusterOutput: Cluster Output
4887
+ cluster: Cluster
4846
4888
  clusters: Clusters
4847
4889
  clustersReady: Clusters Ready
4848
4890
  clusterGroups: Cluster Groups
@@ -6459,4 +6501,4 @@ auth:
6459
6501
  label: Auth Provider
6460
6502
  vncConsole:
6461
6503
  error:
6462
- message: Web VNC console connection is disconnected
6504
+ message: Web VNC console connection is disconnected
@@ -4312,6 +4312,24 @@ servicesPage:
4312
4312
  placeholder: 例如:my.database.example.com
4313
4313
  input:
4314
4314
  label: DNS 名称
4315
+ harvester:
4316
+ title: 附加配置
4317
+ ipam:
4318
+ label: IPAM
4319
+ healthCheckPort:
4320
+ label: 健康检查端口
4321
+ healthCheckSuccessThreshold:
4322
+ label: 健康检查成功阙值
4323
+ description: 如果探针连续检测到某个地址的成功次数达到成功阈值,后端服务器就可以开始转发流量。
4324
+ healthCheckFailureThreshold:
4325
+ label: 健康检查失败阈值
4326
+ description: 如果健康检查失败的数量达到失败阈值,后端服务器将停止转发流量。
4327
+ healthCheckPeriod:
4328
+ label: 健康检查周期
4329
+ healthCheckTimeout:
4330
+ label: 健康检查超时
4331
+ healthCheckEnabled:
4332
+ label: 健康检查
4315
4333
  ips:
4316
4334
  define: 服务端口
4317
4335
  clusterIpHelpText: 集群 IP 地址必须在为 API server 配置的 CIDR 范围内。
@@ -100,7 +100,7 @@ export default {
100
100
  const errors = [];
101
101
 
102
102
  if (this.healthCheckEnabled && !this.healthcheckPort) {
103
- errors.push(this.t('validation.required', { key: this.t('harvester.service.healthCheckPort.label') }, true));
103
+ errors.push(this.t('validation.required', { key: this.t('servicesPage.harvester.healthCheckPort.label') }, true));
104
104
  }
105
105
 
106
106
  if (errors.length > 0) {
@@ -131,7 +131,7 @@ export default {
131
131
  v-model="ipam"
132
132
  :mode="mode"
133
133
  :options="ipamOptions"
134
- :label="t('harvester.service.ipam.label')"
134
+ :label="t('servicesPage.harvester.ipam.label')"
135
135
  :disabled="mode === 'edit'"
136
136
  />
137
137
  </div>
@@ -143,7 +143,7 @@ export default {
143
143
  v-model="healthCheckEnabled"
144
144
  :mode="mode"
145
145
  name="healthCheckEnabled"
146
- :label="t('harvester.service.healthCheckEnabled.label')"
146
+ :label="t('servicesPage.harvester.healthCheckEnabled.label')"
147
147
  :labels="[t('generic.disabled'),t('generic.enabled')]"
148
148
  :options="[false, true]"
149
149
  />
@@ -157,7 +157,7 @@ export default {
157
157
  :mode="mode"
158
158
  :options="portOptions"
159
159
  required
160
- :label="t('harvester.service.healthCheckPort.label')"
160
+ :label="t('servicesPage.harvester.healthCheckPort.label')"
161
161
  />
162
162
  </div>
163
163
  <div class="col span-6">
@@ -165,8 +165,8 @@ export default {
165
165
  v-model="healthCheckSuccessThreshold"
166
166
  :mode="mode"
167
167
  type="number"
168
- :label="t('harvester.service.healthCheckSuccessThreshold.label')"
169
- :tooltip="t('harvester.service.healthCheckSuccessThreshold.description')"
168
+ :label="t('servicesPage.harvester.healthCheckSuccessThreshold.label')"
169
+ :tooltip="t('servicesPage.harvester.healthCheckSuccessThreshold.description')"
170
170
  />
171
171
  </div>
172
172
  </div>
@@ -176,8 +176,8 @@ export default {
176
176
  v-model="healthCheckFailureThreshold"
177
177
  :mode="mode"
178
178
  type="number"
179
- :label="t('harvester.service.healthCheckFailureThreshold.label')"
180
- :tooltip="t('harvester.service.healthCheckFailureThreshold.description')"
179
+ :label="t('servicesPage.harvester.healthCheckFailureThreshold.label')"
180
+ :tooltip="t('servicesPage.harvester.healthCheckFailureThreshold.description')"
181
181
  />
182
182
  </div>
183
183
  <div class="col span-6">
@@ -185,7 +185,7 @@ export default {
185
185
  v-model="healthCheckPeriod"
186
186
  :mode="mode"
187
187
  type="number"
188
- :label="t('harvester.service.healthCheckPeriod.label')"
188
+ :label="t('servicesPage.harvester.healthCheckPeriod.label')"
189
189
  />
190
190
  </div>
191
191
  </div>
@@ -195,7 +195,7 @@ export default {
195
195
  v-model="healthCheckTimeout"
196
196
  :mode="mode"
197
197
  type="number"
198
- :label="t('harvester.service.healthCheckTimeout.label')"
198
+ :label="t('servicesPage.harvester.healthCheckTimeout.label')"
199
199
  />
200
200
  </div>
201
201
  </div>
@@ -14,6 +14,20 @@ export default {
14
14
  },
15
15
  mixins: [ResourceFetch],
16
16
 
17
+ props: {
18
+ hasAdvancedFiltering: {
19
+ type: Boolean,
20
+ default: false
21
+ },
22
+ advFilterHideLabelsAsCols: {
23
+ type: Boolean,
24
+ default: false
25
+ },
26
+ advFilterPreventFilteringLabels: {
27
+ type: Boolean,
28
+ default: false
29
+ },
30
+ },
17
31
  async fetch() {
18
32
  const store = this.$store;
19
33
  const resource = this.resource;
@@ -134,6 +148,9 @@ export default {
134
148
  :load-resources="loadResources"
135
149
  :load-indeterminate="loadIndeterminate"
136
150
  >
151
+ <template slot="extraActions">
152
+ <slot name="extraActions"></slot>
153
+ </template>
137
154
  </Masthead>
138
155
  <div v-if="hasListComponent">
139
156
  <component
@@ -150,21 +167,24 @@ export default {
150
167
  :loading="loading"
151
168
  :headers="headers"
152
169
  :group-by="groupBy"
170
+ :has-advanced-filtering="hasAdvancedFiltering"
171
+ :adv-filter-hide-labels-as-cols="advFilterHideLabelsAsCols"
172
+ :adv-filter-prevent-filtering-labels="advFilterPreventFilteringLabels"
153
173
  />
154
174
  </div>
155
175
  </template>
156
176
 
157
- <style lang="scss" scoped>
158
- .header {
159
- position: relative;
160
- }
161
- H2 {
162
- position: relative;
163
- margin: 0 0 20px 0;
164
- }
165
- .right-action {
166
- position: absolute;
167
- top: 10px;
168
- right: 10px;
169
- }
170
- </style>
177
+ <style lang="scss" scoped>
178
+ .header {
179
+ position: relative;
180
+ }
181
+ H2 {
182
+ position: relative;
183
+ margin: 0 0 20px 0;
184
+ }
185
+ .right-action {
186
+ position: absolute;
187
+ top: 10px;
188
+ right: 10px;
189
+ }
190
+ </style>
@@ -122,6 +122,18 @@ export default {
122
122
  type: Boolean,
123
123
  default: false
124
124
  },
125
+ hasAdvancedFiltering: {
126
+ type: Boolean,
127
+ default: false
128
+ },
129
+ advFilterHideLabelsAsCols: {
130
+ type: Boolean,
131
+ default: false
132
+ },
133
+ advFilterPreventFilteringLabels: {
134
+ type: Boolean,
135
+ default: false
136
+ },
125
137
  },
126
138
 
127
139
  data() {
@@ -357,6 +369,7 @@ export default {
357
369
  handleActionButtonClick(event) {
358
370
  this.$emit('clickedActionButton', event);
359
371
  }
372
+
360
373
  }
361
374
  };
362
375
  </script>
@@ -369,6 +382,8 @@ export default {
369
382
  :rows="filteredRows"
370
383
  :loading="loading"
371
384
  :group-by="computedGroupBy"
385
+ :group="group"
386
+ :group-options="groupOptions"
372
387
  :search="search"
373
388
  :paging="true"
374
389
  :paging-params="pagingParams"
@@ -378,9 +393,13 @@ export default {
378
393
  :overflow-x="overflowX"
379
394
  :overflow-y="overflowY"
380
395
  :get-custom-detail-link="getCustomDetailLink"
396
+ :has-advanced-filtering="hasAdvancedFiltering"
397
+ :adv-filter-hide-labels-as-cols="advFilterHideLabelsAsCols"
398
+ :adv-filter-prevent-filtering-labels="advFilterPreventFilteringLabels"
381
399
  key-field="_key"
382
400
  :sort-generation-fn="safeSortGenerationFn"
383
401
  @clickedActionButton="handleActionButtonClick"
402
+ @group-value-change="group = $event"
384
403
  v-on="$listeners"
385
404
  >
386
405
  <template v-if="showGrouping" #header-middle>