@rancher/shell 3.0.6 → 3.0.8-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/images/pl/dark/rancher-logo.svg +131 -44
- package/assets/images/pl/rancher-logo.svg +120 -44
- package/assets/images/vendor/githubapp.svg +13 -0
- package/assets/styles/base/_basic.scss +2 -2
- package/assets/styles/base/_color-classic.scss +51 -0
- package/assets/styles/base/_color.scss +3 -3
- package/assets/styles/base/_mixins.scss +1 -1
- package/assets/styles/base/_typography.scss +1 -1
- package/assets/styles/base/_variables-classic.scss +47 -0
- package/assets/styles/global/_button.scss +49 -17
- package/assets/styles/global/_form.scss +1 -1
- package/assets/styles/themes/_dark.scss +4 -0
- package/assets/styles/themes/_light.scss +3 -69
- package/assets/styles/themes/_modern.scss +194 -50
- package/assets/styles/vendor/vue-select.scss +1 -2
- package/assets/translations/en-us.yaml +124 -32
- package/assets/translations/zh-hans.yaml +0 -4
- package/components/ClusterIconMenu.vue +1 -1
- package/components/ClusterProviderIcon.vue +1 -1
- package/components/CodeMirror.vue +1 -1
- package/components/IconOrSvg.vue +40 -29
- package/components/Inactivity.vue +222 -106
- package/components/InstallHelmCharts.vue +2 -2
- package/components/ResourceDetail/index.vue +2 -1
- package/components/SortableTable/index.vue +17 -2
- package/components/SortableTable/sorting.js +3 -1
- package/components/Tabbed/index.vue +5 -5
- package/components/fleet/FleetConfigMapSelector.vue +117 -0
- package/components/fleet/FleetSecretSelector.vue +127 -0
- package/components/fleet/__tests__/FleetConfigMapSelector.test.ts +125 -0
- package/components/fleet/__tests__/FleetSecretSelector.test.ts +82 -0
- package/components/form/FileImageSelector.vue +13 -4
- package/components/form/FileSelector.vue +11 -2
- package/components/form/ResourceLabeledSelect.vue +1 -0
- package/components/form/ResourceTabs/index.vue +37 -18
- package/components/form/SecretSelector.vue +6 -2
- package/components/form/__tests__/ResourceLabeledSelect.test.ts +90 -0
- package/components/nav/Group.vue +29 -9
- package/components/nav/Header.vue +7 -8
- package/components/nav/NamespaceFilter.vue +1 -1
- package/components/nav/TopLevelMenu.helper.ts +47 -20
- package/components/nav/TopLevelMenu.vue +44 -14
- package/components/nav/Type.vue +0 -5
- package/components/nav/__tests__/TopLevelMenu.test.ts +2 -0
- package/config/pagination-table-headers.js +10 -2
- package/config/product/auth.js +1 -0
- package/config/product/explorer.js +4 -3
- package/config/query-params.js +1 -0
- package/config/settings.ts +8 -1
- package/config/table-headers.js +9 -0
- package/config/types.js +2 -0
- package/core/plugin.ts +18 -6
- package/core/types.ts +8 -0
- package/detail/provisioning.cattle.io.cluster.vue +1 -0
- package/dialog/AddonConfigConfirmationDialog.vue +45 -1
- package/dialog/InstallExtensionDialog.vue +71 -45
- package/dialog/UninstallExtensionDialog.vue +2 -1
- package/dialog/__tests__/InstallExtensionDialog.test.ts +111 -0
- package/edit/__tests__/fleet.cattle.io.helmop.test.ts +52 -11
- package/edit/auth/AuthProviderWarningBanners.vue +14 -1
- package/edit/auth/github-app-steps.vue +97 -0
- package/edit/auth/github-steps.vue +75 -0
- package/edit/auth/github.vue +94 -65
- package/edit/auth/oidc.vue +86 -16
- package/edit/fleet.cattle.io.helmop.vue +51 -2
- package/edit/networking.k8s.io.networkpolicy/PolicyRuleTarget.vue +15 -5
- package/edit/provisioning.cattle.io.cluster/__tests__/rke2.test.ts +11 -9
- package/edit/provisioning.cattle.io.cluster/rke2.vue +56 -9
- package/edit/provisioning.cattle.io.cluster/tabs/AddOnConfig.vue +28 -2
- package/list/projectsecret.vue +1 -1
- package/machine-config/azure.vue +1 -1
- package/mixins/__tests__/chart.test.ts +1 -1
- package/mixins/chart.js +2 -2
- package/models/__tests__/chart.test.ts +17 -9
- package/models/__tests__/compliance.cattle.io.clusterscanprofile.spec.js +30 -0
- package/models/catalog.cattle.io.app.js +1 -1
- package/models/chart.js +3 -1
- package/models/compliance.cattle.io.clusterscanprofile.js +1 -1
- package/models/event.js +7 -0
- package/models/management.cattle.io.authconfig.js +1 -0
- package/models/provisioning.cattle.io.cluster.js +9 -0
- package/package.json +2 -2
- package/pages/auth/login.vue +5 -2
- package/pages/auth/verify.vue +1 -1
- package/pages/c/_cluster/apps/charts/AppChartCardSubHeader.vue +3 -2
- package/pages/c/_cluster/apps/charts/chart.vue +2 -2
- package/pages/c/_cluster/explorer/EventsTable.vue +92 -9
- package/pages/c/_cluster/explorer/tools/index.vue +3 -3
- package/pages/c/_cluster/settings/performance.vue +13 -26
- package/pages/c/_cluster/uiplugins/PluginInfoPanel.vue +159 -62
- package/pages/c/_cluster/uiplugins/__tests__/PluginInfoPanel.test.ts +102 -0
- package/pages/c/_cluster/uiplugins/__tests__/{index.spec.ts → index.test.ts} +121 -55
- package/pages/c/_cluster/uiplugins/index.vue +110 -94
- package/pages/home.vue +313 -12
- package/plugins/__tests__/subscribe.events.test.ts +194 -0
- package/plugins/axios.js +2 -1
- package/plugins/dashboard-store/actions.js +4 -1
- package/plugins/dashboard-store/getters.js +1 -1
- package/plugins/dashboard-store/resource-class.js +20 -5
- package/plugins/steve/__tests__/subscribe.spec.ts +27 -24
- package/plugins/steve/index.js +18 -10
- package/plugins/steve/mutations.js +2 -2
- package/plugins/steve/resourceWatcher.js +2 -2
- package/plugins/steve/steve-pagination-utils.ts +12 -9
- package/plugins/steve/subscribe.js +113 -85
- package/plugins/subscribe-events.ts +211 -0
- package/rancher-components/BadgeState/BadgeState.vue +8 -6
- package/rancher-components/Banner/Banner.vue +2 -1
- package/rancher-components/Form/Checkbox/Checkbox.vue +3 -3
- package/rancher-components/Form/Radio/RadioButton.vue +3 -3
- package/scripts/extension/publish +1 -1
- package/store/auth.js +8 -3
- package/store/aws.js +8 -6
- package/store/features.js +1 -0
- package/store/index.js +21 -25
- package/store/prefs.js +6 -0
- package/types/extension-manager.ts +8 -1
- package/types/kube/kube-api.ts +2 -1
- package/types/rancher/index.d.ts +1 -0
- package/types/resources/settings.d.ts +52 -23
- package/types/shell/index.d.ts +412 -336
- package/types/store/subscribe-events.types.ts +70 -0
- package/types/store/subscribe.types.ts +6 -22
- package/utils/__tests__/cluster.test.ts +379 -1
- package/utils/cluster.js +157 -3
- package/utils/dynamic-content/__tests__/config.test.ts +187 -0
- package/utils/dynamic-content/__tests__/index.test.ts +390 -0
- package/utils/dynamic-content/__tests__/info.test.ts +263 -0
- package/utils/dynamic-content/__tests__/new-release.test.ts +216 -0
- package/utils/dynamic-content/__tests__/support-notice.test.ts +262 -0
- package/utils/dynamic-content/__tests__/util.test.ts +235 -0
- package/utils/dynamic-content/config.ts +55 -0
- package/utils/dynamic-content/index.ts +273 -0
- package/utils/dynamic-content/info.ts +219 -0
- package/utils/dynamic-content/new-release.ts +126 -0
- package/utils/dynamic-content/support-notice.ts +169 -0
- package/utils/dynamic-content/types.d.ts +101 -0
- package/utils/dynamic-content/util.ts +122 -0
- package/utils/inactivity.ts +104 -0
- package/utils/pagination-utils.ts +105 -31
- package/utils/pagination-wrapper.ts +6 -8
- package/utils/release-notes.ts +1 -1
- package/utils/sort.js +5 -0
- package/utils/unit-tests/pagination-utils.spec.ts +283 -0
- package/utils/validators/formRules/__tests__/index.test.ts +7 -0
- package/utils/validators/formRules/index.ts +2 -2
|
@@ -62,7 +62,7 @@ const DEFAULT_COLOR = 'warning';
|
|
|
62
62
|
const DEFAULT_ICON = 'x';
|
|
63
63
|
|
|
64
64
|
const DEFAULT_WAIT_INTERVAL = 1000;
|
|
65
|
-
const
|
|
65
|
+
const DEFAULT_WAIT_TIMEOUT = 30000;
|
|
66
66
|
|
|
67
67
|
export const STATES_ENUM = {
|
|
68
68
|
IN_USE: 'in-use',
|
|
@@ -806,7 +806,7 @@ export default class Resource {
|
|
|
806
806
|
// ------------------------------------------------------------------
|
|
807
807
|
|
|
808
808
|
waitForTestFn(fn, msg, timeoutMs, intervalMs) {
|
|
809
|
-
return waitFor(() => fn.apply(this), msg, timeoutMs ||
|
|
809
|
+
return waitFor(() => fn.apply(this), msg, timeoutMs || DEFAULT_WAIT_TIMEOUT, intervalMs || DEFAULT_WAIT_INTERVAL, true);
|
|
810
810
|
}
|
|
811
811
|
|
|
812
812
|
waitForState(state, timeout, interval) {
|
|
@@ -855,7 +855,7 @@ export default class Resource {
|
|
|
855
855
|
return (entry.status || '').toLowerCase() === `${ withStatus }`.toLowerCase();
|
|
856
856
|
}
|
|
857
857
|
|
|
858
|
-
waitForCondition(name, withStatus = 'True', timeoutMs =
|
|
858
|
+
waitForCondition(name, withStatus = 'True', timeoutMs = DEFAULT_WAIT_TIMEOUT, intervalMs = DEFAULT_WAIT_INTERVAL) {
|
|
859
859
|
return this.waitForTestFn(() => {
|
|
860
860
|
return this.isCondition(name, withStatus);
|
|
861
861
|
}, `condition ${ name }=${ withStatus }`, timeoutMs, intervalMs);
|
|
@@ -1264,6 +1264,12 @@ export default class Resource {
|
|
|
1264
1264
|
delete opt.replace;
|
|
1265
1265
|
}
|
|
1266
1266
|
|
|
1267
|
+
// Will loading this resource invalidate the resources in the cache that represent a page (resource is not from page)
|
|
1268
|
+
// By default we set this to no, it won't pollute the cache. Most likely either
|
|
1269
|
+
// 1. The resource came from a list already (loaded resource is already in the page that is in the cache)
|
|
1270
|
+
// 2. UI is not on a page with a list (cache doesn't represent a list)
|
|
1271
|
+
const invalidatePageCache = opt.invalidatePageCache || false;
|
|
1272
|
+
|
|
1267
1273
|
try {
|
|
1268
1274
|
const res = await this.$dispatch('request', { opt, type: this.type } );
|
|
1269
1275
|
|
|
@@ -1272,7 +1278,9 @@ export default class Resource {
|
|
|
1272
1278
|
|
|
1273
1279
|
// Steve sometimes returns Table responses instead of the resource you just saved.. ignore
|
|
1274
1280
|
if ( res && res.kind !== 'Table') {
|
|
1275
|
-
await this.$dispatch('load', {
|
|
1281
|
+
await this.$dispatch('load', {
|
|
1282
|
+
data: res, existing: (forNew ? this : undefined ), invalidatePageCache
|
|
1283
|
+
});
|
|
1276
1284
|
}
|
|
1277
1285
|
} catch (e) {
|
|
1278
1286
|
if ( this.type && this.id && e?._status === 409) {
|
|
@@ -1280,7 +1288,14 @@ export default class Resource {
|
|
|
1280
1288
|
await this.$dispatch('find', {
|
|
1281
1289
|
type: this.type,
|
|
1282
1290
|
id: this.id,
|
|
1283
|
-
opt: {
|
|
1291
|
+
opt: {
|
|
1292
|
+
// We want to update the value in cache, so force the request
|
|
1293
|
+
force: true,
|
|
1294
|
+
// We're not interested in opening a watch for this specific resource
|
|
1295
|
+
watch: false,
|
|
1296
|
+
// Unless overridden, this will be false, we're probably from a list and we don't want to clear it's state
|
|
1297
|
+
invalidatePageCache
|
|
1298
|
+
}
|
|
1284
1299
|
});
|
|
1285
1300
|
}
|
|
1286
1301
|
|
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
import { actions, getters, mutations } from '../subscribe';
|
|
2
2
|
import { REVISION_TOO_OLD } from '../../../utils/socket';
|
|
3
|
-
import {
|
|
3
|
+
import { STEVE_WATCH_MODE } from '../../../types/store/subscribe.types';
|
|
4
4
|
import backOff from '../../../utils/back-off';
|
|
5
|
+
import { SteveWatchEventListenerManager } from '../../subscribe-events';
|
|
5
6
|
|
|
6
7
|
describe('steve: subscribe', () => {
|
|
7
8
|
describe('actions', () => {
|
|
8
9
|
describe('watch', () => {
|
|
9
|
-
const state = {};
|
|
10
|
+
const state = { listenerManager: new SteveWatchEventListenerManager() };
|
|
10
11
|
const getters = {
|
|
11
|
-
normalizeType:
|
|
12
|
-
schemaFor:
|
|
13
|
-
inError:
|
|
14
|
-
watchStarted:
|
|
12
|
+
normalizeType: (type: string) => type,
|
|
13
|
+
schemaFor: () => null,
|
|
14
|
+
inError: () => false,
|
|
15
|
+
watchStarted: () => false,
|
|
16
|
+
listenerManager: state.listenerManager
|
|
15
17
|
};
|
|
16
18
|
const rootGetters = {
|
|
17
19
|
'type-map/isSpoofed': () => false,
|
|
@@ -211,15 +213,11 @@ describe('steve: subscribe', () => {
|
|
|
211
213
|
}, {
|
|
212
214
|
...obj,
|
|
213
215
|
revision,
|
|
214
|
-
mode:
|
|
216
|
+
mode: STEVE_WATCH_MODE.RESOURCE_CHANGES,
|
|
215
217
|
force: true,
|
|
216
218
|
});
|
|
217
219
|
|
|
218
|
-
expect(dispatch).toHaveBeenNthCalledWith(1, '
|
|
219
|
-
id: undefined, mode: STEVE_WATCH_EVENT.CHANGES, namespace: undefined, selector: undefined, type: obj.type
|
|
220
|
-
});
|
|
221
|
-
|
|
222
|
-
expect(dispatch).toHaveBeenNthCalledWith(2, 'send', {
|
|
220
|
+
expect(dispatch).toHaveBeenNthCalledWith(1, 'send', {
|
|
223
221
|
debounceMs: 4000,
|
|
224
222
|
mode: 'resource.changes',
|
|
225
223
|
resourceType: obj.type,
|
|
@@ -231,7 +229,7 @@ describe('steve: subscribe', () => {
|
|
|
231
229
|
state, dispatch, getters, commit
|
|
232
230
|
}, { ...msg });
|
|
233
231
|
|
|
234
|
-
expect(dispatch).toHaveBeenCalledTimes(
|
|
232
|
+
expect(dispatch).toHaveBeenCalledTimes(1);
|
|
235
233
|
dispatch.mockClear();
|
|
236
234
|
};
|
|
237
235
|
|
|
@@ -252,7 +250,7 @@ describe('steve: subscribe', () => {
|
|
|
252
250
|
});
|
|
253
251
|
expect(state.inError).toStrictEqual(
|
|
254
252
|
{
|
|
255
|
-
'type=abc,namespace=,id=,selector=': {
|
|
253
|
+
'type=abc,namespace=,id=,selector=,mode=resource.changes': {
|
|
256
254
|
obj: {
|
|
257
255
|
type: msg.resourceType,
|
|
258
256
|
mode: msg.mode,
|
|
@@ -268,7 +266,7 @@ describe('steve: subscribe', () => {
|
|
|
268
266
|
}, { ...msg });
|
|
269
267
|
// stop tries to watch again, however we're in error so will be ignored
|
|
270
268
|
expect(dispatch).toHaveBeenNthCalledWith(1, 'watch', {
|
|
271
|
-
id: undefined, mode:
|
|
269
|
+
id: undefined, mode: STEVE_WATCH_MODE.RESOURCE_CHANGES, namespace: undefined, selector: undefined, standardWatch: true, type: obj.type
|
|
272
270
|
});
|
|
273
271
|
|
|
274
272
|
dispatch.mockClear();
|
|
@@ -349,19 +347,24 @@ describe('steve: subscribe', () => {
|
|
|
349
347
|
const obj = { type: 'abc' };
|
|
350
348
|
const msg = {
|
|
351
349
|
resourceType: obj.type,
|
|
352
|
-
mode:
|
|
350
|
+
mode: STEVE_WATCH_MODE.RESOURCE_CHANGES,
|
|
353
351
|
};
|
|
354
352
|
|
|
355
353
|
const initStore = () => {
|
|
356
|
-
const state = {
|
|
354
|
+
const state = {
|
|
355
|
+
started: [],
|
|
356
|
+
inError: {},
|
|
357
|
+
listenerManager: new SteveWatchEventListenerManager()
|
|
358
|
+
};
|
|
357
359
|
const _getters = {
|
|
358
|
-
normalizeType:
|
|
359
|
-
schemaFor:
|
|
360
|
-
storeName:
|
|
361
|
-
inError:
|
|
362
|
-
watchStarted:
|
|
363
|
-
backOffId:
|
|
364
|
-
canBackoff:
|
|
360
|
+
normalizeType: (type: string) => type,
|
|
361
|
+
schemaFor: () => ({}),
|
|
362
|
+
storeName: 'test',
|
|
363
|
+
inError: (...args) => getters.inError(state)(...args),
|
|
364
|
+
watchStarted: (...args) => getters.watchStarted(state)(...args),
|
|
365
|
+
backOffId: (...args) => getters.backOffId()(...args),
|
|
366
|
+
canBackoff: () => true,
|
|
367
|
+
listenerManager: state.listenerManager
|
|
365
368
|
};
|
|
366
369
|
const commit = (type, ...args) => mutations[type](state, ...args);
|
|
367
370
|
|
package/plugins/steve/index.js
CHANGED
|
@@ -9,6 +9,8 @@ import {
|
|
|
9
9
|
import getters, { STEVE_MODEL_TYPES } from './getters';
|
|
10
10
|
import mutations from './mutations';
|
|
11
11
|
import actions from './actions';
|
|
12
|
+
import { SteveWatchEventListenerManager } from '@shell/plugins/subscribe-events';
|
|
13
|
+
import { markRaw } from 'vue';
|
|
12
14
|
|
|
13
15
|
export function SteveFactory(namespace, baseUrl) {
|
|
14
16
|
return {
|
|
@@ -17,16 +19,22 @@ export function SteveFactory(namespace, baseUrl) {
|
|
|
17
19
|
state() {
|
|
18
20
|
return {
|
|
19
21
|
...coreStoreState(namespace, baseUrl),
|
|
20
|
-
socket:
|
|
21
|
-
queue:
|
|
22
|
-
wantSocket:
|
|
23
|
-
debugSocket:
|
|
24
|
-
allowStreaming:
|
|
25
|
-
pendingFrames:
|
|
26
|
-
deferredRequests:
|
|
27
|
-
started:
|
|
28
|
-
inError:
|
|
29
|
-
|
|
22
|
+
socket: null,
|
|
23
|
+
queue: [], // For change event coalescing
|
|
24
|
+
wantSocket: false,
|
|
25
|
+
debugSocket: false,
|
|
26
|
+
allowStreaming: true,
|
|
27
|
+
pendingFrames: [],
|
|
28
|
+
deferredRequests: {},
|
|
29
|
+
started: [],
|
|
30
|
+
inError: {},
|
|
31
|
+
/**
|
|
32
|
+
* Socket listener manager for this store
|
|
33
|
+
*
|
|
34
|
+
* Instance of @SteveWatchEventListenerManager . See it's description for more info
|
|
35
|
+
*/
|
|
36
|
+
socketListenerManager: markRaw(new SteveWatchEventListenerManager()),
|
|
37
|
+
podsByNamespace: {}, // Cache of pods by namespace
|
|
30
38
|
};
|
|
31
39
|
},
|
|
32
40
|
|
|
@@ -164,10 +164,10 @@ export default {
|
|
|
164
164
|
},
|
|
165
165
|
|
|
166
166
|
reset(state) {
|
|
167
|
-
// Reset generic store things
|
|
168
|
-
|
|
167
|
+
// 1. Reset generic store things
|
|
169
168
|
resetStore(state, this.commit);
|
|
170
169
|
|
|
170
|
+
// 2. Reset steve specific store things
|
|
171
171
|
this.commit(`${ state.config.namespace }/resetSubscriptions`);
|
|
172
172
|
|
|
173
173
|
// Clear the podsByNamespace cache
|
|
@@ -40,10 +40,10 @@ export const WATCH_STATUSES = {
|
|
|
40
40
|
* Create a unique key for a specific resource watch's params
|
|
41
41
|
*/
|
|
42
42
|
export const keyForSubscribe = ({
|
|
43
|
-
resourceType, type, namespace, id, selector
|
|
43
|
+
resourceType, type, namespace, id, selector, mode
|
|
44
44
|
} = {}) => {
|
|
45
45
|
const keyMap = {
|
|
46
|
-
type: resourceType || type, namespace, id, selector
|
|
46
|
+
type: resourceType || type, namespace, id, selector, mode
|
|
47
47
|
};
|
|
48
48
|
|
|
49
49
|
return Object.entries(keyMap)
|
|
@@ -17,9 +17,10 @@ import {
|
|
|
17
17
|
} from '@shell/config/types';
|
|
18
18
|
import { CAPI as CAPI_LAB_AND_ANO, CATTLE_PUBLIC_ENDPOINTS, STORAGE, UI_PROJECT_SECRET_COPY } from '@shell/config/labels-annotations';
|
|
19
19
|
import { Schema } from '@shell/plugins/steve/schema';
|
|
20
|
-
import {
|
|
20
|
+
import { PaginationSettingsStores } from '@shell/types/resources/settings';
|
|
21
21
|
import paginationUtils from '@shell/utils/pagination-utils';
|
|
22
22
|
import { KubeLabelSelector, KubeLabelSelectorExpression } from '@shell/types/kube/kube-api';
|
|
23
|
+
import { parseField } from '@shell/utils/sort';
|
|
23
24
|
|
|
24
25
|
/**
|
|
25
26
|
* This is a workaround for a ts build issue found in check-plugins-build.
|
|
@@ -401,9 +402,13 @@ class StevePaginationUtils extends NamespaceProjectFilters {
|
|
|
401
402
|
|
|
402
403
|
const joined = opt.pagination.sort
|
|
403
404
|
.map((s) => {
|
|
404
|
-
|
|
405
|
+
// Use the same mechanism as local sorting to flip logic for asc/des
|
|
406
|
+
const { field, reverse } = parseField(s.field);
|
|
407
|
+
const asc = reverse ? !s.asc : s.asc;
|
|
405
408
|
|
|
406
|
-
|
|
409
|
+
this.validateField(validateFields, schema, field);
|
|
410
|
+
|
|
411
|
+
return `${ asc ? '' : '-' }${ this.convertArrayPath(field) }`;
|
|
407
412
|
})
|
|
408
413
|
.join(',');
|
|
409
414
|
|
|
@@ -615,7 +620,6 @@ class StevePaginationUtils extends NamespaceProjectFilters {
|
|
|
615
620
|
res.push(`filter=!${ labelKey }`);
|
|
616
621
|
break;
|
|
617
622
|
case 'Gt':
|
|
618
|
-
// Currently broken - see https://github.com/rancher/rancher/issues/50057
|
|
619
623
|
// Only applicable to node affinity (atm) - https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#operators
|
|
620
624
|
|
|
621
625
|
if (typeof exp.values !== 'string') {
|
|
@@ -628,7 +632,6 @@ class StevePaginationUtils extends NamespaceProjectFilters {
|
|
|
628
632
|
res.push(`filter=${ labelKey } > (${ exp.values })`);
|
|
629
633
|
break;
|
|
630
634
|
case 'Lt':
|
|
631
|
-
// Currently broken - see https://github.com/rancher/rancher/issues/50057
|
|
632
635
|
// Only applicable to node affinity (atm) - https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#operators
|
|
633
636
|
if (typeof exp.values !== 'string') {
|
|
634
637
|
console.error(`Skipping labelSelector to API filter param conversion for ${ exp.key }(Lt) as no value was supplied`); // eslint-disable-line no-console
|
|
@@ -649,7 +652,7 @@ class StevePaginationUtils extends NamespaceProjectFilters {
|
|
|
649
652
|
}
|
|
650
653
|
}
|
|
651
654
|
|
|
652
|
-
export const PAGINATION_SETTINGS_STORE_DEFAULTS:
|
|
655
|
+
export const PAGINATION_SETTINGS_STORE_DEFAULTS: PaginationSettingsStores = {
|
|
653
656
|
cluster: {
|
|
654
657
|
resources: {
|
|
655
658
|
enableAll: false,
|
|
@@ -662,7 +665,7 @@ export const PAGINATION_SETTINGS_STORE_DEFAULTS: PaginationSettingsStore = {
|
|
|
662
665
|
CATALOG.APP, CATALOG.OPERATION,
|
|
663
666
|
HPA, INGRESS, SERVICE,
|
|
664
667
|
PV, CONFIG_MAP, STORAGE_CLASS, PVC, SECRET,
|
|
665
|
-
WORKLOAD_TYPES.REPLICA_SET, WORKLOAD_TYPES.REPLICATION_CONTROLLER
|
|
668
|
+
WORKLOAD_TYPES.REPLICA_SET, WORKLOAD_TYPES.REPLICATION_CONTROLLER,
|
|
666
669
|
],
|
|
667
670
|
generic: true,
|
|
668
671
|
}
|
|
@@ -673,8 +676,8 @@ export const PAGINATION_SETTINGS_STORE_DEFAULTS: PaginationSettingsStore = {
|
|
|
673
676
|
enableAll: false,
|
|
674
677
|
enableSome: {
|
|
675
678
|
enabled: [
|
|
676
|
-
|
|
677
|
-
|
|
679
|
+
{ resource: CAPI.RANCHER_CLUSTER, context: ['side-bar'] },
|
|
680
|
+
{ resource: MANAGEMENT.CLUSTER, context: ['side-bar'] },
|
|
678
681
|
{ resource: CATALOG.APP, context: ['branding'] },
|
|
679
682
|
SECRET
|
|
680
683
|
],
|