@rancher/shell 3.0.9-rc.5 → 3.0.9-rc.6

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 (142) 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/Resource/Detail/Card/StatusCard/__tests__/StatusCard.test.ts +109 -0
  10. package/components/Resource/Detail/Card/StatusCard/index.vue +21 -4
  11. package/components/Resource/Detail/Metadata/IdentifyingInformation/__tests__/identifying-fields.test.ts +19 -2
  12. package/components/Resource/Detail/Metadata/IdentifyingInformation/identifying-fields.ts +19 -11
  13. package/components/Resource/Detail/ResourcePopover/__tests__/index.test.ts +12 -0
  14. package/components/Resource/Detail/ResourcePopover/index.vue +2 -0
  15. package/components/Resource/Detail/ResourceRow.vue +2 -2
  16. package/components/ResourceList/index.vue +7 -4
  17. package/components/Window/ContainerLogs.vue +48 -37
  18. package/components/fleet/FleetClusterTargets/TargetsList.vue +2 -2
  19. package/components/fleet/FleetClusterTargets/index.vue +6 -1
  20. package/components/fleet/GitRepoAdvancedTab.vue +333 -0
  21. package/components/fleet/GitRepoMetadataTab.vue +43 -0
  22. package/components/fleet/GitRepoRepositoryTab.vue +101 -0
  23. package/components/fleet/GitRepoTargetTab.vue +77 -0
  24. package/components/fleet/HelmOpAdvancedTab.vue +247 -0
  25. package/components/fleet/HelmOpChartTab.vue +158 -0
  26. package/components/fleet/HelmOpMetadataTab.vue +46 -0
  27. package/components/fleet/HelmOpTargetTab.vue +84 -0
  28. package/components/fleet/HelmOpValuesTab.vue +147 -0
  29. package/components/fleet/__tests__/FleetClusterTargets.test.ts +119 -70
  30. package/components/form/NodeScheduling.vue +81 -7
  31. package/components/form/PodAffinity.vue +1 -36
  32. package/components/form/ResourceLabeledSelect.vue +8 -4
  33. package/components/form/ResourceQuota/Namespace.vue +30 -9
  34. package/components/form/ResourceQuota/NamespaceRow.vue +25 -7
  35. package/components/form/ResourceQuota/Project.vue +140 -82
  36. package/components/form/ResourceQuota/ResourceQuotaEntry.vue +145 -0
  37. package/components/form/ResourceQuota/__tests__/Namespace.test.ts +307 -0
  38. package/components/form/ResourceQuota/__tests__/NamespaceRow.test.ts +281 -0
  39. package/components/form/ResourceQuota/__tests__/Project.test.ts +274 -27
  40. package/components/form/ResourceQuota/__tests__/ResourceQuotaEntry.test.ts +215 -0
  41. package/components/form/SchedulingCustomization.vue +14 -6
  42. package/components/form/SelectOrCreateAuthSecret.vue +107 -18
  43. package/components/form/__tests__/NodeScheduling.test.ts +12 -9
  44. package/components/form/__tests__/PodAffinity.test.ts +21 -2
  45. package/components/form/__tests__/SchedulingCustomization.test.ts +240 -0
  46. package/components/formatter/ClusterLink.vue +8 -0
  47. package/components/formatter/SecretOrigin.vue +79 -0
  48. package/config/labels-annotations.js +7 -6
  49. package/config/pagination-table-headers.js +6 -4
  50. package/config/product/explorer.js +1 -11
  51. package/config/query-params.js +3 -0
  52. package/config/settings.ts +15 -2
  53. package/config/table-headers.js +21 -17
  54. package/config/types.js +23 -8
  55. package/detail/workload/index.vue +11 -16
  56. package/dialog/DeactivateDriverDialog.vue +1 -1
  57. package/dialog/Ipv6NetworkingDialog.vue +156 -0
  58. package/dialog/ScalePoolDownDialog.vue +2 -2
  59. package/edit/__tests__/fleet.cattle.io.gitrepo.test.ts +1 -1
  60. package/edit/__tests__/fleet.cattle.io.helmop.test.ts +1 -0
  61. package/edit/__tests__/management.cattle.io.project.test.js +56 -128
  62. package/edit/auth/oidc.vue +1 -1
  63. package/edit/catalog.cattle.io.clusterrepo.vue +155 -25
  64. package/edit/fleet.cattle.io.gitrepo.vue +153 -283
  65. package/edit/fleet.cattle.io.helmop.vue +190 -332
  66. package/edit/management.cattle.io.project.vue +5 -42
  67. package/edit/management.cattle.io.setting.vue +6 -0
  68. package/edit/provisioning.cattle.io.cluster/__tests__/Basics.test.ts +55 -24
  69. package/edit/provisioning.cattle.io.cluster/__tests__/Networking.test.ts +1 -103
  70. package/edit/provisioning.cattle.io.cluster/__tests__/index.test.ts +13 -1
  71. package/edit/provisioning.cattle.io.cluster/__tests__/rke2-fleet-cluster-agent.test.ts +283 -0
  72. package/edit/provisioning.cattle.io.cluster/__tests__/rke2.test.ts +65 -49
  73. package/edit/provisioning.cattle.io.cluster/ingress/IngressCards.vue +112 -0
  74. package/edit/provisioning.cattle.io.cluster/ingress/IngressConfiguration.vue +158 -0
  75. package/edit/provisioning.cattle.io.cluster/rke2.vue +171 -72
  76. package/edit/provisioning.cattle.io.cluster/shared.ts +36 -1
  77. package/edit/provisioning.cattle.io.cluster/tabs/AgentConfiguration.vue +2 -1
  78. package/edit/provisioning.cattle.io.cluster/tabs/Basics.vue +55 -7
  79. package/edit/provisioning.cattle.io.cluster/tabs/Ingress.vue +319 -0
  80. package/edit/provisioning.cattle.io.cluster/tabs/MachinePool.vue +2 -1
  81. package/edit/provisioning.cattle.io.cluster/tabs/etcd/__tests__/S3Config.test.ts +13 -1
  82. package/edit/provisioning.cattle.io.cluster/tabs/networking/index.vue +10 -44
  83. package/edit/secret/index.vue +1 -1
  84. package/edit/token.vue +68 -29
  85. package/edit/workload/__tests__/index.test.ts +2 -37
  86. package/edit/workload/index.vue +6 -2
  87. package/edit/workload/mixins/workload.js +0 -32
  88. package/list/__tests__/management.cattle.io.setting.test.ts +198 -0
  89. package/list/management.cattle.io.setting.vue +13 -0
  90. package/list/provisioning.cattle.io.cluster.vue +50 -1
  91. package/list/secret.vue +4 -9
  92. package/list/service.vue +6 -8
  93. package/machine-config/amazonec2.vue +11 -4
  94. package/machine-config/components/EC2Networking.vue +46 -30
  95. package/machine-config/components/__tests__/EC2Networking.test.ts +7 -7
  96. package/machine-config/components/__tests__/utils/vpcSubnetMockData.js +0 -9
  97. package/machine-config/digitalocean.vue +3 -3
  98. package/models/__tests__/namespace.test.ts +11 -0
  99. package/models/__tests__/provisioning.cattle.io.cluster.test.ts +96 -0
  100. package/models/__tests__/workload.test.ts +42 -1
  101. package/models/catalog.cattle.io.clusterrepo.js +30 -4
  102. package/models/ext.cattle.io.token.js +48 -0
  103. package/models/kontainerdriver.js +2 -2
  104. package/models/namespace.js +7 -1
  105. package/models/nodedriver.js +2 -2
  106. package/models/provisioning.cattle.io.cluster.js +28 -7
  107. package/models/secret.js +0 -17
  108. package/models/service.js +44 -1
  109. package/models/token.js +4 -0
  110. package/models/workload.js +12 -6
  111. package/package.json +1 -1
  112. package/pages/account/index.vue +96 -67
  113. package/pages/auth/setup.vue +5 -14
  114. package/pages/c/_cluster/apps/charts/__tests__/install.test.ts +4 -1
  115. package/pages/c/_cluster/apps/charts/index.vue +93 -4
  116. package/pages/c/_cluster/apps/charts/install.vue +317 -42
  117. package/pages/c/_cluster/manager/drivers/kontainerDriver/index.vue +5 -4
  118. package/pages/c/_cluster/settings/index.vue +3 -1
  119. package/plugins/dashboard-store/__tests__/getters.test.ts +108 -0
  120. package/plugins/dashboard-store/__tests__/resource-class.test.ts +27 -0
  121. package/plugins/dashboard-store/actions.js +3 -8
  122. package/plugins/dashboard-store/getters.js +7 -5
  123. package/plugins/dashboard-store/mutations.js +4 -1
  124. package/plugins/dashboard-store/resource-class.js +3 -3
  125. package/plugins/steve/__tests__/steve-class.test.ts +102 -141
  126. package/plugins/steve/steve-class.js +12 -3
  127. package/plugins/steve/steve-pagination-utils.ts +6 -2
  128. package/rancher-components/RcIcon/types.ts +2 -0
  129. package/rancher-components/RcItemCard/RcItemCard.vue +64 -19
  130. package/store/prefs.js +3 -0
  131. package/types/aws-sdk.d.ts +121 -0
  132. package/types/resources/node.ts +15 -0
  133. package/types/shell/index.d.ts +536 -506
  134. package/types/store/pagination.types.ts +5 -5
  135. package/utils/__tests__/array.test.ts +1 -29
  136. package/utils/__tests__/cluster-agent-configuration.test.ts +203 -0
  137. package/utils/array.ts +0 -11
  138. package/utils/aws.ts +21 -0
  139. package/utils/cluster.js +22 -2
  140. package/utils/selector-typed.ts +1 -1
  141. package/components/__tests__/ProjectRow.test.ts +0 -206
  142. package/components/form/ResourceQuota/ProjectRow.vue +0 -277
