@rancher/shell 3.0.12-rc.3 → 3.0.12-rc.4

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 (258) hide show
  1. package/assets/styles/global/_layout.scss +4 -0
  2. package/assets/translations/en-us.yaml +144 -41
  3. package/assets/translations/zh-hans.yaml +1 -7
  4. package/chart/monitoring/ClusterSelector.vue +0 -21
  5. package/chart/monitoring/prometheus/index.vue +6 -3
  6. package/components/CruResource.vue +161 -14
  7. package/components/ExplorerMembers.vue +8 -4
  8. package/components/ExplorerProjectsNamespaces.vue +10 -6
  9. package/components/GrowlManager.vue +4 -0
  10. package/components/MgmtNodeList.vue +184 -0
  11. package/components/Resource/Detail/Card/StateCard/__tests__/composables.test.ts +90 -1
  12. package/components/Resource/Detail/Card/StateCard/composables.ts +57 -87
  13. package/components/Resource/Detail/Card/StatusCard/__tests__/StatusCard.test.ts +61 -0
  14. package/components/Resource/Detail/Card/StatusCard/index.vue +61 -15
  15. package/components/Resource/Detail/Metadata/IdentifyingInformation/index.vue +2 -0
  16. package/components/Resource/Detail/Metadata/KeyValue.vue +5 -2
  17. package/components/Resource/Detail/Metadata/KeyValueRow.vue +2 -6
  18. package/components/ResourceDetail/index.vue +1 -1
  19. package/components/ResourceList/Masthead.vue +7 -1
  20. package/components/ResourceList/index.vue +82 -1
  21. package/components/RichTranslation.vue +5 -2
  22. package/components/Setting.vue +1 -0
  23. package/components/SubtleLink.vue +31 -6
  24. package/components/Tabbed/Tab.vue +29 -3
  25. package/components/Tabbed/index.vue +25 -3
  26. package/components/TableOfContents/TableOfContents.vue +109 -0
  27. package/components/TableOfContents/composables.ts +258 -0
  28. package/components/Window/ContainerShell.vue +21 -11
  29. package/components/Window/__tests__/ContainerShell.test.ts +107 -37
  30. package/components/Wizard.vue +9 -4
  31. package/components/fleet/AppCoChartGrid.vue +401 -0
  32. package/components/fleet/AppCoEmptyState.vue +127 -0
  33. package/components/fleet/AppCoPageHeader.vue +119 -0
  34. package/components/fleet/AppCoVersionSelect.vue +70 -0
  35. package/components/fleet/FleetClusterTargets/ClusterSelectionFields.vue +217 -0
  36. package/components/fleet/FleetClusterTargets/TargetsList.vue +123 -35
  37. package/components/fleet/FleetClusterTargets/index.vue +189 -146
  38. package/components/fleet/FleetIntro.vue +7 -3
  39. package/components/fleet/FleetNoWorkspaces.vue +7 -3
  40. package/components/fleet/FleetSecretSelector.vue +5 -3
  41. package/components/fleet/FleetValuesFrom.vue +8 -2
  42. package/components/fleet/GitRepoTargetTab.vue +0 -2
  43. package/components/fleet/HelmOpAdvancedTab.vue +19 -53
  44. package/components/fleet/HelmOpAppCoConfigTab.vue +593 -0
  45. package/components/fleet/HelmOpAppCoResourcesSection.vue +162 -0
  46. package/components/fleet/HelmOpResourcesSection.vue +82 -0
  47. package/components/fleet/HelmOpTargetOptionsSection.vue +89 -0
  48. package/components/fleet/HelmOpTargetTab.vue +64 -60
  49. package/components/fleet/HelmOpValuesTab.vue +129 -105
  50. package/components/fleet/__tests__/AppCoEmptyState.test.ts +71 -0
  51. package/components/fleet/__tests__/AppCoVersionSelect.test.ts +36 -0
  52. package/components/fleet/__tests__/ClusterSelectionFields.test.ts +62 -0
  53. package/components/fleet/__tests__/FleetClusterTargets.test.ts +253 -0
  54. package/components/fleet/__tests__/FleetSecretSelector.test.ts +16 -0
  55. package/components/fleet/__tests__/FleetValuesFrom.test.ts +44 -0
  56. package/components/fleet/__tests__/HelmOpAppCoConfigTab.test.ts +59 -0
  57. package/components/fleet/__tests__/HelmOpAppCoResourcesSection.test.ts +62 -0
  58. package/components/fleet/__tests__/HelmOpResourcesSection.test.ts +43 -0
  59. package/components/fleet/__tests__/HelmOpTargetOptionsSection.test.ts +34 -0
  60. package/components/fleet/__tests__/HelmOpValuesTab.test.ts +39 -0
  61. package/components/fleet/__tests__/__snapshots__/AppCoEmptyState.test.ts.snap +97 -0
  62. package/components/fleet/__tests__/__snapshots__/AppCoVersionSelect.test.ts.snap +30 -0
  63. package/components/fleet/__tests__/__snapshots__/ClusterSelectionFields.test.ts.snap +209 -0
  64. package/components/fleet/__tests__/__snapshots__/HelmOpTargetOptionsSection.test.ts.snap +140 -0
  65. package/components/fleet/dashboard/Empty.vue +8 -4
  66. package/components/fleet/dashboard/ResourceCard.vue +28 -0
  67. package/components/fleet/dashboard/ResourceDetails.vue +28 -0
  68. package/components/fleet/dashboard/__tests__/ResourceCard.test.ts +87 -0
  69. package/components/form/ArrayList.vue +61 -4
  70. package/components/form/KeyValue.vue +23 -2
  71. package/components/form/LabeledSelect.vue +39 -1
  72. package/components/form/Labels.vue +22 -3
  73. package/components/form/NameNsDescription.vue +13 -5
  74. package/components/form/ResourceTabs/index.vue +1 -0
  75. package/components/form/__tests__/NameNsDescription.test.ts +75 -0
  76. package/components/formatter/InternalExternalIP.vue +10 -4
  77. package/components/formatter/ServiceTargets.vue +26 -7
  78. package/components/formatter/__tests__/InternalExternalIP.test.ts +132 -0
  79. package/components/formatter/__tests__/ServiceTargets.test.ts +412 -0
  80. package/components/nav/Header.vue +4 -0
  81. package/components/nav/TopLevelMenu.vue +7 -2
  82. package/components/nav/__tests__/Header.test.ts +15 -0
  83. package/components/nav/__tests__/TopLevelMenu.test.ts +120 -2
  84. package/components/templates/default.vue +9 -4
  85. package/components/templates/home.vue +9 -4
  86. package/components/templates/plain.vue +9 -4
  87. package/composables/useHelmOpResources.test.ts +56 -0
  88. package/composables/useHelmOpResources.ts +32 -0
  89. package/composables/useStateColor.test.ts +325 -0
  90. package/composables/useStateColor.ts +128 -0
  91. package/config/home-links.js +1 -1
  92. package/config/labels-annotations.js +1 -0
  93. package/config/product/explorer.js +17 -4
  94. package/config/product/manager.js +2 -0
  95. package/config/router/index.js +16 -0
  96. package/config/router/navigation-guards/__tests__/authentication.test.ts +130 -0
  97. package/config/router/navigation-guards/authentication.js +10 -4
  98. package/config/router/routes.js +20 -6
  99. package/config/settings.ts +0 -2
  100. package/config/table-headers.js +3 -4
  101. package/config/types.js +9 -0
  102. package/core/plugin-products-base.ts +3 -3
  103. package/core/plugin-types.ts +83 -30
  104. package/core/plugin.ts +3 -0
  105. package/core/types-provisioning.ts +34 -1
  106. package/core/types.ts +15 -2
  107. package/detail/__tests__/provisioning.cattle.io.cluster.test.ts +114 -0
  108. package/detail/__tests__/workload.test.ts +3 -152
  109. package/detail/catalog.cattle.io.clusterrepo.vue +1 -1
  110. package/detail/provisioning.cattle.io.cluster.vue +30 -4
  111. package/detail/workload/index.vue +12 -55
  112. package/edit/__tests__/catalog.cattle.io.clusterrepo.test.ts +248 -0
  113. package/edit/__tests__/fleet.cattle.io.helmop.test.ts +105 -0
  114. package/edit/auditlog.cattle.io.auditpolicy/__tests__/__snapshots__/General.test.ts.snap +6 -0
  115. package/edit/auditlog.cattle.io.auditpolicy/__tests__/__snapshots__/index.test.ts.snap +1 -0
  116. package/edit/auth/__tests__/azuread.test.ts +34 -9
  117. package/edit/auth/__tests__/github.test.ts +234 -0
  118. package/edit/auth/__tests__/oidc.test.ts +26 -6
  119. package/edit/auth/__tests__/saml.test.ts +196 -0
  120. package/edit/auth/azuread.vue +128 -95
  121. package/edit/auth/github.vue +72 -13
  122. package/edit/auth/ldap/__tests__/index.test.ts +206 -0
  123. package/edit/auth/ldap/config.vue +8 -0
  124. package/edit/auth/ldap/index.vue +75 -1
  125. package/edit/auth/oidc.vue +119 -73
  126. package/edit/auth/saml.vue +76 -12
  127. package/edit/catalog.cattle.io.clusterrepo.vue +140 -32
  128. package/edit/fleet.cattle.io.helmop.vue +491 -136
  129. package/edit/management.cattle.io.user.vue +5 -2
  130. package/edit/provisioning.cattle.io.cluster/rke2.vue +84 -10
  131. package/edit/provisioning.cattle.io.cluster/tabs/MachinePool.vue +11 -0
  132. package/list/group.principal.vue +5 -4
  133. package/list/harvesterhci.io.management.cluster.vue +8 -9
  134. package/list/management.cattle.io.user.vue +12 -9
  135. package/list/provisioning.cattle.io.cluster.vue +16 -10
  136. package/mixins/__tests__/auth-config.test.ts +90 -0
  137. package/mixins/__tests__/chart.test.ts +94 -0
  138. package/mixins/__tests__/resource-fetch-api-pagination.test.ts +48 -0
  139. package/mixins/auth-config.js +7 -0
  140. package/mixins/chart.js +11 -2
  141. package/mixins/child-hook.js +12 -6
  142. package/mixins/create-edit-view/impl.js +5 -3
  143. package/mixins/resource-fetch-api-pagination.js +21 -1
  144. package/models/__tests__/catalog.cattle.io.clusterrepo.test.ts +57 -0
  145. package/models/__tests__/compliance.cattle.io.clusterscan.test.ts +144 -0
  146. package/models/__tests__/fleet-application.test.ts +175 -0
  147. package/models/__tests__/fleet.cattle.io.bundle.test.ts +169 -0
  148. package/models/__tests__/fleet.cattle.io.helmop.test.ts +84 -0
  149. package/models/__tests__/management.cattle.io.node.ts +22 -0
  150. package/models/__tests__/namespace.test.ts +36 -0
  151. package/models/__tests__/provisioning.cattle.io.cluster.test.ts +49 -0
  152. package/models/__tests__/workload.test.ts +401 -26
  153. package/models/catalog.cattle.io.clusterrepo.js +28 -4
  154. package/models/compliance.cattle.io.clusterscan.js +39 -4
  155. package/models/fleet-application.js +4 -0
  156. package/models/fleet.cattle.io.helmop.js +20 -1
  157. package/models/management.cattle.io.cluster.js +18 -2
  158. package/models/management.cattle.io.node.js +44 -3
  159. package/models/namespace.js +1 -1
  160. package/models/pod.js +33 -1
  161. package/models/provisioning.cattle.io.cluster.js +5 -5
  162. package/models/workload.js +108 -13
  163. package/models/workload.service.js +5 -0
  164. package/package.json +14 -13
  165. package/pages/about.vue +5 -6
  166. package/pages/auth/login.vue +0 -35
  167. package/pages/auth/setup.vue +11 -0
  168. package/pages/c/_cluster/apps/charts/AppChartCardFooter.vue +2 -2
  169. package/pages/c/_cluster/apps/charts/AppChartCardSubHeader.vue +10 -1
  170. package/pages/c/_cluster/apps/charts/__tests__/index.test.ts +93 -0
  171. package/pages/c/_cluster/apps/charts/chart.vue +2 -1
  172. package/pages/c/_cluster/apps/charts/index.vue +48 -10
  173. package/pages/c/_cluster/apps/charts/install.vue +122 -116
  174. package/pages/c/_cluster/auth/roles/index.vue +5 -4
  175. package/pages/c/_cluster/explorer/workload-dashboard/ByNamespaceSection.vue +31 -0
  176. package/pages/c/_cluster/explorer/workload-dashboard/ByStateSection.vue +138 -0
  177. package/pages/c/_cluster/explorer/workload-dashboard/ByTypeSection.vue +30 -0
  178. package/pages/c/_cluster/explorer/workload-dashboard/WorkloadCard.vue +155 -0
  179. package/pages/c/_cluster/explorer/workload-dashboard/WorkloadNamespaceCard.vue +142 -0
  180. package/pages/c/_cluster/explorer/workload-dashboard/WorkloadTypeCard.vue +159 -0
  181. package/pages/c/_cluster/explorer/workload-dashboard/__tests__/composable.test.ts +561 -0
  182. package/pages/c/_cluster/explorer/workload-dashboard/composable.ts +440 -0
  183. package/pages/c/_cluster/explorer/workload-dashboard/index.vue +187 -0
  184. package/pages/c/_cluster/explorer/workload-dashboard/types.ts +80 -0
  185. package/pages/c/_cluster/fleet/application/create.vue +187 -136
  186. package/pages/c/_cluster/fleet/application/index.vue +5 -3
  187. package/pages/c/_cluster/fleet/application/suse-app-collection/ChartDetailBody.vue +338 -0
  188. package/pages/c/_cluster/fleet/application/suse-app-collection/ChartDetailHeader.vue +121 -0
  189. package/pages/c/_cluster/fleet/application/suse-app-collection/chart.vue +369 -0
  190. package/pages/c/_cluster/fleet/application/suse-app-collection/charts.vue +248 -0
  191. package/pages/c/_cluster/fleet/application/suse-app-collection/credentials.vue +310 -0
  192. package/pages/c/_cluster/fleet/index.vue +2 -2
  193. package/pages/c/_cluster/uiplugins/__tests__/index.test.ts +96 -0
  194. package/pages/c/_cluster/uiplugins/index.vue +15 -0
  195. package/pages/fail-whale.vue +16 -11
  196. package/pages/home.vue +16 -46
  197. package/plugins/clean-html.d.ts +9 -0
  198. package/plugins/dashboard-store/__tests__/resource-class.test.ts +93 -0
  199. package/plugins/dashboard-store/resource-class.js +62 -7
  200. package/plugins/steve/__tests__/actions.test.ts +212 -0
  201. package/plugins/steve/actions.js +96 -0
  202. package/plugins/steve/steve-pagination-utils.ts +1 -1
  203. package/rancher-components/Accordion/Accordion.vue +53 -9
  204. package/rancher-components/Form/Checkbox/Checkbox.vue +14 -0
  205. package/rancher-components/Form/Radio/RadioButton.vue +17 -1
  206. package/rancher-components/Form/Radio/RadioGroup.vue +10 -0
  207. package/rancher-components/Pill/RcTag/RcTag.vue +3 -2
  208. package/rancher-components/RcButton/RcButton.test.ts +103 -0
  209. package/rancher-components/RcButton/RcButton.vue +94 -15
  210. package/rancher-components/RcButton/types.ts +3 -0
  211. package/rancher-components/RcItemCard/RcItemCard.test.ts +18 -0
  212. package/rancher-components/RcItemCard/RcItemCard.vue +2 -2
  213. package/rancher-components/RcSection/RcSection.vue +28 -3
  214. package/scripts/extension/helm/package/Dockerfile +1 -1
  215. package/scripts/test-plugins-build.sh +2 -1
  216. package/store/__tests__/notifications.test.ts +434 -0
  217. package/store/catalog.js +57 -0
  218. package/store/plugins.js +7 -4
  219. package/types/components/buttonGroup.ts +5 -0
  220. package/types/shell/index.d.ts +104 -70
  221. package/utils/__tests__/auth.test.ts +273 -0
  222. package/utils/__tests__/computed.test.ts +193 -0
  223. package/utils/__tests__/cspAdaptor.test.ts +163 -0
  224. package/utils/__tests__/dom.test.ts +81 -0
  225. package/utils/__tests__/duration.test.ts +37 -1
  226. package/utils/__tests__/dynamic-importer.test.ts +102 -0
  227. package/utils/__tests__/fleet-appco.test.ts +312 -0
  228. package/utils/__tests__/monitoring.test.ts +130 -0
  229. package/utils/__tests__/object.test.ts +22 -0
  230. package/utils/__tests__/platform.test.ts +91 -0
  231. package/utils/__tests__/position.test.ts +237 -0
  232. package/utils/__tests__/provider.test.ts +51 -1
  233. package/utils/__tests__/queue.test.ts +232 -0
  234. package/utils/__tests__/release-notes.test.ts +221 -0
  235. package/utils/__tests__/router.test.js +254 -1
  236. package/utils/__tests__/select.test.ts +208 -0
  237. package/utils/__tests__/time.test.ts +265 -1
  238. package/utils/__tests__/title.test.ts +47 -0
  239. package/utils/__tests__/width.test.ts +53 -0
  240. package/utils/__tests__/window.test.ts +158 -0
  241. package/utils/__tests__/xccdf.test.ts +126 -6
  242. package/utils/crypto/__tests__/browserHashUtils.test.ts +98 -0
  243. package/utils/crypto/__tests__/index.test.ts +144 -0
  244. package/utils/duration.ts +104 -0
  245. package/utils/dynamic-content/__tests__/notification-handler.test.ts +196 -0
  246. package/utils/dynamic-content/info.ts +2 -1
  247. package/utils/error.js +13 -0
  248. package/utils/fleet-appco.ts +323 -0
  249. package/utils/object.js +22 -2
  250. package/utils/provider.ts +12 -0
  251. package/utils/validators/__tests__/container-images.test.ts +104 -0
  252. package/utils/validators/__tests__/flow-output.test.ts +91 -0
  253. package/utils/validators/__tests__/logging-outputs.test.ts +58 -0
  254. package/utils/validators/__tests__/monitoring-route.test.ts +119 -0
  255. package/utils/xccdf.ts +39 -42
  256. package/vue.config.js +1 -1
  257. package/pages/support/index.vue +0 -264
  258. package/utils/duration.js +0 -43
