@rancher/shell 0.1.4 → 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.
- package/assets/brand/suse/favicon.png +0 -0
- package/assets/images/generic-plugin.svg +1 -7
- package/assets/styles/global/_button.scss +1 -0
- package/assets/translations/en-us.yaml +129 -53
- package/assets/translations/zh-hans.yaml +18 -0
- package/components/CommunityLinks.vue +40 -49
- package/components/ExplorerProjectsNamespaces.vue +20 -3
- package/components/HarvesterServiceAddOnConfig.vue +10 -10
- package/components/LazyImage.vue +21 -8
- package/components/PromptRemove.vue +2 -2
- package/components/ResourceList/Masthead.vue +21 -1
- package/components/ResourceList/ResourceLoadingIndicator.vue +0 -8
- package/components/ResourceList/index.vue +42 -36
- package/components/ResourceTable.vue +19 -0
- package/components/SortableTable/THead.vue +311 -70
- package/components/SortableTable/advanced-filtering.js +272 -0
- package/components/SortableTable/filtering.js +90 -29
- package/components/SortableTable/index.vue +486 -280
- package/components/Tabbed/index.vue +25 -7
- package/components/TypeDescription.vue +10 -1
- package/components/fleet/FleetClusters.vue +6 -0
- package/components/fleet/FleetRepos.vue +7 -1
- package/components/form/Command.vue +5 -0
- package/components/form/EnvVars.vue +5 -0
- package/components/form/NameNsDescription.vue +3 -1
- package/components/form/NodeScheduling.vue +6 -1
- package/components/form/PodAffinity.vue +5 -0
- package/components/form/ServiceNameSelect.vue +5 -0
- package/components/form/ValueFromResource.vue +7 -1
- package/components/form/WorkloadPorts.vue +2 -2
- package/components/nav/TopLevelMenu.vue +2 -1
- package/config/home-links.js +155 -0
- package/config/private-label.js +1 -1
- package/config/product/manager.js +0 -2
- package/config/product/settings.js +1 -0
- package/config/product/uiplugins.js +2 -1
- package/config/settings.js +3 -1
- package/config/uiplugins.js +76 -6
- package/config/version.js +17 -0
- package/core/plugin.ts +12 -0
- package/core/plugins.js +29 -5
- package/core/types.ts +6 -0
- package/creators/app/{.eslintignore → files/.eslintignore} +0 -0
- package/creators/app/{.eslintrc.js → files/.eslintrc.js} +0 -0
- package/creators/app/{.vscode → files/.vscode}/settings.json +0 -0
- package/creators/app/{babel.config.js → files/babel.config.js} +0 -0
- package/creators/app/{nuxt.config.js → files/nuxt.config.js} +0 -0
- package/creators/app/{tsconfig.json → files/tsconfig.json} +2 -1
- package/creators/app/init +16 -17
- package/creators/app/package.json +7 -1
- package/creators/pkg/{babel.config.js → files/babel.config.js} +0 -0
- package/creators/pkg/{index.ts → files/index.ts} +0 -0
- package/creators/pkg/{tsconfig.json → files/tsconfig.json} +13 -12
- package/creators/pkg/{vue.config.js → files/vue.config.js} +0 -0
- package/creators/pkg/init +1 -1
- package/creators/pkg/package.json +1 -1
- package/creators/update/init +54 -0
- package/creators/update/package.json +20 -0
- package/creators/update/upgrade +56 -0
- package/creators/update/yarn-error.log +54 -0
- package/detail/provisioning.cattle.io.cluster.vue +1 -1
- package/detail/workload/index.vue +1 -0
- package/edit/persistentvolume/index.vue +48 -13
- package/edit/persistentvolumeclaim.vue +31 -13
- package/edit/provisioning.cattle.io.cluster/ACE.vue +2 -1
- package/edit/provisioning.cattle.io.cluster/DrainOptions.vue +0 -1
- package/edit/provisioning.cattle.io.cluster/rke2.vue +52 -43
- package/edit/service.vue +1 -1
- package/edit/workload/index.vue +19 -9
- package/edit/workload/mixins/workload.js +109 -114
- package/edit/workload/storage/index.vue +11 -17
- package/edit/workload/storage/persistentVolumeClaim/index.vue +5 -0
- package/edit/workload/storage/secret.vue +6 -1
- package/list/catalog.cattle.io.app.vue +10 -9
- package/list/catalog.cattle.io.clusterrepo.vue +6 -61
- package/list/cis.cattle.io.clusterscan.vue +12 -12
- package/list/fleet.cattle.io.bundle.vue +33 -28
- package/list/fleet.cattle.io.cluster.vue +26 -22
- package/list/fleet.cattle.io.clustergroup.vue +6 -0
- package/list/fleet.cattle.io.clusterregistrationtoken.vue +28 -24
- package/list/fleet.cattle.io.gitrepo.vue +25 -14
- package/list/helm.cattle.io.projecthelmchart.vue +52 -33
- package/list/logging.banzaicloud.io.clusterflow.vue +7 -12
- package/list/logging.banzaicloud.io.flow.vue +7 -14
- package/list/management.cattle.io.cluster.vue +26 -15
- package/list/management.cattle.io.feature.vue +13 -8
- package/list/management.cattle.io.user.vue +38 -19
- package/list/monitoring.coreos.com.alertmanagerconfig.vue +8 -15
- package/list/namespace.vue +14 -1
- package/list/node.vue +13 -16
- package/list/persistentvolume.vue +16 -9
- package/list/persistentvolumeclaim.vue +5 -8
- package/list/provisioning.cattle.io.cluster.vue +34 -8
- package/list/service.vue +24 -12
- package/list/ui.cattle.io.navlink.vue +6 -0
- package/list/workload.vue +2 -2
- package/middleware/authenticated.js +6 -0
- package/mixins/resource-fetch.js +12 -18
- package/mixins/resource-manager.js +126 -0
- package/models/catalog.cattle.io.uiplugin.js +4 -0
- package/models/management.cattle.io.cluster.js +9 -1
- package/models/pod.js +15 -5
- package/models/provisioning.cattle.io.cluster.js +4 -0
- package/models/workload.service.js +10 -0
- package/nuxt.config.js +2 -1
- package/package.json +1 -1
- package/pages/auth/login.vue +10 -0
- package/pages/auth/verify.vue +9 -0
- package/pages/c/_cluster/apps/charts/install.vue +119 -31
- package/pages/c/_cluster/settings/DefaultLinksEditor.vue +108 -0
- package/pages/c/_cluster/settings/links.vue +53 -101
- package/pages/c/_cluster/settings/performance.vue +90 -7
- package/pages/c/_cluster/uiplugins/DeveloperInstallDialog.vue +3 -3
- package/pages/c/_cluster/uiplugins/InstallDialog.vue +72 -21
- package/pages/c/_cluster/uiplugins/PluginInfoPanel.vue +26 -7
- package/pages/c/_cluster/uiplugins/RemoveUIPlugins.vue +2 -7
- package/pages/c/_cluster/uiplugins/SetupUIPlugins.vue +23 -15
- package/pages/c/_cluster/uiplugins/UninstallDialog.vue +12 -5
- package/pages/c/_cluster/uiplugins/index.vue +223 -72
- package/pages/support/index.vue +31 -142
- package/plugins/dashboard-store/actions.js +19 -0
- package/plugins/dashboard-store/getters.js +20 -3
- package/plugins/dashboard-store/mutations.js +13 -7
- package/plugins/plugin.js +18 -15
- package/plugins/steve/getters.js +12 -0
- package/plugins/version.js +21 -0
- package/promptRemove/mixin/roleDeletionCheck.js +15 -1
- package/rancher-components/Form/TextArea/TextAreaAutoGrow.vue +6 -7
- package/rancher-components/components/BadgeState/BadgeState.spec.ts +12 -0
- package/rancher-components/components/BadgeState/BadgeState.vue +107 -0
- package/rancher-components/components/BadgeState/index.ts +1 -0
- package/rancher-components/components/Banner/Banner.test.ts +13 -0
- package/rancher-components/components/Banner/Banner.vue +163 -0
- package/rancher-components/components/Banner/index.ts +1 -0
- package/rancher-components/components/Card/Card.vue +150 -0
- package/rancher-components/components/Card/index.ts +1 -0
- package/rancher-components/components/Form/Checkbox/Checkbox.test.ts +77 -0
- package/rancher-components/components/Form/Checkbox/Checkbox.vue +395 -0
- package/rancher-components/components/Form/Checkbox/index.ts +1 -0
- package/rancher-components/components/Form/LabeledInput/LabeledInput.test.ts +29 -0
- package/rancher-components/components/Form/LabeledInput/LabeledInput.vue +343 -0
- package/rancher-components/components/Form/LabeledInput/index.ts +1 -0
- package/rancher-components/components/Form/Radio/RadioButton.vue +270 -0
- package/rancher-components/components/Form/Radio/RadioGroup.vue +235 -0
- package/rancher-components/components/Form/Radio/index.ts +2 -0
- package/rancher-components/components/Form/TextArea/TextAreaAutoGrow.vue +168 -0
- package/rancher-components/components/Form/TextArea/index.ts +1 -0
- package/rancher-components/components/Form/ToggleSwitch/ToggleSwitch.test.ts +107 -0
- package/rancher-components/components/Form/ToggleSwitch/ToggleSwitch.vue +137 -0
- package/rancher-components/components/Form/ToggleSwitch/index.ts +1 -0
- package/rancher-components/components/Form/index.ts +5 -0
- package/rancher-components/components/LabeledTooltip/LabeledTooltip.vue +137 -0
- package/rancher-components/components/LabeledTooltip/index.ts +1 -0
- package/scripts/publish-shell.sh +39 -6
- package/scripts/record-deps.js +37 -0
- package/scripts/test-plugins-build.sh +8 -5
- package/scripts/typegen.sh +84 -0
- package/store/auth.js +3 -0
- package/store/index.js +12 -3
- package/store/type-map.js +2 -0
- package/types/shell/index.d.ts +3046 -0
- package/utils/favicon.js +8 -2
- package/utils/gc/gc-interval.ts +40 -0
- package/utils/gc/gc-root-store.js +76 -0
- package/utils/gc/gc-route-changed.ts +44 -0
- package/utils/gc/gc-types.ts +21 -0
- package/utils/gc/gc.ts +282 -0
- package/config/footer.js +0 -18
- package/creators/pkg/nuxt.config.js +0 -6
- package/yarn-error.log +0 -195
|
Binary file
|
|
@@ -1,7 +1 @@
|
|
|
1
|
-
<svg
|
|
2
|
-
<style type="text/css">
|
|
3
|
-
.st0{fill:#777;}
|
|
4
|
-
</style>
|
|
5
|
-
<path d="M29.81,16H29V8.83a2,2,0,0,0-2-2H21A5.14,5.14,0,0,0,16.51,2,5,5,0,0,0,11,6.83H4a2,2,0,0,0-2,2V17H4.81A3.13,3.13,0,0,1,8,19.69,3,3,0,0,1,7.22,22,3,3,0,0,1,5,23H2v8.83a2,2,0,0,0,2,2H27a2,2,0,0,0,2-2V26h1a5,5,0,0,0,5-5.51A5.15,5.15,0,0,0,29.81,16Zm2.41,7A3,3,0,0,1,30,24H27v7.83H4V25H5a5,5,0,0,0,5-5.51A5.15,5.15,0,0,0,4.81,15H4V8.83h9V7a3,3,0,0,1,1-2.22A3,3,0,0,1,16.31,4,3.13,3.13,0,0,1,19,7.19V8.83h8V18h2.81A3.13,3.13,0,0,1,33,20.69,3,3,0,0,1,32.22,23Z" class="clr-i-outline clr-i-outline-path-1 st0"></path>
|
|
6
|
-
<rect class="st0" x="0" y="0" width="36" height="36" fill-opacity="0"/>
|
|
7
|
-
</svg>
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><g fill="#777" transform="translate(0, 0) scale(1, 1) "><path d="M20.5 11H19V7c0-1.1-.9-2-2-2h-4V3.5C13 2.12 11.88 1 10.5 1S8 2.12 8 3.5V5H4c-1.1 0-1.99.9-1.99 2v3.8H3.5c1.49 0 2.7 1.21 2.7 2.7s-1.21 2.7-2.7 2.7H2V20c0 1.1.9 2 2 2h3.8v-1.5c0-1.49 1.21-2.7 2.7-2.7 1.49 0 2.7 1.21 2.7 2.7V22H17c1.1 0 2-.9 2-2v-4h1.5c1.38 0 2.5-1.12 2.5-2.5S21.88 11 20.5 11z"/></g></svg>
|
|
@@ -48,6 +48,7 @@ generic:
|
|
|
48
48
|
plusMore: "+ {n} more"
|
|
49
49
|
readFromFile: Read from File
|
|
50
50
|
readFromFolder: Read from Folder
|
|
51
|
+
reload: Reload
|
|
51
52
|
register: Register
|
|
52
53
|
remove: Remove
|
|
53
54
|
resource: |-
|
|
@@ -189,7 +190,7 @@ product:
|
|
|
189
190
|
neuvector: NeuVector
|
|
190
191
|
harvesterManager: Virtualization Management
|
|
191
192
|
rancher: Rancher
|
|
192
|
-
uiplugins:
|
|
193
|
+
uiplugins: Extensions
|
|
193
194
|
|
|
194
195
|
suffix:
|
|
195
196
|
percent: "%"
|
|
@@ -751,8 +752,6 @@ backupRestoreOperator:
|
|
|
751
752
|
useDefault: Use the default storage location configured during installation
|
|
752
753
|
targetBackup: Target Backup
|
|
753
754
|
|
|
754
|
-
|
|
755
|
-
|
|
756
755
|
catalog:
|
|
757
756
|
app:
|
|
758
757
|
managed: Managed
|
|
@@ -766,6 +765,13 @@ catalog:
|
|
|
766
765
|
busy: The related resources will appear when {app} is fully installed.
|
|
767
766
|
values: Values YAML
|
|
768
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
|
|
769
775
|
header:
|
|
770
776
|
charts: Charts
|
|
771
777
|
info:
|
|
@@ -1565,6 +1571,9 @@ cluster:
|
|
|
1565
1571
|
label: Roles
|
|
1566
1572
|
labels:
|
|
1567
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.
|
|
1568
1577
|
autoReplace:
|
|
1569
1578
|
label: Auto Replace
|
|
1570
1579
|
toolTip: If greater than 0, nodes that are unreachable for this duration will be automatically deleted and replaced.
|
|
@@ -1580,10 +1589,10 @@ cluster:
|
|
|
1580
1589
|
noResults: No results found
|
|
1581
1590
|
privateRegistry:
|
|
1582
1591
|
systemDefaultRegistry:
|
|
1583
|
-
label: Registry hostname for
|
|
1592
|
+
label: Registry hostname for Rancher System Container Images
|
|
1584
1593
|
mode:
|
|
1585
|
-
public: Use default global registry for
|
|
1586
|
-
private: Use specified private registry for
|
|
1594
|
+
public: Use default global registry for Rancher System Container Images
|
|
1595
|
+
private: Use specified private registry for Rancher System Container Images
|
|
1587
1596
|
advanced: Configure advanced containerd mirroring and registry authentication options
|
|
1588
1597
|
provider:
|
|
1589
1598
|
aliyunecs: Aliyun ECS
|
|
@@ -1641,6 +1650,7 @@ cluster:
|
|
|
1641
1650
|
upcloud: UpCloud
|
|
1642
1651
|
vmwarevsphere: VMware vSphere
|
|
1643
1652
|
zstack: ZStack
|
|
1653
|
+
machineinventoryselectortemplate: Elemental Cluster
|
|
1644
1654
|
providerTag:
|
|
1645
1655
|
rke2:
|
|
1646
1656
|
harvester: '{tag}'
|
|
@@ -3665,7 +3675,7 @@ persistentVolumeClaim:
|
|
|
3665
3675
|
status:
|
|
3666
3676
|
label: Status
|
|
3667
3677
|
|
|
3668
|
-
#
|
|
3678
|
+
# Rancher Extensions
|
|
3669
3679
|
plugins:
|
|
3670
3680
|
labels:
|
|
3671
3681
|
builtin: Built-in
|
|
@@ -3674,78 +3684,87 @@ plugins:
|
|
|
3674
3684
|
installing: Installing ...
|
|
3675
3685
|
uninstalling: Uninstalling ...
|
|
3676
3686
|
descriptions:
|
|
3677
|
-
experimental: This
|
|
3678
|
-
third-party: This
|
|
3687
|
+
experimental: This Extension is marked as experimental
|
|
3688
|
+
third-party: This Extension is provided by a Third-Party
|
|
3689
|
+
built-in: This Extension is built-in
|
|
3679
3690
|
error:
|
|
3680
|
-
title: Error loading
|
|
3681
|
-
message: Could not load
|
|
3691
|
+
title: Error loading extension
|
|
3692
|
+
message: Could not load extension code
|
|
3693
|
+
generic: Extension error
|
|
3694
|
+
api: This Extension is not compatible with the Extensions API
|
|
3695
|
+
host: This Extension is not compatible with this application
|
|
3696
|
+
version: This Extension is not compatible with this version of Rancher
|
|
3697
|
+
load: An error occurred loading the code for this Extension
|
|
3682
3698
|
success:
|
|
3683
|
-
title: Loaded
|
|
3684
|
-
message:
|
|
3699
|
+
title: Loaded extension {name}
|
|
3700
|
+
message: Extension was loaded successfully
|
|
3685
3701
|
developer:
|
|
3686
3702
|
label: Developer Load
|
|
3687
|
-
title: Developer Load
|
|
3688
|
-
prompt: Load
|
|
3703
|
+
title: Developer Load Extension
|
|
3704
|
+
prompt: Load an extension from a URL
|
|
3689
3705
|
fields:
|
|
3690
|
-
url:
|
|
3691
|
-
name:
|
|
3692
|
-
persist: Persist
|
|
3706
|
+
url: Extension URL
|
|
3707
|
+
name: Extension module name
|
|
3708
|
+
persist: Persist extension by creating custom resource
|
|
3693
3709
|
info:
|
|
3694
3710
|
detail: Detail
|
|
3695
3711
|
versions: Versions
|
|
3696
3712
|
versionError: Could not load version information
|
|
3697
3713
|
empty:
|
|
3698
|
-
all:
|
|
3699
|
-
available: No
|
|
3700
|
-
installed: No
|
|
3701
|
-
updates: No
|
|
3702
|
-
loadError: An error occurred loading the code for this
|
|
3703
|
-
helmError: "An error occurred installing the
|
|
3714
|
+
all: Extensions are neither installed or available
|
|
3715
|
+
available: No Extensions available
|
|
3716
|
+
installed: No Extensions installed
|
|
3717
|
+
updates: No updates available for installed Extensions
|
|
3718
|
+
loadError: An error occurred loading the code for this extension
|
|
3719
|
+
helmError: "An error occurred installing the extension via Helm"
|
|
3720
|
+
manageRepos: Manage Repositories
|
|
3704
3721
|
tabs:
|
|
3705
3722
|
all: All
|
|
3706
3723
|
available: Available
|
|
3707
3724
|
installed: Installed
|
|
3708
3725
|
updates: Updates
|
|
3709
|
-
title:
|
|
3726
|
+
title: Extensions
|
|
3727
|
+
version: "Version: {version}"
|
|
3710
3728
|
install:
|
|
3711
3729
|
label: Install
|
|
3712
|
-
title: Install
|
|
3713
|
-
prompt: "Are you sure that you want to install this
|
|
3730
|
+
title: Install Extension {name}
|
|
3731
|
+
prompt: "Are you sure that you want to install this Extension?"
|
|
3714
3732
|
version: Version
|
|
3715
|
-
warnNotCertified: Please ensure that you are aware of the risks of installing
|
|
3733
|
+
warnNotCertified: Please ensure that you are aware of the risks of installing Extensions from untrusted authors
|
|
3716
3734
|
update:
|
|
3717
3735
|
label: Update
|
|
3718
|
-
title: Update
|
|
3719
|
-
prompt: "Are you sure that you want to update this
|
|
3736
|
+
title: Update Extension {name}
|
|
3737
|
+
prompt: "Are you sure that you want to update this Extension?"
|
|
3720
3738
|
rollback:
|
|
3721
3739
|
label: Rollback
|
|
3722
|
-
title: Rollback
|
|
3723
|
-
prompt: "Are you sure that you want to rollback this
|
|
3740
|
+
title: Rollback Extension {name}
|
|
3741
|
+
prompt: "Are you sure that you want to rollback this Extension?"
|
|
3724
3742
|
uninstall:
|
|
3725
3743
|
label: Uninstall
|
|
3726
|
-
title: "Uninstall
|
|
3727
|
-
prompt: "Are you sure that you want to uninstall this
|
|
3728
|
-
upgradeAvailable: A newer version of this
|
|
3744
|
+
title: "Uninstall Extension: {name}"
|
|
3745
|
+
prompt: "Are you sure that you want to uninstall this Extension?"
|
|
3746
|
+
upgradeAvailable: A newer version of this Extension is available
|
|
3747
|
+
reload: Extensions changed - reload required
|
|
3729
3748
|
safeMode:
|
|
3730
|
-
title:
|
|
3731
|
-
message:
|
|
3749
|
+
title: Extensions Safe Mode
|
|
3750
|
+
message: Extensions were not loaded
|
|
3732
3751
|
setup:
|
|
3733
|
-
title:
|
|
3752
|
+
title: Extension support is not enabled
|
|
3734
3753
|
prompt:
|
|
3735
3754
|
cant: Automatic installation is not available - required Helm Charts could not be found
|
|
3736
|
-
can: You need to install the
|
|
3755
|
+
can: You need to install the Extension Operator
|
|
3737
3756
|
install:
|
|
3738
|
-
title: Enable
|
|
3739
|
-
prompt: This will install the Helm charts to enable
|
|
3740
|
-
airgap: Un-check if your Rancher installation is air-gapped
|
|
3741
|
-
addRancherRepo: Add the Rancher
|
|
3757
|
+
title: Enable Extension Support?
|
|
3758
|
+
prompt: This will install the Helm charts to enable Extension support
|
|
3759
|
+
airgap: The Rancher Extensions Repository provides extensions published by Rancher. Un-check if your Rancher installation is air-gapped
|
|
3760
|
+
addRancherRepo: Add the Rancher Extension Repository
|
|
3742
3761
|
remove:
|
|
3743
|
-
label: Disable
|
|
3744
|
-
title: Disable
|
|
3745
|
-
prompt: This will un-install the Helm charts that enable
|
|
3762
|
+
label: Disable Extension Support
|
|
3763
|
+
title: Disable Extension Support?
|
|
3764
|
+
prompt: This will un-install the Helm charts that enable Extension support
|
|
3746
3765
|
registry:
|
|
3747
|
-
title: Remove the Rancher
|
|
3748
|
-
prompt:
|
|
3766
|
+
title: Remove the Rancher Extensions Repository
|
|
3767
|
+
prompt: The Rancher Extensions Repository provides extensions published by Rancher
|
|
3749
3768
|
|
|
3750
3769
|
prefs:
|
|
3751
3770
|
title: Preferences
|
|
@@ -3785,7 +3804,7 @@ prefs:
|
|
|
3785
3804
|
viewInApi: Enable "View in API"
|
|
3786
3805
|
allNamespaces: Show system Namespaces managed by Rancher (not intended for editing or deletion)
|
|
3787
3806
|
themeShortcut: Enable Dark/Light Theme keyboard shortcut toggle (shift+T)
|
|
3788
|
-
pluginDeveloper: Enable
|
|
3807
|
+
pluginDeveloper: Enable Extension developer features
|
|
3789
3808
|
hideDesc:
|
|
3790
3809
|
label: Hide All Type Descriptions
|
|
3791
3810
|
helm:
|
|
@@ -4238,8 +4257,10 @@ resourceTable:
|
|
|
4238
4257
|
namespace: Group by Namespace
|
|
4239
4258
|
project: Group by Project
|
|
4240
4259
|
node: Group by Node
|
|
4260
|
+
cluster: Group by Cluster
|
|
4241
4261
|
groupLabel:
|
|
4242
4262
|
cluster: "<span>Cluster:</span> {name}"
|
|
4263
|
+
notInACluster: Not in a Cluster
|
|
4243
4264
|
namespace: "<span>Namespace:</span> {name}"
|
|
4244
4265
|
notInAMachinePool: "Not In A Deployment"
|
|
4245
4266
|
machinePool: "<span>Pool:</span> {name}"
|
|
@@ -4429,6 +4450,24 @@ servicesPage:
|
|
|
4429
4450
|
placeholder: e.g. my.database.example.com
|
|
4430
4451
|
input:
|
|
4431
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
|
|
4432
4471
|
ips:
|
|
4433
4472
|
define: Service Ports
|
|
4434
4473
|
clusterIpHelpText: The Cluster IP address must be within the CIDR range configured for the API server.
|
|
@@ -4529,6 +4568,16 @@ sortableTable:
|
|
|
4529
4568
|
=1 {{count} {count, plural, =1 {{singularLabel}} other {{pluralLabel}}}}
|
|
4530
4569
|
other {{from} - {to} of {count} {pluralLabel}}}
|
|
4531
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
|
|
4532
4581
|
|
|
4533
4582
|
storageClass:
|
|
4534
4583
|
actions:
|
|
@@ -4835,6 +4884,7 @@ tableHeaders:
|
|
|
4835
4884
|
clusterCreatorDefault: Cluster Creator Default
|
|
4836
4885
|
clusterFlow: Cluster Flow
|
|
4837
4886
|
clusterOutput: Cluster Output
|
|
4887
|
+
cluster: Cluster
|
|
4838
4888
|
clusters: Clusters
|
|
4839
4889
|
clustersReady: Clusters Ready
|
|
4840
4890
|
clusterGroups: Cluster Groups
|
|
@@ -6174,7 +6224,7 @@ performance:
|
|
|
6174
6224
|
label: Incremental Loading
|
|
6175
6225
|
setting: You can configure the threshold above which incremental loading will be used.
|
|
6176
6226
|
description: |-
|
|
6177
|
-
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
|
|
6227
|
+
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
|
|
6178
6228
|
checkboxLabel: Enable incremental loading
|
|
6179
6229
|
inputLabel: Resource Threshold
|
|
6180
6230
|
manualRefresh:
|
|
@@ -6183,7 +6233,7 @@ performance:
|
|
|
6183
6233
|
setting: You can configure a threshold above which manual refresh will be enabled.
|
|
6184
6234
|
buttonTooltip: Refresh list
|
|
6185
6235
|
description: |-
|
|
6186
|
-
When enabled, list data will not auto-update but instead the user must manually trigger a list-view refresh. This setting only applies to
|
|
6236
|
+
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
|
|
6187
6237
|
checkboxLabel: Enable manual refresh of data for lists
|
|
6188
6238
|
inputLabel: Resource Threshold
|
|
6189
6239
|
websocketNotification:
|
|
@@ -6191,6 +6241,29 @@ performance:
|
|
|
6191
6241
|
description: |-
|
|
6192
6242
|
When checked, websocket notifications will not appear when the UI detects a disconnection.
|
|
6193
6243
|
checkboxLabel: Disable websocket notifications
|
|
6244
|
+
gc:
|
|
6245
|
+
label: Resource Garbage Collection
|
|
6246
|
+
description: The UI will cache kuberentes resources locally to avoid having to re-fetch them. In some cases this can lead to a large amount of data stored in the browser. Enable this setting to periodically remove them.
|
|
6247
|
+
banner: This setting is experimental and may be removed or updated in future versions.
|
|
6248
|
+
checkboxLabel: Enable Garbage Collection
|
|
6249
|
+
whenRun:
|
|
6250
|
+
description: Update when garbage collection runs
|
|
6251
|
+
intervalCheckBox:
|
|
6252
|
+
label: Run garbage collection periodically
|
|
6253
|
+
interval:
|
|
6254
|
+
inputLabel: Run every
|
|
6255
|
+
route:
|
|
6256
|
+
description: Run garbage collection on page change
|
|
6257
|
+
inputLabel: Page Change
|
|
6258
|
+
howRun:
|
|
6259
|
+
description: Update how garbage collection runs
|
|
6260
|
+
age:
|
|
6261
|
+
description: "Resource types musn't have been accessed within this period to be considered for garbage collection."
|
|
6262
|
+
inputLabel: Resource Age
|
|
6263
|
+
count:
|
|
6264
|
+
description: Resource types must exceed this amount to be considered for garbage collection.
|
|
6265
|
+
inputLabel: Resource Count
|
|
6266
|
+
|
|
6194
6267
|
|
|
6195
6268
|
banner:
|
|
6196
6269
|
label: Fixed Banners
|
|
@@ -6310,13 +6383,16 @@ resourceQuota:
|
|
|
6310
6383
|
customLinks:
|
|
6311
6384
|
displayTitle: Links
|
|
6312
6385
|
label: Home Links
|
|
6313
|
-
description: '
|
|
6386
|
+
description: 'Configure the links to display on the home page. You can define your own custom links as well as show or hide default links.'
|
|
6314
6387
|
restoreDefaults: 'Restore Defaults'
|
|
6315
6388
|
addLink: Add Link
|
|
6316
6389
|
restoreSuccess: Default URLs have been restored.
|
|
6317
6390
|
settings:
|
|
6391
|
+
default: Default Links
|
|
6392
|
+
custom: Custom Links
|
|
6318
6393
|
keyLabel: Display Text
|
|
6319
6394
|
valueLabel: URL
|
|
6395
|
+
showLabel: Show
|
|
6320
6396
|
defaults:
|
|
6321
6397
|
docs: Docs
|
|
6322
6398
|
forums: Forums
|
|
@@ -6425,4 +6501,4 @@ auth:
|
|
|
6425
6501
|
label: Auth Provider
|
|
6426
6502
|
vncConsole:
|
|
6427
6503
|
error:
|
|
6428
|
-
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 范围内。
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
<script>
|
|
2
|
-
import { options } from '@shell/config/footer';
|
|
3
2
|
import SimpleBox from '@shell/components/SimpleBox';
|
|
4
3
|
import Closeable from '@shell/mixins/closeable';
|
|
5
4
|
import { MANAGEMENT } from '@shell/config/types';
|
|
6
5
|
import { SETTING } from '@shell/config/settings';
|
|
7
6
|
import { mapGetters } from 'vuex';
|
|
7
|
+
import { isRancherPrime } from '@shell/config/version';
|
|
8
|
+
import { fetchLinks } from '@shell/config/home-links';
|
|
8
9
|
|
|
9
10
|
export default {
|
|
10
11
|
name: 'CommunityLinks',
|
|
@@ -18,36 +19,23 @@ export default {
|
|
|
18
19
|
return {};
|
|
19
20
|
},
|
|
20
21
|
},
|
|
22
|
+
isSupportPage: {
|
|
23
|
+
type: Boolean,
|
|
24
|
+
default: false,
|
|
25
|
+
},
|
|
21
26
|
},
|
|
22
27
|
|
|
23
28
|
mixins: [Closeable],
|
|
24
29
|
|
|
25
30
|
async fetch() {
|
|
26
|
-
|
|
27
|
-
// This should already be in the uiCustomLinks
|
|
28
|
-
try {
|
|
29
|
-
this.uiCustomLinks = await this.$store.dispatch('management/find', { type: MANAGEMENT.SETTING, id: SETTING.UI_CUSTOM_LINKS });
|
|
30
|
-
} catch (err) {
|
|
31
|
-
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
// Fallback:
|
|
35
|
-
// NB: this.uiIssueSetting is deprecated now.
|
|
36
|
-
if (!this.uiCustomLinks) {
|
|
37
|
-
try {
|
|
38
|
-
this.uiIssuesSetting = await this.$store.dispatch('management/find', { type: MANAGEMENT.SETTING, id: SETTING.ISSUES });
|
|
39
|
-
} catch (err) {
|
|
40
|
-
|
|
41
|
-
}
|
|
42
|
-
}
|
|
31
|
+
this.links = await fetchLinks(this.$store, this.hasSupport, this.isSupportPage, str => this.t(str));
|
|
43
32
|
},
|
|
44
33
|
|
|
45
34
|
data() {
|
|
46
|
-
return {
|
|
35
|
+
return { links: {} };
|
|
47
36
|
},
|
|
48
37
|
|
|
49
38
|
computed: {
|
|
50
|
-
|
|
51
39
|
...mapGetters('i18n', [
|
|
52
40
|
'selectedLocaleLabel'
|
|
53
41
|
]),
|
|
@@ -56,38 +44,41 @@ export default {
|
|
|
56
44
|
return !!Object.keys(this.options).length || !!Object.keys(this.$slots).length;
|
|
57
45
|
},
|
|
58
46
|
|
|
47
|
+
hasSupport() {
|
|
48
|
+
return isRancherPrime() || this.$store.getters['management/byId'](MANAGEMENT.SETTING, SETTING.SUPPORTED )?.value === 'true';
|
|
49
|
+
},
|
|
50
|
+
|
|
59
51
|
options() {
|
|
60
|
-
//
|
|
61
|
-
if (Object.keys(this.linkOptions).length
|
|
62
|
-
|
|
52
|
+
// Use linkOptions if provided - used by Harvester
|
|
53
|
+
if (this.linkOptions && Object.keys(this.linkOptions).length) {
|
|
54
|
+
const options = [];
|
|
55
|
+
|
|
56
|
+
Object.keys(this.linkOptions).forEach((key) => {
|
|
57
|
+
options.push({
|
|
58
|
+
key,
|
|
59
|
+
label: this.t(key),
|
|
60
|
+
value: this.linkOptions[key]
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
return options;
|
|
63
65
|
}
|
|
64
66
|
|
|
65
|
-
//
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
if (Array.isArray(customLinks)) {
|
|
71
|
-
return customLinks.reduce((prev, curr) => {
|
|
72
|
-
prev[curr.key] = curr.value;
|
|
73
|
-
|
|
74
|
-
return prev;
|
|
75
|
-
}, {});
|
|
76
|
-
}
|
|
77
|
-
} catch (e) {
|
|
78
|
-
console.error('Could not parse custom links setting', e); // eslint-disable-line no-console
|
|
79
|
-
}
|
|
67
|
+
// Combine the links
|
|
68
|
+
const all = [];
|
|
69
|
+
|
|
70
|
+
if (this.links.custom) {
|
|
71
|
+
all.push(...this.links.custom);
|
|
80
72
|
}
|
|
81
73
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
74
|
+
if (this.links.defaults) {
|
|
75
|
+
all.push(...this.links.defaults.filter(link => link.enabled));
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
return all;
|
|
79
|
+
}
|
|
85
80
|
},
|
|
86
81
|
methods: {
|
|
87
|
-
getLabel(label) {
|
|
88
|
-
return this.$store.getters['i18n/withFallback'](`customLinks.defaults.${ label }`, null, label);
|
|
89
|
-
},
|
|
90
|
-
|
|
91
82
|
show() {
|
|
92
83
|
this.$modal.show('wechat-modal');
|
|
93
84
|
},
|
|
@@ -106,11 +97,11 @@ export default {
|
|
|
106
97
|
{{ t('customLinks.displayTitle') }}
|
|
107
98
|
</h2>
|
|
108
99
|
</template>
|
|
109
|
-
<div v-for="
|
|
110
|
-
<n-link v-if="value.startsWith('/') " :to="value">
|
|
111
|
-
{{
|
|
100
|
+
<div v-for="link in options" :key="link.label" class="support-link">
|
|
101
|
+
<n-link v-if="link.value.startsWith('/') " :to="link.value">
|
|
102
|
+
{{ link.label }}
|
|
112
103
|
</n-link>
|
|
113
|
-
<a v-else :href="value" rel="noopener noreferrer nofollow" target="_blank"> {{
|
|
104
|
+
<a v-else :href="link.value" rel="noopener noreferrer nofollow" target="_blank"> {{ link.label }} </a>
|
|
114
105
|
</div>
|
|
115
106
|
<slot />
|
|
116
107
|
<div v-if="selectedLocaleLabel === t('locale.zh-hans')" class="support-link">
|
|
@@ -10,12 +10,14 @@ import { mapPref, GROUP_RESOURCES, ALL_NAMESPACES } from '@shell/store/prefs';
|
|
|
10
10
|
import MoveModal from '@shell/components/MoveModal';
|
|
11
11
|
import { defaultTableSortGenerationFn } from '@shell/components/ResourceTable.vue';
|
|
12
12
|
import { NAMESPACE_FILTER_ALL_ORPHANS } from '@shell/utils/namespace-filter';
|
|
13
|
+
import ResourceFetch from '@shell/mixins/resource-fetch';
|
|
13
14
|
|
|
14
15
|
export default {
|
|
15
16
|
name: 'ListProjectNamespace',
|
|
16
17
|
components: {
|
|
17
18
|
Masthead, MoveModal, ResourceTable
|
|
18
19
|
},
|
|
20
|
+
mixins: [ResourceFetch],
|
|
19
21
|
|
|
20
22
|
props: {
|
|
21
23
|
createProjectLocationOverride: {
|
|
@@ -42,14 +44,15 @@ export default {
|
|
|
42
44
|
return;
|
|
43
45
|
}
|
|
44
46
|
|
|
45
|
-
|
|
47
|
+
await this.$fetchType(NAMESPACE);
|
|
46
48
|
this.projects = await this.$store.dispatch('management/findAll', { type: MANAGEMENT.PROJECT, opt: { force: true } });
|
|
47
49
|
},
|
|
48
50
|
|
|
49
51
|
data() {
|
|
50
52
|
return {
|
|
53
|
+
loadResources: [NAMESPACE],
|
|
54
|
+
loadIndeterminate: true,
|
|
51
55
|
schema: null,
|
|
52
|
-
namespaces: [],
|
|
53
56
|
projects: [],
|
|
54
57
|
projectSchema: null,
|
|
55
58
|
MANAGEMENT,
|
|
@@ -66,6 +69,17 @@ export default {
|
|
|
66
69
|
|
|
67
70
|
computed: {
|
|
68
71
|
...mapGetters(['currentCluster', 'currentProduct']),
|
|
72
|
+
namespaces() {
|
|
73
|
+
const inStore = this.$store.getters['currentStore'](NAMESPACE);
|
|
74
|
+
|
|
75
|
+
return this.$store.getters[`${ inStore }/all`](NAMESPACE);
|
|
76
|
+
},
|
|
77
|
+
loading() {
|
|
78
|
+
return !this.currentCluster || this.namespaces.length ? false : this.$fetchState.pending;
|
|
79
|
+
},
|
|
80
|
+
showIncrementalLoadingIndicator() {
|
|
81
|
+
return this.perfConfig?.incrementalLoading?.enabled;
|
|
82
|
+
},
|
|
69
83
|
isNamespaceCreatable() {
|
|
70
84
|
return (this.schema?.collectionMethods || []).includes('POST');
|
|
71
85
|
},
|
|
@@ -309,6 +323,9 @@ export default {
|
|
|
309
323
|
:favorite-resource="VIRTUAL_TYPES.PROJECT_NAMESPACES"
|
|
310
324
|
:create-location="createProjectLocation"
|
|
311
325
|
:create-button-label="t('projectNamespaces.createProject')"
|
|
326
|
+
:show-incremental-loading-indicator="showIncrementalLoadingIndicator"
|
|
327
|
+
:load-resources="loadResources"
|
|
328
|
+
:load-indeterminate="loadIndeterminate"
|
|
312
329
|
/>
|
|
313
330
|
<ResourceTable
|
|
314
331
|
ref="table"
|
|
@@ -319,7 +336,7 @@ export default {
|
|
|
319
336
|
:rows="filteredRows"
|
|
320
337
|
:groupable="true"
|
|
321
338
|
:sort-generation-fn="sortGenerationFn"
|
|
322
|
-
:loading="
|
|
339
|
+
:loading="loading"
|
|
323
340
|
group-tooltip="resourceTable.groupBy.project"
|
|
324
341
|
key-field="_key"
|
|
325
342
|
v-on="$listeners"
|