@rancher/shell 0.3.5 → 0.3.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/assets/images/providers/outscale.svg +19 -0
  2. package/assets/styles/base/_basic.scss +18 -0
  3. package/assets/styles/base/_mixins.scss +0 -11
  4. package/assets/styles/base/_variables.scss +2 -4
  5. package/assets/styles/global/_button.scss +12 -2
  6. package/assets/translations/en-us.yaml +35 -1
  7. package/assets/translations/zh-hans.yaml +30 -10
  8. package/chart/gatekeeper.vue +3 -2
  9. package/chart/istio.vue +29 -3
  10. package/components/BrandImage.vue +1 -4
  11. package/components/Carousel.vue +85 -37
  12. package/components/EtcdInfoBanner.vue +7 -3
  13. package/components/ExplorerMembers.vue +100 -5
  14. package/components/ExplorerProjectsNamespaces.vue +32 -2
  15. package/components/GrafanaDashboard.vue +9 -2
  16. package/components/SortableTable/index.vue +23 -11
  17. package/components/SortableTable/selection.js +58 -50
  18. package/components/Wizard.vue +4 -2
  19. package/components/auth/AuthBanner.vue +6 -0
  20. package/components/auth/RoleDetailEdit.vue +2 -2
  21. package/components/form/HookOption.vue +14 -10
  22. package/components/form/Labels.vue +32 -27
  23. package/components/form/MatchExpressions.vue +2 -2
  24. package/components/form/Members/ClusterPermissionsEditor.vue +32 -7
  25. package/components/form/NameNsDescription.vue +1 -1
  26. package/components/form/ProjectMemberEditor.vue +46 -21
  27. package/components/form/Tolerations.vue +4 -1
  28. package/components/form/ValueFromResource.vue +14 -9
  29. package/components/form/WorkloadPorts.vue +2 -2
  30. package/components/form/__tests__/NameNsDescription.ts +27 -0
  31. package/components/formatter/WorkloadHealthScale.vue +8 -2
  32. package/components/nav/NamespaceFilter.vue +8 -0
  33. package/{nuxt/components → components/nuxt}/nuxt.js +1 -1
  34. package/{nuxt → config}/middleware.js +8 -8
  35. package/config/product/explorer.js +24 -3
  36. package/config/query-params.js +1 -0
  37. package/config/router.js +1 -1
  38. package/{nuxt → config}/store.js +82 -79
  39. package/config/table-headers.js +46 -12
  40. package/config/types.js +7 -0
  41. package/core/plugin.ts +4 -2
  42. package/core/types.ts +258 -1
  43. package/creators/app/files/tsconfig.json +0 -1
  44. package/creators/app/files/vue.config.js +0 -1
  45. package/creators/pkg/files/.github/workflows/build-extension.yml +3 -4
  46. package/creators/pkg/files/tsconfig.json +0 -1
  47. package/creators/pkg/pkg.package.json +3 -3
  48. package/detail/constraints.gatekeeper.sh.constraint.vue +14 -7
  49. package/detail/fleet.cattle.io.clustergroup.vue +7 -1
  50. package/edit/auth/ldap/config.vue +21 -1
  51. package/edit/auth/saml.vue +132 -37
  52. package/edit/fleet.cattle.io.gitrepo.vue +16 -1
  53. package/edit/logging.banzaicloud.io.output/index.vue +18 -5
  54. package/edit/logging.banzaicloud.io.output/providers/loki.vue +1 -0
  55. package/edit/namespace.vue +12 -8
  56. package/edit/provisioning.cattle.io.cluster/MachinePool.vue +11 -4
  57. package/edit/provisioning.cattle.io.cluster/import.vue +23 -25
  58. package/edit/provisioning.cattle.io.cluster/rke2.vue +96 -18
  59. package/edit/workload/mixins/workload.js +6 -7
  60. package/edit/workload/storage/Mount.vue +3 -3
  61. package/initialize/App.js +206 -0
  62. package/{nuxt → initialize}/client.js +406 -360
  63. package/{nuxt → initialize}/index.js +21 -22
  64. package/layouts/standalone.vue +13 -0
  65. package/list/catalog.cattle.io.clusterrepo.vue +1 -0
  66. package/list/rbac.authorization.k8s.io.clusterrolebinding.vue +48 -0
  67. package/list/workload.vue +6 -4
  68. package/mixins/chart.js +29 -1
  69. package/mixins/fetch.client.js +95 -0
  70. package/{nuxt/mixins → mixins}/fetch.server.js +30 -26
  71. package/mixins/labeled-form-element.ts +2 -2
  72. package/models/constraints.gatekeeper.sh.constraint.js +37 -0
  73. package/models/pod.js +4 -0
  74. package/models/rbac.authorization.k8s.io.clusterrolebinding.js +16 -0
  75. package/models/rbac.authorization.k8s.io.rolebinding.js +16 -0
  76. package/package.json +9 -13
  77. package/pages/c/_cluster/apps/charts/install.vue +61 -39
  78. package/pages/diagnostic.vue +32 -25
  79. package/pages/rio/mesh.vue +1 -2
  80. package/pkg/tsconfig.json +0 -1
  81. package/plugins/clean-html-directive.js +3 -0
  82. package/plugins/dashboard-store/index.js +1 -1
  83. package/plugins/plugin.js +0 -14
  84. package/plugins/portal-vue.js +4 -0
  85. package/rancher-components/components/Banner/Banner.test.ts +3 -5
  86. package/rancher-components/components/Banner/Banner.vue +1 -0
  87. package/rancher-components/components/Form/Radio/RadioButton.test.ts +31 -0
  88. package/rancher-components/components/Form/Radio/RadioButton.vue +14 -3
  89. package/scripts/extension/publish +42 -23
  90. package/scripts/serve-pkgs +6 -2
  91. package/store/type-map.js +1 -1
  92. package/tsconfig.json +0 -1
  93. package/types/rancher/index.d.ts +2 -0
  94. package/types/shell/index.d.ts +353 -284
  95. package/utils/__tests__/grafana.test.ts +44 -0
  96. package/utils/axios.js +190 -0
  97. package/{nuxt → utils}/cookie-universal-nuxt.js +7 -6
  98. package/utils/dom.js +15 -0
  99. package/utils/gc/gc.ts +1 -1
  100. package/utils/grafana.js +35 -16
  101. package/{nuxt/utils.js → utils/nuxt.js} +265 -236
  102. package/utils/router.scrollBehavior.js +1 -1
  103. package/vue.config.js +30 -19
  104. package/nuxt/App.js +0 -210
  105. package/nuxt/axios.js +0 -186
  106. package/nuxt/empty.js +0 -1
  107. package/nuxt/jsonp.js +0 -82
  108. package/nuxt/loading.html +0 -39
  109. package/nuxt/mixins/fetch.client.js +0 -90
  110. package/nuxt/portal-vue.js +0 -4
  111. package/nuxt/server.js +0 -312
  112. package/nuxt/views/app.template.html +0 -9
  113. package/nuxt/views/error.html +0 -23
  114. package/plugins/dashboard-store/extensions.js +0 -22
  115. /package/{nuxt/components → components/nuxt}/nuxt-build-indicator.vue +0 -0
  116. /package/{nuxt/components → components/nuxt}/nuxt-child.js +0 -0
  117. /package/{nuxt/components → components/nuxt}/nuxt-error.vue +0 -0
  118. /package/{nuxt/components → components/nuxt}/nuxt-link.client.js +0 -0
  119. /package/{nuxt/components → components/nuxt}/nuxt-link.server.js +0 -0
  120. /package/{nuxt/components → components/nuxt}/nuxt-loading.vue +0 -0
