@rancher/shell 3.0.9-rc.5 → 3.0.9

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 (172) hide show
  1. package/assets/images/providers/oci-open-containers.svg +22 -0
  2. package/assets/images/providers/traefik.png +0 -0
  3. package/assets/styles/themes/_dark.scss +2 -0
  4. package/assets/styles/themes/_light.scss +2 -0
  5. package/assets/styles/themes/_modern.scss +6 -0
  6. package/assets/translations/en-us.yaml +129 -25
  7. package/components/CruResource.vue +3 -1
  8. package/components/ExplorerProjectsNamespaces.vue +12 -12
  9. package/components/IconOrSvg.vue +61 -42
  10. package/components/Resource/Detail/Card/StatusCard/__tests__/StatusCard.test.ts +109 -0
  11. package/components/Resource/Detail/Card/StatusCard/index.vue +21 -4
  12. package/components/Resource/Detail/Metadata/IdentifyingInformation/__tests__/identifying-fields.test.ts +19 -2
  13. package/components/Resource/Detail/Metadata/IdentifyingInformation/identifying-fields.ts +19 -11
  14. package/components/Resource/Detail/ResourcePopover/__tests__/index.test.ts +12 -0
  15. package/components/Resource/Detail/ResourcePopover/index.vue +2 -0
  16. package/components/Resource/Detail/ResourceRow.vue +2 -2
  17. package/components/ResourceList/index.vue +7 -4
  18. package/components/SortableTable/index.vue +2 -2
  19. package/components/Window/ContainerLogs.vue +48 -37
  20. package/components/fleet/FleetClusterTargets/TargetsList.vue +2 -2
  21. package/components/fleet/FleetClusterTargets/index.vue +6 -1
  22. package/components/fleet/GitRepoAdvancedTab.vue +333 -0
  23. package/components/fleet/GitRepoMetadataTab.vue +43 -0
  24. package/components/fleet/GitRepoRepositoryTab.vue +101 -0
  25. package/components/fleet/GitRepoTargetTab.vue +77 -0
  26. package/components/fleet/HelmOpAdvancedTab.vue +247 -0
  27. package/components/fleet/HelmOpChartTab.vue +158 -0
  28. package/components/fleet/HelmOpMetadataTab.vue +46 -0
  29. package/components/fleet/HelmOpTargetTab.vue +84 -0
  30. package/components/fleet/HelmOpValuesTab.vue +147 -0
  31. package/components/fleet/__tests__/FleetClusterTargets.test.ts +119 -70
  32. package/components/form/BannerSettings.vue +2 -2
  33. package/components/form/NodeScheduling.vue +81 -7
  34. package/components/form/NotificationSettings.vue +2 -2
  35. package/components/form/PodAffinity.vue +1 -36
  36. package/components/form/ResourceLabeledSelect.vue +8 -4
  37. package/components/form/ResourceQuota/Namespace.vue +30 -9
  38. package/components/form/ResourceQuota/NamespaceRow.vue +25 -7
  39. package/components/form/ResourceQuota/Project.vue +140 -82
  40. package/components/form/ResourceQuota/ResourceQuotaEntry.vue +145 -0
  41. package/components/form/ResourceQuota/__tests__/Namespace.test.ts +307 -0
  42. package/components/form/ResourceQuota/__tests__/NamespaceRow.test.ts +281 -0
  43. package/components/form/ResourceQuota/__tests__/Project.test.ts +274 -27
  44. package/components/form/ResourceQuota/__tests__/ResourceQuotaEntry.test.ts +215 -0
  45. package/components/form/SchedulingCustomization.vue +14 -6
  46. package/components/form/SelectOrCreateAuthSecret.vue +107 -18
  47. package/components/form/__tests__/NodeScheduling.test.ts +12 -9
  48. package/components/form/__tests__/PodAffinity.test.ts +21 -2
  49. package/components/form/__tests__/SchedulingCustomization.test.ts +240 -0
  50. package/components/formatter/ClusterLink.vue +8 -0
  51. package/components/formatter/SecretOrigin.vue +79 -0
  52. package/config/labels-annotations.js +7 -6
  53. package/config/pagination-table-headers.js +6 -4
  54. package/config/product/explorer.js +1 -11
  55. package/config/product/manager.js +0 -1
  56. package/config/query-params.js +3 -0
  57. package/config/settings.ts +15 -2
  58. package/config/table-headers.js +21 -17
  59. package/config/types.js +23 -8
  60. package/detail/fleet.cattle.io.cluster.vue +1 -1
  61. package/detail/workload/index.vue +11 -16
  62. package/dialog/DeactivateDriverDialog.vue +1 -1
  63. package/dialog/FeatureFlagListDialog.vue +1 -1
  64. package/dialog/Ipv6NetworkingDialog.vue +156 -0
  65. package/dialog/ScalePoolDownDialog.vue +2 -2
  66. package/edit/__tests__/fleet.cattle.io.gitrepo.test.ts +1 -1
  67. package/edit/__tests__/fleet.cattle.io.helmop.test.ts +1 -0
  68. package/edit/__tests__/management.cattle.io.project.test.js +56 -128
  69. package/edit/auth/oidc.vue +1 -1
  70. package/edit/catalog.cattle.io.clusterrepo.vue +155 -25
  71. package/edit/fleet.cattle.io.gitrepo.vue +153 -283
  72. package/edit/fleet.cattle.io.helmop.vue +190 -332
  73. package/edit/management.cattle.io.project.vue +5 -42
  74. package/edit/management.cattle.io.setting.vue +6 -0
  75. package/edit/monitoring.coreos.com.alertmanagerconfig/__tests__/auth.spec.ts +145 -0
  76. package/edit/monitoring.coreos.com.alertmanagerconfig/__tests__/index.test.ts +202 -0
  77. package/edit/monitoring.coreos.com.alertmanagerconfig/__tests__/tls.spec.ts +226 -0
  78. package/edit/monitoring.coreos.com.alertmanagerconfig/auth.vue +24 -21
  79. package/edit/monitoring.coreos.com.alertmanagerconfig/types/__tests__/opsgenie.spec.ts +157 -0
  80. package/edit/monitoring.coreos.com.alertmanagerconfig/types/__tests__/pagerduty.spec.ts +132 -0
  81. package/edit/monitoring.coreos.com.alertmanagerconfig/types/__tests__/slack.spec.ts +108 -0
  82. package/edit/monitoring.coreos.com.alertmanagerconfig/types/pagerduty.vue +2 -1
  83. package/edit/monitoring.coreos.com.receiver/__tests__/auth.spec.ts +165 -0
  84. package/edit/monitoring.coreos.com.receiver/__tests__/index.test.ts +153 -0
  85. package/edit/monitoring.coreos.com.receiver/__tests__/tls.spec.ts +115 -0
  86. package/edit/monitoring.coreos.com.receiver/types/__tests__/email.spec.ts +86 -0
  87. package/edit/monitoring.coreos.com.receiver/types/__tests__/opsgenie.spec.ts +209 -0
  88. package/edit/monitoring.coreos.com.receiver/types/__tests__/pagerduty.spec.ts +105 -0
  89. package/edit/monitoring.coreos.com.receiver/types/__tests__/slack.spec.ts +92 -0
  90. package/edit/monitoring.coreos.com.receiver/types/__tests__/webhook.spec.ts +131 -0
  91. package/edit/provisioning.cattle.io.cluster/__tests__/Basics.test.ts +55 -24
  92. package/edit/provisioning.cattle.io.cluster/__tests__/Networking.test.ts +1 -103
  93. package/edit/provisioning.cattle.io.cluster/__tests__/index.test.ts +13 -1
  94. package/edit/provisioning.cattle.io.cluster/__tests__/rke2-fleet-cluster-agent.test.ts +283 -0
  95. package/edit/provisioning.cattle.io.cluster/__tests__/rke2.test.ts +65 -49
  96. package/edit/provisioning.cattle.io.cluster/ingress/IngressCards.vue +114 -0
  97. package/edit/provisioning.cattle.io.cluster/ingress/IngressConfiguration.vue +158 -0
  98. package/edit/provisioning.cattle.io.cluster/rke2.vue +167 -69
  99. package/edit/provisioning.cattle.io.cluster/shared.ts +36 -1
  100. package/edit/provisioning.cattle.io.cluster/tabs/AgentConfiguration.vue +2 -1
  101. package/edit/provisioning.cattle.io.cluster/tabs/Basics.vue +70 -7
  102. package/edit/provisioning.cattle.io.cluster/tabs/Ingress.vue +343 -0
  103. package/edit/provisioning.cattle.io.cluster/tabs/MachinePool.vue +2 -1
  104. package/edit/provisioning.cattle.io.cluster/tabs/etcd/__tests__/S3Config.test.ts +13 -1
  105. package/edit/provisioning.cattle.io.cluster/tabs/networking/index.vue +10 -44
  106. package/edit/secret/index.vue +1 -1
  107. package/edit/token.vue +68 -29
  108. package/edit/workload/__tests__/index.test.ts +2 -37
  109. package/edit/workload/index.vue +6 -2
  110. package/edit/workload/mixins/workload.js +0 -32
  111. package/list/__tests__/management.cattle.io.setting.test.ts +198 -0
  112. package/list/management.cattle.io.setting.vue +13 -0
  113. package/list/provisioning.cattle.io.cluster.vue +50 -1
  114. package/list/secret.vue +4 -9
  115. package/list/service.vue +6 -8
  116. package/machine-config/amazonec2.vue +11 -4
  117. package/machine-config/components/EC2Networking.vue +46 -30
  118. package/machine-config/components/__tests__/EC2Networking.test.ts +7 -7
  119. package/machine-config/components/__tests__/utils/vpcSubnetMockData.js +0 -9
  120. package/machine-config/digitalocean.vue +3 -3
  121. package/models/__tests__/chart.test.ts +2 -2
  122. package/models/__tests__/namespace.test.ts +11 -0
  123. package/models/__tests__/provisioning.cattle.io.cluster.test.ts +96 -0
  124. package/models/__tests__/workload.test.ts +42 -1
  125. package/models/catalog.cattle.io.clusterrepo.js +30 -4
  126. package/models/chart.js +3 -3
  127. package/models/ext.cattle.io.token.js +48 -0
  128. package/models/kontainerdriver.js +2 -2
  129. package/models/namespace.js +7 -1
  130. package/models/nodedriver.js +2 -2
  131. package/models/provisioning.cattle.io.cluster.js +28 -7
  132. package/models/secret.js +0 -17
  133. package/models/service.js +44 -1
  134. package/models/token.js +4 -0
  135. package/models/workload.js +12 -6
  136. package/package.json +1 -1
  137. package/pages/account/index.vue +96 -67
  138. package/pages/auth/setup.vue +5 -14
  139. package/pages/c/_cluster/apps/charts/AppChartCardFooter.vue +45 -18
  140. package/pages/c/_cluster/apps/charts/__tests__/install.test.ts +4 -1
  141. package/pages/c/_cluster/apps/charts/index.vue +82 -3
  142. package/pages/c/_cluster/apps/charts/install.vue +317 -42
  143. package/pages/c/_cluster/explorer/tools/index.vue +1 -1
  144. package/pages/c/_cluster/manager/cloudCredential/index.vue +1 -1
  145. package/pages/c/_cluster/manager/drivers/kontainerDriver/index.vue +5 -4
  146. package/pages/c/_cluster/settings/index.vue +3 -1
  147. package/pages/c/_cluster/uiplugins/index.vue +1 -1
  148. package/plugins/dashboard-store/__tests__/getters.test.ts +108 -0
  149. package/plugins/dashboard-store/__tests__/resource-class.test.ts +27 -0
  150. package/plugins/dashboard-store/actions.js +3 -8
  151. package/plugins/dashboard-store/getters.js +7 -5
  152. package/plugins/dashboard-store/mutations.js +4 -1
  153. package/plugins/dashboard-store/resource-class.js +3 -3
  154. package/plugins/steve/__tests__/steve-class.test.ts +102 -141
  155. package/plugins/steve/steve-class.js +12 -3
  156. package/plugins/steve/steve-pagination-utils.ts +6 -2
  157. package/rancher-components/RcIcon/types.ts +2 -0
  158. package/rancher-components/RcItemCard/RcItemCard.vue +72 -20
  159. package/store/prefs.js +3 -0
  160. package/types/aws-sdk.d.ts +121 -0
  161. package/types/resources/node.ts +15 -0
  162. package/types/shell/index.d.ts +537 -506
  163. package/types/store/pagination.types.ts +5 -5
  164. package/utils/__tests__/array.test.ts +1 -29
  165. package/utils/__tests__/cluster-agent-configuration.test.ts +203 -0
  166. package/utils/array.ts +0 -11
  167. package/utils/aws.ts +21 -0
  168. package/utils/cluster.js +22 -2
  169. package/utils/selector-typed.ts +1 -1
  170. package/utils/svg-filter.js +4 -3
  171. package/components/__tests__/ProjectRow.test.ts +0 -206
  172. package/components/form/ResourceQuota/ProjectRow.vue +0 -277