@@ -2,9 +2,12 @@
2
2
  <script>
3
3
  import { FLEET } from '@shell/config/types';
4
4
  import { NAME } from '@shell/config/product/fleet';
5
+ import { RcButton } from '@components/RcButton';
5
6
  export default {
6
7
  name: 'NoWorkspaces',
7
8
 
9
+ components: { RcButton },
10
+
8
11
  props: {
9
12
  canView: {
10
13
  type: Boolean,
@@ -34,12 +37,13 @@ export default {
34
37
  v-if="canView"
35
38
  class="actions"
36
39
  >
37
- <router-link
40
+ <rc-button
41
+ size="large"
42
+ variant="secondary"
38
43
  :to="formRoute"
39
- class="btn role-secondary"
40
44
  >
41
45
  {{ t('fleet.gitRepo.workspace.addWorkspace') }}
42
- </router-link>
46
+ </rc-button>
43
47
  </div>
44
48
  </div>
45
49
  </template>
@@ -34,6 +34,10 @@ const props = defineProps({
34
34
  type: String,
35
35
  default: '',
36
36
  },
37
+ lockedOptions: {
38
+ type: Array as () => string[],
39
+ default: () => []
40
+ },
37
41
  });
38
42
 
39
43
  const emit = defineEmits(['update:value']);
@@ -118,10 +122,8 @@ function paginatePageOptions(opts: any) {
118
122
  :in-store="inStore"
119
123
  :paginated-resource-settings="paginateSecretsSetting"
120
124
  :all-resources-settings="allSecretsSettings"
125
+ :locked-options="lockedOptions"
121
126
  :multiple="true"
122
127
  @update:value="update"
123
128
  />
124
129
  </template>
125
-
126
- <style lang="scss" scoped>
127
- </style>
@@ -54,6 +54,11 @@ export default {
54
54
  default: ''
55
55
  },
56
56
 
57
+ compact: {
58
+ type: Boolean,
59
+ default: false
60
+ },
61
+
57
62
  mode: {
58
63
  type: String,
59
64
  default: _EDIT
@@ -251,7 +256,8 @@ export default {
251
256
  class="values-from-container"
252
257
  data-testid="fleet-values-from-list"
253
258
  >
254
- <h2
259
+ <component
260
+ :is="!compact ? 'h2' : 'h4'"
255
261
  v-t="'fleet.helmOp.values.valuesFrom.selectLabel'"
256
262
  class="m-0"
257
263
  />
@@ -282,7 +288,7 @@ export default {
282
288
  data-testid="fleet-values-from-add"
283
289
  @click="addValueFrom"
284
290
  >
285
- <i class="icon icon-add" />
291
+ <i class="icon icon-plus" />
286
292
  {{ t('workload.container.command.addEnvVar') }}
287
293
  </RcButton>
288
294
  </div>
@@ -68,8 +68,6 @@ const onCreated = (value) => {
68
68
  :mode="mode"
69
69
  label-key="fleet.gitRepo.targetNamespace.label"
70
70
  placeholder-key="fleet.gitRepo.targetNamespace.placeholder"
71
- label="Target Namespace"
72
- placeholder="Optional: Require all resources to be in this namespace"
73
71
  />
74
72
  </div>
75
73
  </div>
@@ -1,12 +1,11 @@
1
- <script setup>
1
+ <script setup lang="ts">
2
2
  import { useI18n } from '@shell/composables/useI18n';
3
3
  import { useStore } from 'vuex';
4
4
  import Banner from '@components/Banner/Banner.vue';
5
5
  import Checkbox from '@components/Form/Checkbox/Checkbox.vue';
6
6
  import SelectOrCreateAuthSecret from '@shell/components/form/SelectOrCreateAuthSecret';
7
7
  import UnitInput from '@shell/components/form/UnitInput';
8
- import FleetSecretSelector from '@shell/components/fleet/FleetSecretSelector.vue';
9
- import FleetConfigMapSelector from '@shell/components/fleet/FleetConfigMapSelector.vue';
8
+ import HelmOpResourcesSection from '@shell/components/fleet/HelmOpResourcesSection.vue';
10
9
  import { SOURCE_TYPE } from '@shell/config/product/fleet';
11
10
 
12
11
  defineProps({
@@ -82,27 +81,27 @@ const emit = defineEmits([
82
81
  const store = useStore();
83
82
  const { t } = useI18n(store);
84
83
 
85
- const updateAuth = (value, key) => {
84
+ const updateAuth = (value: string, key: string) => {
86
85
  emit('update:auth', { value, key });
87
86
  };
88
87
 
89
- const updateCachedAuthVal = (value, key) => {
88
+ const updateCachedAuthVal = (value: string, key: string) => {
90
89
  emit('update:cached-auth', { value, key });
91
90
  };
92
91
 
93
- const updateCorrectDrift = (value) => {
92
+ const updateCorrectDrift = (value: boolean) => {
94
93
  emit('update:correct-drift', value);
95
94
  };
96
95
 
97
- const updateDownstreamResources = (kind, list) => {
98
- emit('update:downstream-resources', { kind, list });
96
+ const updateDownstreamResources = (event: { kind: string; list: string[] }) => {
97
+ emit('update:downstream-resources', event);
99
98
  };
100
99
 
101
- const togglePolling = (value) => {
100
+ const togglePolling = (value: boolean) => {
102
101
  emit('toggle-polling', value);
103
102
  };
104
103
 
105
- const updatePollingInterval = (value) => {
104
+ const updatePollingInterval = (value: number) => {
106
105
  emit('update:polling-interval', value);
107
106
  };
108
107
 
@@ -151,43 +150,16 @@ const validatePollingInterval = () => {
151
150
 
152
151
  <h2>{{ t('fleet.helmOp.resources.label') }}</h2>
153
152
 
154
- <div class="row mt-20 mb-20">
155
- <div class="col span-6">
156
- <FleetSecretSelector
157
- :value="downstreamSecretsList"
158
- :namespace="value.metadata.namespace"
159
- :mode="mode"
160
- @update:value="updateDownstreamResources('Secret', $event)"
161
- />
162
- </div>
163
- </div>
164
- <div class="row mt-20 mb-20">
165
- <div class="col span-6">
166
- <FleetConfigMapSelector
167
- :value="downstreamConfigMapsList"
168
- :namespace="value.metadata.namespace"
169
- :mode="mode"
170
- @update:value="updateDownstreamResources('ConfigMap', $event)"
171
- />
172
- </div>
173
- </div>
174
- <div class="resource-handling mb-30">
175
- <Checkbox
176
- :value="correctDriftEnabled"
177
- :tooltip="t('fleet.helmOp.resources.correctDriftTooltip')"
178
- type="checkbox"
179
- label-key="fleet.helmOp.resources.correctDrift"
180
- :mode="mode"
181
- @update:value="updateCorrectDrift"
182
- />
183
- <Checkbox
184
- v-model:value="value.spec.keepResources"
185
- :tooltip="t('fleet.helmOp.resources.keepResourcesTooltip')"
186
- type="checkbox"
187
- label-key="fleet.helmOp.resources.keepResources"
188
- :mode="mode"
189
- />
190
- </div>
153
+ <HelmOpResourcesSection
154
+ :value="value"
155
+ :mode="mode"
156
+ :correct-drift-enabled="correctDriftEnabled"
157
+ :downstream-secrets-list="downstreamSecretsList"
158
+ :downstream-config-maps-list="downstreamConfigMapsList"
159
+ class="mb-30"
160
+ @update:correct-drift="updateCorrectDrift"
161
+ @update:downstream-resources="updateDownstreamResources"
162
+ />
191
163
 
192
164
  <template v-if="sourceType === SOURCE_TYPE.REPO">
193
165
  <h2>{{ t('fleet.helmOp.polling.label') }}</h2>
@@ -233,12 +205,6 @@ const validatePollingInterval = () => {
233
205
  </template>
234
206
 
235
207
  <style lang="scss" scoped>
236
- .resource-handling {
237
- display: flex;
238
- flex-direction: column;
239
- gap: 5px;
240
- }
241
-
242
208
  .polling {
243
209
  display: flex;
244
210
  flex-direction: column;