@@ -0,0 +1,19 @@
1
+ <svg height="590" preserveAspectRatio="xMidYMid meet" width="607" xmlns="http://www.w3.org/2000/svg"
2
+ style="">
3
+ <rect id="backgroundrect" width="100%" height="100%" x="0" y="0" fill="none" stroke="none" />
4
+
5
+ <g class="currentLayer" style="">
6
+ <title>Layer 1</title>
7
+ <g id="svg_1" class="">
8
+ <path
9
+ d="m297.00000850856304,0.9336278513073921 c-37.30000055581331,2.600000038743019 -75.60000112652779,10.800000160932541 -88.30000131577253,18.900000281631947 c-3.9000000581145287,2.400000035762787 -4.700000070035458,3.500000052154064 -4.700000070035458,5.900000087916851 c0,3.8000000566244125 3.7000000551342964,6.500000096857548 12.10000018030405,8.800000131130219 c5.200000077486038,1.4000000208616257 10.600000157952309,1.700000025331974 28.90000043064356,1.5000000223517418 c49.0000007301569,-0.30000000447034836 87.70000130683184,4.200000062584877 112.80000168085098,12.90000019222498 c18.900000281631947,6.70000009983778 25.200000375509262,13.300000198185444 25.200000375509262,26.600000396370888 c-0.10000000149011612,18.500000275671482 -14.000000208616257,40.50000060349703 -46.40000069141388,72.90000108629465 c-20.40000030398369,20.40000030398369 -39.40000058710575,36.700000546872616 -65.1000009700656,55.90000083297491 c-29.10000043362379,21.700000323355198 -43.700000651180744,34.50000051409006 -46.60000069439411,40.90000060945749 c-1.600000023841858,3.500000052154064 -0.4000000059604646,7.1000001057982445 2.9000000432133675,8.50000012665987 c10.500000156462193,4.400000065565109 54.40000081062317,-15.20000022649765 97.70000145584345,-43.60000064969063 c66.30000098794699,-43.50000064820051 111.30000165849924,-93.20000138878822 120.00000178813934,-132.7000019773841 c2.3000000342726707,-10.200000151991844 1.700000025331974,-24.70000036805868 -1.4000000208616257,-32.600000485777855 c-7.600000113248825,-19.900000296533108 -33.20000049471855,-34.400000512599945 -72.20000107586384,-40.90000060945749 c-23.400000348687172,-3.9000000581145287 -48.20000071823597,-4.90000007301569 -74.90000111609697,-3.0000000447034836 z"
10
+ stroke-width="0" id="svg_2" />
11
+ <path
12
+ d="m462.00001096725464,198.9336308017373 c-38.40000057220459,4.200000062584877 -65.70000097900629,16.100000239908695 -80.40000119805336,35.200000524520874 c-13.500000201165676,17.50000026077032 -12.300000183284283,38.60000057518482 3.9000000581145287,66.60000099241734 c9.80000014603138,16.900000251829624 22.600000336766243,33.5000004991889 60.200000897049904,77.60000115633011 c27.500000409781933,32.40000048279762 32.100000478327274,38.10000056773424 39.300000585615635,48.800000727176666 c15.600000232458115,23.400000348687172 16.300000242888927,40.40000060200691 2.0000000298023224,47.70000071078539 c-16.20000024139881,8.300000123679638 -41.40000061690807,10.900000162422657 -140.00000208616257,14.500000216066837 c-23.400000348687172,0.9000000134110452 -43.80000065267086,2.400000035762787 -48.50000072270632,3.6000000536441807 c-5.700000084936619,1.5000000223517418 -8.50000012665987,4.400000065565109 -8.50000012665987,9.00000013411045 c0,7.600000113248825 8.200000122189522,11.10000016540289 35.200000524520874,15.300000227987766 c86.70000129193068,13.40000019967556 161.60000240802765,12.10000018030405 200.70000299066305,-3.500000052154064 c29.000000432133675,-11.60000017285347 45.200000673532486,-34.60000051558018 42.100000627338886,-59.60000088810921 c-3.1000000461935997,-24.00000035762787 -20.800000309944153,-49.70000074058771 -82.10000122338533,-119.50000178068876 c-33.80000050365925,-38.500000573694706 -42.900000639259815,-53.30000079423189 -42.900000639259815,-70.00000104308128 c0,-11.200000166893005 5.100000075995922,-16.900000251829624 18.900000281631947,-21.200000315904617 c15.800000235438347,-4.90000007301569 30.100000448524952,-6.3000000938773155 85.40000127255917,-8.100000120699406 c45.80000068247318,-1.5000000223517418 52.700000785291195,-2.3000000342726707 57.40000085532665,-6.70000009983778 c6.800000101327896,-6.400000095367432 -2.3000000342726707,-14.900000222027302 -21.200000315904617,-19.700000293552876 c-8.800000131130219,-2.2000000327825546 -33.00000049173832,-6.400000095367432 -50.00000074505806,-8.700000129640102 c-13.300000198185444,-1.8000000268220901 -59.50000088661909,-2.7000000402331352 -71.50000106543303,-1.3000000193715096 z"
13
+ stroke-width="0" id="svg_3" />
14
+ <path
15
+ d="m164.50000653415918,281.2336320281029 c-45.10000067204237,5.000000074505806 -81.50000121444464,13.90000020712614 -91.50000136345625,22.20000033080578 c-3.9000000581145287,3.300000049173832 -3.9000000581145287,6.500000096857548 0,9.80000014603138 c6.400000095367432,5.300000078976154 19.500000290572643,6.70000009983778 57.50000085681677,5.900000087916851 c80.0000011920929,-1.700000025331974 127.2000018954277,8.900000132620335 138.60000206530094,30.90000046044588 c3.0000000447034836,5.800000086426735 3.7000000551342964,18.900000281631947 1.5000000223517418,27.500000409781933 c-5.100000075995922,19.500000290572643 -19.900000296533108,40.80000060796738 -45.80000068247318,65.90000098198652 c-41.100000612437725,39.90000059455633 -100.80000150203705,75.30000112205744 -127.60000190138817,75.80000112950802 c-6.3000000938773155,0.10000000149011612 -7.600000113248825,-0.20000000298023224 -8.900000132620335,-1.9000000283122063 c-5.800000086426735,-7.800000116229057 10.500000156462193,-44.00000065565109 51.60000076889992,-114.40000170469284 c13.600000202655792,-23.20000034570694 19.200000286102295,-35.50000052899122 19.400000289082527,-42.60000063478947 c0.20000000298023224,-5.700000084936619 -1.5000000223517418,-7.500000111758709 -7.300000108778477,-7.500000111758709 c-3.8000000566244125,0 -5.900000087916851,0.800000011920929 -10.700000159442425,3.9000000581145287 c-7.900000117719173,5.100000075995922 -14.70000021904707,13.200000196695328 -34.400000512599945,40.80000060796738 c-35.00000052154064,48.90000072866678 -60.10000089555979,88.60000132024288 -82.70000123232603,130.40000194311142 c-18.30000027269125,33.70000050216913 -24.2000003606081,47.300000704824924 -24.2000003606081,55.40000082552433 c0,6.200000092387199 1.5000000223517418,7.000000104308128 12.400000184774399,6.800000101327896 c33.5000004991889,-0.6000000089406967 114.10000170022249,-30.90000046044588 173.80000258982182,-65.20000097155571 c79.80000118911266,-45.80000068247318 130.80000194907188,-98.90000147372484 150.40000224113464,-156.60000233352184 c3.400000050663948,-9.80000014603138 3.8000000566244125,-12.10000018030405 3.7000000551342964,-20.500000305473804 c0,-11.10000016540289 -2.1000000312924385,-17.50000026077032 -8.600000128149986,-27.3000004068017 c-12.300000183284283,-18.200000271201134 -44.40000066161156,-32.00000047683716 -88.700001321733,-38.20000056922436 c-15.70000023394823,-2.2000000327825546 -62.30000092834234,-2.8000000417232513 -78.50000116974115,-1.1000000163912773 z"
16
+ stroke-width="0" id="svg_4" />
17
+ </g>
18
+ </g>
19
+ </svg>
@@ -1,3 +1,5 @@
1
+ @import "./mixins";
2
+
1
3
  // -----------------------------------------------------------------------------