@@ -2,27 +2,22 @@
2
2
  import { mapGetters } from 'vuex';
3
3
  import { AUTH_TYPE, NORMAN, SECRET } from '@shell/config/types';
4
4
  import { set } from '@shell/utils/object';
5
- import { Banner } from '@components/Banner';
6
5
  import CreateEditView from '@shell/mixins/create-edit-view';
7
6
  import CruResource from '@shell/components/CruResource';
8
- import InputWithSelect from '@shell/components/form/InputWithSelect';
9
- import { LabeledInput } from '@components/Form/LabeledInput';
10
- import LabeledSelect from '@shell/components/form/LabeledSelect';
11
- import Labels from '@shell/components/form/Labels';
12
7
  import Loading from '@shell/components/Loading';
13
- import NameNsDescription from '@shell/components/form/NameNsDescription';
14
8
  import { base64Decode, base64Encode } from '@shell/utils/crypto';
15
- import SelectOrCreateAuthSecret from '@shell/components/form/SelectOrCreateAuthSecret';
16
9
  import { _CREATE, _EDIT, _VIEW } from '@shell/config/query-params';
17
10
  import { CATALOG, FLEET as FLEET_LABELS } from '@shell/config/labels-annotations';
18
11
  import { SECRET_TYPES } from '@shell/config/secret';