@@ -0,0 +1,84 @@
1
+ <script setup>
2
+ import { useI18n } from '@shell/composables/useI18n';
3
+ import { useStore } from 'vuex';
4
+ import LabeledInput from '@components/Form/LabeledInput/LabeledInput.vue';
5
+ import FleetClusterTargets from '@shell/components/fleet/FleetClusterTargets/index.vue';
6
+
7
+ defineProps({
8
+ value: {
9
+ type: Object,
10
+ required: true
11
+ },
12
+ mode: {
13
+ type: String,
14
+ required: true
15
+ },
16
+ realMode: {
17
+ type: String,
18
+ required: true
19
+ },
20
+ isView: {
21
+ type: Boolean,
22
+ default: false
23
+ },
24
+ targetsCreated: {
25
+ type: String,
26
+ default: ''
27
+ }
28
+ });
29
+
30
+ const emit = defineEmits(['update:targets', 'targets-created']);
31
+
32
+ const store = useStore();
33
+ const { t } = useI18n(store);
34
+
35
+ const updateTargets = (value) => {
36
+ emit('update:targets', value);
37
+ };
38
+
39
+ const onTargetsCreated = (value) => {
40
+ emit('targets-created', value);
41
+ };
42
+ </script>
43
+
44
+ <template>
45
+ <div>
46
+ <h2>{{ t('fleet.helmOp.target.label') }}</h2>
47
+ <FleetClusterTargets
48
+ :targets="value.spec.targets"
49
+ :matching="value.targetClusters"
50
+ :namespace="value.metadata.namespace"
51
+ :mode="realMode"
52
+ :created="targetsCreated"
53
+ @update:value="updateTargets"
54
+ @created="onTargetsCreated"
55
+ />
56
+
57
+ <h3 class="mmt-16">
58
+ {{ t('fleet.helmOp.target.additionalOptions') }}
59
+ </h3>
60
+ <div class="row mt-20">
61
+ <div class="col span-6">
62
+ <LabeledInput
63
+ v-model:value="value.spec.serviceAccount"
64
+ :mode="mode"
65
+ label-key="fleet.helmOp.serviceAccount.label"
66
+ placeholder-key="fleet.helmOp.serviceAccount.placeholder"
67
+ />
68
+ </div>
69
+ <div class="col span-6">
70
+ <LabeledInput
71
+ v-model:value="value.spec.namespace"
72
+ :mode="mode"
73
+ label-key="fleet.helmOp.targetNamespace.label"
74
+ placeholder-key="fleet.helmOp.targetNamespace.placeholder"
75
+ label="Target Namespace"
76
+ placeholder="Optional: Require all resources to be in this namespace"
77
+ />
78
+ </div>
79
+ </div>
80
+ </div>
81
+ </template>
82
+
83
+ <style lang="scss" scoped>
84
+ </style>
@@ -0,0 +1,147 @@
1
+ <script setup>
2
+ import { useI18n } from '@shell/composables/useI18n';
3
+ import { useStore } from 'vuex';
4
+ import Banner from '@components/Banner/Banner.vue';
5
+ import ButtonGroup from '@shell/components/ButtonGroup';
6
+ import YamlEditor from '@shell/components/YamlEditor';
7
+ import FleetValuesFrom from '@shell/components/fleet/FleetValuesFrom.vue';
8
+
9
+ defineProps({
10
+ value: {
11
+ type: Object,
12
+ required: true
13
+ },
14
+ mode: {
15
+ type: String,
16
+ required: true
17
+ },
18
+ realMode: {
19
+ type: String,
20
+ required: true
21
+ },
22
+ isView: {
23
+ type: Boolean,
24
+ default: false
25
+ },
26
+ chartValues: {
27
+ type: String,
28
+ required: true
29
+ },
30
+ chartValuesInit: {
31
+ type: String,
32
+ required: true
33
+ },
34
+ yamlForm: {
35
+ type: String,
36
+ required: true
37
+ },
38
+ yamlFormOptions: {
39
+ type: Array,
40
+ required: true
41
+ },
42
+ yamlDiffModeOptions: {
43
+ type: Array,
44
+ required: true
45
+ },
46
+ isYamlDiff: {
47
+ type: Boolean,
48
+ required: true
49
+ },
50
+ editorMode: {
51
+ type: String,
52
+ required: true
53
+ },
54
+ diffMode: {
55
+ type: String,
56
+ required: true
57
+ },
58
+ isRealModeEdit: {
59
+ type: Boolean,
60
+ required: true
61
+ }
62
+ });
63
+
64
+ const emit = defineEmits(['update:yaml-form', 'update:chart-values', 'update:diff-mode']);
65
+
66
+ const store = useStore();
67
+ const { t } = useI18n(store);
68
+
69
+ const updateYamlForm = () => {
70
+ emit('update:yaml-form');
71
+ };
72
+
73
+ const updateChartValues = (value) => {
74
+ emit('update:chart-values', value);
75
+ };
76
+
77
+ const updateDiffMode = (value) => {
78
+ emit('update:diff-mode', value);
79
+ };
80
+ </script>
81
+
82
+ <template>
83
+ <div>
84
+ <Banner
85
+ color="info"
86
+ class="description"
87
+ label-key="fleet.helmOp.values.description"
88
+ />
89
+
90
+ <h2>{{ t('fleet.helmOp.values.title') }}</h2>
91
+
92
+ <div class="mb-15">
93
+ <div
94
+ v-if="isRealModeEdit"
95
+ class="yaml-form-controls"
96
+ >
97
+ <ButtonGroup
98
+ :value="yamlForm"
99
+ inactive-class="bg-disabled btn-sm"
100
+ active-class="bg-primary btn-sm"
101
+ :options="yamlFormOptions"
102
+ @update:value="updateYamlForm"
103
+ />
104
+ <div
105
+ class="yaml-form-controls-spacer"
106
+ style="flex:1"
107
+ >
108
+ &nbsp;
109
+ </div>
110
+ <ButtonGroup
111
+ v-if="isYamlDiff"
112
+ :value="diffMode"
113
+ :options="yamlDiffModeOptions"
114
+ inactive-class="bg-disabled btn-sm"
115
+ active-class="bg-primary btn-sm"
116
+ @update:value="updateDiffMode"
117
+ />
118
+ </div>
119
+
120
+ <YamlEditor
121
+ ref="yaml"
122
+ :value="chartValues"
123
+ :mode="mode"
124
+ :initial-yaml-values="chartValuesInit"
125
+ :scrolling="true"
126
+ :editor-mode="editorMode"
127
+ :hide-preview-buttons="true"
128
+ @update:value="updateChartValues"
129
+ />
130
+ </div>
131
+
132
+ <div class="mb-20">
133
+ <FleetValuesFrom
134
+ :value="value.spec.helm.valuesFrom"
135
+ :namespace="value.metadata.namespace"
136
+ :mode="realMode"
137
+ />
138
+ </div>
139
+ </div>
140
+ </template>
141
+
142
+ <style lang="scss" scoped>
143
+ .yaml-form-controls {
144
+ display: flex;
145
+ margin-bottom: 15px;
146
+ }
147
+ </style>