2
4
  // This file contains very basic styles.
3
5
  // -----------------------------------------------------------------------------
@@ -109,3 +111,19 @@ HR.vertical {
109
111
  margin-left: -1px;
110
112
  top: 0;
111
113
  }
114
+
115
+ // --------------------------------------------------------------------------------------------------------
116
+ // These were declared in _mixins, but that results in these styles being declared for every Vue component
117
+ // Moved here, as these are styles and mixins should only include mixing definitions, not style definitions
118
+ // --------------------------------------------------------------------------------------------------------
119
+
120
+ .clearfix { @include clearfix; }
121
+ .list-unstyled { @include list-unstyled }
122
+ .no-select { @include no-select }
123
+ .no-resize { @include no-resize }
124
+ .hand { @include hand }
125
+ .fixed { @include fixed }
126
+ .clip { @include clip }
127
+ .force-wrap { @include force-wrap }
128
+ .bordered-section { @include bordered-section }
129
+ .section-divider { @include section-divider }
@@ -63,17 +63,6 @@
63
63
  margin-top: 20px;
64
64
  }
65
65
 
66
- .clearfix { @include clearfix; }
67
- .list-unstyled { @include list-unstyled }
68
- .no-select { @include no-select }
69
- .no-resize { @include no-resize }
70
- .hand { @include hand }
71
- .fixed { @include fixed }
72
- .clip { @include clip }
73
- .force-wrap { @include force-wrap }
74
- .bordered-section { @include bordered-section }
75
- .section-divider { @include section-divider }
76
-
77
66
  /// Sets the specified background color and calculates a dark or light contrasted text color.