19
- import Checkbox from '@components/Form/Checkbox/Checkbox.vue';
20
12
  import FormValidation from '@shell/mixins/form-validation';
21
- import UnitInput from '@shell/components/form/UnitInput';
22
- import FleetClusterTargets from '@shell/components/fleet/FleetClusterTargets/index.vue';
23
13
  import { toSeconds } from '@shell/utils/duration';
24
- import FleetGitRepoPaths from '@shell/components/fleet/FleetGitRepoPaths.vue';
25
- import FleetOCIStorageSecret from '@shell/components/fleet/FleetOCIStorageSecret.vue';
14
+ import Tab from '@shell/components/Tabbed/Tab.vue';
15
+ import Tabbed from '@shell/components/Tabbed/index.vue';
16
+ import GitRepoMetadataTab from '@shell/components/fleet/GitRepoMetadataTab.vue';
17
+ import GitRepoRepositoryTab from '@shell/components/fleet/GitRepoRepositoryTab.vue';
18
+ import GitRepoTargetTab from '@shell/components/fleet/GitRepoTargetTab.vue';
19
+ import GitRepoAdvancedTab from '@shell/components/fleet/GitRepoAdvancedTab.vue';
20
+ import NameNsDescription from '@shell/components/form/NameNsDescription';
26
21
 
