@rancher/shell 0.3.29 → 0.5.0
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/images/providers/ovhcloudmks.svg +122 -0
- package/assets/images/providers/ovhcloudpubliccloud.svg +122 -0
- package/assets/styles/global/_layout.scss +99 -0
- package/assets/translations/en-us.yaml +31 -6
- package/assets/translations/zh-hans.yaml +2 -2
- package/babel.config.js +7 -1
- package/chart/monitoring/alerting/index.vue +7 -21
- package/chart/monitoring/grafana/index.vue +55 -0
- package/chart/monitoring/index.vue +51 -17
- package/chart/monitoring/prometheus/index.vue +37 -43
- package/chart/rancher-backup/index.vue +2 -1
- package/cloud-credential/azure.vue +4 -17
- package/components/AsyncButton.vue +17 -5
- package/components/Certificates.vue +164 -0
- package/components/CodeMirror.vue +19 -21
- package/components/CopyCode.vue +6 -2
- package/components/CopyToClipboard.vue +2 -1
- package/components/CopyToClipboardText.vue +14 -9
- package/components/CruResource.vue +1 -0
- package/components/DraggableZone.vue +2 -2
- package/components/EtcdInfoBanner.vue +5 -5
- package/components/ExplorerProjectsNamespaces.vue +25 -1
- package/components/IconOrSvg.vue +1 -1
- package/components/LandingPagePreference.vue +1 -4
- package/components/Markdown.vue +16 -12
- package/components/PodSecurityAdmission.vue +2 -2
- package/components/Questions/index.vue +1 -1
- package/components/ResourceDetail/Masthead.vue +25 -9
- package/components/ResourceTable.vue +14 -2
- package/components/ResourceYaml.vue +5 -0
- package/components/SideNav.vue +1 -1
- package/components/SingleClusterInfo.vue +1 -4
- package/components/StatusTable.vue +5 -1
- package/components/Tabbed/index.vue +12 -0
- package/components/__tests__/CopyCode.test.ts +5 -4
- package/components/fleet/FleetBundles.vue +5 -11
- package/components/fleet/FleetRepos.vue +62 -27
- package/components/fleet/FleetResources.vue +6 -1
- package/components/fleet/FleetSummary.vue +3 -3
- package/components/fleet/__tests__/FleetSummary.test.ts +316 -0
- package/components/form/ArrayListSelect.vue +10 -0
- package/components/form/Error.vue +3 -3
- package/components/form/Footer.vue +2 -2
- package/components/form/GitPicker.vue +83 -38
- package/components/form/KeyValue.vue +4 -0
- package/components/form/LabeledSelect.vue +4 -0
- package/components/form/Password.vue +3 -1
- package/components/formatter/Checked.vue +11 -3
- package/components/formatter/FleetClusterSummaryGraph.vue +27 -0
- package/components/formatter/FleetSummaryGraph.vue +23 -11
- package/components/formatter/LiveDuration.vue +1 -1
- package/components/formatter/PercentageBar.vue +1 -1
- package/components/formatter/__tests__/Checked.test.ts +19 -0
- package/components/nav/Group.vue +2 -2
- package/components/nav/Header.vue +1 -2
- package/components/nav/TopLevelMenu.vue +36 -6
- package/components/nav/Type.vue +1 -3
- package/components/nav/WindowManager/ContainerLogs.vue +101 -3
- package/components/nav/WindowManager/ContainerShell.vue +6 -1
- package/components/nav/WindowManager/__tests__/ContainerLogs.test.ts +186 -0
- package/components/nav/WindowManager/index.vue +11 -10
- package/components/nav/__tests__/TopLevelMenu.test.ts +33 -0
- package/components/nav/__tests__/Type.test.ts +1 -1
- package/components/nuxt/nuxt-child.js +14 -78
- package/components/nuxt/nuxt.js +1 -1
- package/{layouts → components/templates}/blank.vue +1 -1
- package/{layouts → components/templates}/default.vue +8 -98
- package/{layouts → components/templates}/error.vue +10 -19
- package/{layouts → components/templates}/home.vue +4 -1
- package/{layouts → components/templates}/plain.vue +4 -1
- package/{layouts → components/templates}/standalone.vue +1 -1
- package/{layouts → components/templates}/unauthenticated.vue +1 -1
- package/composables/useCompactInput.test.ts +36 -0
- package/composables/useCompactInput.ts +20 -0
- package/composables/useLabeledFormElement.test.ts +135 -0
- package/composables/useLabeledFormElement.ts +138 -0
- package/config/harvester-manager-types.js +2 -0
- package/config/home-links.js +1 -1
- package/config/private-label.js +22 -0
- package/config/product/explorer.js +3 -0
- package/config/product/fleet.js +6 -1
- package/config/product/manager.js +8 -2
- package/config/query-params.js +1 -0
- package/config/router.js +385 -364
- package/config/settings.ts +1 -0
- package/config/store.js +1 -1
- package/config/system-namespaces.js +3 -0
- package/config/table-headers.js +47 -0
- package/core/plugin-helpers.js +3 -5
- package/core/plugin-routes.ts +56 -114
- package/core/plugin.ts +16 -10
- package/core/plugins-loader.js +7 -9
- package/core/plugins.js +0 -3
- package/creators/app/files/.gitlab-ci.yml +14 -0
- package/creators/app/init +19 -0
- package/detail/fleet.cattle.io.cluster.vue +11 -1
- package/detail/provisioning.cattle.io.cluster.vue +4 -3
- package/dialog/ScaleMachineDownDialog.vue +34 -17
- package/edit/__tests__/service.test.ts +89 -0
- package/edit/auth/googleoauth.vue +1 -5
- package/edit/cloudcredential.vue +2 -0
- package/edit/configmap.vue +2 -1
- package/edit/management.cattle.io.podsecurityadmissionconfigurationtemplate.vue +2 -2
- package/edit/monitoring.coreos.com.prometheusrule/AlertingRule.vue +12 -3
- package/edit/monitoring.coreos.com.prometheusrule/GroupRules.vue +2 -1
- package/edit/networking.k8s.io.networkpolicy/__tests__/PolicyRuleTarget.spec.ts +1 -1
- package/edit/provisioning.cattle.io.cluster/SelectCredential.vue +15 -7
- package/edit/provisioning.cattle.io.cluster/__tests__/Advanced.test.ts +112 -0
- package/edit/provisioning.cattle.io.cluster/__tests__/Basics.test.ts +473 -0
- package/edit/provisioning.cattle.io.cluster/__tests__/{CustomCommand.tests.ts → CustomCommand.test.ts} +6 -0
- package/edit/provisioning.cattle.io.cluster/__tests__/DrainOptions.test.ts +1 -1
- package/edit/provisioning.cattle.io.cluster/__tests__/index.test.ts +73 -0
- package/edit/provisioning.cattle.io.cluster/__tests__/rke2.test.ts +7 -1
- package/edit/provisioning.cattle.io.cluster/__tests__/utils/cluster.ts +386 -0
- package/edit/provisioning.cattle.io.cluster/import.vue +2 -2
- package/edit/provisioning.cattle.io.cluster/index.vue +92 -36
- package/edit/provisioning.cattle.io.cluster/rke2.vue +171 -583
- package/edit/provisioning.cattle.io.cluster/tabs/AddOnConfig.vue +137 -0
- package/edit/provisioning.cattle.io.cluster/tabs/Advanced.vue +157 -0
- package/edit/provisioning.cattle.io.cluster/{Basics.vue → tabs/Basics.vue} +94 -19
- package/edit/provisioning.cattle.io.cluster/{MachinePool.vue → tabs/MachinePool.vue} +1 -0
- package/edit/provisioning.cattle.io.cluster/tabs/etcd/index.vue +135 -0
- package/edit/provisioning.cattle.io.cluster/tabs/networking/index.vue +189 -0
- package/edit/provisioning.cattle.io.cluster/tabs/registries/index.vue +144 -0
- package/edit/provisioning.cattle.io.cluster/tabs/upgrade/index.vue +76 -0
- package/edit/service.vue +12 -0
- package/edit/workload/Upgrading.vue +3 -2
- package/edit/workload/mixins/workload.js +1 -1
- package/edit/workload/storage/persistentVolumeClaim/persistentvolumeclaim.vue +2 -1
- package/initialize/App.js +25 -71
- package/initialize/client.js +21 -162
- package/initialize/index.js +47 -124
- package/list/management.cattle.io.feature.vue +1 -7
- package/list/node.vue +1 -0
- package/machine-config/__tests__/vmwarevsphere.test.ts +100 -21
- package/machine-config/vmwarevsphere.vue +73 -51
- package/middleware/authenticated.js +10 -17
- package/mixins/auth-config.js +2 -7
- package/mixins/brand.js +29 -41
- package/mixins/create-edit-view/index.js +2 -2
- package/mixins/labeled-form-element.ts +6 -1
- package/models/__tests__/management.cattle.io.cluster.test.ts +4 -0
- package/models/__tests__/management.cattle.io.node.ts +85 -0
- package/models/__tests__/management.cattle.io.nodepool.ts +83 -0
- package/models/__tests__/namespace.test.ts +49 -9
- package/models/__tests__/workload.test.ts +91 -0
- package/models/cluster/node.js +4 -4
- package/models/cluster.x-k8s.io.machinedeployment.js +14 -0
- package/models/fleet.cattle.io.cluster.js +4 -0
- package/models/fleet.cattle.io.gitrepo.js +56 -13
- package/models/management.cattle.io.cluster.js +7 -3
- package/models/management.cattle.io.kontainerdriver.js +1 -1
- package/models/management.cattle.io.node.js +18 -14
- package/models/management.cattle.io.nodepool.js +17 -0
- package/models/namespace.js +1 -1
- package/models/pod.js +20 -0
- package/models/provisioning.cattle.io.cluster.js +39 -4
- package/models/secret.js +117 -18
- package/models/workload.js +16 -0
- package/models/workload.service.js +18 -0
- package/package.json +11 -10
- package/pages/about.vue +0 -1
- package/pages/account/create-key.vue +0 -1
- package/pages/account/index.vue +0 -1
- package/pages/auth/login.vue +0 -1
- package/pages/auth/logout.vue +0 -2
- package/pages/auth/setup.vue +0 -4
- package/pages/auth/verify.vue +14 -8
- package/pages/c/_cluster/apps/charts/index.vue +64 -43
- package/pages/c/_cluster/apps/charts/install.vue +4 -4
- package/pages/c/_cluster/apps/index.vue +0 -2
- package/pages/c/_cluster/auth/index.vue +0 -2
- package/pages/c/_cluster/ecm/index.vue +0 -2
- package/pages/c/_cluster/explorer/index.vue +28 -2
- package/pages/c/_cluster/fleet/index.vue +1 -1
- package/pages/c/_cluster/index.vue +0 -2
- package/pages/c/_cluster/settings/banners.vue +0 -2
- package/pages/c/_cluster/settings/brand.vue +0 -2
- package/pages/c/_cluster/settings/index.vue +0 -2
- package/pages/c/_cluster/settings/links.vue +0 -1
- package/pages/c/_cluster/settings/performance.vue +0 -1
- package/pages/c/_cluster/uiplugins/CatalogList/CatalogLoadDialog.vue +2 -1
- package/pages/c/_cluster/uiplugins/CatalogList/index.vue +10 -46
- package/pages/c/_cluster/uiplugins/index.vue +0 -2
- package/pages/diagnostic.vue +1 -2
- package/pages/fail-whale.vue +0 -1
- package/pages/prefs.vue +0 -1
- package/pages/support/index.vue +2 -8
- package/pkg/auto-import.js +1 -1
- package/plugins/axios.js +0 -36
- package/plugins/back-button.js +3 -5
- package/plugins/clean-html-directive.js +1 -19
- package/plugins/clean-html.js +53 -0
- package/plugins/clean-tooltip-directive.js +1 -1
- package/plugins/codemirror-loader.js +1 -1
- package/plugins/codemirror.js +41 -0
- package/plugins/dashboard-store/__tests__/{mutations.spec.ts → mutations.test.ts} +1 -1
- package/plugins/dashboard-store/__tests__/resource-class.test.ts +49 -0
- package/plugins/dashboard-store/__tests__/utils/store-mocks.ts +7 -0
- package/plugins/dashboard-store/actions.js +30 -4
- package/plugins/dashboard-store/classify.js +1 -18
- package/plugins/dashboard-store/getters.js +10 -5
- package/plugins/dashboard-store/index.js +0 -12
- package/plugins/dashboard-store/mutations.js +0 -4
- package/plugins/dashboard-store/resource-class.js +59 -18
- package/plugins/index.js +11 -0
- package/plugins/steve/__tests__/steve-class.spec.ts +59 -0
- package/plugins/steve/__tests__/utils/steve-mocks.ts +31 -0
- package/plugins/steve/getters.js +4 -1
- package/plugins/steve/norman-class.js +19 -0
- package/plugins/steve/steve-class.js +22 -0
- package/plugins/steve/subscribe.js +4 -10
- package/rancher-components/Accordion/Accordion.test.ts +45 -0
- package/rancher-components/Accordion/Accordion.vue +86 -0
- package/rancher-components/Accordion/index.ts +1 -0
- package/rancher-components/BadgeState/BadgeState.vue +3 -3
- package/rancher-components/Banner/Banner.vue +2 -2
- package/rancher-components/Card/Card.vue +3 -3
- package/rancher-components/Form/Checkbox/Checkbox.vue +3 -3
- package/rancher-components/Form/LabeledInput/LabeledInput.test.ts +18 -1
- package/rancher-components/Form/LabeledInput/LabeledInput.vue +65 -24
- package/rancher-components/Form/Radio/RadioButton.test.ts +7 -3
- package/rancher-components/Form/Radio/RadioButton.vue +13 -7
- package/rancher-components/Form/Radio/RadioGroup.test.ts +30 -0
- package/rancher-components/Form/Radio/RadioGroup.vue +8 -3
- package/rancher-components/Form/TextArea/TextAreaAutoGrow.vue +6 -4
- package/rancher-components/Form/ToggleSwitch/ToggleSwitch.vue +7 -4
- package/rancher-components/LabeledTooltip/LabeledTooltip.vue +9 -4
- package/rancher-components/StringList/StringList.test.ts +270 -0
- package/rancher-components/StringList/StringList.vue +65 -26
- package/rancher-components/components/Accordion/Accordion.test.ts +45 -0
- package/rancher-components/components/Accordion/Accordion.vue +86 -0
- package/rancher-components/components/Accordion/index.ts +1 -0
- package/rancher-components/components/BadgeState/BadgeState.vue +3 -3
- package/rancher-components/components/Banner/Banner.vue +2 -2
- package/rancher-components/components/Card/Card.vue +3 -3
- package/rancher-components/components/Form/Checkbox/Checkbox.vue +3 -3
- package/rancher-components/components/Form/LabeledInput/LabeledInput.test.ts +18 -1
- package/rancher-components/components/Form/LabeledInput/LabeledInput.vue +57 -24
- package/rancher-components/components/Form/Radio/RadioButton.vue +13 -7
- package/rancher-components/components/Form/Radio/RadioGroup.vue +4 -3
- package/rancher-components/components/Form/TextArea/TextAreaAutoGrow.vue +6 -4
- package/rancher-components/components/Form/ToggleSwitch/ToggleSwitch.vue +7 -4
- package/rancher-components/components/LabeledTooltip/LabeledTooltip.vue +9 -4
- package/rancher-components/components/StringList/StringList.vue +8 -8
- package/scripts/.gitlab/workflows/build-extension-catalog.gitlab-ci.yml +50 -0
- package/scripts/extension/bundle +19 -7
- package/scripts/extension/helm/scripts/package +11 -3
- package/scripts/extension/parse-tag-name +2 -2
- package/scripts/extension/publish +20 -9
- package/scripts/publish-shell.sh +10 -0
- package/scripts/test-plugins-build.sh +85 -9
- package/server/har-file.js +183 -0
- package/store/catalog.js +1 -1
- package/store/features.js +1 -0
- package/store/i18n.js +11 -0
- package/store/index.js +13 -15
- package/store/prefs.js +33 -35
- package/store/type-map.js +8 -7
- package/tsconfig.json +35 -9
- package/tsconfig.paths.json +21 -0
- package/types/shell/index.d.ts +433 -234
- package/types/vue-shim.d.ts +42 -0
- package/utils/__tests__/create-yaml.test.ts +60 -0
- package/utils/axios.js +0 -19
- package/utils/azure.js +24 -0
- package/utils/clipboard.js +5 -0
- package/utils/create-yaml.js +17 -10
- package/utils/git.ts +1 -1
- package/utils/monitoring.js +1 -1
- package/utils/nuxt.js +18 -39
- package/utils/object.js +14 -0
- package/utils/router.scrollBehavior.js +12 -14
- package/utils/time.js +1 -1
- package/utils/url.ts +1 -1
- package/vue.config.js +23 -2
- package/.DS_Store +0 -0
- package/assets/images/providers/aks-black.svg +0 -28
- package/assets/images/providers/aks.svg +0 -31
- package/edit/provisioning.cattle.io.cluster/__tests__/Basics.tests.ts +0 -234
- package/initialize/layouts.ts +0 -26
- package/mixins/fetch.server.js +0 -73
- package/pages/c/index.vue +0 -9
- package/pages/rio/mesh.vue +0 -508
- package/plugins/transitions.js +0 -4
- package/plugins/vue-clipboard2.js +0 -4
- package/tsconfig.default.json +0 -46
- package/yarn-error.log +0 -200
- /package/components/form/__tests__/{NameNsDescription.ts → NameNsDescription.test.ts} +0 -0
- /package/edit/networking.k8s.io.networkpolicy/__tests__/utils/{selectors.ts → selectors.test.ts} +0 -0
- /package/edit/provisioning.cattle.io.cluster/{AgentConfiguration.vue → tabs/AgentConfiguration.vue} +0 -0
- /package/edit/provisioning.cattle.io.cluster/{MemberRoles.vue → tabs/MemberRoles.vue} +0 -0
- /package/edit/provisioning.cattle.io.cluster/{S3Config.vue → tabs/etcd/S3Config.vue} +0 -0
- /package/edit/provisioning.cattle.io.cluster/{ACE.vue → tabs/networking/ACE.vue} +0 -0
- /package/edit/provisioning.cattle.io.cluster/{RegistryConfigs.vue → tabs/registries/RegistryConfigs.vue} +0 -0
- /package/edit/provisioning.cattle.io.cluster/{RegistryMirrors.vue → tabs/registries/RegistryMirrors.vue} +0 -0
- /package/edit/provisioning.cattle.io.cluster/{DrainOptions.vue → tabs/upgrade/DrainOptions.vue} +0 -0
- /package/plugins/dashboard-store/__tests__/{actions.spec.ts → actions.test.ts} +0 -0
- /package/plugins/dashboard-store/__tests__/{getters.spec.ts → getters.test.ts} +0 -0
- /package/rancher-components/BadgeState/{BadgeState.spec.ts → BadgeState.test.ts} +0 -0
- /package/rancher-components/components/BadgeState/{BadgeState.spec.ts → BadgeState.test.ts} +0 -0
|
@@ -27,55 +27,42 @@ import {
|
|
|
27
27
|
import { allHash } from '@shell/utils/promise';
|
|
28
28
|
import { sortBy } from '@shell/utils/sort';
|
|
29
29
|
|
|
30
|
-
import { camelToTitle } from '@shell/utils/string';
|
|
31
30
|
import { compare, sortable } from '@shell/utils/version';
|
|
32
31
|
import { isHarvesterSatisfiesVersion } from '@shell/utils/cluster';
|
|
33
32
|
|
|
34
|
-
import ArrayList from '@shell/components/form/ArrayList';
|
|
35
|
-
import ArrayListGrouped from '@shell/components/form/ArrayListGrouped';
|
|
36
33
|
import { BadgeState } from '@components/BadgeState';
|
|
37
34
|
import { Banner } from '@components/Banner';
|
|
38
|
-
import { Checkbox } from '@components/Form/Checkbox';
|
|
39
35
|
import CruResource, { CONTEXT_HOOK_EDIT_YAML } from '@shell/components/CruResource';
|
|
40
|
-
import { LabeledInput } from '@components/Form/LabeledInput';
|
|
41
|
-
import LabeledSelect from '@shell/components/form/LabeledSelect';
|
|
42
36
|
import Loading from '@shell/components/Loading';
|
|
43
|
-
import MatchExpressions from '@shell/components/form/MatchExpressions';
|
|
44
37
|
import NameNsDescription from '@shell/components/form/NameNsDescription';
|
|
45
|
-
import { RadioGroup } from '@components/Form/Radio';
|
|
46
38
|
import Tab from '@shell/components/Tabbed/Tab';
|
|
47
39
|
import Tabbed from '@shell/components/Tabbed';
|
|
48
|
-
import UnitInput from '@shell/components/form/UnitInput';
|
|
49
|
-
import YamlEditor from '@shell/components/YamlEditor';
|
|
50
|
-
import Questions from '@shell/components/Questions';
|
|
51
40
|
|
|
52
41
|
import { canViewClusterMembershipEditor } from '@shell/components/form/Members/ClusterMembershipEditor';
|
|
53
|
-
import SelectOrCreateAuthSecret from '@shell/components/form/SelectOrCreateAuthSecret';
|
|
54
42
|
import semver from 'semver';
|
|
55
43
|
|
|
56
44
|
import { SETTING } from '@shell/config/settings';
|
|
57
45
|
import { base64Encode } from '@shell/utils/crypto';
|
|
58
46
|
import { CAPI as CAPI_ANNOTATIONS } from '@shell/config/labels-annotations';
|
|
59
|
-
import
|
|
60
|
-
import
|
|
61
|
-
import
|
|
62
|
-
import Labels from './Labels';
|
|
63
|
-
import MachinePool from './MachinePool';
|
|
64
|
-
import RegistryConfigs from './RegistryConfigs';
|
|
65
|
-
import RegistryMirrors from './RegistryMirrors';
|
|
66
|
-
import S3Config from './S3Config';
|
|
47
|
+
import AgentEnv from '@shell/edit/provisioning.cattle.io.cluster/AgentEnv';
|
|
48
|
+
import Labels from '@shell/edit/provisioning.cattle.io.cluster/Labels';
|
|
49
|
+
import MachinePool from '@shell/edit/provisioning.cattle.io.cluster/tabs/MachinePool';
|
|
67
50
|
import SelectCredential from './SelectCredential';
|
|
68
|
-
import AdvancedSection from '@shell/components/AdvancedSection.vue';
|
|
69
51
|
import { ELEMENTAL_SCHEMA_IDS, KIND, ELEMENTAL_CLUSTER_PROVIDER } from '../../config/elemental-types';
|
|
70
|
-
import AgentConfiguration from '
|
|
52
|
+
import AgentConfiguration from '@shell/edit/provisioning.cattle.io.cluster/tabs/AgentConfiguration';
|
|
71
53
|
import { getApplicableExtensionEnhancements } from '@shell/core/plugin-helpers';
|
|
72
54
|
import { ExtensionPoint, TabLocation } from '@shell/core/types';
|
|
73
|
-
import MemberRoles from '@shell/edit/provisioning.cattle.io.cluster/MemberRoles';
|
|
74
|
-
import Basics from '@shell/edit/provisioning.cattle.io.cluster/Basics';
|
|
55
|
+
import MemberRoles from '@shell/edit/provisioning.cattle.io.cluster/tabs/MemberRoles';
|
|
56
|
+
import Basics from '@shell/edit/provisioning.cattle.io.cluster/tabs/Basics';
|
|
57
|
+
import Etcd from '@shell/edit/provisioning.cattle.io.cluster/tabs/etcd';
|
|
58
|
+
import Networking from '@shell/edit/provisioning.cattle.io.cluster/tabs/networking';
|
|
59
|
+
import Upgrade from '@shell/edit/provisioning.cattle.io.cluster/tabs/upgrade';
|
|
60
|
+
import Registries from '@shell/edit/provisioning.cattle.io.cluster/tabs/registries';
|
|
61
|
+
import AddOnConfig from '@shell/edit/provisioning.cattle.io.cluster/tabs/AddOnConfig';
|
|
62
|
+
import Advanced from '@shell/edit/provisioning.cattle.io.cluster/tabs/Advanced';
|
|
75
63
|
|
|
76
64
|
const HARVESTER = 'harvester';
|
|
77
65
|
const HARVESTER_CLOUD_PROVIDER = 'harvester-cloud-provider';
|
|
78
|
-
|
|
79
66
|
const NETBIOS_TRUNCATION_LENGTH = 15;
|
|
80
67
|
|
|
81
68
|
/**
|
|
@@ -100,37 +87,26 @@ const FLEET_AGENT_CUSTOMIZATION = 'fleetAgentDeploymentCustomization';
|
|
|
100
87
|
|
|
101
88
|
export default {
|
|
102
89
|
components: {
|
|
103
|
-
ACE,
|
|
104
|
-
AdvancedSection,
|
|
105
90
|
AgentEnv,
|
|
106
|
-
ArrayList,
|
|
107
|
-
ArrayListGrouped,
|
|
108
91
|
BadgeState,
|
|
109
92
|
Banner,
|
|
110
|
-
Checkbox,
|
|
111
93
|
AgentConfiguration,
|
|
112
94
|
CruResource,
|
|
113
|
-
DrainOptions,
|
|
114
|
-
LabeledInput,
|
|
115
|
-
LabeledSelect,
|
|
116
95
|
Labels,
|
|
117
96
|
Loading,
|
|
118
97
|
MachinePool,
|
|
119
|
-
MatchExpressions,
|
|
120
98
|
NameNsDescription,
|
|
121
|
-
Questions,
|
|
122
|
-
RadioGroup,
|
|
123
|
-
RegistryConfigs,
|
|
124
|
-
RegistryMirrors,
|
|
125
|
-
S3Config,
|
|
126
99
|
SelectCredential,
|
|
127
|
-
SelectOrCreateAuthSecret,
|
|
128
100
|
Tab,
|
|
129
101
|
Tabbed,
|
|
130
|
-
UnitInput,
|
|
131
|
-
YamlEditor,
|
|
132
102
|
MemberRoles,
|
|
133
|
-
Basics
|
|
103
|
+
Basics,
|
|
104
|
+
Etcd,
|
|
105
|
+
Networking,
|
|
106
|
+
Upgrade,
|
|
107
|
+
Registries,
|
|
108
|
+
AddOnConfig,
|
|
109
|
+
Advanced
|
|
134
110
|
},
|
|
135
111
|
|
|
136
112
|
mixins: [CreateEditView, FormValidation],
|
|
@@ -193,7 +169,7 @@ export default {
|
|
|
193
169
|
set(this.value.spec, 'rkeConfig.machineSelectorConfig', [{ config: {} }]);
|
|
194
170
|
}
|
|
195
171
|
|
|
196
|
-
const truncateLimit = this.value.defaultHostnameLengthLimit;
|
|
172
|
+
const truncateLimit = this.value.defaultHostnameLengthLimit || 0;
|
|
197
173
|
|
|
198
174
|
return {
|
|
199
175
|
loadedOnce: false,
|
|
@@ -225,13 +201,11 @@ export default {
|
|
|
225
201
|
userChartValues: {},
|
|
226
202
|
userChartValuesTemp: {},
|
|
227
203
|
addonsRev: 0,
|
|
228
|
-
clusterIsAlreadyCreated: !!this.value.id,
|
|
229
204
|
fvFormRuleSets: [{
|
|
230
205
|
path: 'metadata.name', rules: ['subDomain'], translationKey: 'nameNsDescription.name.label'
|
|
231
206
|
}],
|
|
232
207
|
harvesterVersionRange: {},
|
|
233
208
|
cisOverride: false,
|
|
234
|
-
truncateHostnames: truncateLimit === NETBIOS_TRUNCATION_LENGTH,
|
|
235
209
|
truncateLimit,
|
|
236
210
|
busy: false,
|
|
237
211
|
machinePoolValidation: {}, // map of validation states for each machine pool
|
|
@@ -243,25 +217,14 @@ export default {
|
|
|
243
217
|
},
|
|
244
218
|
|
|
245
219
|
computed: {
|
|
246
|
-
|
|
247
220
|
rkeConfig() {
|
|
248
221
|
return this.value.spec.rkeConfig;
|
|
249
222
|
},
|
|
250
223
|
|
|
251
|
-
hostnameTruncationManuallySet() {
|
|
252
|
-
return this.truncateLimit && this.truncateLimit !== NETBIOS_TRUNCATION_LENGTH;
|
|
253
|
-
},
|
|
254
|
-
|
|
255
224
|
isElementalCluster() {
|
|
256
225
|
return this.provider === ELEMENTAL_CLUSTER_PROVIDER || this.value?.machineProvider?.toLowerCase() === KIND.MACHINE_INV_SELECTOR_TEMPLATES.toLowerCase();
|
|
257
226
|
},
|
|
258
227
|
|
|
259
|
-
advancedTitleAlt() {
|
|
260
|
-
const machineSelectorLength = this.rkeConfig.machineSelectorConfig.length;
|
|
261
|
-
|
|
262
|
-
return this.t('cluster.advanced.argInfo.machineSelector.titleAlt', { count: machineSelectorLength });
|
|
263
|
-
},
|
|
264
|
-
|
|
265
228
|
chartValues() {
|
|
266
229
|
return this.value.spec.rkeConfig.chartValues;
|
|
267
230
|
},
|
|
@@ -351,10 +314,6 @@ export default {
|
|
|
351
314
|
return out;
|
|
352
315
|
},
|
|
353
316
|
|
|
354
|
-
isK3s() {
|
|
355
|
-
return (this.value?.spec?.kubernetesVersion || '').includes('k3s');
|
|
356
|
-
},
|
|
357
|
-
|
|
358
317
|
/**
|
|
359
318
|
* Kube Version
|
|
360
319
|
*/
|
|
@@ -562,11 +521,11 @@ export default {
|
|
|
562
521
|
}
|
|
563
522
|
|
|
564
523
|
if (this.showCloudProvider) { // Shouldn't be removed such that changes to it will re-trigger this watch
|
|
565
|
-
if ( this.agentConfig['cloud-provider-name'] === 'rancher-vsphere' ) {
|
|
524
|
+
if ( this.agentConfig?.['cloud-provider-name'] === 'rancher-vsphere' ) {
|
|
566
525
|
names.push('rancher-vsphere-cpi', 'rancher-vsphere-csi');
|
|
567
526
|
}
|
|
568
527
|
|
|
569
|
-
if ( this.agentConfig['cloud-provider-name'] === HARVESTER ) {
|
|
528
|
+
if ( this.agentConfig?.['cloud-provider-name'] === HARVESTER ) {
|
|
570
529
|
names.push(HARVESTER_CLOUD_PROVIDER);
|
|
571
530
|
}
|
|
572
531
|
}
|
|
@@ -616,7 +575,7 @@ export default {
|
|
|
616
575
|
}
|
|
617
576
|
}
|
|
618
577
|
|
|
619
|
-
const cur = this.agentConfig['cloud-provider-name'];
|
|
578
|
+
const cur = this.agentConfig?.['cloud-provider-name'];
|
|
620
579
|
|
|
621
580
|
if (cur && !out.find((x) => x.value === cur)) {
|
|
622
581
|
// Localization missing
|
|
@@ -681,13 +640,6 @@ export default {
|
|
|
681
640
|
return out;
|
|
682
641
|
},
|
|
683
642
|
|
|
684
|
-
showIpv6Warning() {
|
|
685
|
-
const clusterCIDR = this.serverConfig['cluster-cidr'] || '';
|
|
686
|
-
const serviceCIDR = this.serverConfig['service-cidr'] || '';
|
|
687
|
-
|
|
688
|
-
return clusterCIDR.includes(':') || serviceCIDR.includes(':');
|
|
689
|
-
},
|
|
690
|
-
|
|
691
643
|
appsOSWarning() {
|
|
692
644
|
if (this.mode !== _EDIT ) {
|
|
693
645
|
return null;
|
|
@@ -767,16 +719,6 @@ export default {
|
|
|
767
719
|
},
|
|
768
720
|
|
|
769
721
|
watch: {
|
|
770
|
-
s3Backup(neu) {
|
|
771
|
-
if ( neu ) {
|
|
772
|
-
// We need to make sure that s3 doesn't already have an existing value otherwise when editing a cluster with s3 defined this will clear s3.
|
|
773
|
-
if (isEmpty(this.rkeConfig.etcd?.s3)) {
|
|
774
|
-
set(this.rkeConfig.etcd, 's3', {});
|
|
775
|
-
}
|
|
776
|
-
} else {
|
|
777
|
-
set(this.rkeConfig.etcd, 's3', null);
|
|
778
|
-
}
|
|
779
|
-
},
|
|
780
722
|
|
|
781
723
|
credentialId(val) {
|
|
782
724
|
if ( val ) {
|
|
@@ -1027,10 +969,12 @@ export default {
|
|
|
1027
969
|
/**
|
|
1028
970
|
* set instanceNameLimit to 15 to all pool machine if truncateHostnames checkbox is clicked
|
|
1029
971
|
*/
|
|
1030
|
-
|
|
1031
|
-
if (
|
|
972
|
+
truncateHostname(neu) {
|
|
973
|
+
if (neu) {
|
|
1032
974
|
this.value.defaultHostnameLengthLimit = NETBIOS_TRUNCATION_LENGTH;
|
|
975
|
+
this.truncateLimit = NETBIOS_TRUNCATION_LENGTH;
|
|
1033
976
|
} else {
|
|
977
|
+
this.truncateLimit = 0;
|
|
1034
978
|
this.value.removeDefaultHostnameLengthLimit();
|
|
1035
979
|
}
|
|
1036
980
|
},
|
|
@@ -1197,8 +1141,14 @@ export default {
|
|
|
1197
1141
|
title: this.t('cluster.rke2.modal.editYamlMachinePool.title'),
|
|
1198
1142
|
body: this.t('cluster.rke2.modal.editYamlMachinePool.body'),
|
|
1199
1143
|
applyMode: 'editAndContinue',
|
|
1200
|
-
confirm: (confirmed) => {
|
|
1144
|
+
confirm: async(confirmed) => {
|
|
1201
1145
|
if (confirmed) {
|
|
1146
|
+
await this.validateMachinePool();
|
|
1147
|
+
|
|
1148
|
+
if (this.errors.length) {
|
|
1149
|
+
reject(new Error('Machine Pool validation errors'));
|
|
1150
|
+
}
|
|
1151
|
+
|
|
1202
1152
|
resolve();
|
|
1203
1153
|
} else {
|
|
1204
1154
|
reject(new Error('User Cancelled'));
|
|
@@ -1346,10 +1296,6 @@ export default {
|
|
|
1346
1296
|
// We cannot use the hook, because it is triggered on YAML toggle without restore initialized data
|
|
1347
1297
|
this.agentConfigurationCleanup();
|
|
1348
1298
|
|
|
1349
|
-
if ( this.errors ) {
|
|
1350
|
-
clear(this.errors);
|
|
1351
|
-
}
|
|
1352
|
-
|
|
1353
1299
|
const isEditVersion = this.isEdit && this.liveValue?.spec?.kubernetesVersion !== this.value?.spec?.kubernetesVersion;
|
|
1354
1300
|
|
|
1355
1301
|
if (isEditVersion) {
|
|
@@ -1360,31 +1306,9 @@ export default {
|
|
|
1360
1306
|
}
|
|
1361
1307
|
}
|
|
1362
1308
|
|
|
1363
|
-
|
|
1364
|
-
const missingProfileName = this.machinePools.some((mp) => !mp.config.iamInstanceProfile);
|
|
1309
|
+
this.validateClusterName();
|
|
1365
1310
|
|
|
1366
|
-
|
|
1367
|
-
this.errors.push(this.t('cluster.validation.iamInstanceProfileName', {}, true));
|
|
1368
|
-
}
|
|
1369
|
-
}
|
|
1370
|
-
|
|
1371
|
-
for (const [index] of this.machinePools.entries()) { // validator machine config
|
|
1372
|
-
if ( typeof this.$refs.pool[index]?.test === 'function' ) {
|
|
1373
|
-
try {
|
|
1374
|
-
const res = await this.$refs.pool[index].test();
|
|
1375
|
-
|
|
1376
|
-
if (Array.isArray(res) && res.length > 0) {
|
|
1377
|
-
this.errors.push(...res);
|
|
1378
|
-
}
|
|
1379
|
-
} catch (e) {
|
|
1380
|
-
this.errors.push(e);
|
|
1381
|
-
}
|
|
1382
|
-
}
|
|
1383
|
-
}
|
|
1384
|
-
|
|
1385
|
-
if (!this.value.metadata.name && this.agentConfig['cloud-provider-name'] === HARVESTER) {
|
|
1386
|
-
this.errors.push(this.t('validation.required', { key: this.t('cluster.name.label') }, true));
|
|
1387
|
-
}
|
|
1311
|
+
await this.validateMachinePool();
|
|
1388
1312
|
|
|
1389
1313
|
if (this.errors.length) {
|
|
1390
1314
|
btnCb(false);
|
|
@@ -1399,7 +1323,7 @@ export default {
|
|
|
1399
1323
|
|
|
1400
1324
|
const isUpgrade = this.isEdit && this.liveValue?.spec?.kubernetesVersion !== this.value?.spec?.kubernetesVersion;
|
|
1401
1325
|
|
|
1402
|
-
if (this.agentConfig['cloud-provider-name'] === HARVESTER && clusterId && (this.isCreate || isUpgrade)) {
|
|
1326
|
+
if (this.agentConfig?.['cloud-provider-name'] === HARVESTER && clusterId && (this.isCreate || isUpgrade)) {
|
|
1403
1327
|
const namespace = this.machinePools?.[0]?.config?.vmNamespace;
|
|
1404
1328
|
|
|
1405
1329
|
const res = await this.$store.dispatch('management/request', {
|
|
@@ -1531,27 +1455,28 @@ export default {
|
|
|
1531
1455
|
}
|
|
1532
1456
|
},
|
|
1533
1457
|
|
|
1534
|
-
|
|
1535
|
-
const fallback = `${ camelToTitle(name.replace(/^(rke|rke2|rancher)-/, '')) } Configuration`;
|
|
1536
|
-
|
|
1537
|
-
return this.$store.getters['i18n/withFallback'](`cluster.addonChart."${ name }"`, null, fallback);
|
|
1538
|
-
},
|
|
1539
|
-
|
|
1540
|
-
showAddons() {
|
|
1458
|
+
showAddons(key) {
|
|
1541
1459
|
this.addonsRev++;
|
|
1542
1460
|
this.addonNames.forEach((name) => {
|
|
1543
1461
|
const chartValues = this.versionInfo[name]?.questions ? this.initYamlEditor(name) : {};
|
|
1544
1462
|
|
|
1545
1463
|
set(this.userChartValuesTemp, name, chartValues);
|
|
1546
1464
|
});
|
|
1547
|
-
this.
|
|
1465
|
+
this.refreshComponentWithYamls(key);
|
|
1548
1466
|
},
|
|
1467
|
+
refreshComponentWithYamls(key) {
|
|
1468
|
+
const component = this.$refs[key];
|
|
1549
1469
|
|
|
1550
|
-
|
|
1551
|
-
|
|
1470
|
+
if ( component ) {
|
|
1471
|
+
this.refreshYamls(component.$refs);
|
|
1472
|
+
}
|
|
1473
|
+
},
|
|
1474
|
+
|
|
1475
|
+
refreshYamls(refs) {
|
|
1476
|
+
const keys = Object.keys(refs).filter((x) => x.startsWith('yaml'));
|
|
1552
1477
|
|
|
1553
1478
|
for ( const k of keys ) {
|
|
1554
|
-
const entry =
|
|
1479
|
+
const entry = refs[k];
|
|
1555
1480
|
const list = isArray(entry) ? entry : [entry];
|
|
1556
1481
|
|
|
1557
1482
|
for ( const component of list ) {
|
|
@@ -1573,10 +1498,6 @@ export default {
|
|
|
1573
1498
|
this.userChartValues[this.chartVersionKey(name)] = different;
|
|
1574
1499
|
}, 250, { leading: true }),
|
|
1575
1500
|
|
|
1576
|
-
updateQuestions(name) {
|
|
1577
|
-
this.syncChartValues(name);
|
|
1578
|
-
},
|
|
1579
|
-
|
|
1580
1501
|
initYamlEditor(name) {
|
|
1581
1502
|
const defaultChartValue = this.versionInfo[name];
|
|
1582
1503
|
const key = this.chartVersionKey(name);
|
|
@@ -1594,7 +1515,7 @@ export default {
|
|
|
1594
1515
|
}
|
|
1595
1516
|
|
|
1596
1517
|
for ( const k in this.agentArgs ) {
|
|
1597
|
-
if ( this.agentConfig[k] === undefined ) {
|
|
1518
|
+
if ( this.agentConfig?.[k] === undefined ) {
|
|
1598
1519
|
const def = this.agentArgs[k].default;
|
|
1599
1520
|
|
|
1600
1521
|
set(this.agentConfig, k, (def !== undefined ? def : undefined));
|
|
@@ -1616,10 +1537,6 @@ export default {
|
|
|
1616
1537
|
this.$set(this, 'membershipUpdate', update);
|
|
1617
1538
|
},
|
|
1618
1539
|
|
|
1619
|
-
canRemoveKubeletRow(row, idx) {
|
|
1620
|
-
return idx !== 0;
|
|
1621
|
-
},
|
|
1622
|
-
|
|
1623
1540
|
async initRegistry() {
|
|
1624
1541
|
// Check for an existing cluster scoped registry
|
|
1625
1542
|
const clusterRegistry = this.agentConfig?.['system-default-registry'] || '';
|
|
@@ -1863,6 +1780,7 @@ export default {
|
|
|
1863
1780
|
setHarvesterDefaultCloudProvider() {
|
|
1864
1781
|
if (this.isHarvesterDriver &&
|
|
1865
1782
|
this.mode === _CREATE &&
|
|
1783
|
+
this.agentConfig &&
|
|
1866
1784
|
!this.agentConfig['cloud-provider-name'] &&
|
|
1867
1785
|
!this.isHarvesterExternalCredential &&
|
|
1868
1786
|
!this.isHarvesterIncompatible
|
|
@@ -1891,7 +1809,8 @@ export default {
|
|
|
1891
1809
|
}
|
|
1892
1810
|
this.setHarvesterDefaultCloudProvider();
|
|
1893
1811
|
},
|
|
1894
|
-
toggleCustomRegistry(
|
|
1812
|
+
toggleCustomRegistry(neu) {
|
|
1813
|
+
this.showCustomRegistryInput = neu;
|
|
1895
1814
|
if (this.registryHost) {
|
|
1896
1815
|
this.registryHost = null;
|
|
1897
1816
|
this.registrySecret = null;
|
|
@@ -1932,11 +1851,14 @@ export default {
|
|
|
1932
1851
|
set(this.agentConfig, 'protect-kernel-defaults', false);
|
|
1933
1852
|
}
|
|
1934
1853
|
},
|
|
1854
|
+
updateAdditionalManifest(neu) {
|
|
1855
|
+
this.value.spec.rkeConfig.additionalManifest = neu;
|
|
1856
|
+
},
|
|
1935
1857
|
|
|
1936
1858
|
/**
|
|
1937
1859
|
* Handle k8s changes side effects, like PSA resets
|
|
1938
1860
|
*/
|
|
1939
|
-
handleKubernetesChange(value) {
|
|
1861
|
+
handleKubernetesChange(value, old) {
|
|
1940
1862
|
if (value) {
|
|
1941
1863
|
this.togglePsaDefault();
|
|
1942
1864
|
|
|
@@ -1975,22 +1897,17 @@ export default {
|
|
|
1975
1897
|
handleEnabledSystemServicesChanged(val) {
|
|
1976
1898
|
set(this.serverConfig, 'disable', val);
|
|
1977
1899
|
},
|
|
1978
|
-
|
|
1900
|
+
|
|
1901
|
+
handleCiliumValuesChanged(neu) {
|
|
1902
|
+
if (neu === undefined) {
|
|
1903
|
+
return;
|
|
1904
|
+
}
|
|
1905
|
+
|
|
1979
1906
|
const name = this.chartVersionKey('rke2-cilium');
|
|
1980
|
-
const values = this.userChartValues[name];
|
|
1981
1907
|
|
|
1982
1908
|
set(this, 'userChartValues', {
|
|
1983
1909
|
...this.userChartValues,
|
|
1984
|
-
[name]: {
|
|
1985
|
-
...values,
|
|
1986
|
-
cilium: {
|
|
1987
|
-
...values?.cilium,
|
|
1988
|
-
ipv6: {
|
|
1989
|
-
...values?.cilium?.ipv6,
|
|
1990
|
-
enabled: neu
|
|
1991
|
-
}
|
|
1992
|
-
}
|
|
1993
|
-
}
|
|
1910
|
+
[name]: { ...neu }
|
|
1994
1911
|
});
|
|
1995
1912
|
},
|
|
1996
1913
|
|
|
@@ -2034,8 +1951,59 @@ export default {
|
|
|
2034
1951
|
}
|
|
2035
1952
|
|
|
2036
1953
|
this.errors = errors;
|
|
1954
|
+
},
|
|
1955
|
+
handleS3BackupChanged(neu) {
|
|
1956
|
+
this.s3Backup = neu;
|
|
1957
|
+
if ( neu ) {
|
|
1958
|
+
// We need to make sure that s3 doesn't already have an existing value otherwise when editing a cluster with s3 defined this will clear s3.
|
|
1959
|
+
if (isEmpty(this.rkeConfig.etcd?.s3)) {
|
|
1960
|
+
set(this.rkeConfig.etcd, 's3', {});
|
|
1961
|
+
}
|
|
1962
|
+
} else {
|
|
1963
|
+
set(this.rkeConfig.etcd, 's3', null);
|
|
1964
|
+
}
|
|
1965
|
+
},
|
|
1966
|
+
handleConfigEtcdExposeMetricsChanged(neu) {
|
|
1967
|
+
set(this.serverConfig, 'etcd-expose-metrics', neu);
|
|
1968
|
+
},
|
|
1969
|
+
handleRegistryHostChanged(neu) {
|
|
1970
|
+
this.registryHost = neu;
|
|
1971
|
+
},
|
|
1972
|
+
handleRegistrySecretChanged(neu) {
|
|
1973
|
+
this.registrySecret = neu;
|
|
1974
|
+
},
|
|
1975
|
+
validateClusterName() {
|
|
1976
|
+
if (!this.value.metadata.name && this.agentConfig?.['cloud-provider-name'] === HARVESTER) {
|
|
1977
|
+
this.errors.push(this.t('validation.required', { key: this.t('cluster.name.label') }, true));
|
|
1978
|
+
}
|
|
1979
|
+
},
|
|
1980
|
+
async validateMachinePool() {
|
|
1981
|
+
if (this.errors) {
|
|
1982
|
+
clear(this.errors);
|
|
1983
|
+
}
|
|
1984
|
+
if (this.value.cloudProvider === 'aws') {
|
|
1985
|
+
const missingProfileName = this.machinePools.some((mp) => !mp.config.iamInstanceProfile);
|
|
1986
|
+
|
|
1987
|
+
if (missingProfileName) {
|
|
1988
|
+
this.errors.push(this.t('cluster.validation.iamInstanceProfileName', {}, true));
|
|
1989
|
+
}
|
|
1990
|
+
}
|
|
1991
|
+
|
|
1992
|
+
for (const [index] of this.machinePools.entries()) { // validator machine config
|
|
1993
|
+
if ( typeof this.$refs.pool[index]?.test === 'function' ) {
|
|
1994
|
+
try {
|
|
1995
|
+
const res = await this.$refs.pool[index].test();
|
|
1996
|
+
|
|
1997
|
+
if (Array.isArray(res) && res.length > 0) {
|
|
1998
|
+
this.errors.push(...res);
|
|
1999
|
+
}
|
|
2000
|
+
} catch (e) {
|
|
2001
|
+
this.errors.push(e);
|
|
2002
|
+
}
|
|
2003
|
+
}
|
|
2004
|
+
}
|
|
2037
2005
|
}
|
|
2038
|
-
}
|
|
2006
|
+
}
|
|
2039
2007
|
};
|
|
2040
2008
|
</script>
|
|
2041
2009
|
|
|
@@ -2062,7 +2030,7 @@ export default {
|
|
|
2062
2030
|
@done="done"
|
|
2063
2031
|
@finish="saveOverride"
|
|
2064
2032
|
@cancel="cancel"
|
|
2065
|
-
@error="
|
|
2033
|
+
@error="e=>errors = e"
|
|
2066
2034
|
>
|
|
2067
2035
|
<div class="header-warnings">
|
|
2068
2036
|
<Banner
|
|
@@ -2079,6 +2047,7 @@ export default {
|
|
|
2079
2047
|
:provider="provider"
|
|
2080
2048
|
:cancel="cancelCredential"
|
|
2081
2049
|
:showing-form="showForm"
|
|
2050
|
+
:default-on-cancel="true"
|
|
2082
2051
|
class="mt-20"
|
|
2083
2052
|
/>
|
|
2084
2053
|
|
|
@@ -2190,10 +2159,11 @@ export default {
|
|
|
2190
2159
|
name="basic"
|
|
2191
2160
|
label-key="cluster.tabs.basic"
|
|
2192
2161
|
:weight="11"
|
|
2193
|
-
@active="
|
|
2162
|
+
@active="refreshComponentWithYamls('tab-Basics')"
|
|
2194
2163
|
>
|
|
2195
2164
|
<!-- Basic -->
|
|
2196
2165
|
<Basics
|
|
2166
|
+
ref="tab-Basics"
|
|
2197
2167
|
v-model="value"
|
|
2198
2168
|
:live-value="liveValue"
|
|
2199
2169
|
:mode="mode"
|
|
@@ -2208,15 +2178,13 @@ export default {
|
|
|
2208
2178
|
:is-harvester-driver="isHarvesterDriver"
|
|
2209
2179
|
:is-harvester-incompatible="isHarvesterIncompatible"
|
|
2210
2180
|
:version-options="versionOptions"
|
|
2211
|
-
:cluster-is-already-created="clusterIsAlreadyCreated"
|
|
2212
2181
|
:is-elemental-cluster="isElementalCluster"
|
|
2213
|
-
:is-k3s="isK3s"
|
|
2214
2182
|
:have-arg-info="haveArgInfo"
|
|
2215
2183
|
:show-cni="showCni"
|
|
2216
2184
|
:show-cloud-provider="showCloudProvider"
|
|
2217
2185
|
:unsupported-cloud-provider="unsupportedCloudProvider"
|
|
2218
2186
|
:cloud-provider-options="cloudProviderOptions"
|
|
2219
|
-
@cilium-
|
|
2187
|
+
@cilium-values-changed="handleCiliumValuesChanged"
|
|
2220
2188
|
@enabled-system-services-changed="handleEnabledSystemServicesChanged"
|
|
2221
2189
|
@kubernetes-changed="handleKubernetesChange"
|
|
2222
2190
|
@cis-changed="handleCisChanged"
|
|
@@ -2243,77 +2211,15 @@ export default {
|
|
|
2243
2211
|
name="etcd"
|
|
2244
2212
|
label-key="cluster.tabs.etcd"
|
|
2245
2213
|
>
|
|
2246
|
-
<
|
|
2247
|
-
|
|
2248
|
-
|
|
2249
|
-
|
|
2250
|
-
|
|
2251
|
-
|
|
2252
|
-
|
|
2253
|
-
|
|
2254
|
-
|
|
2255
|
-
/>
|
|
2256
|
-
</div>
|
|
2257
|
-
</div>
|
|
2258
|
-
<div
|
|
2259
|
-
v-if="rkeConfig.etcd.disableSnapshots !== true"
|
|
2260
|
-
class="row"
|
|
2261
|
-
>
|
|
2262
|
-
<div class="col span-6">
|
|
2263
|
-
<LabeledInput
|
|
2264
|
-
v-model="rkeConfig.etcd.snapshotScheduleCron"
|
|
2265
|
-
type="cron"
|
|
2266
|
-
placeholder="0 * * * *"
|
|
2267
|
-
:mode="mode"
|
|
2268
|
-
:label="t('cluster.rke2.etcd.snapshotScheduleCron.label')"
|
|
2269
|
-
/>
|
|
2270
|
-
</div>
|
|
2271
|
-
<div class="col span-6">
|
|
2272
|
-
<UnitInput
|
|
2273
|
-
v-model="rkeConfig.etcd.snapshotRetention"
|
|
2274
|
-
:mode="mode"
|
|
2275
|
-
:label="t('cluster.rke2.etcd.snapshotRetention.label')"
|
|
2276
|
-
:suffix="t('cluster.rke2.snapshots.suffix')"
|
|
2277
|
-
/>
|
|
2278
|
-
</div>
|
|
2279
|
-
</div>
|
|
2280
|
-
|
|
2281
|
-
<template v-if="rkeConfig.etcd.disableSnapshots !== true">
|
|
2282
|
-
<div class="spacer" />
|
|
2283
|
-
|
|
2284
|
-
<RadioGroup
|
|
2285
|
-
v-model="s3Backup"
|
|
2286
|
-
name="etcd-s3"
|
|
2287
|
-
:options="[false, true]"
|
|
2288
|
-
label="Backup Snapshots to S3"
|
|
2289
|
-
:labels="['Disable','Enable']"
|
|
2290
|
-
:mode="mode"
|
|
2291
|
-
/>
|
|
2292
|
-
|
|
2293
|
-
<S3Config
|
|
2294
|
-
v-if="s3Backup"
|
|
2295
|
-
v-model="rkeConfig.etcd.s3"
|
|
2296
|
-
:namespace="value.metadata.namespace"
|
|
2297
|
-
:register-before-hook="registerBeforeHook"
|
|
2298
|
-
:mode="mode"
|
|
2299
|
-
/>
|
|
2300
|
-
</template>
|
|
2301
|
-
|
|
2302
|
-
<div class="spacer" />
|
|
2303
|
-
|
|
2304
|
-
<div class="row">
|
|
2305
|
-
<div class="col span-6">
|
|
2306
|
-
<RadioGroup
|
|
2307
|
-
v-if="serverArgs['etcd-expose-metrics']"
|
|
2308
|
-
v-model="serverConfig['etcd-expose-metrics']"
|
|
2309
|
-
name="etcd-expose-metrics"
|
|
2310
|
-
:options="[false, true]"
|
|
2311
|
-
:label="t('cluster.rke2.etcd.exportMetric.label')"
|
|
2312
|
-
:labels="[t('cluster.rke2.etcd.exportMetric.false'), t('cluster.rke2.etcd.exportMetric.true')]"
|
|
2313
|
-
:mode="mode"
|
|
2314
|
-
/>
|
|
2315
|
-
</div>
|
|
2316
|
-
</div>
|
|
2214
|
+
<Etcd
|
|
2215
|
+
v-model="value"
|
|
2216
|
+
:mode="mode"
|
|
2217
|
+
:s3-backup="s3Backup"
|
|
2218
|
+
:register-before-hook="registerBeforeHook"
|
|
2219
|
+
:selected-version="selectedVersion"
|
|
2220
|
+
@s3-backup-changed="handleS3BackupChanged"
|
|
2221
|
+
@config-etcd-expose-metrics-changed="handleConfigEtcdExposeMetricsChanged"
|
|
2222
|
+
/>
|
|
2317
2223
|
</Tab>
|
|
2318
2224
|
|
|
2319
2225
|
<!-- Networking -->
|
|
@@ -2322,120 +2228,12 @@ export default {
|
|
|
2322
2228
|
name="networking"
|
|
2323
2229
|
label-key="cluster.tabs.networking"
|
|
2324
2230
|
>
|
|
2325
|
-
<
|
|
2326
|
-
{{ t('cluster.rke2.address.header') }}
|
|
2327
|
-
<i
|
|
2328
|
-
v-clean-tooltip="t('cluster.rke2.address.tooltip')"
|
|
2329
|
-
class="icon icon-info"
|
|
2330
|
-
/>
|
|
2331
|
-
</h3>
|
|
2332
|
-
<Banner
|
|
2333
|
-
v-if="showIpv6Warning"
|
|
2334
|
-
color="warning"
|
|
2335
|
-
>
|
|
2336
|
-
{{ t('cluster.rke2.address.ipv6.warning') }}
|
|
2337
|
-
</Banner>
|
|
2338
|
-
<div class="row mb-20">
|
|
2339
|
-
<div
|
|
2340
|
-
v-if="serverArgs['cluster-cidr']"
|
|
2341
|
-
class="col span-6"
|
|
2342
|
-
>
|
|
2343
|
-
<LabeledInput
|
|
2344
|
-
v-model="serverConfig['cluster-cidr']"
|
|
2345
|
-
:mode="mode"
|
|
2346
|
-
:disabled="clusterIsAlreadyCreated"
|
|
2347
|
-
:label="t('cluster.rke2.address.clusterCidr.label')"
|
|
2348
|
-
/>
|
|
2349
|
-
</div>
|
|
2350
|
-
<div
|
|
2351
|
-
v-if="serverArgs['service-cidr']"
|
|
2352
|
-
class="col span-6"
|
|
2353
|
-
>
|
|
2354
|
-
<LabeledInput
|
|
2355
|
-
v-model="serverConfig['service-cidr']"
|
|
2356
|
-
:mode="mode"
|
|
2357
|
-
:disabled="clusterIsAlreadyCreated"
|
|
2358
|
-
:label="t('cluster.rke2.address.serviceCidr.label')"
|
|
2359
|
-
/>
|
|
2360
|
-
</div>
|
|
2361
|
-
</div>
|
|
2362
|
-
|
|
2363
|
-
<div class="row mb-20">
|
|
2364
|
-
<div
|
|
2365
|
-
v-if="serverArgs['cluster-dns']"
|
|
2366
|
-
class="col span-6"
|
|
2367
|
-
>
|
|
2368
|
-
<LabeledInput
|
|
2369
|
-
v-model="serverConfig['cluster-dns']"
|
|
2370
|
-
:mode="mode"
|
|
2371
|
-
:disabled="clusterIsAlreadyCreated"
|
|
2372
|
-
:label="t('cluster.rke2.address.dns.label')"
|
|
2373
|
-
/>
|
|
2374
|
-
</div>
|
|
2375
|
-
<div
|
|
2376
|
-
v-if="serverArgs['cluster-domain']"
|
|
2377
|
-
class="col span-6"
|
|
2378
|
-
>
|
|
2379
|
-
<LabeledInput
|
|
2380
|
-
v-model="serverConfig['cluster-domain']"
|
|
2381
|
-
:mode="mode"
|
|
2382
|
-
:disabled="clusterIsAlreadyCreated"
|
|
2383
|
-
:label="t('cluster.rke2.address.domain.label')"
|
|
2384
|
-
/>
|
|
2385
|
-
</div>
|
|
2386
|
-
</div>
|
|
2387
|
-
|
|
2388
|
-
<div
|
|
2389
|
-
v-if="serverArgs['service-node-port-range']"
|
|
2390
|
-
class="row mb-20"
|
|
2391
|
-
>
|
|
2392
|
-
<div class="col span-6">
|
|
2393
|
-
<LabeledInput
|
|
2394
|
-
v-model="serverConfig['service-node-port-range']"
|
|
2395
|
-
:mode="mode"
|
|
2396
|
-
:label="t('cluster.rke2.address.nodePortRange.label')"
|
|
2397
|
-
/>
|
|
2398
|
-
</div>
|
|
2399
|
-
<div
|
|
2400
|
-
class="col span-6"
|
|
2401
|
-
>
|
|
2402
|
-
<Checkbox
|
|
2403
|
-
v-if="!isView || isView && !hostnameTruncationManuallySet"
|
|
2404
|
-
v-model="truncateHostnames"
|
|
2405
|
-
class="mt-20"
|
|
2406
|
-
:disabled="isEdit || isView || hostnameTruncationManuallySet"
|
|
2407
|
-
:mode="mode"
|
|
2408
|
-
:label="t('cluster.rke2.truncateHostnames')"
|
|
2409
|
-
@input="truncateName"
|
|
2410
|
-
/>
|
|
2411
|
-
<Banner
|
|
2412
|
-
v-if="hostnameTruncationManuallySet"
|
|
2413
|
-
color="info"
|
|
2414
|
-
>
|
|
2415
|
-
<div class="text">
|
|
2416
|
-
{{ t('cluster.machinePool.truncationCluster', { limit: truncateLimit }) }}
|
|
2417
|
-
</div>
|
|
2418
|
-
</Banner>
|
|
2419
|
-
</div>
|
|
2420
|
-
</div>
|
|
2421
|
-
|
|
2422
|
-
<div
|
|
2423
|
-
v-if="serverArgs['tls-san']"
|
|
2424
|
-
class="row mb-20"
|
|
2425
|
-
>
|
|
2426
|
-
<div class="col span-6">
|
|
2427
|
-
<ArrayList
|
|
2428
|
-
v-model="serverConfig['tls-san']"
|
|
2429
|
-
:protip="false"
|
|
2430
|
-
:mode="mode"
|
|
2431
|
-
:title="t('cluster.rke2.address.tlsSan.label')"
|
|
2432
|
-
/>
|
|
2433
|
-
</div>
|
|
2434
|
-
</div>
|
|
2435
|
-
|
|
2436
|
-
<ACE
|
|
2231
|
+
<Networking
|
|
2437
2232
|
v-model="value"
|
|
2438
2233
|
:mode="mode"
|
|
2234
|
+
:selected-version="selectedVersion"
|
|
2235
|
+
:truncate-limit="truncateLimit"
|
|
2236
|
+
@truncate-hostname="truncateHostname"
|
|
2439
2237
|
/>
|
|
2440
2238
|
</Tab>
|
|
2441
2239
|
|
|
@@ -2444,44 +2242,10 @@ export default {
|
|
|
2444
2242
|
name="upgrade"
|
|
2445
2243
|
label-key="cluster.tabs.upgrade"
|
|
2446
2244
|
>
|
|
2447
|
-
<
|
|
2448
|
-
v-
|
|
2449
|
-
|
|
2450
|
-
|
|
2451
|
-
{{ t('cluster.rke2.drain.deleteEmptyDir.warning', {}, true) }}
|
|
2452
|
-
</Banner>
|
|
2453
|
-
<div class="row">
|
|
2454
|
-
<div class="col span-6">
|
|
2455
|
-
<h3>{{ t('cluster.rke2.controlPlaneConcurrency.header') }}</h3>
|
|
2456
|
-
<LabeledInput
|
|
2457
|
-
v-model="rkeConfig.upgradeStrategy.controlPlaneConcurrency"
|
|
2458
|
-
:mode="mode"
|
|
2459
|
-
:label="t('cluster.rke2.controlPlaneConcurrency.label')"
|
|
2460
|
-
:tooltip="t('cluster.rke2.controlPlaneConcurrency.toolTip')"
|
|
2461
|
-
/>
|
|
2462
|
-
<div class="spacer" />
|
|
2463
|
-
<DrainOptions
|
|
2464
|
-
v-model="rkeConfig.upgradeStrategy.controlPlaneDrainOptions"
|
|
2465
|
-
:mode="mode"
|
|
2466
|
-
/>
|
|
2467
|
-
</div>
|
|
2468
|
-
<div class="col span-6">
|
|
2469
|
-
<h3>
|
|
2470
|
-
{{ t('cluster.rke2.workNode.label') }}
|
|
2471
|
-
</h3>
|
|
2472
|
-
<LabeledInput
|
|
2473
|
-
v-model="rkeConfig.upgradeStrategy.workerConcurrency"
|
|
2474
|
-
:mode="mode"
|
|
2475
|
-
:label="t('cluster.rke2.workerConcurrency.label')"
|
|
2476
|
-
:tooltip="t('cluster.rke2.workerConcurrency.toolTip')"
|
|
2477
|
-
/>
|
|
2478
|
-
<div class="spacer" />
|
|
2479
|
-
<DrainOptions
|
|
2480
|
-
v-model="rkeConfig.upgradeStrategy.workerDrainOptions"
|
|
2481
|
-
:mode="mode"
|
|
2482
|
-
/>
|
|
2483
|
-
</div>
|
|
2484
|
-
</div>
|
|
2245
|
+
<Upgrade
|
|
2246
|
+
v-model="value"
|
|
2247
|
+
:mode="mode"
|
|
2248
|
+
/>
|
|
2485
2249
|
</Tab>
|
|
2486
2250
|
|
|
2487
2251
|
<!-- Registries -->
|
|
@@ -2489,147 +2253,40 @@ export default {
|
|
|
2489
2253
|
name="registry"
|
|
2490
2254
|
label-key="cluster.tabs.registry"
|
|
2491
2255
|
>
|
|
2492
|
-
<
|
|
2493
|
-
|
|
2494
|
-
|
|
2495
|
-
|
|
2496
|
-
|
|
2497
|
-
|
|
2498
|
-
|
|
2499
|
-
|
|
2500
|
-
|
|
2501
|
-
|
|
2502
|
-
|
|
2503
|
-
|
|
2504
|
-
|
|
2505
|
-
<div class="row">
|
|
2506
|
-
<Checkbox
|
|
2507
|
-
v-model="showCustomRegistryInput"
|
|
2508
|
-
class="mb-20"
|
|
2509
|
-
:label="t('cluster.privateRegistry.label')"
|
|
2510
|
-
@input="toggleCustomRegistry"
|
|
2511
|
-
/>
|
|
2512
|
-
</div>
|
|
2513
|
-
<div
|
|
2514
|
-
v-if="showCustomRegistryInput"
|
|
2515
|
-
class="row"
|
|
2516
|
-
>
|
|
2517
|
-
<div class="col span-6">
|
|
2518
|
-
<LabeledInput
|
|
2519
|
-
v-model="registryHost"
|
|
2520
|
-
label-key="catalog.chart.registry.custom.inputLabel"
|
|
2521
|
-
placeholder-key="catalog.chart.registry.custom.placeholder"
|
|
2522
|
-
:min-height="30"
|
|
2523
|
-
/>
|
|
2524
|
-
<SelectOrCreateAuthSecret
|
|
2525
|
-
v-model="registrySecret"
|
|
2526
|
-
:register-before-hook="registerBeforeHook"
|
|
2527
|
-
:hook-priority="1"
|
|
2528
|
-
:mode="mode"
|
|
2529
|
-
in-store="management"
|
|
2530
|
-
:allow-ssh="false"
|
|
2531
|
-
:allow-rke="true"
|
|
2532
|
-
:vertical="true"
|
|
2533
|
-
:namespace="value.metadata.namespace"
|
|
2534
|
-
generate-name="registryconfig-auth-"
|
|
2535
|
-
/>
|
|
2536
|
-
</div>
|
|
2537
|
-
</div>
|
|
2538
|
-
<template>
|
|
2539
|
-
<div
|
|
2540
|
-
v-if="showCustomRegistryInput"
|
|
2541
|
-
class="row"
|
|
2542
|
-
>
|
|
2543
|
-
<AdvancedSection
|
|
2544
|
-
class="col span-12 advanced"
|
|
2545
|
-
:is-open-by-default="showCustomRegistryAdvancedInput"
|
|
2546
|
-
:mode="mode"
|
|
2547
|
-
>
|
|
2548
|
-
<Banner
|
|
2549
|
-
:closable="false"
|
|
2550
|
-
class="cluster-tools-tip"
|
|
2551
|
-
color="info"
|
|
2552
|
-
:label-key="isK3s ? 'cluster.privateRegistry.docsLinkK3s' : 'cluster.privateRegistry.docsLinkRke2'"
|
|
2553
|
-
/>
|
|
2554
|
-
<RegistryMirrors
|
|
2555
|
-
v-model="value"
|
|
2556
|
-
class="mt-20"
|
|
2557
|
-
:mode="mode"
|
|
2558
|
-
/>
|
|
2559
|
-
<RegistryConfigs
|
|
2560
|
-
v-model="value"
|
|
2561
|
-
class="mt-20"
|
|
2562
|
-
:mode="mode"
|
|
2563
|
-
:cluster-register-before-hook="registerBeforeHook"
|
|
2564
|
-
@updateConfigs="updateConfigs"
|
|
2565
|
-
/>
|
|
2566
|
-
</AdvancedSection>
|
|
2567
|
-
</div>
|
|
2568
|
-
</template>
|
|
2256
|
+
<Registries
|
|
2257
|
+
v-model="value"
|
|
2258
|
+
:mode="mode"
|
|
2259
|
+
:register-before-hook="registerBeforeHook"
|
|
2260
|
+
:show-custom-registry-input="showCustomRegistryInput"
|
|
2261
|
+
:registry-host="registryHost"
|
|
2262
|
+
:registry-secret="registrySecret"
|
|
2263
|
+
:show-custom-registry-advanced-input="showCustomRegistryAdvancedInput"
|
|
2264
|
+
@update-configs-changed="updateConfigs"
|
|
2265
|
+
@custom-registry-changed="toggleCustomRegistry"
|
|
2266
|
+
@registry-host-changed="handleRegistryHostChanged"
|
|
2267
|
+
@registry-secret-changed="handleRegistrySecretChanged"
|
|
2268
|
+
/>
|
|
2569
2269
|
</Tab>
|
|
2570
2270
|
|
|
2571
2271
|
<!-- Add-on Config -->
|
|
2572
2272
|
<Tab
|
|
2573
2273
|
name="addons"
|
|
2574
2274
|
label-key="cluster.tabs.addons"
|
|
2575
|
-
@active="showAddons"
|
|
2275
|
+
@active="showAddons('tab-addOnConfig')"
|
|
2576
2276
|
>
|
|
2577
|
-
<
|
|
2578
|
-
|
|
2579
|
-
|
|
2580
|
-
|
|
2581
|
-
|
|
2582
|
-
|
|
2583
|
-
|
|
2584
|
-
|
|
2585
|
-
:
|
|
2586
|
-
|
|
2587
|
-
|
|
2588
|
-
|
|
2589
|
-
|
|
2590
|
-
>
|
|
2591
|
-
<h3>{{ labelForAddon(v.name) }}</h3>
|
|
2592
|
-
<Questions
|
|
2593
|
-
v-if="versionInfo[v.name] && versionInfo[v.name].questions && v.name && userChartValuesTemp[v.name]"
|
|
2594
|
-
v-model="userChartValuesTemp[v.name]"
|
|
2595
|
-
:emit="true"
|
|
2596
|
-
in-store="management"
|
|
2597
|
-
:mode="mode"
|
|
2598
|
-
:tabbed="false"
|
|
2599
|
-
:source="versionInfo[v.name]"
|
|
2600
|
-
:target-namespace="value.metadata.namespace"
|
|
2601
|
-
@updated="updateQuestions(v.name)"
|
|
2602
|
-
/>
|
|
2603
|
-
<YamlEditor
|
|
2604
|
-
v-else
|
|
2605
|
-
ref="yaml-values"
|
|
2606
|
-
:value="initYamlEditor(v.name)"
|
|
2607
|
-
:scrolling="true"
|
|
2608
|
-
:as-object="true"
|
|
2609
|
-
:editor-mode="mode === 'view' ? 'VIEW_CODE' : 'EDIT_CODE'"
|
|
2610
|
-
:hide-preview-buttons="true"
|
|
2611
|
-
@input="data => updateValues(v.name, data)"
|
|
2612
|
-
/>
|
|
2613
|
-
<div class="spacer" />
|
|
2614
|
-
</div>
|
|
2615
|
-
</div>
|
|
2616
|
-
|
|
2617
|
-
<div>
|
|
2618
|
-
<h3>
|
|
2619
|
-
{{ t('cluster.addOns.additionalManifest.title') }}
|
|
2620
|
-
<i
|
|
2621
|
-
v-clean-tooltip="t('cluster.addOns.additionalManifest.tooltip')"
|
|
2622
|
-
class="icon icon-info"
|
|
2623
|
-
/>
|
|
2624
|
-
</h3>
|
|
2625
|
-
<YamlEditor
|
|
2626
|
-
ref="yaml-additional"
|
|
2627
|
-
v-model="rkeConfig.additionalManifest"
|
|
2628
|
-
:editor-mode="mode === 'view' ? 'VIEW_CODE' : 'EDIT_CODE'"
|
|
2629
|
-
initial-yaml-values="# Additional Manifest YAML"
|
|
2630
|
-
class="yaml-editor"
|
|
2631
|
-
/>
|
|
2632
|
-
</div>
|
|
2277
|
+
<AddOnConfig
|
|
2278
|
+
ref="tab-addOnConfig"
|
|
2279
|
+
v-model="value"
|
|
2280
|
+
:mode="mode"
|
|
2281
|
+
:version-info="versionInfo"
|
|
2282
|
+
:addon-versions="addonVersions"
|
|
2283
|
+
:addons-rev="addonsRev"
|
|
2284
|
+
:user-chart-values-temp="userChartValuesTemp"
|
|
2285
|
+
:init-yaml-editor="initYamlEditor"
|
|
2286
|
+
@update-questions="syncChartValues"
|
|
2287
|
+
@update-values="updateValues"
|
|
2288
|
+
@additional-manifest-changed="updateAdditionalManifest"
|
|
2289
|
+
/>
|
|
2633
2290
|
</Tab>
|
|
2634
2291
|
|
|
2635
2292
|
<!-- Cluster Agent Configuration -->
|
|
@@ -2666,82 +2323,13 @@ export default {
|
|
|
2666
2323
|
name="advanced"
|
|
2667
2324
|
label-key="cluster.tabs.advanced"
|
|
2668
2325
|
:weight="-1"
|
|
2669
|
-
@active="refreshYamls"
|
|
2670
2326
|
>
|
|
2671
|
-
<
|
|
2672
|
-
|
|
2673
|
-
|
|
2674
|
-
|
|
2675
|
-
|
|
2676
|
-
|
|
2677
|
-
:add-label="t('cluster.advanced.argInfo.machineSelector.label')"
|
|
2678
|
-
:can-remove="canRemoveKubeletRow"
|
|
2679
|
-
:default-add-value="{machineLabelSelector: { matchExpressions: [], matchLabels: {} }, config: {'kubelet-arg': []}}"
|
|
2680
|
-
>
|
|
2681
|
-
<template #default="{row}">
|
|
2682
|
-
<template v-if="row.value.machineLabelSelector">
|
|
2683
|
-
<h3>{{ t('cluster.advanced.argInfo.machineSelector.title') }}</h3>
|
|
2684
|
-
<MatchExpressions
|
|
2685
|
-
v-model="row.value.machineLabelSelector"
|
|
2686
|
-
class="mb-20"
|
|
2687
|
-
:mode="mode"
|
|
2688
|
-
:show-remove="false"
|
|
2689
|
-
:initial-empty-row="true"
|
|
2690
|
-
/>
|
|
2691
|
-
<h3>{{ t('cluster.advanced.argInfo.machineSelector.subTitle') }}</h3>
|
|
2692
|
-
</template>
|
|
2693
|
-
<h3 v-else>
|
|
2694
|
-
{{ advancedTitleAlt }}
|
|
2695
|
-
</h3>
|
|
2696
|
-
|
|
2697
|
-
<ArrayList
|
|
2698
|
-
v-model="row.value.config['kubelet-arg']"
|
|
2699
|
-
:mode="mode"
|
|
2700
|
-
:add-label="t('cluster.advanced.argInfo.machineSelector.listLabel')"
|
|
2701
|
-
:initial-empty-row="!!row.value.machineLabelSelector"
|
|
2702
|
-
/>
|
|
2703
|
-
</template>
|
|
2704
|
-
</ArrayListGrouped>
|
|
2705
|
-
<Banner
|
|
2706
|
-
v-if="rkeConfig.machineSelectorConfig.length > 1"
|
|
2707
|
-
color="info"
|
|
2708
|
-
:label="t('cluster.advanced.argInfo.machineSelector.bannerLabel')"
|
|
2709
|
-
/>
|
|
2710
|
-
|
|
2711
|
-
<ArrayList
|
|
2712
|
-
v-if="serverArgs['kube-controller-manager-arg']"
|
|
2713
|
-
v-model="serverConfig['kube-controller-manager-arg']"
|
|
2714
|
-
:mode="mode"
|
|
2715
|
-
:title="t('cluster.advanced.argInfo.machineSelector.kubeControllerManagerTitle')"
|
|
2716
|
-
class="mb-20"
|
|
2717
|
-
/>
|
|
2718
|
-
<ArrayList
|
|
2719
|
-
v-if="serverArgs['kube-apiserver-arg']"
|
|
2720
|
-
v-model="serverConfig['kube-apiserver-arg']"
|
|
2721
|
-
:mode="mode"
|
|
2722
|
-
:title="t('cluster.advanced.argInfo.machineSelector.kubeApiServerTitle')"
|
|
2723
|
-
class="mb-20"
|
|
2724
|
-
/>
|
|
2725
|
-
<ArrayList
|
|
2726
|
-
v-if="serverArgs['kube-scheduler-arg']"
|
|
2727
|
-
v-model="serverConfig['kube-scheduler-arg']"
|
|
2728
|
-
:mode="mode"
|
|
2729
|
-
:title="t('cluster.advanced.argInfo.machineSelector.kubeSchedulerTitle')"
|
|
2730
|
-
/>
|
|
2731
|
-
</template>
|
|
2732
|
-
<template v-if="agentArgs['protect-kernel-defaults']">
|
|
2733
|
-
<div class="spacer" />
|
|
2734
|
-
|
|
2735
|
-
<div class="row">
|
|
2736
|
-
<div class="col span-12">
|
|
2737
|
-
<Checkbox
|
|
2738
|
-
v-model="agentConfig['protect-kernel-defaults']"
|
|
2739
|
-
:mode="mode"
|
|
2740
|
-
:label="t('cluster.advanced.agentArgs.label')"
|
|
2741
|
-
/>
|
|
2742
|
-
</div>
|
|
2743
|
-
</div>
|
|
2744
|
-
</template>
|
|
2327
|
+
<Advanced
|
|
2328
|
+
v-model="value"
|
|
2329
|
+
:mode="mode"
|
|
2330
|
+
:have-arg-info="haveArgInfo"
|
|
2331
|
+
:selected-version="selectedVersion"
|
|
2332
|
+
/>
|
|
2745
2333
|
</Tab>
|
|
2746
2334
|
|
|
2747
2335
|
<AgentEnv
|