78
67
  @mixin contrasted($background-color, $dark: $contrasted-dark, $light: $contrasted-light) {
79
68
  color: contrast-color($background-color, $dark, $light);
@@ -52,9 +52,7 @@ $breakpoints: (
52
52
 
53
53
  $font-size-h2: 21px;
54
54
 
55
- /*
56
- * Global spacing variables
57
- */
55
+ // Global spacing variables
58
56
  $space-s: 10px;
59
57
  $space-m: 20px;
60
- $space-l: 40px;
58
+ $space-l: 40px;
@@ -87,7 +87,7 @@ button,
87
87
 
88
88
  &:hover, &._hover {
89
89
  color: var(--lightest) !important;
90
- }
90
+ }
91
91
 
92
92
  &:focus, &.focused {
93
93
  background-color: var(--primary-hover-bg);
@@ -120,7 +120,17 @@ button,
120
120
 
121
121
  .role-link {
122
122
  background: transparent;
123
- color: var(--link) !important;
123
+ color: var(--link);
124
+
125
+ &:hover, &._hover {
126
+ color: var(--lightest);
127
+ }
128
+
129
+ &:focus, &.focused {
130
+ background: transparent;
131
+ color: var(--link);
132
+ box-shadow: none;
133
+ }
124
134
  }
125
135
 
126
136
  .role-multi-action {
@@ -455,7 +455,13 @@ authConfig:
455
455
  objectClass: Object Class
456
456
  password: Password
457
457
  port: Port
458
+ protocol: Protocol
459
+ protocols:
460
+ starttls: Start TLS
461
+ ldap: LDAP
462
+ tls: LDAPS (TLS)
458
463
  customizeSchema: Customize Schema
464
+ oktaSchema: 'The defaults below are for a generic OpenLDAP server. For more information on the values to use when using the Okta LDAP interface, see: <a target="_blank" rel="noopener noreferrer nofollow" href="https://help.okta.com/en-us/Content/Topics/Directory/LDAP-interface-connection-settings.htm">Okta LDAP Interface connection settings</a>'
459
465
  users: Users
460
466
  groups: Groups
461
467
  searchAttribute: Search Attribute
@@ -500,6 +506,13 @@ authConfig:
500
506
  shibboleth: Configure a Shibboleth account
501
507
  showLdap: Configure an OpenLDAP Server
502
508
  userName: User Name Field
509
+ search:
510
+ title: User and Group Search
511
+ message: The SAML Protocol does not support search or lookup for users or groups. In order to enabled search, an OpenLDAP server must be configured.
512
+ on: LDAP User and Group search has been configured
513
+ off: LDAP User and Group search is not configured
514
+ show: Show details
515
+ hide: Hide details
503
516
  azuread:
504
517
  tenantId: Tenant ID
505
518
  applicationId: Application ID
@@ -1681,11 +1694,17 @@ cluster:
1681
1694
  label: Drain Before Delete
1682
1695
  role:
1683
1696
  label: Roles
1697
+ etcd: etcd
1698
+ controlPlane: Control Plane
1699
+ worker: Worker
1684
1700
  labels:
1685
1701
  label: Kubernetes Node Labels
1686
1702
  noAccessBanner: "You do not have access to see this machine pool's configuration."
1687
1703
  configNotFound: "We could not find this machine pool's configuration. We recommend that you create a new cluster with the desired configuration."
1688
1704
  noPoolsDisclaimer: You do not have any machine pools defined, click the plus to add one.
1705
+ truncationPool: "Hostname truncation has been manually configured for this pool to {limit}"
1706
+ truncationCluster: "Hostname truncation has been manually configured for this cluster to {limit}"
1707
+
1689
1708
  autoReplace:
1690
1709
  label: Auto Replace
1691
1710
  toolTip: If greater than 0, nodes that are unreachable for this duration will be automatically deleted and replaced.
@@ -1828,6 +1847,7 @@ cluster:
1828
1847
  label: Drain Nodes
1829
1848
  toolTip: Draining preemptively removes the pods on each node so there are no running workloads on the nodes being upgraded. Upgrading without draining is faster and causes less shuffling around, but pods may still be restarted depending on the upgrade being performed.
1830
1849
  deleteEmptyDir: "By default, pods using emptyDir volumes will be deleted on upgrade. Operations reliant on emptyDir volumes persisting through the pod's lifecycle may be impacted."
1850
+ truncateHostnames: Truncate hostnames to 15 characters for NetBIOS compatibility.
1831
1851
  address:
1832
1852
  tooltip: Cluster networking values cannot be changed after the cluster is created.
1833
1853
  header: Addressing
@@ -2107,6 +2127,10 @@ fleet:
2107
2127
  noRepos: No repositories have been added
2108
2128
  noWorkspaces: There are no workspaces. <br/> Please create a workspace before adding repositories
2109
2129
  protocolBanner: Enter a valid HTTPS or SSH URL to a git repository.
2130
+ resources:
2131
+ label: 'Resource Handling'
2132
+ keepResources: Keep resources after deletion
2133
+ resourceBanner: When enabled above, resources will be kept when deleting a GitRepo or Bundle - only Helm release secrets will be deleted.
2110
2134
  add:
2111
2135
  steps:
2112
2136
  repoInfo:
@@ -2197,6 +2221,7 @@ footer:
2197
2221
  slack: Slack
2198
2222
 
2199
2223
  gatekeeperConstraint:
2224
+ downloadViolations: Download Violations
2200
2225
  match:
2201
2226
  title: Match
2202
2227
  tab:
@@ -2228,7 +2253,7 @@ gatekeeperConstraint:
2228
2253
  action: Enforcement Action
2229
2254
  violations:
2230
2255
  title: "Violations: {total}"
2231
- notAll: Not all are shown - the constraint only includes details for {shown}
2256
+ notAll: Not all are shown due to the configured OPA Gatekeeper constraint violation limit - the constraint only includes details for {shown}
2232
2257
 
2233
2258
  gatekeeperIndex:
2234
2259
  poweredBy: OPA Gatekeeper
@@ -2607,6 +2632,7 @@ istio:
2607
2632
  kiali: Enable Kiali
2608
2633
  pilot: Enable Pilot
2609
2634
  policy: Enable Policy
2635
+ pilotRequired: Pilot must be enabled in order to enable Kiali
2610
2636
  poweredBy: Powered by <a target="_blank" rel="noopener noreferrer nofollow" href='https://istio.io/latest/'>Istio</a>
2611
2637
  telemetry: Enable Telemetry
2612
2638
  titles:
@@ -2775,6 +2801,7 @@ logging:
2775
2801
  sslClientCertKey: Cert Key from Secret
2776
2802
  loki:
2777
2803
  url: URL
2804
+ urlInvalid: Incorrect URL format. Please check and correct your URL format before saving.
2778
2805
  tenant: Tenant
2779
2806
  username: User from Secret
2780
2807
  password: Password from Secret
@@ -2976,6 +3003,8 @@ members:
2976
3003
  clusterMembers: Cluster Members
2977
3004
  clusterAndProject: Cluster and Project Members
2978
3005
  createActionLabel: Add
3006
+ clusterMemebership: Cluster Membership
3007
+ projectMembership: Project Memebership
2979
3008
  clusterPermissions:
2980
3009
  noDescription: User created - no description
2981
3010
  label: Cluster Permissions
@@ -3000,6 +3029,7 @@ members:
3000
3029
  custom:
3001
3030
  label: Custom
3002
3031
  description: Choose individual roles for this user.
3032
+ lockedRole: This role is locked.
3003
3033
  localClusterWarning: "Caution: This is the cluster that Rancher is using as a data store. Only administrators should be given write access to this cluster. Users with write access to this cluster can use it to grant themselves access to any part of this installation."
3004
3034
  noRolesAssigned: There are no users assigned to this project.
3005
3035
 
@@ -3342,6 +3372,7 @@ namespace:
3342
3372
  resourceQuotas: Resource Quotas
3343
3373
  project:
3344
3374
  label: Project
3375
+ none: (None)
3345
3376
  resources: Resources
3346
3377
  enableAutoInjection: Enable Istio Auto Injection
3347
3378
  disableAutoInjection: Disable Istio Auto Injection
@@ -4537,6 +4568,7 @@ resourceTable:
4537
4568
  namespace: Group by Namespace
4538
4569
  project: Group by Project
4539
4570
  node: Group by Node
4571
+ role: Group by Role
4540
4572
  cluster: Group by Cluster
4541
4573
  groupLabel:
4542
4574
  cluster: "<span>Cluster:</span> {name}"
@@ -5196,6 +5228,7 @@ tableHeaders:
5196
5228
  clusterGroups: Cluster Groups
5197
5229
  commit: Commit
5198
5230
  condition: Condition
5231
+ constraint: Constraint
5199
5232
  completions: Completions
5200
5233
  count: Count
5201
5234
  createdAt: Created At
@@ -5361,6 +5394,7 @@ tableHeaders:
5361
5394
  target: Target
5362
5395
  targetKind: Target Type
5363
5396
  targetPort: Target
5397
+ template: Template
5364
5398
  type: Type
5365
5399
  updated: Updated
5366
5400
  up-to-date: Up To Date
@@ -22,6 +22,7 @@ generic:
22
22
  disabled: 禁用
23
23
  done: 完成
24
24
  enabled: 启用
25
+ here: 此处
25
26
  id: ID
26
27
  ignored: 忽略
27
28
  invalidCron: 无效的 cron 调度
@@ -1321,8 +1322,9 @@ cluster:
1321
1322
  manageAction: 管理
1322
1323
  kubernetesVersion:
1323
1324
  label: Kubernetes 版本
1324
- experimental: 实验功能
1325
- deprecated: 已弃用
1325
+ current: (当前)
1326
+ experimental: (实验功能)
1327
+ deprecated: (已弃用)
1326
1328
  deprecatedPatches: 显示已弃用的 Kubernetes 补丁版本
1327
1329
  deprecatedPatchWarning: 建议为每个 Kubernetes 次要版本使用最新的补丁版本,已弃用的补丁版本可能对迁移有用。
1328
1330
  toolsTip: 使用新集群工具来管理和安装 Monitoring、Logging 等工具。
@@ -1631,7 +1633,7 @@ cluster:
1631
1633
  invalidPsps: 你在此集群中有一个或多个 PSP 资源。Pod 安全策略在 Kubernetes v1.25 中不可用并将自动删除。
1632
1634
  haveArgInfo: 所选 Kubernetes 版本的配置信息不可用。此屏幕中可用的选项将受到限制,你可能需要使用 YAML 编辑器。
1633
1635
  deprecatedPsp: Pod 安全策略自 Kubernetes v1.21 起已弃用,并已在 Kubernetes v1.25 中删除。
1634
- removedPsp: Pod 安全策略已在 Kubernetes v1.25 中删除,请改用 PodSecurity Admission。
1636
+ removedPsp: Pod 安全策略已在 Kubernetes v1.25 中删除,请改用 Pod Security Admission。
1635
1637
  rkeTemplateUpgrade: 模板修订版 {name} 可用于升级
1636
1638
 
1637
1639
  availabilityWarnings:
@@ -1658,15 +1660,15 @@ cluster:
1658
1660
  tooltip:
1659
1661
  controlPlane: |-
1660
1662
  {count, plural,
1661
- =0 { 一个集群需要至少1个可用的 Control Plane 节点。}
1662
- =1 { 只有1个 Control Plane 节点的集群是不具备容错能力的。}
1663
+ =0 { 一个集群需要至少 1 个可用的 Control Plane 节点。}
1664
+ =1 { 只有 1 个 Control Plane 节点的集群是不具备容错能力的。}
1663
1665
  other {}
1664
1666
  }
1665
1667
  etcd: |-
1666
1668
  {count, plural,
1667
- =0 { 一个集群需要至少1个可用的 ETCD 节点。}
1668
- =1 { 只有1个 ETCD 节点的集群是不具备容错能力的。}
1669
- =2 { 集群的节点数需要是奇数。只有2个 ETCD 节点的集群是不具备容错能力的。}
1669
+ =0 { 一个集群需要至少 1 个可用的 ETCD 节点。}
1670
+ =1 { 只有 1 个 ETCD 节点的集群是不具备容错能力的。}
1671
+ =2 { 集群的节点数需要是奇数。只有 2 个 ETCD 节点的集群是不具备容错能力的。}
1670
1672
  =3 {}
1671
1673
  =4 { 集群的节点数需要是奇数。}
1672
1674
  =5 {}
@@ -1677,7 +1679,7 @@ cluster:
1677
1679
  worker: |-
1678
1680
  {count, plural,
1679
1681
  =0 { 一个集群需要至少 1 个可用的 Worker 节点。}
1680
- =1 { 只有1个 Worker 节点的集群是不具备容错能力的。}
1682
+ =1 { 只有 1 个 Worker 节点的集群是不具备容错能力的。}
1681
1683
  other {}
1682
1684
  }
1683
1685
  quantity:
@@ -1687,11 +1689,17 @@ cluster:
1687
1689
  label: 删除前清空
1688
1690
  role:
1689
1691
  label: 角色
1692
+ etcd: ETCD
1693
+ controlPlane: Control Plane
1694
+ worker: Worker
1690
1695
  labels:
1691
1696
  label: Kubernetes 节点标签
1692
1697
  noAccessBanner: "你没有查看此主机池配置的权限。"
1693
1698
  configNotFound: "找不到这个主机池的配置。建议你创建一个具有所需配置的新集群。"
1694
1699
  noPoolsDisclaimer: 你没有定义任何主机池,请单击加号进行添加。
1700
+ truncationPool: "已手动将此主机池的主机名截断配置为 {limit}"
1701
+ truncationCluster: "已手动将此集群的主机名截断配置为 {limit}"
1702
+
1695
1703
  autoReplace:
1696
1704
  label: 自动替换
1697
1705
  toolTip: 如果大于 0,则在此期间无法访问的节点将被自动删除和替换。
@@ -1834,6 +1842,7 @@ cluster:
1834
1842
  label: 清空节点
1835
1843
  toolTip: 清空操作预先移除每个节点上的 Pod,使得升级中的节点上没有运行的工作负载。不清空的升级速度更快,造成的混乱更少,但是 Pod 仍可能根据进行中的升级进行重启。
1836
1844
  deleteEmptyDir: "默认情况下,使用 emptyDir 卷的 pod 会在升级时被删除。在 pod 生命周期中依赖于 emptyDir 持久卷的操作可能会受到影响。"
1845
+ truncateHostnames: 将主机名截断为 15 个字符来兼容 NetBIOS。
1837
1846
  address:
1838
1847
  tooltip: 创建集群后无法更改集群网络值。
1839
1848
  header: 寻址
@@ -2113,6 +2122,10 @@ fleet:
2113
2122
  noRepos: 未添加任何仓库
2114
2123
  noWorkspaces: 没有工作空间。<br/>请在添加仓库之前创建一个工作空间
2115
2124
  protocolBanner: 输入指向 git 仓库的有效 HTTPS 或 SSH URL。
2125
+ resources:
2126
+ label: '资源处理'
2127
+ keepResources: 删除后保留资源
2128
+ resourceBanner: 启用时,删除 GitRepo 或 Bundle 后将保留资源,只会删除 Helm Release Secret。
2116
2129
  add:
2117
2130
  steps:
2118
2131
  repoInfo:
@@ -2191,7 +2204,7 @@ fleet:
2191
2204
  restrictions:
2192
2205
  addTitle: 'allowedTargetNamespaces'
2193
2206
  addLabel: 添加
2194
- banner: "{count, plural, =0 { 在这里设置 allowedTargetNamespaces 会创建一个 GitRepoRestriction。} other { 只有 GitRepoRestriction.allowedTargetNamespaces 在此处管理,你可以进行其他更改。} }"
2207
+ banner: "{count, plural, =0 { 在这里添加命名空间会创建一个 GitRepoRestriction。} other { 只有 Git Repo Restriction 的 <code>allowedTargetNamespaces</code> 在此处管理,你可以对 Git Repo Restriction 进行其他更改。} }"
2195
2208
  footer:
2196
2209
  docs: Rancher 官方文档
2197
2210
  download: 下载 CLI
@@ -2613,6 +2626,7 @@ istio:
2613
2626
  kiali: 启用 Kiali
2614
2627
  pilot: 启用 Pilot
2615
2628
  policy: 启用 Policy
2629
+ pilotRequired: 必须启用 Pilot 才能启用 Kiali
2616
2630
  poweredBy: 由 <a target="_blank" rel="noopener noreferrer nofollow" href='https://istio.io/latest/'>Istio</a> 提供支持
2617
2631
  telemetry: 启用遥测
2618
2632
  titles:
@@ -2982,6 +2996,8 @@ members:
2982
2996
  clusterMembers: 集群成员
2983
2997
  clusterAndProject: 集群和项目成员
2984
2998
  createActionLabel: 添加
2999
+ clusterMemebership: 集群成员
3000
+ projectMembership: 项目成员
2985
3001
  clusterPermissions:
2986
3002
  noDescription: 已创建用户 - 没有描述
2987
3003
  label: 集群权限
@@ -3006,6 +3022,7 @@ members:
3006
3022
  custom:
3007
3023
  label: 自定义
3008
3024
  description: 为该用户自定义角色。
3025
+ lockedRole: 该角色已锁定。
3009
3026
  localClusterWarning: "注意:这是 Rancher 用来存储数据的集群。只有管理员才应该对该集群有写权限。能够写入此集群的用户可以授权自己访问该安装的任何内容。"
3010
3027
  noRolesAssigned: 没有分配给该项目的用户。
3011
3028
 
@@ -3348,6 +3365,7 @@ namespace:
3348
3365
  resourceQuotas: 资源配额
3349
3366
  project:
3350
3367
  label: 项目
3368
+ none: (None)
3351
3369
  resources: 资源
3352
3370
  enableAutoInjection: 启用 Istio 自动注入
3353
3371
  disableAutoInjection: 禁用 Istio 自动注入
@@ -4194,6 +4212,7 @@ projectNamespaces:
4194
4212
  label: 项目/命名空间
4195
4213
  noNamespaces: 没有定义的命名空间。
4196
4214
  noProjectNoNamespaces: 所有命名空间都在一个项目中
4215
+ isIstioInjectionEnabled: 为此命名空间启用了 Istio 自动 Sidecar 注入
4197
4216
 
4198
4217
  prometheusRule:
4199
4218
  alertingRules:
@@ -4542,6 +4561,7 @@ resourceTable:
4542
4561
  namespace: 按命名空间分组
4543
4562
  project: 按项目分组
4544
4563
  node: 按节点分组
4564
+ role: 按角色分组
4545
4565
  cluster: 按集群分组
4546
4566
  groupLabel:
4547
4567
  cluster: "<span>集群:</span> {name}"
@@ -27,12 +27,13 @@ export default {
27
27
  get() {
28
28
  const crdInfo = this.autoInstallInfo.find(info => info.chart.name.includes('crd'));
29
29
 
30
- return crdInfo ? crdInfo.values : null;
30
+ // values are defaults from the chart; allValues are defaults + anything set on previous install if this is an update/upgrade
31
+ return crdInfo ? crdInfo.allValues : null;
31
32
  },
32
33
  set(values) {
33
34
  const crdInfo = this.autoInstallInfo.find(info => info.chart.name.includes('crd'));
34
35
 
35
- this.$set(crdInfo, 'values', values);
36
+ this.$set(crdInfo, 'allValues', values);
36
37
  }
37
38
  }
38
39
  }
package/chart/istio.vue CHANGED
@@ -74,7 +74,10 @@ export default {
74
74
  overlayFile = defaultOverlayFile;
75
75
  }
76
76
 
77
- return { overlayFile };
77
+ return {
78
+ overlayFile,
79
+ showKialiBanner: this.value.kiali?.enabled
80
+ };
78
81
  },
79
82
 
80
83
  computed: {
@@ -121,6 +124,15 @@ export default {
121
124
 
122
125
  onFileSelected(value) {
123
126
  this.$refs['yaml-editor'].updateValue(value);
127
+ },
128
+
129
+ changeKiali(value) {
130
+ if (value && this.value.pilot) {
131
+ this.value.pilot.enabled = true;
132
+ this.showKialiBanner = true;
133
+ } else if (!value) {
134
+ this.showKialiBanner = false;
135
+ }
124
136
  }
125
137
  }
126
138
  };
@@ -138,7 +150,7 @@ export default {
138
150
  <h3>
139
151
  {{ t('istio.titles.components') }}
140
152
  </h3>
141
- <div class="row">
153
+ <div class="row mb-10">
142
154
  <div
143
155
  v-if="value.cni"
144
156
  class="col span-4"
@@ -168,7 +180,7 @@ export default {
168
180
  />
169
181
  </div>
170
182
  </div>
171
- <div class="row">
183
+ <div class="row mb-10">
172
184
  <div
173
185
  v-if="value.pilot"
174
186
  class="col span-4"
@@ -176,6 +188,7 @@ export default {
176
188
  <Checkbox
177
189
  v-model="value.pilot.enabled"
178
190
  :label="t('istio.pilot')"
191
+ :disabled="value.kiali && value.kiali.enabled"
179
192
  />
180
193
  </div>
181
194
  <div
@@ -205,6 +218,7 @@ export default {
205
218
  <Checkbox
206
219
  v-model="value.kiali.enabled"
207
220
  :label="t('istio.kiali')"
221
+ @input="changeKiali"
208
222
  />
209
223
  </div>
210
224
  <div
@@ -217,6 +231,18 @@ export default {
217
231
  />
218
232
  </div>
219
233
  <div class="col span-4" />
234
+ <div
235
+ v-if="showKialiBanner"
236
+ class="row"
237
+ >
238
+ <div class="col span-12">
239
+ <Banner color="info">
240
+ <span
241
+ v-clean-html="t('istio.pilotRequired', {}, true)"
242
+ />
243
+ </Banner>
244
+ </div>
245
+ </div>
220
246
  </div>
221
247
 
222
248
  <h3>{{ t('istio.customOverlayFile.label') }}</h3>
@@ -14,11 +14,8 @@ export default {
14
14
  default: false
15
15
  }
16
16
  },
17
- async fetch() {
18
- this.managementSettings = await this.$store.getters['management/all'](MANAGEMENT.SETTING);
19
- },
20
17
  data() {
21
- return { managementSettings: [] };
18
+ return { managementSettings: this.$store.getters['management/all'](MANAGEMENT.SETTING) };
22
19
  },
23
20
  computed: {
24
21
  ...mapGetters({ theme: 'prefs/theme' }),