27
22
  const MINIMUM_POLLING_INTERVAL = 15;
28
23
  const DEFAULT_POLLING_INTERVAL = 60;
@@ -39,20 +34,15 @@ export default {
39
34
  emits: ['input'],
40
35
 
41
36
  components: {
42
- Checkbox,
43
- Banner,
44
37
  CruResource,
45
- FleetOCIStorageSecret,
46
- FleetGitRepoPaths,
47
- InputWithSelect,
48
- Labels,
49
- LabeledInput,
50
- LabeledSelect,
51
38
  Loading,
39
+ Tabbed,
40
+ Tab,
41
+ GitRepoMetadataTab,
42
+ GitRepoRepositoryTab,
43
+ GitRepoTargetTab,
44
+ GitRepoAdvancedTab,
52
45
  NameNsDescription,
53
- SelectOrCreateAuthSecret,
54
- FleetClusterTargets,
55
- UnitInput,
56
46
  },
57
47
 
58
48
  mixins: [CreateEditView, FormValidation],
@@ -105,7 +95,7 @@ export default {
105
95
  pollingInterval,
106
96
  ref,
107
97
  refValue,
108
- displayHelmRepoURLRegex: false,
98
+ displayHelmRepoUrlRegex: false,
109
99
  targetsCreated: '',
110
100
  fvFormRuleSets: [{
111
101
  path: 'spec.repo',
@@ -122,7 +112,7 @@ export default {
122
112
  return _SPECIFY;
123
113
  },
124
114
 
125
- isGitHubDotComRepository() {
115
+ isGithubDotComRepository() {
126
116
  // It needs to be specifically https://github.com, if different it could have something like https://company-intranet.github.com/ or https://company.com/github.com/
127
117
  return this.value.spec.repo?.toLowerCase().includes('https://github.com');
128
118
  },
@@ -257,7 +247,7 @@ export default {
257
247
  },
258
248
 
259
249
  toggleHelmRepoURLRegex(active) {
260
- this.displayHelmRepoURLRegex = active;
250
+ this.displayHelmRepoUrlRegex = active;
261
251
 
262
252
  if (!active) {
263
253
  delete this.value.spec?.helmRepoURLRegex;
@@ -398,10 +388,17 @@ export default {
398
388
  },
399
389
 
400
390
  updatePollingInterval(value) {
391
+ this.pollingInterval = value;
392
+ },
393
+
394
+ validatePollingInterval() {
395
+ const value = this.pollingInterval;
396
+
401
397
  if (!value) {
402
398
  this.pollingInterval = DEFAULT_POLLING_INTERVAL;
403
399
  this.value.spec.pollingInterval = this.durationSeconds(DEFAULT_POLLING_INTERVAL);
404
400
  } else if (value === MINIMUM_POLLING_INTERVAL) {
401
+ this.pollingInterval = MINIMUM_POLLING_INTERVAL;
405
402
  delete this.value.spec.pollingInterval;
406
403
  } else {
407
404
  this.value.spec.pollingInterval = this.durationSeconds(value);
@@ -425,7 +422,6 @@ export default {
425
422
 
426
423
  <template>
427
424
  <Loading v-if="$fetchState.pending" />
428
-
429
425
  <CruResource
430
426
  v-else
431
427
  :done-route="doneRoute"
@@ -434,7 +430,7 @@ export default {
434
430
  :subtypes="[]"
435
431
  :validation-passed="true"
436
432
  :errors="errors"
437
- :steps="steps"
433
+ :steps="!isView ? steps : undefined"
438
434
  :finish-mode="'finish'"
439
435
  class="wizard"
440
436
  @cancel="done"
@@ -442,297 +438,171 @@ export default {
442
438
  @finish="save"
443
439
  >
444
440
  <template #stepMetadata>
445
- <NameNsDescription
446
- v-if="!isView"
441
+ <GitRepoMetadataTab
447
442
  :value="value"
448
- :namespaced="false"
449
443
  :mode="mode"
450
- @update:value="$emit('input', $event)"
451
- />
452
- <Labels
453
- :value="value"
454
- :mode="mode"
455
- :display-side-by-side="false"
456
- :add-icon="'icon-plus'"
444
+ :is-view="isView"
445
+ @input="$emit('input', $event)"
457
446
  />
458
447
  </template>
459
448
  <template #stepRepo>
460
- <h2 v-t="'fleet.gitRepo.repo.title'" />
461
- <div
462
- class="row mb-20"
463
- :class="{'mt-20': isView}"
464
- >
465
- <div class="col span-6">
466
- <LabeledInput
467
- v-model:value="value.spec.repo"
468
- :mode="mode"
469
- label-key="fleet.gitRepo.repo.label"
470
- :placeholder="t('fleet.gitRepo.repo.placeholder', null, true)"
471
- :required="true"
472
- :rules="fvGetAndReportPathRules('spec.repo')"
473
- />
474
- </div>
475
- <div class="col span-6">
476
- <InputWithSelect
477
- :data-testid="`gitrepo-${ref}`"
478
- :mode="mode"
479
- :select-label="t('fleet.gitRepo.ref.label')"
480
- :select-value="ref"
481
- :text-label="t(`fleet.gitRepo.ref.${ref}Label`)"
482
- :text-placeholder="t(`fleet.gitRepo.ref.${ref}Placeholder`)"
483
- :text-value="refValue"
484
- :text-required="true"
485
- :options="[{label: t('fleet.gitRepo.ref.branch'), value: 'branch'}, {label: t('fleet.gitRepo.ref.revision'), value: 'revision'}]"
486
- @update:value="changeRef($event)"
487
- />
488
- </div>
489
- </div>
490
-
491
- <FleetGitRepoPaths
492
- :value="{
493
- paths: value.spec.paths,
494
- bundles: value.spec.bundles
495
- }"
449
+ <GitRepoRepositoryTab
450
+ :value="value"
496
451
  :mode="mode"
452
+ :is-view="isView"
453
+ :ref-type="ref"
454
+ :ref-value="refValue"
497
455
  :touched="touched"
498
- @update:value="updatePaths"
456
+ :fv-get-and-report-path-rules="fvGetAndReportPathRules"
457
+ @update:ref="changeRef"
458
+ @update:paths="updatePaths"
499
459
  @touched="touched=$event"
500
460
  />
501
461
  </template>
502
462
 
503
463
  <template #stepAdvanced>
504
- <Banner
505
- v-if="!isView"
506
- color="info"
507
- label-key="fleet.gitRepo.add.steps.advanced.info"
508
- data-testid="gitrepo-advanced-info"
464
+ <GitRepoAdvancedTab
465
+ :value="value"
466
+ :mode="mode"
467
+ :is-view="isView"
468
+ :workspace="workspace"
469
+ :tls-mode="tlsMode"
470
+ :tls-options="tlsOptions"
471
+ :ca-bundle="caBundle"
472
+ :is-tls="isTls"
473
+ :display-helm-repo-url-regex="displayHelmRepoUrlRegex"
474
+ :temp-cached-values="tempCachedValues"
475
+ :correct-drift-enabled="correctDriftEnabled"
476
+ :polling-interval="pollingInterval"
477
+ :show-polling-interval-warning="showPollingIntervalWarning"
478
+ :specify-option="_SPECIFY"
479
+ :register-before-hook="registerBeforeHook"
480
+ :is-github-dot-com-repository="isGithubDotComRepository"
481
+ :is-basic-auth-selected="isBasicAuthSelected"
482
+ @update:tls-mode="updateTlsMode"
483
+ @update:ca-bundle="caBundle = $event"
484
+ @update:auth="updateAuth($event.value, $event.key)"
485
+ @update:cached-auth="updateCachedAuthVal($event.value, $event.key)"
486
+ @update:correct-drift="correctDriftEnabled = $event"
487
+ @update:polling-enabled="enablePolling"
488
+ @update:polling-interval="updatePollingInterval"
489
+ @update:validate-polling-interval="validatePollingInterval"
509
490
  />
491
+ </template>
510
492
 
511
- <h2 v-t="'fleet.gitRepo.auth.title'" />
512
-
513
- <Banner
514
- v-if="isGitHubDotComRepository && isBasicAuthSelected"
515
- color="warning"
516
- label-key="fleet.gitRepo.auth.githubdotcomPasswordBanner"
517
- data-testid="gitrepo-githubdotcom-password-warning"
518
- />
519
- <SelectOrCreateAuthSecret
520
- data-testid="gitrepo-git-auth"
521
- :value="value.spec.clientSecretName"
522
- :register-before-hook="registerBeforeHook"
523
- :namespace="value.metadata.namespace"
524
- :delegate-create-to-parent="true"
525
- in-store="management"
526
- :pre-select="tempCachedValues.clientSecretName"
493
+ <template #stepTarget>
494
+ <GitRepoTargetTab
495
+ :value="value"
527
496
  :mode="mode"
528
- generate-name="gitrepo-auth-"
529
- label-key="fleet.gitRepo.auth.git"
530
- :cache-secrets="true"
531
- :show-ssh-known-hosts="true"
532
- :is-github-dot-com-repository="isGitHubDotComRepository"
533
- @update:value="updateAuth($event, 'clientSecretName')"
534
- @inputauthval="updateCachedAuthVal($event, 'clientSecretName')"
497
+ :real-mode="realMode"
498
+ :targets-created="targetsCreated"
499
+ @update:targets="updateTargets"
500
+ @created="targetsCreated=$event"
535
501
  />
536
- <SelectOrCreateAuthSecret
537
- data-testid="gitrepo-helm-auth"
538
- :value="value.spec.helmSecretName"
539
- :register-before-hook="registerBeforeHook"
540
- :namespace="value.metadata.namespace"
541
- :delegate-create-to-parent="true"
542
- in-store="management"
502
+ </template>
503
+
504
+ <template
505
+ v-if="isView"
506
+ #single
507
+ >
508
+ <NameNsDescription
509
+ :value="value"
510
+ :namespaced="false"
543
511
  :mode="mode"
544
- generate-name="helmrepo-auth-"
545
- label-key="fleet.gitRepo.auth.helm"
546
- :pre-select="tempCachedValues.helmSecretName"
547
- :cache-secrets="true"
548
- :show-ssh-known-hosts="true"
549
- @update:value="updateAuth($event, 'helmSecretName')"
550
- @inputauthval="updateCachedAuthVal($event, 'helmSecretName')"
512
+ @update:value="$emit('input', $event)"
551
513
  />
552
514
 
553
- <div
554
- v-if="displayHelmRepoURLRegex"
555
- class="row mt-20"
515
+ <Tabbed
516
+ v-if="isView && steps.length === 4"
517
+ :side-tabs="true"
518
+ :use-hash="true"
556
519
  >
557
- <div
558
- class="col span-6"
559
- data-testid="gitrepo-helm-repo-url-regex"
520
+ <Tab
521
+ v-if="steps[1]"
522
+ :name="steps[1].name"
523
+ :label="steps[1].label"
524
+ :weight="3"
560
525
  >
561
- <LabeledInput
562
- v-model:value="value.spec.helmRepoURLRegex"
563
- :mode="mode"
564
- label-key="fleet.gitRepo.helmRepoURLRegex"
565
- />
566
- </div>
567
- </div>
568
-
569
- <template v-if="isTls">
570
- <div class="row mt-20">
571
- <div class="col span-6">
572
- <LabeledSelect
573
- :label="t('fleet.gitRepo.tls.label')"
574
- :mode="mode"
575
- :value="tlsMode"
576
- :options="tlsOptions"
577
- @update:value="updateTlsMode($event)"
578
- />
579
- </div>
580
- <div
581
- v-if="tlsMode === _SPECIFY"
582
- class="col span-6"
583
- >
584
- <LabeledInput
585
- v-model:value="caBundle"
586
- :mode="mode"
587
- type="multiline"
588
- label-key="fleet.gitRepo.caBundle.label"
589
- placeholder-key="fleet.gitRepo.caBundle.placeholder"
590
- />
591
- </div>
592
- </div>
593
- </template>
594
- <div class="spacer" />
595
-
596
- <h2 v-t="'fleet.gitRepo.ociStorageSecret.title'" />
597
- <div class="row mt-20">
598
- <div class="col span-6">
599
- <FleetOCIStorageSecret
600
- :secret="value.spec.ociRegistrySecret"
601
- :workspace="workspace"
526
+ <GitRepoRepositoryTab
527
+ :value="value"
602
528
  :mode="mode"
603
- @update:value="value.spec.ociRegistrySecret=$event"
529
+ :is-view="isView"
530
+ :ref-type="ref"
531
+ :ref-value="refValue"
532
+ :touched="touched"
533
+ :fv-get-and-report-path-rules="fvGetAndReportPathRules"
534
+ @update:ref="changeRef"
535
+ @update:paths="updatePaths"
536
+ @touched="touched=$event"
604
537
  />
605
- </div>
606
- </div>
607
- <div class="spacer" />
608
-
609
- <h2 v-t="'fleet.gitRepo.resources.label'" />
610
- <div class="resource-handling">
611
- <Checkbox
612
- v-model:value="correctDriftEnabled"
613
- :tooltip="t('fleet.gitRepo.resources.correctDriftTooltip')"
614
- data-testid="gitRepo-correctDrift-checkbox"
615
- class="check"
616
- type="checkbox"
617
- label-key="fleet.gitRepo.resources.correctDrift"
618
- :mode="mode"
619
- />
620
- <Checkbox
621
- v-model:value="value.spec.keepResources"
622
- :tooltip="t('fleet.gitRepo.resources.keepResourcesTooltip')"
623
- data-testid="gitRepo-keepResources-checkbox"
624
- class="check"
625
- type="checkbox"
626
- label-key="fleet.gitRepo.resources.keepResources"
627
- :mode="mode"
628
- />
629
- </div>
630
-
631
- <div class="spacer" />
632
- <h2 v-t="'fleet.gitRepo.polling.label'" />
633
- <div class="row polling">
634
- <div class="col span-6">
635
- <Checkbox
636
- :value="value.isPollingEnabled"
637
- data-testid="gitRepo-enablePolling-checkbox"
638
- class="check"
639
- type="checkbox"
640
- label-key="fleet.gitRepo.polling.enable"
538
+ </Tab>
539
+ <Tab
540
+ v-if="steps[2]"
541
+ :name="steps[2].name"
542
+ :label="steps[2].label"
543
+ :weight="2"
544
+ >
545
+ <GitRepoTargetTab
546
+ :value="value"
641
547
  :mode="mode"
642
- @update:value="enablePolling"
548
+ :real-mode="realMode"
549
+ :targets-created="targetsCreated"
550
+ @update:targets="updateTargets"
551
+ @created="targetsCreated=$event"
643
552
  />
644
- </div>
645
- <template v-if="value.isPollingEnabled">
646
- <div class="col">
647
- <Banner
648
- v-if="showPollingIntervalWarning"
649
- color="warning"
650
- label-key="fleet.gitRepo.polling.pollingInterval.minimumValueWarning"
651
- data-testid="gitRepo-pollingInterval-minimumValueWarning"
652
- />
653
- <Banner
654
- v-if="value.isWebhookConfigured"
655
- color="warning"
656
- label-key="fleet.gitRepo.polling.pollingInterval.webhookWarning"
657
- data-testid="gitRepo-pollingInterval-webhookWarning"
658
- />
659
- </div>
660
- <div class="col span-6">
661
- <UnitInput
662
- v-model:value="pollingInterval"
663
- data-testid="gitRepo-pollingInterval-input"
664
- min="1"
665
- :suffix="t('suffix.seconds', { count: pollingInterval })"
666
- :label="t('fleet.gitRepo.polling.pollingInterval.label')"
667
- :mode="mode"
668
- tooltip-key="fleet.gitRepo.polling.pollingInterval.tooltip"
669
- @blur.capture="updatePollingInterval(pollingInterval)"
670
- />
671
- </div>
672
- </template>
673
- </div>
674
- </template>
675
-
676
- <template #stepTarget>
677
- <h2 v-t="'fleet.gitRepo.target.label'" />
678
- <FleetClusterTargets
679
- :targets="value.spec.targets"
680
- :matching="value.targetClusters"
681
- :namespace="value.metadata.namespace"
682
- :mode="realMode"
683
- :created="targetsCreated"
684
- @update:value="updateTargets"
685
- @created="targetsCreated=$event"
686
- />
687
-
688
- <h3 class="mmt-16">
689
- {{ t('fleet.gitRepo.target.additionalOptions') }}
690
- </h3>
691
- <div class="row mt-20">
692
- <div class="col span-6">
693
- <LabeledInput
694
- v-model:value="value.spec.serviceAccount"
553
+ </Tab>
554
+ <Tab
555
+ v-if="steps[3]"
556
+ :name="steps[3].name"
557
+ :label="steps[3].label"
558
+ :weight="1"
559
+ >
560
+ <GitRepoAdvancedTab
561
+ :value="value"
695
562
  :mode="mode"
696
- label-key="fleet.gitRepo.serviceAccount.label"
697
- placeholder-key="fleet.gitRepo.serviceAccount.placeholder"
563
+ :is-view="isView"
564
+ :workspace="workspace"
565
+ :tls-mode="tlsMode"
566
+ :tls-options="tlsOptions"
567
+ :ca-bundle="caBundle"
568
+ :is-tls="isTls"
569
+ :display-helm-repo-url-regex="displayHelmRepoUrlRegex"
570
+ :temp-cached-values="tempCachedValues"
571
+ :correct-drift-enabled="correctDriftEnabled"
572
+ :polling-interval="pollingInterval"
573
+ :show-polling-interval-warning="showPollingIntervalWarning"
574
+ :specify-option="_SPECIFY"
575
+ :register-before-hook="registerBeforeHook"
576
+ @update:tls-mode="updateTlsMode"
577
+ @update:ca-bundle="caBundle = $event"
578
+ @update:auth="updateAuth($event.value, $event.key)"
579
+ @update:cached-auth="updateCachedAuthVal($event.value, $event.key)"
580
+ @update:correct-drift="correctDriftEnabled = $event"
581
+ @update:polling-enabled="enablePolling"
582
+ @update:polling-interval="updatePollingInterval"
583
+ @update:validate-polling-interval="validatePollingInterval"
698
584
  />
699
- </div>
700
- <div class="col span-6">
701
- <LabeledInput
702
- v-model:value="value.spec.targetNamespace"
585
+ </Tab>
586
+ <Tab
587
+ name="labels"
588
+ label-key="generic.labelsAndAnnotations"
589
+ :weight="4"
590
+ >
591
+ <GitRepoMetadataTab
592
+ :value="value"
703
593
  :mode="mode"
704
- label-key="fleet.gitRepo.targetNamespace.label"
705
- placeholder-key="fleet.gitRepo.targetNamespace.placeholder"
706
- label="Target Namespace"
707
- placeholder="Optional: Require all resources to be in this namespace"
594
+ :is-view="isView"
595
+ @input="$emit('input', $event)"
708
596
  />
709
- </div>
710
- </div>
597
+ </Tab>
598
+ </Tabbed>
711
599
  </template>
712
600
  </CruResource>
713
601
  </template>
714
602
 
715
603
  <style lang="scss" scoped>
716
- .spacer {
717
- padding: 30px 0 0 0;
718
- }
719
- :deep() .select-or-create-auth-secret {
720
- .row {
721
- margin-top: 10px !important;
722
- }
723
- }
724
604
  :deep() .input-container .in-input.labeled-select {
725
605
  min-width: 110px;
726
606
  width: 20%;
727
607
  }
728
- .resource-handling {
729
- display: flex;
730
- flex-direction: column;
731
- gap: 5px;
732
- }
733
- .polling {
734
- display: flex;
735
- flex-direction: column;
736
- gap: 5px;
737
- }
738
608
  </style>